wok-undigest annotate gcc/receipt @ rev 1099
libmate, libmatecomponent, libmatecomponentui, mate-vfs: update bdeps
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Wed Jan 08 17:36:39 2014 +0000 (2014-01-08) |
parents | 01af0e72b841 |
children | 09e25c9d5b44 |
rev | line source |
---|---|
admin@1024 | 1 # SliTaz package receipt. |
admin@1024 | 2 |
admin@1024 | 3 PACKAGE="gcc" |
admin@1024 | 4 VERSION="4.8.1" |
admin@1024 | 5 CATEGORY="development" |
admin@1024 | 6 SHORT_DESC="The the GNU Compiler Collection." |
admin@1024 | 7 MAINTAINER="pankso@slitaz.org" |
pascal@1037 | 8 LICENSE="GPL2" |
admin@1024 | 9 TARBALL="$PACKAGE-$VERSION.tar.bz2" |
admin@1024 | 10 WEB_SITE="http://gcc.gnu.org/" |
admin@1024 | 11 WGET_URL="ftp://gcc.gnu.org/pub/gcc/releases/gcc-$VERSION/$TARBALL" |
admin@1024 | 12 TAGS="compiler C" |
admin@1024 | 13 |
admin@1024 | 14 # We need gawk since busybox awk is not sufficient. We have BUILD_DEPENDS |
admin@1024 | 15 # for cookutils that are not used by tazwok/cook-toolchain since it install |
admin@1024 | 16 # and use it's own copy. |
admin@1024 | 17 DEPENDS="binutils libgomp libobjc gcc-lib-base mpc-library elfutils" |
admin@1024 | 18 BUILD_DEPENDS="elfutils mpc-library mpfr mpfr-dev gmp gmp-dev \ |
admin@1024 | 19 elfutils-dev" |
admin@1024 | 20 |
admin@1024 | 21 # Rules to compile & install the temporary toolchain. |
admin@1024 | 22 precook_tmp_toolchain() |
admin@1024 | 23 { |
admin@1024 | 24 report open-bloc |
admin@1024 | 25 cd $src |
admin@1024 | 26 |
admin@1024 | 27 # GCC requires the GMP, MPFR and MPC packages. |
admin@1024 | 28 tazwok get-src mpfr --target=$PWD/mpfr || { report close-bloc; return 1; } |
admin@1024 | 29 tazwok get-src gmp --target=$PWD/gmp || { report close-bloc; return 1; } |
admin@1024 | 30 tazwok get-src mpc-library --target=$PWD/mpc || { report close-bloc; return 1; } |
admin@1024 | 31 |
admin@1024 | 32 report step "Running compilation" |
admin@1024 | 33 |
admin@1024 | 34 # Use libiberty.a from binutils. |
admin@1024 | 35 sed -i 's/install_to_$(INSTALL_DEST) //' \ |
admin@1024 | 36 libiberty/Makefile.in || return 1 |
admin@1024 | 37 |
admin@1024 | 38 # Build it in a separate directory. |
admin@1024 | 39 mkdir ../gcc-build |
admin@1024 | 40 cd ../gcc-build |
admin@1024 | 41 |
admin@1024 | 42 { $src/configure \ |
admin@1024 | 43 --target=$HOST_SYSTEM \ |
admin@1024 | 44 --disable-nls --disable-shared --disable-multilib \ |
admin@1024 | 45 --disable-decimal-float --disable-threads \ |
admin@1024 | 46 --disable-libmudflap --disable-libssp \ |
admin@1024 | 47 --disable-libgomp --enable-languages=c \ |
admin@1024 | 48 --with-gmp-include=$(pwd)/gmp --with-gmp-lib=$(pwd)/gmp/.libs \ |
admin@1024 | 49 --without-ppl --without-cloog && |
admin@1024 | 50 make && |
admin@1024 | 51 make install |
pascal@1038 | 52 } 2>&1 | sed 's/: execvp: No such file/: execvp: no such file/' || |
pascal@1037 | 53 { report close-bloc; return 1; } |
admin@1024 | 54 |
admin@1024 | 55 # See LFS for more detais about this. |
admin@1024 | 56 ln -s libgcc.a `$HOST_SYSTEM-gcc -print-libgcc-file-name | \ |
admin@1024 | 57 sed 's/libgcc/&_eh/'` |
admin@1024 | 58 report close-bloc |
admin@1024 | 59 } |
admin@1024 | 60 |
admin@1024 | 61 cook_tmp_toolchain() |
admin@1024 | 62 { |
admin@1024 | 63 report open-bloc |
admin@1024 | 64 cd $src |
admin@1024 | 65 patch -Np1 -i $stuff/gcc-$VERSION-startfiles_fix-1.patch || { report close-bloc; return 1; } |
admin@1024 | 66 |
admin@1024 | 67 # Details about theses lines are in LFS book. |
admin@1024 | 68 sed 's@\./fixinc\.sh@-c true@' -i gcc/Makefile.in |
admin@1024 | 69 sed 's/^T_CFLAGS =$/& -fomit-frame-pointer/' -i gcc/Makefile.in |
admin@1024 | 70 for file in \ |
admin@1024 | 71 $(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h) |
admin@1024 | 72 do |
admin@1024 | 73 sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \ |
admin@1024 | 74 -e 's@/usr@/tools@g' -i $file |
admin@1024 | 75 echo ' |
admin@1024 | 76 #undef STANDARD_INCLUDE_DIR |
admin@1024 | 77 #define STANDARD_INCLUDE_DIR 0 |
admin@1024 | 78 #define STANDARD_STARTFILE_PREFIX_1 "" |
admin@1024 | 79 #define STANDARD_STARTFILE_PREFIX_2 ""' >> $file |
admin@1024 | 80 done |
admin@1024 | 81 |
admin@1024 | 82 if [ "$ARCH" = x86_64 ]; then |
admin@1024 | 83 for file in $(find gcc/config -name t-linux64) ; do |
admin@1024 | 84 sed '/MULTILIB_OSDIRNAMES/d' -i $file |
admin@1024 | 85 done |
admin@1024 | 86 fi |
admin@1024 | 87 |
admin@1024 | 88 # GCC requires the GMP, MPFR and MPC packages. |
admin@1024 | 89 tazwok get-src mpfr --target=$PWD/mpfr || { report close-bloc; return 1; } |
admin@1024 | 90 tazwok get-src gmp --target=$PWD/gmp || { report close-bloc; return 1; } |
admin@1024 | 91 tazwok get-src mpc-library --target=$PWD/mpc || { report close-bloc; return 1; } |
admin@1024 | 92 |
admin@1024 | 93 report step "Running compilation" |
admin@1024 | 94 |
admin@1024 | 95 # Use libiberty.a from binutils. |
admin@1024 | 96 sed -i 's/install_to_$(INSTALL_DEST) //' \ |
admin@1024 | 97 libiberty/Makefile.in || return 1 |
admin@1024 | 98 |
admin@1024 | 99 # Build it in a separate directory. |
admin@1024 | 100 mkdir ../gcc-build |
admin@1024 | 101 cd ../gcc-build |
admin@1024 | 102 |
admin@1024 | 103 { CC="$HOST_SYSTEM-gcc -B/tools/lib/" \ |
admin@1024 | 104 AR=$HOST_SYSTEM-ar RANLIB=$HOST_SYSTEM-ranlib \ |
admin@1024 | 105 $src/configure \ |
admin@1024 | 106 --with-local-prefix=/tools --enable-clocale=gnu \ |
admin@1024 | 107 --enable-shared --enable-threads=posix \ |
admin@1024 | 108 --enable-__cxa_atexit --enable-languages=c,c++ \ |
admin@1024 | 109 --disable-libstdcxx-pch --disable-multilib \ |
admin@1024 | 110 --disable-bootstrap --disable-libgomp \ |
admin@1024 | 111 --with-gmp-include=$(pwd)/gmp --with-gmp-lib=$(pwd)/gmp/.libs \ |
admin@1024 | 112 --without-ppl --without-cloog && |
admin@1024 | 113 make && |
admin@1024 | 114 make install |
pascal@1042 | 115 } 2>&1 | sed 's/: execvp: No such file/: execvp: no such file/' || |
pascal@1042 | 116 { report close-bloc; return 1; } |
admin@1024 | 117 ln -s gcc /tools/bin/cc |
admin@1024 | 118 report close-bloc |
admin@1024 | 119 } |
admin@1024 | 120 |
admin@1024 | 121 # Rules to configure and make the package. |
admin@1024 | 122 compile_rules() |
admin@1024 | 123 { |
admin@1024 | 124 cd $src |
admin@1024 | 125 |
admin@1024 | 126 # SliTaz is a Busybox based OS, why we so small and fast. Using gawk by |
admin@1024 | 127 # default to build package will not ensure package work with Busybox awk |
admin@1024 | 128 # and so should NOT be use to cook. |
admin@1024 | 129 if [ -x /usr/bin/cook ]; then |
admin@1024 | 130 [ -d "/var/lib/tazpkg/installed/gawk" ] || tazpkg get-install gawk |
admin@1024 | 131 fi |
admin@1024 | 132 |
admin@1024 | 133 # Package slitaz-toolchain use 'cook --options' when rebuilding |
admin@1024 | 134 # the full SliTaz toolchain. |
admin@1024 | 135 [ "$2" == "--first-pass" ] && opt=$2 |
admin@1024 | 136 [ "$3" == "--first-pass" ] && opt=$3 |
admin@1024 | 137 |
admin@1024 | 138 # Use libiberty.a from binutils. |
admin@1024 | 139 sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in || return 1 |
admin@1024 | 140 |
admin@1024 | 141 case $ARCH in |
admin@1024 | 142 i?86) sed -i 's/^T_CFLAGS =$/& -fomit-frame-pointer/' \ |
admin@1024 | 143 gcc/Makefile.in ;; |
admin@1024 | 144 esac |
admin@1024 | 145 |
admin@1024 | 146 #sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in |
admin@1024 | 147 |
admin@1024 | 148 mkdir -p ../gcc-build && cd ../gcc-build |
admin@1024 | 149 |
admin@1024 | 150 # This is the default GCC and we want a native build to cross compile after. |
admin@1024 | 151 # SliTaz target i486 host so we need a native i486 build for GCC. |
admin@1024 | 152 case "$opt" in |
admin@1024 | 153 --first-pass) |
admin@1024 | 154 # Used by slitaz-toolchain when rebuilding the full toolchain. |
admin@1024 | 155 echo "cook: configure GCC for: toolchain first pass" |
admin@1024 | 156 $src/configure \ |
admin@1024 | 157 --libexecdir=/usr/lib \ |
admin@1024 | 158 --disable-nls \ |
admin@1024 | 159 --enable-shared \ |
admin@1024 | 160 --enable-languages=c,c++ \ |
admin@1024 | 161 --disable-libstdcxx-pch \ |
admin@1024 | 162 --enable-__cxa_atexit \ |
admin@1024 | 163 --enable-clocale=gnu \ |
admin@1024 | 164 --enable-threads=posix \ |
admin@1024 | 165 --disable-bootstrap \ |
admin@1024 | 166 --build=$HOST_SYSTEM \ |
admin@1024 | 167 --host=$HOST_SYSTEM && |
admin@1024 | 168 make && make install ;; |
admin@1024 | 169 *) |
admin@1024 | 170 # Used by default to produce a full featured X86 GCC compiler. |
admin@1024 | 171 echo "cook: configure GCC for: final/full build" |
admin@1024 | 172 $src/configure \ |
admin@1024 | 173 --libexecdir=/usr/lib \ |
admin@1024 | 174 --enable-nls \ |
admin@1024 | 175 --enable-languages=c,c++,objc,fortran \ |
admin@1024 | 176 --enable-shared \ |
admin@1024 | 177 --with-system-zlib \ |
admin@1024 | 178 --enable-clocale=gnu \ |
admin@1024 | 179 --enable-objc-gc \ |
admin@1024 | 180 --enable-__cxa_atexit \ |
admin@1024 | 181 --enable-lto \ |
admin@1024 | 182 --enable-threads=posix \ |
admin@1024 | 183 --disable-bootstrap \ |
admin@1024 | 184 --with-pkgversion="SliTaz" \ |
admin@1024 | 185 --with-tune=$ARCH \ |
admin@1024 | 186 --build=$HOST_SYSTEM \ |
admin@1024 | 187 --host=$HOST_SYSTEM && |
admin@1024 | 188 make && make install ;; |
pascal@1042 | 189 esac 2>&1 | sed 's/: execvp: No such file/: execvp: no such file/' |
admin@1024 | 190 } |
admin@1024 | 191 |
admin@1024 | 192 # Rules to gen a SliTaz package suitable for Tazpkg. |
admin@1024 | 193 genpkg_rules() |
admin@1024 | 194 { |
admin@1024 | 195 mkdir -p $fs/usr/share |
admin@1024 | 196 cp -a $install/usr/bin $fs/usr |
admin@1024 | 197 |
admin@1024 | 198 # Copy all libs. Remove libgcc_s.so and libstdc++.so they goes in |
admin@1024 | 199 # the gcc-lib-base package. |
admin@1024 | 200 cp -a $install/usr/lib $fs/usr |
admin@1024 | 201 rm -f $fs/usr/lib/libgcc_s.so* |
admin@1024 | 202 rm -f $fs/usr/lib/libstdc++.so* |
admin@1024 | 203 rm -f $fs/usr/lib/libgomp.so* |
admin@1024 | 204 rm -f $fs/usr/lib/libobjc.so* |
admin@1024 | 205 |
admin@1024 | 206 # Include files. |
admin@1024 | 207 cp -a $install/usr/include $fs/usr |
admin@1024 | 208 |
admin@1024 | 209 # Gfortran goes in gfortran package. |
admin@1024 | 210 rm -f $fs/usr/bin/*gfortran |
admin@1024 | 211 rm -f $fs/usr/lib/libgfortran* |
admin@1024 | 212 rm -f $fs/usr/lib/gcc/*/$VERSION/libgfortran* |
admin@1024 | 213 rm -rf $fs/usr/lib/gcc/*/$VERSION/f* |
admin@1024 | 214 |
admin@1024 | 215 # Remove build directory. |
admin@1024 | 216 rm -rf $WOK/$PACKAGE/source/$PACKAGE-build |
admin@1024 | 217 rm -rf $WOK/$PACKAGE/$PACKAGE-build |
admin@1024 | 218 } |
admin@1024 | 219 |
admin@1024 | 220 # Post install commands for Tazpkg. |
admin@1024 | 221 post_install() |
admin@1024 | 222 { |
admin@1024 | 223 local root |
admin@1024 | 224 root=$1 |
admin@1024 | 225 echo "Processing post-install commands..." |
admin@1024 | 226 if [ ! -f "$root/lib/cpp" ]; then |
admin@1024 | 227 ln -s ../usr/bin/cpp $root/lib |
admin@1024 | 228 fi |
admin@1024 | 229 if [ ! -f "$root/usr/bin/cc" ]; then |
admin@1024 | 230 ln -s gcc $root/usr/bin/cc |
admin@1024 | 231 fi |
admin@1024 | 232 } |