diff options
author | khronosschoty <khronosschoty@posteo.org> | 2017-05-22 23:57:59 +0700 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2017-05-27 07:30:50 +0700 |
commit | 143d3f5347249c23893b9a492e0a4c5db294d978 (patch) | |
tree | 4410b4ff2eb3c72b09c8d52fa01abb597f68d395 /development/gcclegacy494/gcclegacy494.SlackBuild | |
parent | 2dbd65dc145dfd420b97ee215e36eab16d28ba0b (diff) |
development/gcclegacy494: Added (GCC 4.9.4 legacy).
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'development/gcclegacy494/gcclegacy494.SlackBuild')
-rw-r--r-- | development/gcclegacy494/gcclegacy494.SlackBuild | 192 |
1 files changed, 192 insertions, 0 deletions
diff --git a/development/gcclegacy494/gcclegacy494.SlackBuild b/development/gcclegacy494/gcclegacy494.SlackBuild new file mode 100644 index 0000000000000..5d4fe5ce25620 --- /dev/null +++ b/development/gcclegacy494/gcclegacy494.SlackBuild @@ -0,0 +1,192 @@ +#!/bin/sh + +# Slackware build script for gcc-4.9.4 + +# Copyright 2017 Vasily Sora USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PRGNAM=gcclegacy494 +VERSION=${VERSION:-4.9.4} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +INSTLOC=${INSTLOC:-/opt/$PRGNAM} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" + LIB_ARCH=i386 +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" + LIB_ARCH=i386 +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" + LIB_ARCH=i386 +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686" + LIBDIRSUFFIX="" + LIB_ARCH=i386 +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + LIB_ARCH=s390 +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" + LIB_ARCH=amd64 +elif [ "$ARCH" = "armv7hl" ]; then + SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16" + LIBDIRSUFFIX="" + LIB_ARCH=armv7hl +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + LIB_ARCH=$ARCH +fi + +mkdir -p $TMP + +case "$ARCH" in + arm*) TARGET=$ARCH-slackware-linux-gnueabi ;; + *) TARGET=$ARCH-slackware-linux ;; +esac + +if [ "$ARCH" != "x86_64" ]; then + GCC_ARCHOPTS="--with-arch=$ARCH" +else + GCC_ARCHOPTS="--disable-multilib" +fi + +set -e + +cd $TMP/ +rm -rf gcc-4.9.4/ +tar -xzf $CWD/gcc-4.9.4.tar.gz +cd gcc-4.9.4 +cp --preserve=all $CWD/gmp-4.3.2.tar.bz2 \ + $CWD/mpfr-2.4.2.tar.bz2 \ + $CWD/mpc-0.8.1.tar.gz \ + $CWD/isl-0.12.2.tar.bz2 \ + $CWD/cloog-0.18.1.tar.gz . +tar xjf $CWD/mpfr-2.4.2.tar.bz2 +ln -sf mpfr-2.4.2 mpfr +tar xjf $CWD/gmp-4.3.2.tar.bz2 +ln -sf gmp-4.3.2 gmp +tar xzf $CWD/mpc-0.8.1.tar.gz +ln -sf mpc-0.8.1 mpc +tar xjf $CWD/isl-0.12.2.tar.bz2 +ln -sf isl-0.12.2 isl +tar xzf $CWD/cloog-0.18.1.tar.gz +ln -sf cloog-0.18.1 cloog + +chown -R root:root . +find -L . \ +\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ +\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; +rm -rf $TMP/objdir +mkdir $TMP/objdir +cd $TMP/objdir +rm -rf $PKG +mkdir -p $PKG +CFLAGS="$SLKCFLAGS" +CXXFLAGS="$SLKCFLAGS" + $PWD/../gcc-4.9.4/configure --prefix=/usr \ + --program-suffix=-4.9.4 \ + --enable-languages=c,c++ \ + --with-system-zlib \ + --mandir=/usr/man \ + --libdir=/usr/lib$LIBDIRSUFFIX \ + --infodir=/usr/info \ + --enable-threads=posix \ + --with-python-dir=/lib$LIBDIRSUFFIX/python2.7/site-packages \ + --disable-gtktest \ + --target=${TARGET} \ + --build=${TARGET} \ + --host=${TARGET} \ + $GCC_ARCHOPTS \ + --with-arch-directory=$LIB_ARCH \ + --enable-clocale=gnu \ + --with-gnu-ld \ + --enable-shared \ + --enable-__cxa_atexit +make +make DESTDIR=$PKG install-strip + +# Rename / move to /opt so there is no conflicts with Slackware's gcc, libraries etc. +mkdir -p $PKG$INSTLOC +mv -f $PKG/usr/* $PKG$INSTLOC + +# Thank you to 'idlemoor' +mkdir -p $PKG/usr/bin +cd /$PKG/usr/bin +for COMPILER in gcc g++ ; do + sed \ + -e "s~%LIBDIRSUFFIX%~$LIBDIRSUFFIX~" \ + -e "s~%COMPILER%~$COMPILER~" \ + -e "s~%INSTLOC%~$INSTLOC~" \ + < $CWD/wrapper.sh \ + > $PKG/usr/bin/$ARCH-slackware-linux-$COMPILER-4.9.4 + chmod ugo+x $PKG/usr/bin/$ARCH-slackware-linux-$COMPILER-4.9.4 +done +ln -s $ARCH-slackware-linux-gcc-4.9.4 $PKG/usr/bin/gcc-4.9.4 +ln -s $ARCH-slackware-linux-g++-4.9.4 $PKG/usr/bin/g++-gcc-4.9.4 + +mv -f $PKG$INSTLOC/man $PKG/usr/man +cd $PKG/usr/man/man7 +# we do not need these; according to "diff" there is no difference between these files +# and the ones Slackware ships with; except this man page named "gfdl.7"; which shall be +# saved; and renamed so that it does not conflict with Slackware's. +find . ! -name 'gfdl.7' -exec rm -rf {} \; +mv gfdl.7 gfdl494.7 +find $PKG/usr/man -type f -exec gzip -9 {} \; +for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done + +mv -f $PKG$INSTLOC/info $PKG/usr/info +rm -f $PKG/usr/info/dir +cd $PKG/usr/info +#rename the .info files so they do not conflict with Slackware's own .info files. +for info in *.info; do mv "$info" "${info%.*}-4.9.4.info"; done +gzip -9 $PKG/usr/info/*.info* + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} |