aboutsummaryrefslogtreecommitdiff
path: root/haskell/ghc/ghc.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'haskell/ghc/ghc.SlackBuild')
-rw-r--r--haskell/ghc/ghc.SlackBuild105
1 files changed, 58 insertions, 47 deletions
diff --git a/haskell/ghc/ghc.SlackBuild b/haskell/ghc/ghc.SlackBuild
index 5fe12c3d8099..fae2c37322a0 100644
--- a/haskell/ghc/ghc.SlackBuild
+++ b/haskell/ghc/ghc.SlackBuild
@@ -3,6 +3,7 @@
# Slackware build script for ghc
# Copyright 2015 Mikko Värri, Finland
+# Updated 2018 David Spencer, Baildon, West Yorkshire, U.K.
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,13 +24,13 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=ghc
-VERSION=${VERSION:-7.10.3}
+VERSION=${VERSION:-8.4.3}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -40,8 +41,8 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
TARARCH=i386
elif [ "$ARCH" = "i686" ]; then
@@ -62,45 +63,45 @@ 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-deb8-linux.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
+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-deb8-linux.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 )
+ BOOTSTRAPGHC=$( which ghc 2>/dev/null )
fi
cd $TMP
@@ -117,18 +118,28 @@ find -L . \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
- --prefix=/usr \
- --mandir=/usr/man \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --with-ghc=$BOOTSTRAPGHC
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PRGNAM-$VERSION \
+ --with-ghc=$BOOTSTRAPGHC
+
make
make install DESTDIR=$PKG
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+# If docs were not built and installed, let's install the prebuilt manpage
+# (taken from ghc-8.4.3-x86_64-deb8-linux.tar.xz)
+if [ ! -d $PKG/usr/man ]; then
+ install -D -m0644 $CWD/ghc.1 $PKG/usr/man/man1
+fi
+
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
cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild