#!/bin/sh
# Build Ghc for Slackware (by arossato@istitutocolli.org)
CWD=`pwd` 

VERSION=6.8.1
ARCH=${ARCH:-i486}
BUILD=${BUILD:-1ar}

if [ "$ARCH" = "i386" ]; then
  AOPTS="-march=i386 -mcpu=i686"
elif [ "$ARCH" = "i486" ]; then
  AOPTS="-march=i486 -mtune=i686"
elif [ "$ARCH" = "s390" ]; then
  AOPTS=""
elif [ "$ARCH" = "x86_64" ]; then
  AOPTS=""
fi

PKG=/tmp/package-ghc
rm -rf $PKG
mkdir $PKG
cd /tmp
rm -rf ghc-6.4.2
tar xjvf $CWD/ghc-$VERSION-src.tar.bz2
#tar xjvf $CWD/ghc-$VERSION-src-extralibs.tar.bz2
cd `basename ghc-$VERSION i`

chown -R root:root .
CFLAGS="-O2 $AOPTS" \
./configure \
  --prefix=/usr \
  $ARCH-slackware-linux
make -j 8
make html
( cd libraries ; make doc )
make DESTDIR=$PKG install
make DESTDIR=$PKG install-docs
( cd libraries/Cabal ; make -f Makefile clean ; make -f Makefile doc )

( cd $PKG
  find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
  find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
)
gzip -9 $PKG/usr/man/man?/*

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
requiredbuilder -y $PKG

mkdir -p $PKG/usr/doc/ghc-$VERSION

cp -a \
  ANNOUNCE HACKING LICENSE README VERSION \
  $PKG/usr/doc/ghc-$VERSION
cp -r docs/users_guide/users_guide $PKG/usr/share/doc/ghc/
cp -r libraries/Cabal/doc/users-guide $PKG/usr/share/doc/ghc/Cabal
ln -s /usr/share/doc/ghc/Cabal/t1.html $PKG/usr/share/doc/ghc/Cabal/index.html
cp -r libraries/*.html $PKG/usr/share/doc/ghc/libraries
cp -r libraries/*.css $PKG/usr/share/doc/ghc/libraries
cp -r libraries/*.gif $PKG/usr/share/doc/ghc/libraries
cp -r libraries/*.js $PKG/usr/share/doc/ghc/libraries
ln -s /usr/share/doc/ghc $PKG/usr/doc/ghc-$VERSION/html

cd $PKG
makepkg -l y -c n ../ghc-$VERSION-$ARCH-$BUILD.tgz
