haskell/haskell-platform: Added (base Haskell devel platform)

Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
This commit is contained in:
Christoph Willing 2012-07-25 21:52:27 -05:00 committed by Robby Workman
parent b1728e796e
commit 9e04b5b18f
5 changed files with 187 additions and 0 deletions

View file

@ -0,0 +1,12 @@
The Haskell Platform is a comprehensive, robust development for programming
in Haskell, which not only makes it trivial to get up and running with a full
Haskell development environment, but also provides a comprehensive, standard
base for commercial and open source Haskell development that maximises
interoperability and stability of your code.
This requires ghc, and hscolour is an optional requirement.
This is intended to be installed on a system that does not already have any
haskell-related components (other than ghc & hscolour, of course) installed,
so for best results (and chance of success), you should remove any of those
before you try to build haskell-platform.

View file

@ -0,0 +1,118 @@
#!/bin/sh
# Slackware build script for The Haskell Platform
#
# Written by Jockey S. Kyd (jockey dot kyd at gmail dot com)
# Public domain
# 20120712 Christoph Willing <c.willing@uq.edu.au>
# - bump version to 2012.2.0.0
# - add configure option --enable-unsupported-ghc-version
# (to allow latest ghc version used in current SBo)
PRGNAM=haskell-platform
VERSION=${VERSION:-2012.2.0.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$(uname -m)" in
i?86) ARCH=i486 ;;
arm*) ARCH=arm ;;
*) ARCH=$(uname -m) ;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -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 {} \;
# If using freeflut, the libs may have been
# named either libglut.* (replacing mesa's libglut.*) or libfreeglut.*
strings /usr/lib${LIBDIRSUFFIX}/libglut.so |grep glEnd >/dev/null 2>/dev/null
if [ $? -eq 0 ]; then
GLUTFLAGS="-lglut "
else
GLUTFLAGS="-lfreeglut "
fi
# Recommended ghc version for this haskell-platform is ghc-7.4.1 but
# to allow for other ghc versions (current SBo is ghc-7.4.2),
# configure needs the --enable-unsupported-ghc-version option.
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
LDFLAGS="$GLUTFLAGS" \
./configure \
--enable-unsupported-ghc-version \
--prefix=/usr \
--mandir=/usr/man \
--docdir=/usr/doc/$PRGNAM-$VERSION \
--libdir=/usr/lib${LIBDIRSUFFIX}
# get path and version of ghc
eval $(grep '^GHC=' scripts/config)
eval $(grep '^GHC_PKG=' scripts/config)
GHC_VERSION=$($GHC --numeric-version)
make
# unsupport DESTDIR, so work around a bit
patch -p1 < $CWD/not_update_pkg_db.diff
sed -i "s:\(\./Setup copy\):\1 --destdir=$PKG:" scripts/install.sh
make install
# collecting config files
PKGCONFDIR=$PKG/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
mkdir -p $PKGCONFDIR
for pkg in $(cat packages/platform.packages); do
pkg_conf=packages/${pkg}/${pkg}.conf
if [ -f $pkg_conf ]; then
mv $pkg_conf $PKGCONFDIR
fi
done
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
mkdir -p $PKG/usr/doc
if [ -d $PKG/usr/share/doc ]; then
mv $PKG/usr/share/doc/* $PKG/usr/doc/
rmdir $PKG/usr/share/doc
fi
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
echo "$GHC_PKG recache" > $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View file

@ -0,0 +1,10 @@
PRGNAM="haskell-platform"
VERSION="2012.2.0.0"
HOMEPAGE="http://hackage.haskell.org/platform/"
DOWNLOAD="http://lambda.haskell.org/platform/download/2012.2.0.0/haskell-platform-2012.2.0.0.tar.gz"
MD5SUM="db09bc4279c0ef9e0beb5462b793413b"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
MAINTAINER="Christoph Willing"
EMAIL="c.willing@uq.edu.au"
APPROVED="rworkman"

View file

@ -0,0 +1,28 @@
--- ./scripts/install.sh.orig 2010-12-01 09:49:32.169509005 +0800
+++ ./scripts/install.sh 2010-12-01 09:58:02.551384509 +0800
@@ -27,15 +27,16 @@
./Setup register ${VERBOSE} --gen-pkg-config="${PKG}.conf" \
|| die "Generating the registration information for the package ${PKG} failed"
- if [ -f ${PKG}.conf ]; then
- if test "${USER_INSTALL}" = "YES"; then
- GHC_PKG_DB="--user"
- else
- GHC_PKG_DB="--global"
- fi
- ${GHC_PKG} update ${GHC_PKG_DB} "${PKG}.conf" \
- || die "Registering the package ${PKG} failed"
- fi
+# Uncomment to allow actually registering packages at building time
+# if [ -f ${PKG}.conf ]; then
+# if test "${USER_INSTALL}" = "YES"; then
+# GHC_PKG_DB="--user"
+# else
+# GHC_PKG_DB="--global"
+# fi
+# ${GHC_PKG} update ${GHC_PKG_DB} "${PKG}.conf" \
+# || die "Registering the package ${PKG} failed"
+# fi
cd ../..
}

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
haskell-platform: haskell-platform (The Haskell Platform)
haskell-platform:
haskell-platform: The Haskell Platform is a comprehensive, robust development for
haskell-platform: programming in Haskell, which not only makes it trivial to get up
haskell-platform: and running with a full Haskell development environment, but also
haskell-platform: provides a comprehensive, standard base for both commercial and
haskell-platform: open source Haskell development that maximises interoperability
haskell-platform: and stability of your code.
haskell-platform:
haskell-platform: Homepage: http://hackage.haskell.org/platform/
haskell-platform: