Changes in npl/system/gcc/gcc.SlackBuild [c5c522c:1a19ecd]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
npl/system/gcc/gcc.SlackBuild
rc5c522c r1a19ecd 1 #!/bin/sh 1 #!/bin/bash 2 # 3 # Automaticly created by importpackage v1.0 4 # Imported from: http://mirrors.slackware.com/slackware/slackware-current/source/d/gcc/ 5 # Created at Tue Jan 31 00:22:45 CET 2017 6 7 #NEED:gawk 8 #NEED:binutils 9 10 #DEP:zlib 2 11 #DEP:gmp 12 #DEP:mpfr 3 13 #DEP:mpc 4 #DEP:mpfr 14 #DEP:gtk2 15 #DEP:glib2 16 #DEP:pango 17 #DEP:cairo 18 #DEP:pixman 19 #DEP:fontconfig 20 #DEP:freetype2 21 #DEP:expat 22 #DEP:libpng 23 #DEP:gdk_pixbuf 24 #DEP:xorg_lib 25 #DEP:pthread_stubs 26 #DEP:atk 27 #DEP:harfbuzz 28 #DEP:libart_lgpl 29 #DEP:libffi 5 30 6 # GCC package build script (written by volkerdi@slackware.com) 7 # 8 # Copyright 2003, 2004 Slackware Linux, Inc., Concord, California, USA 9 # Copyright 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Patrick J. Volkerding, Sebeka, MN, USA 10 # All rights reserved. 11 # 12 # Redistribution and use of this script, with or without modification, is 13 # permitted provided that the following conditions are met: 14 # 15 # 1. Redistributions of this script must retain the above copyright 16 # notice, this list of conditions and the following disclaimer. 17 # 18 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 19 # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 20 # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 21 # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 23 # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 24 # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 25 # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 26 # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 27 # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 # 31 #for testing 32 #NEED:tcl 29 33 30 # Modified 2011 by Eric Hameleers <alien at slackware.com> for OpenJDK. 34 ########### source original slackbuild (hopefully we dont need to modify it) 35 CWD=`pwd` 36 set -e 31 37 32 # Some notes, Fri May 16 12:31:32 PDT 2003: 33 # 34 # Why i486 and not i386? Because the shared C++ libraries in gcc-3.2.x will 35 # require 486 opcodes even when a 386 target is used (so we already weren't 36 # compatible with the i386 for Slackware 9.0, didn't notice, and nobody 37 # complained :-). gcc-3.3 fixes this issue and allows you to build a 386 38 # compiler, but the fix is done in a way that produces binaries that are not 39 # compatible with gcc-3.2.x compiled binaries. To retain compatibility with 40 # Slackware 9.0, we'll have to use i486 (or better) as the compiler target 41 # for gcc-3.3. 42 # 43 # It's time to say goodbye to i386 support in Slackware. I've surveyed 386 44 # usage online, and the most common thing I see people say when someone asks 45 # about running Linux on a 386 is to "run Slackware", but then they also 46 # usually go on to say "be sure to get an OLD version, like 4.0, before glibc, 47 # because it'll be more efficient." Now, if that's the general advice, then 48 # I see no reason to continue 386 support in the latest Slackware (and indeed 49 # it's no longer easily possible). 38 #export GCCCHECK=1 39 source ./gcc.SlackBuild.orig 50 40 51 PKGNAM=gcc52 VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}53 BUILD=${BUILD:-1}54 55 # How many jobs to run in parallel:56 NUMJOBS=" -j 7 "57 58 # Automatically determine the architecture we're building on:59 if [ -z "$ARCH" ]; then60 case "$(uname -m)" in61 i?86) ARCH=i486 ;;62 arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;;63 # Unless $ARCH is already set, use uname -m for all other archs:64 *) ARCH=$(uname -m) ;;65 esac66 export ARCH67 fi68 69 if [ "$ARCH" = "i386" ]; then70 SLKCFLAGS="-O2 -march=i386 -mcpu=i686"71 LIBDIRSUFFIX=""72 LIB_ARCH=i38673 elif [ "$ARCH" = "i486" ]; then74 SLKCFLAGS="-O2 -march=i486 -mtune=i686"75 LIBDIRSUFFIX=""76 LIB_ARCH=i38677 elif [ "$ARCH" = "i586" ]; then78 SLKCFLAGS="-O2 -march=i586 -mtune=i686"79 LIBDIRSUFFIX=""80 LIB_ARCH=i38681 elif [ "$ARCH" = "i686" ]; then82 SLKCFLAGS="-O2 -march=i686"83 LIBDIRSUFFIX=""84 LIB_ARCH=i38685 elif [ "$ARCH" = "s390" ]; then86 SLKCFLAGS="-O2"87 LIBDIRSUFFIX=""88 LIB_ARCH=s39089 elif [ "$ARCH" = "x86_64" ]; then90 SLKCFLAGS="-O2 -fPIC"91 LIBDIRSUFFIX="64"92 LIB_ARCH=amd6493 elif [ "$ARCH" = "armv7hl" ]; then94 SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"95 LIBDIRSUFFIX=""96 LIB_ARCH=armv7hl97 else98 SLKCFLAGS="-O2"99 LIBDIRSUFFIX=""100 LIB_ARCH=$ARCH101 fi102 103 case "$ARCH" in104 arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;105 *) TARGET=$ARCH-slackware-linux ;;106 esac107 108 CWD=$(pwd)109 # Temporary build location. This should *NOT* be a directory110 # path a non-root user could create later...111 TMP=${TMP:-"/gcc-$(mcookie)"}112 113 # This is the main DESTDIR target:114 PKG1=$TMP/package-gcc115 # These are the directories to build other packages in:116 PKG2=$TMP/package-gcc-g++117 PKG3=$TMP/package-gcc-gfortran118 PKG4=$TMP/package-gcc-gnat119 PKG5=$TMP/package-gcc-java120 PKG6=$TMP/package-gcc-objc121 PKG7=$TMP/package-gcc-g++-gch122 PKG8=$TMP/package-gcc-go123 124 # Clear the build locations:125 if [ -d $TMP ]; then126 rm -rf $TMP127 fi128 mkdir -p $PKG{1,2,3,4,5,6,7,8}/usr/doc/gcc-$VERSION129 130 # Insert package descriptions:131 mkdir -p $PKG{1,2,3,4,5,6,7,8}/install132 cat $CWD/slack-desc.gcc > $PKG1/install/slack-desc133 cat $CWD/slack-desc.gcc-g++ > $PKG2/install/slack-desc134 cat $CWD/slack-desc.gcc-gfortran > $PKG3/install/slack-desc135 cat $CWD/slack-desc.gcc-gnat > $PKG4/install/slack-desc136 cat $CWD/slack-desc.gcc-java > $PKG5/install/slack-desc137 cat $CWD/slack-desc.gcc-objc > $PKG6/install/slack-desc138 # cat $CWD/slack-desc.gcc-g++-gch > $PKG7/install/slack-desc139 cat $CWD/slack-desc.gcc-go > $PKG8/install/slack-desc140 141 cd $TMP142 tar xvf $CWD/gcc-$VERSION.tar.?z*143 144 #( cd gcc-$VERSION145 # If we had any patches, we would apply them here, but we're .diff free now.146 #) || exit 1147 148 # Copy ecj.jar into the TLD of the source. Needed for java compiler.149 # This can be retrieved from ftp://sourceware.org/pub/java150 cp $CWD/ecj-4.5.jar gcc-$VERSION/ecj.jar151 152 # Use an antlr runtime to compile javadoc.153 # The runtime can be obtained from:154 #https://oss.sonatype.org/content/repositories/releases/org/antlr/antlr-runtime/155 ANTLJAR=$(echo $CWD/antlr-*.jar | tail -1)156 157 # install docs158 ( cd gcc-$VERSION159 # Smite the fixincludes:160 zcat $CWD/gcc-no_fixincludes.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1161 # Fix perms/owners162 chown -R root:root .163 find . -perm 777 -exec chmod 755 {} \;164 find . -perm 775 -exec chmod 755 {} \;165 find . -perm 754 -exec chmod 755 {} \;166 find . -perm 664 -exec chmod 644 {} \;167 mkdir -p $PKG1/usr/doc/gcc-$VERSION168 cp -a \169 COPYING* ChangeLog* FAQ INSTALL \170 LAST_UPDATED MAINTAINERS NEWS \171 README* *.html \172 $PKG1/usr/doc/gcc-$VERSION173 174 # We will keep part of these, but they are really big...175 if [ -r ChangeLog ]; then176 DOCSDIR=$(echo $PKG1/usr/doc/gcc-$VERSION)177 cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog178 touch -r ChangeLog $DOCSDIR/ChangeLog179 fi180 if [ -r NEWS ]; then181 DOCSDIR=$(echo $PKG1/usr/doc/gcc-$VERSION)182 cat NEWS | head -n 1000 > $DOCSDIR/NEWS183 touch -r NEWS $DOCSDIR/NEWS184 fi185 186 mkdir -p $PKG1/usr/doc/gcc-${VERSION}/gcc187 ( cd gcc188 cp -a \189 ABOUT* COPYING* DATESTAMP DEV-PHASE LANG* ONEWS README* SERVICE \190 $PKG1/usr/doc/gcc-$VERSION/gcc191 192 mkdir -p $PKG3/usr/doc/gcc-${VERSION}/gcc/fortran193 ( cd fortran194 if [ -r ChangeLog ]; then195 cat ChangeLog | head -n 1000 > $PKG3/usr/doc/gcc-$VERSION/gcc/fortran/ChangeLog196 touch -r ChangeLog $PKG3/usr/doc/gcc-$VERSION/gcc/fortran/ChangeLog197 fi198 )199 200 mkdir -p $PKG4/usr/doc/gcc-${VERSION}/gcc/ada201 ( cd ada202 cp -a \203 ChangeLog.tree-ssa \204 $PKG4/usr/doc/gcc-$VERSION/gcc/ada205 if [ -r ChangeLog ]; then206 cat ChangeLog | head -n 1000 > $PKG4/usr/doc/gcc-$VERSION/gcc/ada/ChangeLog207 touch -r ChangeLog $PKG4/usr/doc/gcc-$VERSION/gcc/ada/ChangeLog208 fi209 )210 211 mkdir -p $PKG5/usr/doc/gcc-${VERSION}/gcc/java212 ( cd java213 cp -a \214 ChangeLog.tree-ssa \215 $PKG5/usr/doc/gcc-${VERSION}/gcc/java216 if [ -r ChangeLog ]; then217 cat ChangeLog | head -n 1000 > $PKG5/usr/doc/gcc-${VERSION}/gcc/java/ChangeLog218 touch -r ChangeLog $PKG5/usr/doc/gcc-${VERSION}/gcc/java/ChangeLog219 fi220 )221 222 mkdir -p $PKG6/usr/doc/gcc-${VERSION}/gcc/objc223 ( cd objc224 cp -a \225 README* \226 $PKG6/usr/doc/gcc-${VERSION}/gcc/objc227 if [ -r ChangeLog ]; then228 cat ChangeLog | head -n 1000 > $PKG6/usr/doc/gcc-${VERSION}/gcc/objc/ChangeLog229 touch -r ChangeLog $PKG6/usr/doc/gcc-${VERSION}/gcc/objc/ChangeLog230 fi231 )232 233 mkdir -p $PKG8/usr/doc/gcc-${VERSION}/gcc/go234 ( cd go235 if [ -r ChangeLog ]; then236 cat ChangeLog | head -n 1000 > $PKG8/usr/doc/gcc-${VERSION}/gcc/go/ChangeLog237 touch -r ChangeLog $PKG8/usr/doc/gcc-${VERSION}/gcc/go/ChangeLog238 fi239 cp -a \240 README* THREADS* \241 gofrontend/{LICENSE,PATENTS,README} \242 $PKG8/usr/doc/gcc-${VERSION}/gcc/go243 )244 245 ) || exit 1246 247 mkdir -p $PKG3/usr/doc/gcc-${VERSION}/libgfortran248 ( cd libgfortran249 if [ -r ChangeLog ]; then250 cat ChangeLog | head -n 1000 > $PKG3/usr/doc/gcc-${VERSION}/libgfortran/ChangeLog251 touch -r ChangeLog $PKG3/usr/doc/gcc-${VERSION}/libgfortran/ChangeLog252 fi253 )254 255 mkdir -p $PKG4/usr/doc/gcc-${VERSION}/libada256 ( cd libada257 if [ -r ChangeLog ]; then258 cat ChangeLog | head -n 1000 > $PKG4/usr/doc/gcc-${VERSION}/libada/ChangeLog259 touch -r ChangeLog $PKG4/usr/doc/gcc-${VERSION}/libada/ChangeLog260 fi261 )262 263 mkdir -p $PKG5/usr/doc/gcc-${VERSION}/libffi264 ( cd libffi265 cp -a \266 ChangeLog.libgcj ChangeLog.v1 \267 LICENSE* README* \268 $PKG5/usr/doc/gcc-${VERSION}/libffi269 if [ -r ChangeLog ]; then270 cat ChangeLog | head -n 1000 > $PKG5/usr/doc/gcc-${VERSION}/libffi/ChangeLog271 touch -r ChangeLog $PKG5/usr/doc/gcc-${VERSION}/libffi/ChangeLog272 fi273 )274 275 mkdir -p $PKG5/usr/doc/gcc-${VERSION}/libjava276 ( cd libjava277 cp -a \278 COPYING* HACKING LIBGCJ_LICENSE \279 NEWS README* THANKS \280 $PKG5/usr/doc/gcc-${VERSION}/libjava281 if [ -r ChangeLog ]; then282 cat ChangeLog | head -n 1000 > $PKG5/usr/doc/gcc-${VERSION}/libjava/ChangeLog283 touch -r ChangeLog $PKG5/usr/doc/gcc-${VERSION}/libjava/ChangeLog284 fi285 )286 287 mkdir -p $PKG1/usr/doc/gcc-${VERSION}/libmudflap288 ( cd libmudflap289 if [ -r ChangeLog ]; then290 cat ChangeLog | head -n 1000 > $PKG1/usr/doc/gcc-${VERSION}/libmudflap/ChangeLog291 touch -r ChangeLog $PKG1/usr/doc/gcc-${VERSION}/libmudflap/ChangeLog292 fi293 )294 295 mkdir -p $PKG1/usr/doc/gcc-${VERSION}/libgomp296 ( cd libgomp297 if [ -r ChangeLog ]; then298 cat ChangeLog | head -n 1000 > $PKG1/usr/doc/gcc-${VERSION}/libgomp/ChangeLog299 touch -r ChangeLog $PKG1/usr/doc/gcc-${VERSION}/libgomp/ChangeLog300 fi301 )302 303 mkdir -p $PKG6/usr/doc/gcc-${VERSION}/libobjc304 ( cd libobjc305 if [ -r ChangeLog ]; then306 cat ChangeLog | head -n 1000 > $PKG6/usr/doc/gcc-${VERSION}/libobjc/ChangeLog307 touch -r ChangeLog $PKG6/usr/doc/gcc-${VERSION}/libobjc/ChangeLog308 fi309 cp -a \310 README* THREADS* \311 $PKG6/usr/doc/gcc-${VERSION}/libobjc312 )313 314 mkdir -p $PKG2/usr/doc/gcc-${VERSION}/libstdc++-v3315 ( cd libstdc++-v3316 cp -a \317 README* \318 doc/html/faq.html \319 $PKG2/usr/doc/gcc-${VERSION}/libstdc++-v3320 if [ -r ChangeLog ]; then321 cat ChangeLog | head -n 1000 > $PKG2/usr/doc/gcc-${VERSION}/libstdc++-v3/ChangeLog322 touch -r ChangeLog $PKG2/usr/doc/gcc-${VERSION}/libstdc++-v3/ChangeLog323 fi324 )325 326 )327 328 # Add fastjar to the gcc-java package:329 ( cd $TMP330 FASTJARVER=$(echo $CWD/fastjar-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)331 echo332 echo "Building fastjar-$FASTJARVER first"333 echo334 rm -rf fastjar-$FASTJARVER335 tar xvf $CWD/fastjar-$FASTJARVER.tar.xz || exit 1336 cd fastjar-$FASTJARVER || exit 1337 chown -R root:root .338 find . \339 \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \340 -exec chmod 755 {} \; -o \341 \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \342 -exec chmod 644 {} \;343 for patch in $CWD/fastjar-patches/*.gz ; do344 zcat $patch | patch -p1 --verbose || exit 1345 done346 CFLAGS="$SLKCFLAGS" \347 CXXFLAGS="$SLKCFLAGS" \348 ./configure \349 --prefix=/usr \350 --libdir=/usr/lib$LIBDIRSUFFIX \351 --mandir=/usr/man \352 --infodir=/usr/info \353 --build=$TARGET354 make $NUMJOBS || exit 1355 make install DESTDIR=$PKG5 || exit 1356 mkdir -p $PKG5/usr/doc/fastjar-$FASTJARVER357 cp -a \358 AUTHORS CHANGES COPYING* INSTALL NEWS README* TODO \359 $PKG5/usr/doc/fastjar-$FASTJARVER360 # If there's a ChangeLog, installing at least part of the recent history361 # is useful, but don't let it get totally out of control:362 if [ -r ChangeLog ]; then363 DOCSDIR=$(echo $PKG5/usr/doc/fastjar-$FASTJARVER)364 cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog365 touch -r ChangeLog $DOCSDIR/ChangeLog366 fi367 find $PKG5 | xargs file | grep -e "executable" -e "shared object" | grep ELF \368 | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null369 # Compress and if needed symlink the man pages:370 if [ -d $PKG5/usr/man ]; then371 ( cd $PKG5/usr/man372 for manpagedir in $(find . -type d -name "man*") ; do373 ( cd $manpagedir374 for eachpage in $( find . -type l -maxdepth 1) ; do375 ln -s $( readlink $eachpage ).gz $eachpage.gz376 rm $eachpage377 done378 gzip -9 *.?379 )380 done381 )382 fi383 # Compress info files, if any:384 if [ -d $PKG5/usr/info ]; then385 ( cd $PKG5/usr/info386 rm -f dir387 gzip -9 *388 )389 fi390 echo391 ) || exit 1392 393 # build gcc394 ( mkdir gcc.build.lnx;395 cd gcc.build.lnx;396 397 # If enough people need "treelang" support for it may be considered.398 # --enable-languages=ada,c,c++,fortran,java,objc,treelang399 # I think it's incorrect to include this option (as it'll end up set400 # to i486 on x86 platforms), and we want to tune the binary structure401 # for i686, as that's where almost all of the optimization speedups402 # are to be found.403 # Correct me if my take on this is wrong.404 # --with-cpu=$ARCH405 406 if [ "$ARCH" != "x86_64" ]; then407 GCC_ARCHOPTS="--with-arch=$ARCH"408 else409 GCC_ARCHOPTS="--disable-multilib"410 fi411 412 CFLAGS="$SLKCFLAGS" \413 CXXFLAGS="$SLKCFLAGS" \414 ../gcc-$VERSION/configure --prefix=/usr \415 --libdir=/usr/lib$LIBDIRSUFFIX \416 --mandir=/usr/man \417 --infodir=/usr/info \418 --enable-shared \419 --enable-bootstrap \420 --enable-languages=c,c++,fortran,go,java,lto,objc \421 --enable-threads=posix \422 --enable-checking=release \423 --enable-objc-gc \424 --with-system-zlib \425 --with-python-dir=/lib$LIBDIRSUFFIX/python2.7/site-packages \426 --disable-libunwind-exceptions \427 --enable-__cxa_atexit \428 --enable-libssp \429 --enable-lto \430 --with-gnu-ld \431 --verbose \432 --enable-java-home \433 --with-java-home=/usr/lib$LIBDIRSUFFIX/jvm/jre \434 --with-jvm-root-dir=/usr/lib$LIBDIRSUFFIX/jvm \435 --with-jvm-jar-dir=/usr/lib$LIBDIRSUFFIX/jvm/jvm-exports \436 --with-arch-directory=$LIB_ARCH \437 --with-antlr-jar=$ANTLJAR \438 --enable-java-awt=gtk \439 --disable-gtktest \440 $GCC_ARCHOPTS \441 --target=${TARGET} \442 --build=${TARGET} \443 --host=${TARGET} || exit 1444 445 # Start the build:446 447 # Include all debugging info (for now):448 make $NUMJOBS bootstrap;449 450 ( cd gcc451 make $NUMJOBS gnatlib GNATLIBCFLAGS="$SLKCFLAGS"452 # This wants a shared -ladd2line?453 #make gnatlib-shared454 455 CFLAGS="$SLKCFLAGS" \456 CXXFLAGS="$SLKCFLAGS" \457 make $NUMJOBS gnattools458 )459 make info460 461 # Set GCCCHECK=something to run the tests462 if [ ! -z $GCCCHECK ]; then463 make $NUMJOBS check464 fi465 466 make install DESTDIR=$PKG1467 468 # KLUDGE ALERT469 # These *gdb.py files are causing ldconfig to complain, so they are going470 # to be REMOVED for now... at some point, they might be moved somewhere471 # else, in which case things should Just Work(tm). Keep an eye on it.472 rm -f $PKG1/usr/lib${LIBDIRSUFFIX}/*gdb.py473 474 # Be sure the "specs" file is installed.475 if [ ! -r $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/${TARGET}/${VERSION}/specs ]; then476 cat stage1-gcc/specs > $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/${TARGET}/${VERSION}/specs477 fi478 479 # Make our 64bit gcc look for 32bit gcc binaries in ./32 subdirectory:480 if [ "$ARCH" = "x86_64" ]; then481 sed -i 's#;.\(:../lib !m64 m32;\)$#;32\1#' \482 $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/${TARGET}/${VERSION}/specs483 fi484 485 # make ada.install-common DESTDIR=$PKG1486 # make install-gnatlib DESTDIR=$PKG1487 make -i install-info DESTDIR=$PKG1488 489 chmod 755 $PKG1/usr/lib${LIBDIRSUFFIX}/libgcc_s.so.1490 491 # The (huge) static GNU java libraries are not packaged. In nearly all492 # cases one or more dependencies will not be available as static anyway.493 rm -f $PKG1/usr/lib${LIBDIRSUFFIX}/libgcj.a494 rm -f $PKG1/usr/lib${LIBDIRSUFFIX}/libgcj-tools.a495 496 # Fix stuff up:497 ( cd $PKG1/usr/info ; rm dir ; gzip -9 * )498 ( cd $PKG1499 # *not* ${LIBDIRSUFFIX}500 mkdir -p lib501 cd lib502 ln -sf /usr/bin/cpp .503 )504 505 ( cd $PKG1/usr/bin506 mv g++ g++-gcc-$VERSION507 mv gcc gcc-$VERSION508 mv ${TARGET}-gfortran gfortran-gcc-$VERSION509 ln -sf g++-gcc-$VERSION g++510 ln -sf gcc-$VERSION gcc511 ln -sf g++ c++512 ln -sf gcc cc513 ln -sf gcc-$VERSION ${TARGET}-gcc514 ln -sf gcc-$VERSION ${TARGET}-gcc-$VERSION515 ln -sf gcc-ar ${TARGET}-gcc-ar516 ln -sf gcc-nm ${TARGET}-gcc-nm517 ln -sf gcc-ranlib ${TARGET}-gcc-ranlib518 ln -sf gcj ${TARGET}-gcj519 ln -sf gcjh ${TARGET}-gcjh520 ln -sf g++-gcc-$VERSION ${TARGET}-c++521 ln -sf g++-gcc-$VERSION ${TARGET}-g++522 ln -sf gfortran-gcc-$VERSION gfortran523 ln -sf gfortran-gcc-$VERSION ${TARGET}-gfortran524 ln -sf gfortran-gcc-$VERSION ${TARGET}-gfortran-$VERSION525 ln -sf gfortran-gcc-$VERSION ${TARGET}-g95526 ln -sf gfortran g95527 ln -sf gfortran f95528 ln -sf gfortran-gcc-$VERSION ${TARGET}-g77529 ln -sf gfortran g77530 ln -sf gfortran f77531 )532 533 ( cd $PKG1/usr/man534 gzip -9 */*535 cd man1536 ln -sf g++.1.gz c++.1.gz537 ln -sf gcc.1.gz cc.1.gz538 )539 540 ## build the txz package541 #(542 # cd $PKG1;543 # makepkg -l y -c n $TMP/gcc-$VERSION-$ARCH-$BUILD.txz544 #)545 # keep a log546 ) 2>&1 | tee $TMP/gcc.build.log547 548 # OK, time to split the big package where needed:549 550 # gcc-g++:551 ( cd $PKG2552 mkdir -p usr/bin553 mv $PKG1/usr/bin/*++* usr/bin554 mkdir -p usr/include555 mv $PKG1/usr/include/c++ usr/include556 mkdir -p usr/lib${LIBDIRSUFFIX}557 mv $PKG1/usr/lib${LIBDIRSUFFIX}/*++* usr/lib${LIBDIRSUFFIX}558 mkdir -p usr/libexec/gcc/$TARGET/$VERSION559 mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/cc1plus usr/libexec/gcc/$TARGET/$VERSION/cc1plus560 mkdir -p usr/man/man1561 mv $PKG1/usr/man/man1/*++* usr/man/man1562 )563 564 # gcc-gfortran:565 ( cd $PKG3566 mkdir -p usr/bin567 mv $PKG1/usr/bin/*gfortran* usr/bin568 mv $PKG1/usr/bin/*95* usr/bin569 mv $PKG1/usr/bin/*77* usr/bin570 # Doesn't this seem like a logical idea?571 ( cd usr/bin ; ln -sf gfortran-gcc-${VERSION} fortran )572 mkdir -p usr/info573 mv $PKG1/usr/info/gfortran* usr/info574 mkdir -p usr/lib${LIBDIRSUFFIX}575 mv $PKG1/usr/lib${LIBDIRSUFFIX}/libgfortran* usr/lib${LIBDIRSUFFIX}576 mkdir -p usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION577 mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/finclude usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION578 mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/libgfortran* usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION579 mkdir -p usr/libexec/gcc/$TARGET/$VERSION580 mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/f951 usr/libexec/gcc/$TARGET/$VERSION/f951581 mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/libgfortran* usr/libexec/gcc/$TARGET/$VERSION582 mkdir -p usr/man/man1583 mv $PKG1/usr/man/man1/gfortran* usr/man/man1584 )585 586 # gcc-gnat:587 # First, relocate usr/bin/gnative2ascii to the gcc-java package so it588 # isn't matched and accidentally put in gcc-gnat:589 mkdir -p $PKG5/usr/bin590 mv $PKG1/usr/bin/gnative2ascii $PKG5/usr/bin591 # Now make the gcc-gnat package tree:592 ( cd $PKG4593 mkdir -p usr/bin594 mv $PKG1/usr/bin/gnat* usr/bin595 mv $PKG1/usr/bin/gpr* usr/bin596 mkdir -p usr/info597 mv $PKG1/usr/info/gnat* usr/info598 mkdir -p usr/libexec/gcc/$TARGET/$VERSION599 mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/gnat1 usr/libexec/gcc/$TARGET/$VERSION600 mkdir -p usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION601 mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/adainclude usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION602 mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/adalib usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION603 )604 605 # gcc-java:606 ( cd $PKG5607 mkdir -p usr/bin608 mv $PKG1/usr/bin/aot-compile usr/bin609 mv $PKG1/usr/bin/addr2name.awk usr/bin610 # mv $PKG1/usr/bin/fastjar usr/bin611 mv $PKG1/usr/bin/gappletviewer usr/bin612 mv $PKG1/usr/bin/gc-analyze usr/bin613 mv $PKG1/usr/bin/*gcj* usr/bin614 mv $PKG1/usr/bin/gij usr/bin615 mv $PKG1/usr/bin/gjar usr/bin616 mv $PKG1/usr/bin/gjarsigner usr/bin617 mv $PKG1/usr/bin/gjdoc usr/bin618 mv $PKG1/usr/bin/gkeytool usr/bin619 mv $PKG1/usr/bin/grepjar usr/bin620 mv $PKG1/usr/bin/grmid usr/bin621 mv $PKG1/usr/bin/grmic usr/bin622 mv $PKG1/usr/bin/grmiregistry usr/bin623 mv $PKG1/usr/bin/gserialver usr/bin624 mv $PKG1/usr/bin/gtnameserv usr/bin625 mv $PKG1/usr/bin/gjavah usr/bin626 mv $PKG1/usr/bin/gorbd usr/bin627 mv $PKG1/usr/bin/jar usr/bin628 mv $PKG1/usr/bin/jcf-dump usr/bin629 mv $PKG1/usr/bin/jv-* usr/bin630 mv $PKG1/usr/bin/rmi* usr/bin631 mkdir -p usr/include/c++/$VERSION632 # Move some Java only C++ headers from the C++ package:633 mv $PKG2/usr/include/c++/$VERSION/{gcj,gnu,java,javax,org,sun} usr/include/c++/$VERSION634 mv $PKG1/usr/include/ffi.h usr/include635 mkdir -p usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include636 mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/jawt.h usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include637 mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/ffi.h usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include638 mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/ffitarget.h usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include639 mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/jawt_md.h usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include640 mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/jni.h usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include641 mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/jni_md.h usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include642 mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/jvmpi.h usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include643 mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/libffi usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include644 # aot-compile Python plugins:645 if [ ! -d $PKG1/usr/lib${LIBDIRSUFFIX}/python2.7 ]; then646 echo "NO $PKG1/usr/lib${LIBDIRSUFFIX}/python2.7 !"647 exit 1648 fi649 mv $PKG1/usr/lib${LIBDIRSUFFIX}/python2.7 usr/lib${LIBDIRSUFFIX}650 mkdir -p usr/info651 mv $PKG1/usr/info/gcj.* usr/info652 # mv $PKG1/usr/info/fastjar.* usr/info653 mkdir -p usr/lib${LIBDIRSUFFIX}654 mv $PKG1/usr/lib${LIBDIRSUFFIX}/libffi* usr/lib${LIBDIRSUFFIX}655 mv $PKG1/usr/lib${LIBDIRSUFFIX}/logging.properties usr/lib${LIBDIRSUFFIX}656 mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcj* usr/lib${LIBDIRSUFFIX}657 mv $PKG1/usr/lib${LIBDIRSUFFIX}/libgcj* usr/lib${LIBDIRSUFFIX}658 mv $PKG1/usr/lib${LIBDIRSUFFIX}/libgij* usr/lib${LIBDIRSUFFIX}659 mv $PKG1/usr/lib${LIBDIRSUFFIX}/lib-org* usr/lib${LIBDIRSUFFIX}660 mv $PKG1/usr/lib${LIBDIRSUFFIX}/security usr/lib${LIBDIRSUFFIX}661 mkdir -p usr/lib${LIBDIRSUFFIX}/pkgconfig662 mv $PKG1/usr/lib${LIBDIRSUFFIX}/pkgconfig/libgcj*.pc usr/lib${LIBDIRSUFFIX}/pkgconfig663 rmdir $PKG1/usr/lib${LIBDIRSUFFIX}/pkgconfig 2> /dev/null664 mkdir -p usr/libexec/gcc/$TARGET/$VERSION665 mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/jc1 usr/libexec/gcc/$TARGET/$VERSION666 mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/ecj1 usr/libexec/gcc/$TARGET/$VERSION667 mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/jvgenmain usr/libexec/gcc/$TARGET/$VERSION668 mkdir -p usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include669 mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/gcj usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include670 mkdir -p usr/man/man1671 mv $PKG1/usr/man/man1/aot-compile.1.gz usr/man/man1672 mv $PKG1/usr/man/man1/gappletviewer.1.gz usr/man/man1673 mv $PKG1/usr/man/man1/gc-analyze.1.gz usr/man/man1674 mv $PKG1/usr/man/man1/gcj.1.gz usr/man/man1675 mv $PKG1/usr/man/man1/gcjh.1.gz usr/man/man1676 mv $PKG1/usr/man/man1/gcj-dbtool.1.gz usr/man/man1677 mv $PKG1/usr/man/man1/gij.1.gz usr/man/man1678 mv $PKG1/usr/man/man1/gjar.1.gz usr/man/man1679 mv $PKG1/usr/man/man1/gjarsigner.1.gz usr/man/man1680 mv $PKG1/usr/man/man1/gjavah.1.gz usr/man/man1681 mv $PKG1/usr/man/man1/gjdoc.1.gz usr/man/man1682 mv $PKG1/usr/man/man1/gjnih.1.gz usr/man/man1683 mv $PKG1/usr/man/man1/gkeytool.1.gz usr/man/man1684 mv $PKG1/usr/man/man1/gnative2ascii.1.gz usr/man/man1685 mv $PKG1/usr/man/man1/gorbd.1.gz usr/man/man1686 mv $PKG1/usr/man/man1/grmic.1.gz usr/man/man1687 mv $PKG1/usr/man/man1/grmid.1.gz usr/man/man1688 mv $PKG1/usr/man/man1/grmiregistry.1.gz usr/man/man1689 mv $PKG1/usr/man/man1/gserialver.1.gz usr/man/man1690 mv $PKG1/usr/man/man1/gtnameserv.1.gz usr/man/man1691 mv $PKG1/usr/man/man1/jcf-dump.1.gz usr/man/man1692 mv $PKG1/usr/man/man1/jv-convert.1.gz usr/man/man1693 mv $PKG1/usr/man/man1/jv-scan.1.gz usr/man/man1694 mv $PKG1/usr/man/man1/rebuild-gcj-db.1.gz usr/man/man1695 mkdir -p usr/man/man3696 mv $PKG1/usr/man/man3/ffi* usr/man/man3697 mkdir -p usr/share698 mv $PKG1/usr/share/java usr/share699 # The ecj wrapper script:700 cat $CWD/ecj.sh | sed -e "s,@JAVADIR@,/usr/share/java," > usr/bin/ecj701 chmod 755 usr/bin/ecj702 # The JAVA_HOME compatibility links.703 # Caution: non-multilib arch-independent stuff! No lib64 here.704 mkdir -p usr/lib$LIBDIRSUFFIX705 mv $PKG1/usr/lib$LIBDIRSUFFIX/jvm* usr/lib$LIBDIRSUFFIX706 # And add the missing javac symlink:707 ln -s ../../../bin/ecj usr/lib$LIBDIRSUFFIX/jvm/bin/javac708 # Don't package libffi stuff anymore. GCC will link the internal version709 # statically, and we'll need a newer one elsewhere.710 find . -name "ffi*.h" | xargs rm711 find . -name "libffi*" | xargs rm712 rm -f usr/man/man3/ffi*713 rm -f usr/info/libffi*714 )715 716 # gcc-objc:717 ( cd $PKG6718 mkdir -p usr/lib${LIBDIRSUFFIX}719 mv $PKG1/usr/lib${LIBDIRSUFFIX}/libobjc* usr/lib${LIBDIRSUFFIX}720 mkdir -p usr/libexec/gcc/$TARGET/$VERSION721 mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/cc1obj usr/libexec/gcc/$TARGET/$VERSION722 mkdir -p usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include723 mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/objc usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include724 )725 726 ## NOTE: Thought about this, because the precompiled headers are so large.727 ## Probably easier to keep everything together, though.728 ## gcc-g++-gch (precompiled c++ headers)729 #( cd $PKG7730 # mkdir -p usr/include/c++/$VERSION/$TARGET/bits731 # mv $PKG2/usr/include/c++/$VERSION/$TARGET/bits/stdc++.h.gch usr/include/c++/$VERSION/$TARGET/bits732 #)733 734 # gcc-go:735 ( cd $PKG8736 mkdir -p usr/bin737 mv $PKG1/usr/bin/*gccgo* usr/bin738 mkdir -p usr/libexec/gcc/$TARGET/$VERSION739 mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/go1 usr/libexec/gcc/$TARGET/$VERSION/go1740 mkdir -p usr/info741 mv $PKG1/usr/info/gccgo.info.gz usr/info742 mkdir -p usr/lib${LIBDIRSUFFIX}743 mv $PKG1/usr/lib${LIBDIRSUFFIX}/go usr/lib${LIBDIRSUFFIX}744 mv $PKG1/usr/lib${LIBDIRSUFFIX}/{libgo.la,libgo.so*,libgobegin.a} usr/lib${LIBDIRSUFFIX} || exit 1745 # Ordinarily Slackware doesn't package static libraries, but in this case746 # it is useful for deploying compiled binaries on machines that do not yet747 # have libgo.so.0.0.0.748 mv $PKG1/usr/lib${LIBDIRSUFFIX}/libgo.a usr/lib${LIBDIRSUFFIX}749 mkdir -p usr/man/man1750 mv $PKG1/usr/man/man1/gccgo.1.gz usr/man/man1751 ) || exit 1752 753 # Filter all .la files (thanks much to Mark Post for the sed script):754 ( cd $TMP755 for file in $(find . -type f -name "*.la") ; do756 cat $file | sed -e 's%-L/gcc-[[:graph:]]* % %g' > $TMP/tmp-la-file757 cat $TMP/tmp-la-file > $file758 done759 rm $TMP/tmp-la-file760 )761 762 ## Strip bloated binaries and libraries:763 for dir in $PKG{1,2,3,4,5,6,8}; do764 ( cd $dir765 find . -name "lib*so*" -exec strip --strip-unneeded "{}" \;766 find . -name "lib*a" -exec strip -g "{}" \;767 strip --strip-unneeded usr/bin/* 2> /dev/null768 find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null769 find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null770 )771 done772 773 ( cd $PKG1774 makepkg -l y -c n $TMP/gcc-$VERSION-$ARCH-$BUILD.txz )775 ( cd $PKG2776 makepkg -l y -c n $TMP/gcc-g++-$VERSION-$ARCH-$BUILD.txz )777 ( cd $PKG3778 makepkg -l y -c n $TMP/gcc-gfortran-$VERSION-$ARCH-$BUILD.txz )779 ( cd $PKG4780 makepkg -l y -c n $TMP/gcc-gnat-$VERSION-$ARCH-$BUILD.txz )781 ( cd $PKG5782 makepkg -l y -c n $TMP/gcc-java-$VERSION-$ARCH-$BUILD.txz )783 ( cd $PKG6784 makepkg -l y -c n $TMP/gcc-objc-$VERSION-$ARCH-$BUILD.txz )785 #( cd $PKG7786 # makepkg -l y -c n $TMP/gcc-g++-gch-$VERSION-$ARCH-$BUILD.txz )787 ( cd $PKG8788 makepkg -l y -c n $TMP/gcc-go-$VERSION-$ARCH-$BUILD.txz )789 790 echo791 echo "Slackware GCC package build complete!"792 echo793 794 795 ############ syn3 patches796 797 #backwards compatibility798 #NO: not allowed, just recompile the stuff..799 #P=`echo /gcc-*""/package-gcc-g++/usr/lib/`800 #ln -s libstdc++.so $P/libstdc++.so.5 || exit 1801 41 802 42 ############ make syn3 packages
Note: See TracChangeset
for help on using the changeset viewer.