summaryrefslogtreecommitdiffstats
path: root/haskell/ghc/ghc.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'haskell/ghc/ghc.SlackBuild')
-rw-r--r--haskell/ghc/ghc.SlackBuild69
1 files changed, 56 insertions, 13 deletions
diff --git a/haskell/ghc/ghc.SlackBuild b/haskell/ghc/ghc.SlackBuild
index 65e556619b..d97f2edc46 100644
--- a/haskell/ghc/ghc.SlackBuild
+++ b/haskell/ghc/ghc.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for ghc
-# Copyright 2013 Mikko Värri, Finland
+# Copyright 2015 Mikko Värri, Finland
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,7 +23,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=ghc
-VERSION=${VERSION:-7.6.2}
+VERSION=${VERSION:-7.8.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -61,25 +61,68 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
+
+if [ "${BOOTSTRAP:-yes}" == "yes" ] ; then
+ BOOTSTRAPDIR=$TMP/$PRGNAM-$VERSION-bootstrap
+ rm -rf $BOOTSTRAPDIR
+
+ cd $TMP
+ rm -rf $PRGNAM-$VERSION
+ tar xvf $CWD/$PRGNAM-$VERSION-$TARARCH-unknown-linux-deb7.tar.xz
+ cd $PRGNAM-$VERSION
+ 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 {} \;
+
+ CFLAGS="$SLKCFLAGS" \
+ CXXFLAGS="$SLKCFLAGS" \
+ ./configure \
+ --prefix=$BOOTSTRAPDIR/usr \
+ --mandir=$BOOTSTRAPDIR/usr/man \
+ --docdir=$BOOTSTRAPDIR/usr/doc/$PRGNAM-$VERSION \
+ --libdir=$BOOTSTRAPDIR/usr/lib${LIBDIRSUFFIX}
+
+ # GHC binary distributions are compiled in an environment where
+ # libncurses is compiled as two separate libraries: libncurses and
+ # libtinfo. Slackware has all the symbols of libtinfo in libncurses,
+ # so we can soft link libtinfo to libncurses. But let's not do that
+ # system wide. The link is needed both during build ('make install')
+ # and during runtime (/usr/bin/ghc*).
+ LIBTINFO_DIR=$BOOTSTRAPDIR/usr/lib$LIBDIRSUFFIX
+ mkdir -p $LIBTINFO_DIR
+ ln -s /lib$LIBDIRSUFFIX/libncurses.so.5 $LIBTINFO_DIR/libtinfo.so.5
+ LD_LIBRARY_PATH=$LIBTINFO_DIR \
+ make install
+ sed -i -r -e "s|^exec |LD_LIBRARY_PATH=$LIBTINFO_DIR exec |" $BOOTSTRAPDIR/usr/bin/ghc{,-pkg}-$VERSION
+
+ BOOTSTRAPGHC=$BOOTSTRAPDIR/usr/bin/ghc
+else
+ BOOTSTRAPGHC=$( which ghc 2>/dev/null )
+fi
+
cd $TMP
rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION-$TARARCH-unknown-linux.tar.bz2
+tar xvf $CWD/$PRGNAM-$VERSION-src.tar.xz
cd $PRGNAM-$VERSION
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 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
- -exec chmod 644 {} \;
+ \( -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 {} \;
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
- --prefix=/usr \
- --mandir=/usr/man \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --libdir=/usr/lib${LIBDIRSUFFIX}
-
+ --prefix=/usr \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PRGNAM-$VERSION \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --with-ghc=$BOOTSTRAPGHC
+make
make install DESTDIR=$PKG
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
@@ -87,7 +130,7 @@ find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | gr
find $PKG/usr/man -type f -exec gzip -9 {} \;
-cp -a INSTALL LICENSE README $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install