Merge oe-devel@oe-devel.bkbits.net:packages
[openembedded.git] / gcc / gcc-cross-sdk_3.4.2.oe
1 SECTION = "devel"
2 DESCRIPTION = "The GNU cc and gcc C compilers."
3 HOMEPAGE = "http://www.gnu.org/software/gcc/"
4 LICENSE = "GPL"
5 MAINTAINER = "Phil Blundell <pb@handhelds.org>"
6
7 inherit autotools sdk
8
9 SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
10            file://gcc34-reverse-compare.patch;patch=1 \
11            file://gcc34-arm-ldm.patch;patch=1 \
12            file://gcc34-arm-ldm-peephole.patch;patch=1 \
13            file://gcc34-arm-tune.patch;patch=1 \
14            file://gcc-3.4.1-uclibc-100-conf.patch;patch=1 \
15            file://gcc-3.4.1-uclibc-200-locale.patch;patch=1 \
16            file://gcc-3.4.0-arm-lib1asm.patch;patch=1 \
17            file://gcc-3.4.0-arm-nolibfloat.patch;patch=1"
18
19 SRC_URI += 'file://sdk-libstdc++-includes.patch;patch=1'
20
21 MIRRORS_prepend () {
22 ${GNU_MIRROR}/gcc/      http://gcc.get-software.com/releases/
23 ${GNU_MIRROR}/gcc/      http://mirrors.rcn.net/pub/sourceware/gcc/releases/
24 }
25
26 S = "${WORKDIR}/gcc-${PV}"
27 B = "${S}/build.${HOST_SYS}.${TARGET_SYS}"
28
29 FILESDIR = "${@os.path.dirname(oe.data.getVar('FILE',d,1))}/gcc-${PV}"
30
31 DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc"
32
33 export CPPFLAGS = ""
34 export CXXFLAGS = ""
35 export CFLAGS = ""
36 export LDFLAGS = ""
37
38 STAGING_TARGET_INCDIR = "${STAGING_DIR}/${TARGET_SYS}/include"
39 STAGING_TARGET_LIBDIR = "${STAGING_DIR}/${TARGET_SYS}/lib"
40
41 EXTRA_OECONF = "--with-gnu-ld \
42                 --enable-shared \
43                 --enable-languages=c,c++,f77 \
44                 --enable-threads=posix \
45                 --enable-multilib \
46                 --enable-c99 \
47                 --enable-long-long \
48                 --enable-symvers=gnu \
49                 --program-prefix=${TARGET_PREFIX} \
50                 ${EXTRA_OECONF_PATHS} \
51                 ${EXTRA_OECONF_DEP}"
52
53 EXTRA_OECONF += "${@get_gcc_fpu_setting(oe, d)}"
54
55 def get_gcc_fpu_setting(oe, d):
56         if oe.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]:
57                 return "--with-float=soft"
58         return ""
59
60 do_configure () {
61         (cd ${S} && gnu-configize) || die "failure running gnu-configize"
62         (cd ${S}/libstdc++-v3 && autoreconf)
63         oe_runconf
64         mkdir -p gcc
65         ln -sf ${CROSS_DIR}/bin/${TARGET_PREFIX}as gcc/as
66         ln -sf ${CROSS_DIR}/bin/${TARGET_PREFIX}ld gcc/ld
67         ln -sf ${STAGING_TARGET_INCDIR}/* ${S}/include
68         ln -sf ${STAGING_TARGET_LIBDIR}/crt*.o gcc/
69 }
70
71 do_compile () {
72         export CC="${BUILD_CC}"
73         export AR_FOR_TARGET="${TARGET_SYS}-ar"
74         export RANLIB_FOR_TARGET="${TARGET_SYS}-ranlib"
75         export LD_FOR_TARGET="${TARGET_SYS}-ld"
76         export NM_FOR_TARGET="${TARGET_SYS}-nm"
77         export CC_FOR_TARGET="${CCACHE} ${TARGET_SYS}-gcc"
78         oe_runmake CFLAGS_FOR_TARGET="-I${STAGING_TARGET_INCDIR}" 
79 }
80
81 do_install () {
82         autotools_do_install
83 }