wok annotate cross-arm-gcc/receipt @ rev 12710

cross-arm-gcc: improve receipt, use --libexecdir= and --disable-threads
author Christophe Lincoln <pankso@slitaz.org>
date Fri May 04 15:59:16 2012 +0200 (2012-05-04)
parents 6fef0ccec331
children a99a7e9a93a6
rev   line source
pankso@12701 1 # SliTaz package receipt.
pankso@12701 2
pankso@12701 3 PACKAGE="cross-arm-gcc"
pankso@12701 4 VERSION="4.6.3"
pankso@12701 5 CATEGORY="system-tools"
pankso@12701 6 SHORT_DESC="Cross compiler for targeting ARM platform."
pankso@12701 7 MAINTAINER="pankso@slitaz.org"
pankso@12701 8 SOURCE="gcc"
pankso@12701 9 WEB_SITE="http://gcc.gnu.org/"
pankso@12701 10 TARBALL="$SOURCE-$VERSION.tar.bz2"
pankso@12701 11 WGET_URL="$GNU_MIRROR/gcc/gcc-$VERSION/$TARBALL"
pankso@12701 12
pankso@12710 13 DEPENDS="mpc-library elfutils linux-arm-api-headers cross-arm-binutils"
pankso@12701 14 BUILD_DEPENDS="linux-arm-api-headers cross-arm-binutils gmp gmp-dev \
pankso@12701 15 mpfr mpfr-dev mpc-library elfutils-dev"
pankso@12701 16
pankso@12701 17 # Cross toolchain variables.
pankso@12701 18 CROSS_TARGET="arm-slitaz-linux-gnueabi"
pankso@12701 19 CROSS_PREFIX="/usr/cross/arm"
pankso@12701 20 CROSS_TRIPLET="--build=$HOST_SYSTEM --host=$HOST_SYSTEM --target=$CROSS_TARGET"
pankso@12701 21
pankso@12701 22 # CFLAGS and CXXFLAGS must not be set during the building of cross-tools.
pankso@12701 23 unset CFLAGS CXXFLAGS CONFIG_SITE
pankso@12701 24
pankso@12701 25 # Path to cross tools
pankso@12701 26 export PATH=$PATH:$CROSS_PREFIX/bin
pankso@12701 27
pankso@12701 28 # Rules to configure and make the package.
pankso@12701 29 compile_rules()
pankso@12701 30 {
pankso@12701 31 cd $src
pankso@12701 32
pankso@12701 33 # Package cross-arm-toolchain use 'cook --options' when rebuilding
pankso@12701 34 # the full SliTaz ARM cross toolchain.
pankso@12701 35 [ "$2" == "--first-pass" ] && opt=$2
pankso@12701 36 [ "$3" == "--first-pass" ] && opt=$3
pankso@12701 37
pankso@12701 38 mkdir -p ../build && cd ../build
pankso@12701 39
pankso@12701 40 case $opt in
pankso@12701 41 --first-pass)
pankso@12701 42 # Used by cross-arm-toolchain when rebuilding the full toolchain.
pankso@12701 43 echo "cook: configure GCC for: cross toolchain first pass"
pankso@12701 44 $src/configure \
pankso@12701 45 --prefix=$CROSS_PREFIX \
pankso@12710 46 --libexec=$CROSS_PREFIX/lib \
pankso@12701 47 --disable-shared \
pankso@12701 48 --disable-threads \
pankso@12701 49 --without-headers \
pankso@12701 50 --with-newlib \
pankso@12701 51 --enable-languages=c \
pankso@12701 52 $CROSS_TRIPLET &&
pankso@12701 53 make all-gcc all-target-libgcc &&
pankso@12701 54 make install-gcc install-target-libgcc &&
pankso@12701 55 cd ${install}${CROSS_PREFIX}/lib/gcc/$CROSS_TARGET/$VERSION &&
pankso@12701 56 #ln -s libgcc.a libgcc_sh.a
pankso@12701 57 ln -s libgcc.a libgcc_eh.a ;;
pankso@12701 58 *)
pankso@12701 59 # Used to produce a full featured ARM GCC cross compiler.
pankso@12701 60 echo "cook: configure GCC for: final/full cross compiler"
pankso@12710 61
pankso@12710 62 # The cross-arm-toolchain package will install glibc. We can't
pankso@12710 63 # have it in DEPENDS since glibc is not build when we compile
pankso@12710 64 # GCC --first-pass
pankso@12710 65 if [ ! "/var/lib/tazpkg/installed/cross-arm-glibc" ]; then
pankso@12710 66 tazpkg -i /home/slitaz/packages/cross-arm-glibc-2.14.1.tazpkg
pankso@12710 67 fi
pankso@12710 68
pankso@12710 69 # This will fix GCC final build since we dont use --with-sysroot=.
pankso@12710 70 # Without that we go errors such as: cannot find crtn.o
pankso@12710 71 echo "cook: moving ldscripts to: ${CROSS_PREFIX}/lib"
pankso@12710 72 cd ${CROSS_PREFIX}/$CROSS_TARGET
pankso@12710 73 mv lib/ldscripts ../lib
pankso@12710 74 rm -rf lib
pankso@12710 75 echo "cook: creating symlinks in: ${CROSS_PREFIX}/$CROSS_TARGET"
pankso@12710 76 ln -s ../lib lib
pankso@12710 77 ln -s ../include include
pankso@12710 78
pankso@12710 79 cd $WOK/$PACKAGE/source/build
pankso@12701 80 $src/configure \
pankso@12701 81 --prefix=$CROSS_PREFIX \
pankso@12710 82 --libexec=$CROSS_PREFIX/lib \
pankso@12701 83 --enable-shared \
pankso@12701 84 --enable-languages=c,c++ \
pankso@12701 85 --enable-c99 \
pankso@12701 86 --enable-long-long \
pankso@12701 87 --enable-__cxa_atexit \
pankso@12710 88 --disable-threads \
pankso@12701 89 $CROSS_TRIPLET &&
pankso@12701 90 make && make install ;;
pankso@12701 91 esac
pankso@12701 92
pankso@12701 93 # Some configure options I have tested (pankso)
pankso@12710 94 #--libexec=$CROSS_PREFIX/lib
pankso@12701 95 #--disable-threads
pankso@12701 96 #--disable-checking
pankso@12701 97 #--disable-shared
pankso@12701 98 #--disable-nls
pankso@12701 99 #--enable-multilib
pankso@12701 100 #--enable-addons
pankso@12701 101 #--enable-softfloat
pankso@12701 102 #--with-float=soft
pankso@12701 103 #--disable-decimal-float
pankso@12701 104 #--enable-interwork
pankso@12701 105 #--disable-libgomp
pankso@12701 106 #--disable-libmudflap
pankso@12701 107 #--disable-libssp
pankso@12701 108 }
pankso@12701 109
pankso@12701 110 # Rules to gen a SliTaz package suitable for Tazpkg.
pankso@12701 111 genpkg_rules()
pankso@12701 112 {
pankso@12701 113 mkdir -p $fs/usr
pankso@12701 114 cp -a $install/usr/cross $fs/usr
pankso@12701 115 rm -rf ${fs}${CROSS_PREFIX}/share
pankso@12701 116 }