Some gcc cleanups due to the cross/native oeclass changes.
authorChris Larson <clarson@kergoth.com>
Thu, 2 Oct 2003 19:37:35 +0000 (19:37 +0000)
committerChris Larson <clarson@kergoth.com>
Thu, 2 Oct 2003 19:37:35 +0000 (19:37 +0000)
BKrev: 3f7c7e7fSjeoVuyPG128H4RkIDn_Ng

gcc/gcc-3.3.1.oe
gcc/gcc-initial-uclibc-cross-3.3.1.oe
gcc/gcc-uclibc-3.3.1.oe [new file with mode: 0644]
gcc/gcc-uclibc-cross-3.3.1.oe

index e69de29..422830d 100644 (file)
@@ -0,0 +1,117 @@
+inherit autotools
+
+DESCRIPTION := The GNU cc and gcc C compilers.
+LICENSE := GPL
+MAINTAINER := Gerald Britton <gbritton@doomcom.org>
+
+DEPENDS := virtual/${CROSS}binutils virtual/${CROSS}gcc \
+           virtual/uclibc virtual/uclibc-headers patcher
+
+PACKAGES = ${PN} ${PN}-cplusplus \
+           uclibc-libgcc uclibc-libstdcplusplus \
+           ${PN}-doc
+
+FILES_${PN} = ${bindir}/${TARGET_SYS}-gcc \
+              ${bindir}/${TARGET_SYS}-cpp \
+              ${bindir}/${TARGET_SYS}-gcov \
+              ${bindir}/${TARGET_SYS}-gccbug \
+              ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/cc1 \
+              ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/collect2 \
+              ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/crt* \
+              ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/specs \
+              ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/libgcc* \
+              ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/include \
+              ${prefix}/${TARGET_SYS}/lib/libgcc_s.so \
+              ${prefix}/${TARGET_SYS}/lib/libiberty.a \
+              ${bindir}/cc ${bindir}/gcc ${bindir}/cpp \
+              ${bindir}/gcov ${bindir}/gccbug
+
+FILES_${PN}-cplusplus = ${bindir}/${TARGET_SYS}-g++ \
+                  ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/cc1plus \
+                  ${prefix}/${TARGET_SYS}/lib/libstdc++.so \
+                  ${prefix}/${TARGET_SYS}/lib/libstdc++.la \
+                  ${prefix}/${TARGET_SYS}/lib/libstdc++.a \
+                  ${prefix}/${TARGET_SYS}/lib/libsupc++.la \
+                  ${prefix}/${TARGET_SYS}/lib/libsupc++.a \
+                  ${includedir}/c++ \
+                  ${bindir}/c++ ${bindir}/g++
+
+FILES_uclibc-libgcc = /lib/libgcc_s.so.*
+
+FILES_uclibc-libstdcplusplus = ${prefix}/${TARGET_SYS}/lib/libstdc++.so.*
+
+FILES_${PN}-doc = ${infodir} ${mandir} \
+                  ${libdir}/gcc-lib/${TARGET_SYS}/${PV}/include/README
+
+SRC_URI := http://gcc.get-software.com/releases/gcc-${PV}/gcc-${PV}.tar.bz2 \
+           file://${FILESDIR}/gcc-001-disable-mathf.patch;patch=1 \
+           file://${FILESDIR}/gcc-006-include-search.patch;patch=1 \
+           file://${FILESDIR}/gcc-810-libstd++-locale.patch;patch=1
+
+S := ${WORKDIR}/gcc-${PV}
+B := ${S}/build.${HOST_SYS}.${TARGET_SYS}
+
+EXTRA_OECONF := --with-local-prefix=/usr/local \
+                --with-gxx-include-dir=${includedir}/c++ \
+                --enable-target-optspace \
+                --disable-nls \
+                --with-gnu-ld \
+                --disable-__cxa_atexit \
+                --enable-languages=c,c++ \
+                --enable-shared \
+                --enable-multilib \
+                --program-prefix=${TARGET_SYS}-
+
+do_configure_prepend () {
+       # Setup these vars for cross building only
+       if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then
+               export CC_FOR_TARGET="${CCACHE} ${CROSS}gcc"
+               export GCC_FOR_TARGET="${CCACHE} ${CROSS}gcc"
+               export CXX_FOR_TARGET="${CCACHE} ${CROSS}g++"
+               export AS_FOR_TARGET="${CROSS}as"
+               export LD_FOR_TARGET="${CROSS}ld"
+               export NM_FOR_TARGET="${CROSS}nm"
+               export AR_FOR_TARGET="${CROSS}ar"
+               export RANLIB_FOR_TARGET="${CROSS}ranlib"
+       fi
+}
+
+do_install_append () {
+       # Cleanup some of the gcc-lib stuff
+       rm -rf ${D}/${libdir}/gcc-lib/${TARGET_SYS}/${PV}/install-tools
+
+       # Move libgcc_s into /lib
+       mkdir -p ${D}/lib
+       mv -f ${D}/${prefix}/${TARGET_SYS}/lib/libgcc_s.so.* ${D}/lib
+       rm -f ${D}/${prefix}/${TARGET_SYS}/lib/libgcc_s.so
+       ln -s ../../../lib/libgcc_s.so.? \
+             ${D}/${prefix}/${TARGET_SYS}/libgcc_s.so
+
+       # Cleanup manpages..
+       rm -rf ${D}/${mandir}/man7
+       mv ${D}/${mandir}/man1/cpp.1 \
+          ${D}/${mandir}/man1/${TARGET_SYS}-cpp.1
+       mv ${D}/${mandir}/man1/gcov.1 \
+          ${D}/${mandir}/man1/${TARGET_SYS}-gcov.1
+
+       cd ${D}/${bindir}
+
+       # We care about g++ not c++
+       rm -f *c++
+
+       # We don't care about the gcc-<version> ones for this
+       rm -f *gcc-?.?*
+
+#      # Cleanup after gcc's --program-prefix failing..
+#      rm -f ${TARGET_SYS}-${TARGET_ARCH}-uclibc-*
+
+#      # Symlinks for if this is intended to be the only compiler
+#      for p in ${TARGET_ARCH}-uclibc-* ; do
+#              ln -s $p `echo $p | sed -e s,${TARGET_ARCH}-uclibc-,,`
+#              ln -s $p `echo $p | sed -e s,uclibc,linux,`
+#      done
+       ln -s ${TARGET_SYS}-g++ g++
+       ln -s ${TARGET_SYS}-gcc gcc
+       ln -s g++ c++
+       ln -s gcc cc
+}
index e69de29..6076923 100644 (file)
@@ -0,0 +1,16 @@
+include gcc-uclibc-cross-${PV}.oe
+
+DEPENDS := virtual/${TARGET_SYS}-binutils \
+           virtual/uclibc-headers patcher
+PROVIDES := virtual/${TARGET_SYS}-gcc-initial
+
+EXTRA_OECONF := --with-local-prefix=${CROSS_DIR}/usr/local \
+                --with-gxx-include-dir=${CROSS_DIR}/${TARGET_SYS}/include/c++ \
+                --enable-target-optspace \
+                --disable-nls \
+                --with-gnu-ld \
+                --disable-__cxa_atexit \
+                --enable-languages=c \
+                --disable-shared \
+                --enable-multilib \
+                --program-prefix=${TARGET_SYS}-
diff --git a/gcc/gcc-uclibc-3.3.1.oe b/gcc/gcc-uclibc-3.3.1.oe
new file mode 100644 (file)
index 0000000..e69de29
index e69de29..4b88482 100644 (file)
@@ -0,0 +1,54 @@
+inherit cross
+include gcc-uclibc-${PV}.oe
+
+DEPENDS := virtual/${TARGET_SYS}-binutils \
+           virtual/uclibc virtual/uclibc-headers patcher
+PROVIDES := virtual/${TARGET_SYS}-gcc \
+            virtual/${TARGET_SYS}-g++
+
+PACKAGES =
+
+EXTRA_OECONF := --with-local-prefix=${CROSS_DIR}/usr/local \
+                --with-gxx-include-dir=${CROSS_DIR}/${TARGET_SYS}/include/c++ \
+                --enable-target-optspace \
+                --disable-nls \
+                --with-gnu-ld \
+                --disable-__cxa_atexit \
+                --enable-languages=c,c++ \
+                --enable-shared \
+                --enable-multilib \
+                --program-prefix=${TARGET_SYS}-
+
+export CPPFLAGS =
+export CXXFLAGS =
+export CFLAGS =
+export LDFLAGS =
+
+do_configure_prepend () {
+       export CC="${BUILD_CC}"
+       export AR="${TARGET_SYS}-ar"
+       export RANLIB="${TARGET_SYS}-ranlib"
+       export LD="${TARGET_SYS}-ld"
+       export NM="${TARGET_SYS}-nm"
+}
+
+do_compile_prepend () {
+       export CC="${BUILD_CC}"
+       export AR_FOR_TARGET="${TARGET_SYS}-ar"
+       export RANLIB_FOR_TARGET="${TARGET_SYS}-ranlib"
+       export LD_FOR_TARGET="${TARGET_SYS}-ld"
+       export NM_FOR_TARGET="${TARGET_SYS}-nm"
+       export CC_FOR_TARGET="${CCACHE} ${TARGET_SYS}-gcc"
+}
+
+do_stage_append () {
+#      # Cleanup after gcc's --program-prefix failing..
+#      ( cd ${CROSS_DIR}/bin ; for p in ${TARGET_SYS}-* ; do
+#              mv $p `echo $p | sed -e s,${TARGET_SYS},${TARGET_ARCH}-uclibc,`
+#      done )
+
+       rm -f ${CROSS_DIR}/bin/gccbug ${CROSS_DIR}/bin/gcov
+       for d in info man share/doc share/locale ; do
+               rm -rf ${CROSS_DIR}/$d
+       done
+}