wok-next annotate gcc/receipt @ rev 20948
Provide the technique to build Python packages for both Python2 and Python3
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Fri Aug 31 17:13:06 2018 +0300 (2018-08-31) |
parents | 90a5eb560fd6 |
children | d5aab818505e |
rev | line source |
---|---|
al@19743 | 1 # SliTaz package receipt v2. |
pankso@9 | 2 |
al@20436 | 3 # Note, currently first pass is broken. Sorry. |
pankso@9 | 4 PACKAGE="gcc" |
al@20436 | 5 VERSION="7.3.0" |
pankso@204 | 6 CATEGORY="development" |
al@19743 | 7 SHORT_DESC="The GNU Compiler Collection" |
pankso@9 | 8 MAINTAINER="pankso@slitaz.org" |
pascal@15000 | 9 LICENSE="GPL2" |
al@19561 | 10 WEB_SITE="http://gcc.gnu.org/" |
al@20436 | 11 LFS="http://www.linuxfromscratch.org/lfs/view/stable/chapter06/gcc.html" |
al@19743 | 12 |
al@20436 | 13 TARBALL="$PACKAGE-$VERSION.tar.xz" |
al@20436 | 14 WGET_URL="http://ftp.gnu.org/gnu/gcc/gcc-$VERSION/$TARBALL" |
pankso@9 | 15 |
al@19570 | 16 BUILD_DEPENDS="mpc-library-dev mpfr-dev gmp-dev elfutils-dev zlib-dev" |
al@20176 | 17 SPLIT="gcc-lib-base gcc-lib-math libgfortran gfortran libgomp libobjc \ |
al@20176 | 18 libatomic gcc" |
pankso@9704 | 19 |
al@20436 | 20 if [ "$2" == "--first-pass" -o "$3" == "--first-pass" ]; then |
al@20436 | 21 STAGE='first' |
al@20436 | 22 SPLIT='' |
al@20436 | 23 fi |
al@20436 | 24 |
al@20176 | 25 compile_rules() { |
al@20176 | 26 # Handle cross compilation (native i486/ARM gcc) |
al@20176 | 27 case "$ARCH" in |
al@20176 | 28 i?86) |
al@20176 | 29 ARCH_ARGS="--with-tune=$ARCH" |
al@20176 | 30 pkgversion="SliTaz" |
al@20436 | 31 languages="c,c++,objc,fortran" |
al@20436 | 32 sed -i 's/^T_CFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in |
al@20436 | 33 ;; |
al@20436 | 34 x86_64) |
al@20436 | 35 ARCH_ARGS="" |
al@20436 | 36 pkgversion="SliTaz64" |
al@20436 | 37 languages="c,c++,objc,fortran" |
al@20436 | 38 sed -i.orig '/m64=/ s|lib64|lib|' gcc/config/i386/t-linux64 |
al@20436 | 39 ;; |
al@20176 | 40 arm*) |
al@20436 | 41 ARCH_ARGS="" |
al@20176 | 42 pkgversion="SliTaz ARM" |
al@20436 | 43 languages="c,c++" |
al@20436 | 44 ;; |
al@20176 | 45 esac |
gokhlayeh@8181 | 46 |
pankso@3185 | 47 # Use libiberty.a from binutils. |
pankso@12267 | 48 sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in || return 1 |
pankso@12541 | 49 |
al@20436 | 50 case "$STAGE" in |
al@20436 | 51 first) |
al@20436 | 52 echo "cook: configure GCC for: toolchain first pass" |
pankso@12541 | 53 |
al@20436 | 54 mkdir build |
al@20436 | 55 cd build |
al@20436 | 56 ../configure \ |
al@20436 | 57 --with-newlib \ |
al@20436 | 58 --without-headers \ |
pankso@10012 | 59 --disable-nls \ |
al@20436 | 60 --disable-shared \ |
al@20436 | 61 --disable-multilib \ |
al@20436 | 62 --disable-decimal-float \ |
al@20436 | 63 --disable-threads \ |
al@20436 | 64 --disable-libatomic \ |
al@20436 | 65 --disable-libgomp \ |
al@20436 | 66 --disable-libmpx \ |
al@20436 | 67 --disable-libquadmath \ |
al@20436 | 68 --disable-libssp \ |
al@20436 | 69 --disable-libvtv \ |
al@20436 | 70 --disable-libstdcxx \ |
pankso@10030 | 71 --enable-languages=c,c++ \ |
al@20436 | 72 $CONFIGURE_ARGS |
al@19743 | 73 ;; |
pankso@9704 | 74 *) |
pankso@9704 | 75 echo "cook: configure GCC for: final/full build" |
al@20436 | 76 |
al@20436 | 77 mkdir build |
al@20436 | 78 cd build |
al@20436 | 79 SED=sed \ |
al@20436 | 80 ../configure \ |
al@20436 | 81 --enable-languages=$languages \ |
al@20436 | 82 --disable-multilib \ |
al@20436 | 83 --disable-bootstrap \ |
pankso@10012 | 84 --with-system-zlib \ |
pankso@16319 | 85 --with-pkgversion="$pkgversion" \ |
al@20436 | 86 $CONFIGURE_ARGS $ARCH_ARGS |
al@19743 | 87 ;; |
al@19743 | 88 esac && |
al@20436 | 89 make && make install || return 1 |
al@20436 | 90 |
al@20445 | 91 mkdir -p $install/lib |
al@20436 | 92 ln -sv ../usr/bin/cpp $install/lib |
al@20445 | 93 |
al@20436 | 94 ln -sv gcc $install/usr/bin/cc |
al@20445 | 95 |
al@20436 | 96 install -v -dm755 $install/usr/lib/bfd-plugins |
al@20436 | 97 ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/$VERSION/liblto_plugin.so \ |
al@20436 | 98 $install/usr/lib/bfd-plugins/ |
al@20436 | 99 |
al@19743 | 100 |
al@19743 | 101 # ARM packages use another libs... |
al@19743 | 102 case "$ARCH" in |
al@19743 | 103 arm) |
al@19743 | 104 libdir="$CROSS_TREE/tools/arm-slitaz-linux-gnueabi/lib" |
al@19743 | 105 cp -af $libdir/libgcc_s.so* $install/usr/lib # for gcc-lib-base |
al@19743 | 106 cp -af $libdir/libstdc++.so* $install/usr/lib |
al@19743 | 107 cp -af $libdir/libquadmath.so* $install/usr/lib # for gcc-lib-math |
al@19743 | 108 ;; |
pankso@9704 | 109 esac |
al@19835 | 110 |
al@20436 | 111 |
al@20436 | 112 # Place the debugging symbols for selected libraries in separate files. |
al@20436 | 113 # This debugging information is needed if running regression tests that use valgrind or gdb. |
al@20436 | 114 # http://www.linuxfromscratch.org/lfs/view/stable/chapter06/strippingagain.html |
al@20436 | 115 |
al@20436 | 116 [ "$STAGE" == 'first' ] || |
al@20436 | 117 for i in libquadmath.so.0.0.0 libstdc++.so.6.0.24 libmpx.so.2.0.1 \ |
al@20436 | 118 libmpxwrappers.so.2.0.1 libitm.so.1.0.0 libcilkrts.so.5.0.0 \ |
al@20436 | 119 libatomic.so.1.2.0; do |
al@20436 | 120 cd $install/usr/lib/ |
al@20436 | 121 objcopy --only-keep-debug $i $i.dbg |
al@20436 | 122 strip --strip-unneeded $i |
al@20436 | 123 objcopy --add-gnu-debuglink=$i.dbg $i |
al@20436 | 124 done |
pankso@9 | 125 } |
pankso@9 | 126 |
al@20176 | 127 genpkg_rules() { |
al@20436 | 128 case $STAGE in |
al@20436 | 129 first) |
al@20436 | 130 # single package 'gcc' on the first stage |
al@20436 | 131 copy @std @dev |
al@20436 | 132 DEPENDS="glibc-base gmp mpc-library mpfr zlib binutils elfutils" |
al@20436 | 133 CAT="development|first pass" |
al@20436 | 134 TAGS="LFS compiler C" |
al@20436 | 135 return 0 |
al@20436 | 136 ;; |
al@20436 | 137 esac |
al@20436 | 138 |
al@19743 | 139 case $PACKAGE in |
al@19743 | 140 gcc-lib-base) |
al@19743 | 141 copy libgcc_s.so* libstdc++.so* |
al@20436 | 142 rm $fs/usr/lib*/*.py |
al@20176 | 143 CAT="libs|base libraries" |
al@19835 | 144 DEPENDS="glibc-base" |
al@19743 | 145 ;; |
al@19743 | 146 gcc-lib-math) |
al@19743 | 147 copy libquadmath.so* |
al@20176 | 148 CAT="libs|math libraries" |
al@19835 | 149 DEPENDS="glibc-base" |
al@19743 | 150 ;; |
al@19743 | 151 libgfortran) |
al@19743 | 152 copy libgfortran.so* |
al@19743 | 153 CAT="libdevel|fortran runtime" |
al@19835 | 154 DEPENDS="gcc-lib-base gcc-lib-math glibc-base" |
al@19835 | 155 ;; |
al@19835 | 156 gfortran) |
al@20176 | 157 copy *gfortran libgfortran.* f951 finclude/ @rm |
al@19835 | 158 CAT="development|fortran extension" |
al@19835 | 159 TAGS="compiler fortran" |
al@19835 | 160 DEPENDS="libgfortran gcc glibc-base gmp mpc-library mpfr zlib" |
al@19743 | 161 ;; |
al@19743 | 162 libgomp) |
al@19743 | 163 copy libgomp.so* |
al@20176 | 164 CAT="libs|API specification for parallel programming" |
al@19835 | 165 DEPENDS="glibc-base" |
al@19743 | 166 ;; |
al@19743 | 167 libobjc) |
al@19743 | 168 copy libobjc.so* |
al@19765 | 169 CAT="libdevel|API for gcc object" |
al@19835 | 170 DEPENDS="gcc-lib-base glibc-base" |
al@19835 | 171 ;; |
al@20176 | 172 libatomic) |
al@20176 | 173 copy libatomic.so* |
al@20176 | 174 CAT="libs|libatomic" |
al@20176 | 175 DEPENDS=" " |
al@20176 | 176 ;; |
al@19835 | 177 gcc) |
al@20436 | 178 copy @std @dev @rm |
al@20176 | 179 DEPENDS="gcc-lib-base libgomp libobjc libatomic \ |
al@19835 | 180 glibc-base gmp mpc-library mpfr zlib binutils elfutils" |
al@19835 | 181 SUGGESTED="python" |
al@20436 | 182 TAGS="LFS compiler C" |
al@19743 | 183 ;; |
al@19743 | 184 esac |
pankso@9 | 185 } |