1 DESCRIPTION = "The GNU cc and gcc C compilers."
2 HOMEPAGE = "http://www.gnu.org/software/gcc/"
5 MAINTAINER = "Phil Blundell <pb@handhelds.org>"
9 # Files for these are defined in the main gcc.oe
10 #PACKAGES = "libgcc libstdc++ libg2c"
14 SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
15 file://arm-gotoff.dpatch;patch=1;pnum=0 \
16 file://arm-ldm.dpatch;patch=1;pnum=0 \
17 file://arm-tune.patch;patch=1;pnum=0 \
18 file://arm-ldm-peephole.patch;patch=1;pnum=0 \
19 file://libibery-crosstool.patch;patch=1;pnum=1 \
20 file://reverse-compare.patch;patch=1 \
21 file://gcc34-15089.patch;patch=1 \
22 file://gcc-uclibc-3.3-100-conf.patch;patch=1 \
23 file://gcc-uclibc-3.3-110-conf.patch;patch=1 \
24 file://gcc-uclibc-3.3-120-softfloat.patch;patch=1 \
25 file://gcc-uclibc-3.3-200-code.patch;patch=1 \
26 file://bash3.patch;patch=1"
28 SRC_URI += 'file://sdk-libstdc++-includes.patch;patch=1'
31 ${GNU_MIRROR}/gcc/ http://mirrors.rcn.net/pub/sourceware/gcc/releases/
34 S = "${WORKDIR}/gcc-${PV}"
35 B = "${S}/build.${HOST_SYS}.${TARGET_SYS}"
37 FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}"
39 DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc"
46 STAGING_TARGET_INCDIR = "${STAGING_DIR}/${TARGET_SYS}/include"
47 STAGING_TARGET_LIBDIR = "${STAGING_DIR}/${TARGET_SYS}/lib"
49 EXTRA_OECONF = "--with-gnu-ld \
51 --enable-languages=c,c++,f77 \
52 --enable-threads=posix \
56 --enable-symvers=gnu \
57 --program-prefix=${TARGET_PREFIX} \
58 ${EXTRA_OECONF_PATHS} \
62 (cd ${S} && gnu-configize) || die "failure running gnu-configize"
63 (cd ${S}/libstdc++-v3 && autoreconf)
66 ln -sf ${CROSS_DIR}/bin/${TARGET_PREFIX}as gcc/as
67 ln -sf ${CROSS_DIR}/bin/${TARGET_PREFIX}ld gcc/ld
68 ln -sf ${STAGING_TARGET_INCDIR}/* ${S}/include
69 ln -sf ${STAGING_TARGET_LIBDIR}/crt*.o gcc/
73 export CC="${BUILD_CC}"
74 export AR_FOR_TARGET="${TARGET_SYS}-ar"
75 export RANLIB_FOR_TARGET="${TARGET_SYS}-ranlib"
76 export LD_FOR_TARGET="${TARGET_SYS}-ld"
77 export NM_FOR_TARGET="${TARGET_SYS}-nm"
78 export CC_FOR_TARGET="${CCACHE} ${TARGET_SYS}-gcc"
79 oe_runmake CFLAGS_FOR_TARGET="-I${STAGING_TARGET_INCDIR}"
83 # autotools_do_install
87 if bb.data.getVar('DEBIAN_NAMES', d, 1):
88 bb.data.setVar('PKG_libgcc', 'libgcc1', d)
89 bb.build.exec_func('package_do_package', d)
93 oe_runmake 'DESTDIR=${D}' install
95 # Move libgcc_s into /lib
96 mkdir -p ${D}${base_libdir}
97 if [ "${BUILD_SYS}" == "${TARGET_SYS}" ]; then
98 # native builds drop one pathname component
99 mv -f ${D}${prefix}/lib/libgcc_s.so.* ${D}${base_libdir}
101 mv -f ${D}${prefix}/*/lib/libgcc_s.so.* ${D}${base_libdir}
104 # Move libstdc++ and libg2c into libdir (resetting our prefix to /usr
105 TGT_LIBDIR=`echo ${libdir} | sed -e 's,${CROSS_DIR},/usr,'`
106 mkdir -p ${D}${TGT_LIBDIR}
107 mv -f ${D}${prefix}/*/lib/libstdc++.so.* ${D}${TGT_LIBDIR}
108 mv -f ${D}${prefix}/*/lib/libg2c.so.* ${D}${TGT_LIBDIR}
110 # Manually run the target stripper since we won't get it run by
112 if [ "x${OLD_INHIBIT_PACKAGE_STRIP}" != "x1" ]; then
113 ${TARGET_PREFIX}strip ${D}${TGT_LIBDIR}/libstdc++.so.*
114 ${TARGET_PREFIX}strip ${D}${TGT_LIBDIR}/libg2c.so.*
115 ${TARGET_PREFIX}strip ${D}${base_libdir}/libgcc_s.so.*