gcc: Remove hard links also on other archs than arm
[termux-packages] / packages / gcc / build.sh
1 TERMUX_PKG_HOMEPAGE=http://gcc.gnu.org/
2 TERMUX_PKG_DESCRIPTION="GNU C compiler"
3 TERMUX_PKG_DEPENDS="binutils, libgmp, libmpfr, libmpc, ndk-sysroot"
4 TERMUX_PKG_VERSION=4.9.3
5 TERMUX_PKG_SRCURL=ftp://ftp.fu-berlin.de/unix/languages/gcc/releases/gcc-${TERMUX_PKG_VERSION}/gcc-${TERMUX_PKG_VERSION}.tar.bz2
6 TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--enable-languages=c,c++ --with-system-zlib --disable-multilib --disable-lto"
7 TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --with-gmp=$TERMUX_PREFIX --with-mpfr=$TERMUX_PREFIX --with-mpc=$TERMUX_PREFIX"
8 # To build gcc as a PIE binary:
9 TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --with-stage1-ldflags=\"-specs=$TERMUX_SCRIPTDIR/termux.spec\""
10 if [ "$TERMUX_ARCH" = "arm" ]; then
11 TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --with-arch=armv7-a --with-fpu=neon --with-float=hard"
12 elif [ "$TERMUX_ARCH" = "i686" ]; then
13 # -mstackrealign -msse3 -m32
14 TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --with-arch=i686 --with-tune=atom --with-fpmath=sse"
15 fi
16 TERMUX_PKG_KEEP_STATIC_LIBRARIES="true"
17 TERMUX_PKG_RM_AFTER_INSTALL="bin/gcc-ar bin/gcc-ranlib bin/c++ bin/gcc-nm bin/*-linux-* lib/gcc/*-linux-*/${TERMUX_PKG_VERSION}/plugin lib/gcc/*-linux-*/${TERMUX_PKG_VERSION}/include-fixed lib/gcc/*-linux-*/$TERMUX_PKG_VERSION/install-tools libexec/gcc/*-linux-*/${TERMUX_PKG_VERSION}/plugin libexec/gcc/*-linux-*/${TERMUX_PKG_VERSION}/install-tools share/man/man7"
18
19 export AR_FOR_TARGET="$AR"
20 export AS_FOR_TARGET="$AS"
21 export CC_FOR_TARGET="$CC"
22 export CFLAGS_FOR_TARGET="$CFLAGS"
23 export CPP_FOR_TARGET="$CPP"
24 export CPPFLAGS_FOR_TARGET="$CPPFLAGS"
25 export CXXFLAGS_FOR_TARGET="$CXXFLAGS"
26 export CXX_FOR_TARGET="$CXX"
27 export LDFLAGS_FOR_TARGET="$LDFLAGS"
28 export LD_FOR_TARGET="$LD"
29 export PKG_CONFIG_FOR_TARGET="$PKG_CONFIG"
30 export RANLIB_FOR_TARGET="$RANLIB"
31
32 unset AR
33 unset AS
34 unset CC
35 unset CFLAGS
36 unset CPP
37 unset CPPFLAGS
38 unset CXXFLAGS
39 unset CXX
40 unset LDFLAGS
41 unset LD
42 unset PKG_CONFIG
43 unset RANLIB
44
45 termux_step_make () {
46 make -j $TERMUX_MAKE_PROCESSES all-gcc
47 make -j $TERMUX_MAKE_PROCESSES all-target-libgcc
48 }
49
50 termux_step_make_install () {
51 make install-gcc
52 make install-target-libgcc
53 }
54
55 termux_step_post_make_install () {
56 if [ $TERMUX_ARCH = "arm" ]; then
57 # Note that moving to $TERMUX_PREFIX/lib/gcc/arm-linux-androideabi/${TERMUX_PKG_VERSION}/
58 # allows compilation but fails to link at runtime
59 mv $TERMUX_PREFIX/lib/armv7-a/hard/libgcc_s* $TERMUX_PREFIX/lib/
60 fi
61
62 # Android 5.0 only supports PIE binaries, so build that by default with a specs file:
63 cp $TERMUX_SCRIPTDIR/termux.spec $TERMUX_PREFIX/lib/gcc/$TERMUX_HOST_PLATFORM/$TERMUX_PKG_VERSION/specs
64 }