cabal-heroku-buildpack/bin/compile

72 lines
2.2 KiB
Text
Raw Permalink Normal View History

#!/usr/bin/env bash
# bin/compile BUILD_DIR CACHE_DIR
set -e
source $(dirname $0)/../scripts/functions
BUILD_DIR=$1
2012-04-13 08:39:54 +00:00
loginfo "BUILD_DIR=$BUILD_DIR"
CACHE_DIR=$2
2012-04-13 08:39:54 +00:00
loginfo "CACHE_DIR=$CACHE_DIR"
2012-04-13 08:39:54 +00:00
## CHECK BUILDPACK_GHC_BASE_URL is set
setIfUnset BUILDPACK_GHC_BASE_URL "http://www.haskell.org/ghc/dist"
setIfUnset GHC_BOOTSTRAP_VERSION "7.0.4"
setIfUnset HASKELL_PLATFORM_BASE_URL "http://lambda.haskell.org/platform/download"
setIfUnset HASKELL_PLATFORM_VERSION "2011.4.0.0"
arch=$(uname -m)
ghcver=$GHC_BOOTSTRAP_VERSION
bsdir=$CACHE_DIR/bootstrap
2012-04-13 12:24:32 +00:00
ghcurl="$BUILDPACK_GHC_BASE_URL/$ghcver/ghc-$ghcver-$arch-unknown-linux.tar.bz2"
2012-04-13 08:39:54 +00:00
platformver="$HASKELL_PLATFORM_VERSION"
2012-04-13 12:33:22 +00:00
platformurl="$HASKELL_PLATFORM_BASE_URL/$platformver/haskell-platform-$platformver.tar.gz"
loginfo "bootstrap directory: ${bsdir}";
loginfo "bootstrap URL: $ghcurl";
2012-04-13 08:39:54 +00:00
if [ -f "$bsdir.ghc.downloaded" ]; then
loginfo "already downloaded GHC bootstrap version ${ghcver}";
else
loginfo "downloading GHC $ghcver from $ghcurl";
$(downloadAndExtract $bsdir $ghcurl) && \
2012-04-13 08:39:54 +00:00
touch $bsdir.ghc.downloaded;
fi
2012-04-13 08:39:54 +00:00
# GHC source is downloaded
2012-04-13 08:39:54 +00:00
if [ -f "$bsdir.ghc.compiled" ]; then
loginfo "already compiled GHC bootstrap version ${ghcver}";
else
2012-04-13 12:51:10 +00:00
ghcdir="$bsdir/ghc-$ghcver"
ghcprefix="$BUILD_DIR/bootstrap/ghc-$ghcver"
$(configureMakeInstall $ghcdir $ghcprefix) && \
2012-04-13 08:39:54 +00:00
touch $bsdir.ghc.compiled;
fi
# GHC is compiled
2012-04-13 12:51:10 +00:00
export PATH="$ghcprefix/bin:$PATH"
export LIBRARY_PATH="$LIBRARY_PATH:$ghcprefix/lib"
export C_INCLUDE_PATH="$C_INCLUDE_PATH:$ghcprefix/include"
2012-04-13 08:39:54 +00:00
if [ -f "$bsdir.platform.downloaded" ]; then
loginfo "already downloaded GHC bootstrap version ${platformver}";
else
2012-04-13 12:33:22 +00:00
loginfo "downloading Haskell Platform $platformver from $platformurl";
2012-04-13 08:39:54 +00:00
$(downloadAndExtract $bsdir $platformurl) && \
touch $bsdir.platform.downloaded;
fi
# Haskell Platform source is downloaded
if [ -f "$bsdir.platform.compiled" ]; then
loginfo "already compiled GHC bootstrap version ${platformver}";
else
2012-04-13 12:51:10 +00:00
platformdir="$bsdir/haskell-platform-$platformver"
platformprefix="$BUILD_DIR/bootstrap/haskell-platform-$platformver"
$(configureMakeInstall $platformdir $platformprefix) && \
2012-04-13 08:39:54 +00:00
touch $bsdir.platform.compiled;
fi
2012-04-13 08:39:54 +00:00
# Haskell platform is compiled is compiled
2012-04-13 12:51:10 +00:00
export PATH="$platformprefix/bin:$PATH"