Added the haskell platform
This commit is contained in:
parent
067c0881a3
commit
3be83f7ccf
2 changed files with 46 additions and 20 deletions
53
bin/compile
53
bin/compile
|
@ -5,45 +5,58 @@ set -e
|
||||||
|
|
||||||
source $(dirname $0)/../scripts/functions
|
source $(dirname $0)/../scripts/functions
|
||||||
|
|
||||||
loginfo() { echo "Info: $*"; }
|
|
||||||
error() { echo "Error: $*" >&2; exit 1; }
|
|
||||||
|
|
||||||
BUILD_DIR=$1
|
BUILD_DIR=$1
|
||||||
echo "Info: BUILD_DIR=$BUILD_DIR"
|
loginfo "BUILD_DIR=$BUILD_DIR"
|
||||||
CACHE_DIR=$2
|
CACHE_DIR=$2
|
||||||
echo "Info: CACHE_DIR=$CACHE_DIR"
|
loginfo "CACHE_DIR=$CACHE_DIR"
|
||||||
|
|
||||||
|
|
||||||
## CHECK BUILDPACK_GHC_BASE_URL is set
|
## CHECK BUILDPACK_GHC_BASE_URL is set
|
||||||
if [ "$BUILDPACK_GHC_BASE_URL" = "" ]; then
|
setIfUnset BUILDPACK_GHC_BASE_URL "http://www.haskell.org/ghc/dist"
|
||||||
BUILDPACK_GHC_BASE_URL="http://www.haskell.org/ghc/dist"
|
setIfUnset GHC_BOOTSTRAP_VERSION "7.0.4"
|
||||||
loginfo "BUILDPACK_GHC_BASE_URL is not set; use $BUILDPACK_GHC_BASE_URL"
|
setIfUnset HASKELL_PLATFORM_BASE_URL "http://lambda.haskell.org/platform/download"
|
||||||
fi
|
setIfUnset HASKELL_PLATFORM_VERSION "2011.4.0.0"
|
||||||
|
|
||||||
## CHECK GHC_BOOTSTRAP_VERSION is set
|
|
||||||
if [ "$GHC_BOOTSTRAP_VERSION" == "" ]; then
|
|
||||||
GHC_BOOTSTRAP_VERSION="7.0.4"
|
|
||||||
loginfo "GHC_BOOTSTRAP_VERSION is not set; use $GHC_BOOTSTRAP_VERSION"
|
|
||||||
fi
|
|
||||||
|
|
||||||
arch=$(uname -m)
|
arch=$(uname -m)
|
||||||
ghcver=$GHC_BOOTSTRAP_VERSION
|
ghcver=$GHC_BOOTSTRAP_VERSION
|
||||||
bsdir=$CACHE_DIR/bootstrap
|
bsdir=$CACHE_DIR/bootstrap
|
||||||
ghcurl="$BUILDPACK_GHC_BASE_URL/$ghcver/ghc-$ghcver-$arch-unknown-linux.tar.bz2"
|
ghcurl="$BUILDPACK_GHC_BASE_URL/$ghcver/ghc-$ghcver-$arch-unknown-linux.tar.gz"
|
||||||
|
platformver="$HASKELL_PLATFORM_VERSION"
|
||||||
|
platformurl="$HASKELL_PLATFORM_BASE_URL/$platver/haskell-platform-$platformver-tar.gz"
|
||||||
|
|
||||||
loginfo "bootstrap directory: ${bsdir}";
|
loginfo "bootstrap directory: ${bsdir}";
|
||||||
loginfo "bootstrap URL: $ghcurl";
|
loginfo "bootstrap URL: $ghcurl";
|
||||||
|
|
||||||
if [ -f "$bsdir.downloaded" ]; then
|
if [ -f "$bsdir.ghc.downloaded" ]; then
|
||||||
loginfo "already downloaded GHC bootstrap version ${ghcver}";
|
loginfo "already downloaded GHC bootstrap version ${ghcver}";
|
||||||
else
|
else
|
||||||
loginfo "downloading GHC $ghcver from $ghcurl";
|
loginfo "downloading GHC $ghcver from $ghcurl";
|
||||||
$(downloadAndExtract $bsdir $ghcurl) && \
|
$(downloadAndExtract $bsdir $ghcurl) && \
|
||||||
touch $bsdir.downloaded;
|
touch $bsdir.ghc.downloaded;
|
||||||
fi
|
fi
|
||||||
|
# GHC source is downloaded
|
||||||
|
|
||||||
if [ -f "$bsdir.compiled" ]; then
|
if [ -f "$bsdir.ghc.compiled" ]; then
|
||||||
loginfo "already compiled GHC bootstrap version ${ghcver}";
|
loginfo "already compiled GHC bootstrap version ${ghcver}";
|
||||||
else
|
else
|
||||||
$(configureMakeInstall $bsdir/ghc-$ghcver $BUILD_DIR/bootstrap/ghc-$ghcver) && \
|
$(configureMakeInstall $bsdir/ghc-$ghcver $BUILD_DIR/bootstrap/ghc-$ghcver) && \
|
||||||
touch $bsdir.compiled;
|
touch $bsdir.ghc.compiled;
|
||||||
fi
|
fi
|
||||||
|
# GHC is compiled
|
||||||
|
|
||||||
|
if [ -f "$bsdir.platform.downloaded" ]; then
|
||||||
|
loginfo "already downloaded GHC bootstrap version ${platformver}";
|
||||||
|
else
|
||||||
|
loginfo "downloading GHC $platformver from $platformurl";
|
||||||
|
$(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
|
||||||
|
$(configureMakeInstall $bsdir/platform-$platformver $BUILD_DIR/bootstrap/platform-$platformver) && \
|
||||||
|
touch $bsdir.platform.compiled;
|
||||||
|
fi
|
||||||
|
# Haskell platform is compiled is compiled
|
||||||
|
|
|
@ -1,3 +1,13 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
loginfo() { echo "Info: $*"; }
|
||||||
|
error() { echo "Error: $*" >&2; exit 1; }
|
||||||
|
|
||||||
|
setIfUnset() {
|
||||||
|
varname="$1"
|
||||||
|
defaultValue="$2"
|
||||||
|
eval "if [ \"\$$varname\" = \"\" ]; then $varname=$defaultValue; loginfo \"$varname unset; use \$$varname\"; fi"
|
||||||
|
}
|
||||||
|
|
||||||
function indent() {
|
function indent() {
|
||||||
c='s/^/ /'
|
c='s/^/ /'
|
||||||
|
@ -17,6 +27,8 @@ function downloadAndExtract() {
|
||||||
|
|
||||||
function configureMakeInstall() {
|
function configureMakeInstall() {
|
||||||
pushd $1;
|
pushd $1;
|
||||||
|
# create build directory
|
||||||
|
mkdir -p $2
|
||||||
cmd="./configure --prefix=$2 && make && make install"
|
cmd="./configure --prefix=$2 && make && make install"
|
||||||
echo -n "Info: $cmd";
|
echo -n "Info: $cmd";
|
||||||
eval $cmd
|
eval $cmd
|
||||||
|
@ -30,3 +42,4 @@ function mkCompilerDir() {
|
||||||
echo $compilerDir;
|
echo $compilerDir;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue