]> pilppa.org Git - familiar-h63xx-build.git/blob - org.handhelds.familiar/packages/gcc/gcc-cross-sdk_3.3.4.bb
OE tree imported from monotone branch org.openembedded.oz354fam083 at revision 8b12e3...
[familiar-h63xx-build.git] / org.handhelds.familiar / packages / gcc / gcc-cross-sdk_3.3.4.bb
1 DESCRIPTION = "The GNU cc and gcc C compilers."
2 HOMEPAGE = "http://www.gnu.org/software/gcc/"
3 SECTION = "devel"
4 LICENSE = "GPL"
5 MAINTAINER = "Phil Blundell <pb@handhelds.org>"
6 PR = "r2"
7 include gcc_${PV}.bb
8
9 # Files for these are defined in the main gcc.oe
10 #PACKAGES = "libgcc libstdc++ libg2c"
11
12 inherit autotools sdk
13
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"
27
28 SRC_URI += 'file://sdk-libstdc++-includes.patch;patch=1'
29
30 MIRRORS_prepend () {
31 ${GNU_MIRROR}/gcc/      http://mirrors.rcn.net/pub/sourceware/gcc/releases/
32 }
33
34 S = "${WORKDIR}/gcc-${PV}"
35 B = "${S}/build.${HOST_SYS}.${TARGET_SYS}"
36
37 FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}"
38
39 DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc"
40
41 export CPPFLAGS = ""
42 export CXXFLAGS = ""
43 export CFLAGS = ""
44 export LDFLAGS = ""
45
46 STAGING_TARGET_INCDIR = "${STAGING_DIR}/${TARGET_SYS}/include"
47 STAGING_TARGET_LIBDIR = "${STAGING_DIR}/${TARGET_SYS}/lib"
48
49 EXTRA_OECONF = "--with-gnu-ld \
50                 --enable-shared \
51                 --enable-languages=c,c++,f77 \
52                 --enable-threads=posix \
53                 --enable-multilib \
54                 --enable-c99 \
55                 --enable-long-long \
56                 --enable-symvers=gnu \
57                 --program-prefix=${TARGET_PREFIX} \
58                 ${EXTRA_OECONF_PATHS} \
59                 ${EXTRA_OECONF_DEP}"
60
61 do_configure () {
62         (cd ${S} && gnu-configize) || die "failure running gnu-configize"
63         (cd ${S}/libstdc++-v3 && autoreconf)
64         oe_runconf
65         mkdir -p gcc
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/
70 }
71
72 do_compile () {
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}" 
80 }
81
82 #do_install () {
83 #       autotools_do_install
84 #}
85
86 python do_package() {
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)
90 }
91
92 do_install () {
93         oe_runmake 'DESTDIR=${D}' install
94
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}
100         else
101                 mv -f ${D}${prefix}/*/lib/libgcc_s.so.* ${D}${base_libdir}
102         fi
103
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}
109
110         # Manually run the target stripper since we won't get it run by
111         # the packaging.
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.*
116         fi
117 }