HaRe-0.6: tools/configure
#!/bin/sh
## Note: The Makefile automatically invokes this script if necessary.
## This configure script does two things at the moment:
##
## 1. Checks that GHC is available (should also check for version >=5)
##
## 2. Picks a make tool. Humake is preferred if available
## (except under Darwin), ghc --make is used otherwise.
##
## The result is recorded as links to scripts in the script/ subdirectory.
## Various Makefiles refer to these scripts.
### Auxiliary functions ########################################################
giveup() {
echo "$@"
echo "Giving up."
exit 1
}
qwhich() {
which "$@" 2>/dev/null
}
### Check that GHC is available ################################################
GHC=${GHC-ghc}
ghc=`${GHC} --numeric-version`
[ -n "$ghc" ] || giveup "${GHC} doesn't seem to work."
# Check that the version number is >=5...
echo "Using GHC version $ghc (the command is ${GHC})"
### Check which make tools are available #######################################
ghcxmake=`qwhich ghcxmake`
if [ "${USE_HUMAKE-yes}" != "yes" ] ; then
echo "Not using Humake"
elif [ `uname` = Darwin ]; then
echo "Humake is broken under Darwin (Mac OS X), skipping test."
else
humake=`qwhich humake`
fi
[ -n "$humake" ] && ghumake=`qwhich ghumake`
[ -n "$ghumake" ] && ghuxmake=`qwhich ghuxmake`
### Pick make scripts ##########################################################
echo -n "Compiling plain Haskell programs with: "
if [ -n "$ghumake" ] ; then
hsmake=myghumake
echo "ghumake (Humake)"
else
hsmake=myghc--make
echo "ghc --make"
fi
echo -n "Compiling Haskell programs that use Fudgets with: "
if [ -n "$ghuxmake" ] ; then
hsfudmake=myghuxmake
echo "ghuxmake (Humake)"
elif [ -n "$ghcxmake" ] ; then
hsfudmake=myghcxmake
echo "ghcxmake (ghc --make)"
else
echo "found no suitable tool!"
#giveup ...
fi
### Checking for InternetLib ###################################################
I=InternetLib
B=pfe/Browser
L=/usr/local/lib
P=package.conf
[ -r "$B/$I/$P" ] || {
if [ -r "$L/$I/$P" ] ; then
echo "Using InternetLib found in $L"
ln -s $L/$I $B/$I
else
echo "Didn't find InternetLib (in $L)."
echo "Manually install it (in $L) or create a link to it in $B"
fi
}
### Creating links to scripts ##################################################
cd scripts
rm -f hsmake.sh
ln -s "$hsmake" hsmake.sh
[ -n "$hsfudmake" ] && {
rm -f hsfudmake.sh
ln -s "$hsfudmake" hsfudmake.sh
}
### Done! ######################################################################