diff options
Diffstat (limited to 'gcc/gcc-cross-sdk_3.4.2.oe')
-rw-r--r-- | gcc/gcc-cross-sdk_3.4.2.oe | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/gcc/gcc-cross-sdk_3.4.2.oe b/gcc/gcc-cross-sdk_3.4.2.oe index e69de29bb2..2516ecfaca 100644 --- a/gcc/gcc-cross-sdk_3.4.2.oe +++ b/gcc/gcc-cross-sdk_3.4.2.oe @@ -0,0 +1,82 @@ +SECTION = "devel" +DESCRIPTION = "The GNU cc and gcc C compilers." +LICENSE = "GPL" +MAINTAINER = "Phil Blundell <pb@handhelds.org>" + +inherit autotools sdk + +SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \ + file://gcc34-reverse-compare.patch;patch=1 \ + file://gcc34-arm-ldm.patch;patch=1 \ + file://gcc34-arm-ldm-peephole.patch;patch=1 \ + file://gcc34-arm-tune.patch;patch=1 \ + file://gcc-3.4.1-uclibc-100-conf.patch;patch=1 \ + file://gcc-3.4.1-uclibc-200-locale.patch;patch=1 \ + file://gcc-3.4.0-arm-lib1asm.patch;patch=1 \ + file://gcc-3.4.0-arm-nolibfloat.patch;patch=1" + +SRC_URI += 'file://sdk-libstdc++-includes.patch;patch=1' + +MIRRORS_prepend () { +${GNU_MIRROR}/gcc/ http://gcc.get-software.com/releases/ +${GNU_MIRROR}/gcc/ http://mirrors.rcn.net/pub/sourceware/gcc/releases/ +} + +S = "${WORKDIR}/gcc-${PV}" +B = "${S}/build.${HOST_SYS}.${TARGET_SYS}" + +FILESDIR = "${@os.path.dirname(oe.data.getVar('FILE',d,1))}/gcc-${PV}" + +DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc" + +export CPPFLAGS = "" +export CXXFLAGS = "" +export CFLAGS = "" +export LDFLAGS = "" + +STAGING_TARGET_INCDIR = "${STAGING_DIR}/${TARGET_SYS}/include" +STAGING_TARGET_LIBDIR = "${STAGING_DIR}/${TARGET_SYS}/lib" + +EXTRA_OECONF = "--with-gnu-ld \ + --enable-shared \ + --enable-languages=c,c++,f77 \ + --enable-threads=posix \ + --enable-multilib \ + --enable-c99 \ + --enable-long-long \ + --enable-symvers=gnu \ + --program-prefix=${TARGET_PREFIX} \ + ${EXTRA_OECONF_PATHS} \ + ${EXTRA_OECONF_DEP}" + +EXTRA_OECONF += "${@get_gcc_fpu_setting(oe, d)}" + +def get_gcc_fpu_setting(oe, d): + if oe.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]: + return "--with-float=soft" + return "" + +do_configure () { + (cd ${S} && gnu-configize) || die "failure running gnu-configize" + (cd ${S}/libstdc++-v3 && autoreconf) + oe_runconf + mkdir -p gcc + ln -sf ${CROSS_DIR}/bin/${TARGET_PREFIX}as gcc/as + ln -sf ${CROSS_DIR}/bin/${TARGET_PREFIX}ld gcc/ld + ln -sf ${STAGING_TARGET_INCDIR}/* ${S}/include + ln -sf ${STAGING_TARGET_LIBDIR}/crt*.o gcc/ +} + +do_compile () { + 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" + oe_runmake CFLAGS_FOR_TARGET="-I${STAGING_TARGET_INCDIR}" +} + +do_install () { + autotools_do_install +} |