Added the GHC official mirror as default
This commit is contained in:
parent
da58e66c1e
commit
067c0881a3
2 changed files with 39 additions and 31 deletions
63
bin/compile
63
bin/compile
|
@ -5,38 +5,45 @@ set -e
|
|||
|
||||
source $(dirname $0)/../scripts/functions
|
||||
|
||||
loginfo() { echo "Info: $*"; }
|
||||
error() { echo "Error: $*" >&2; exit 1; }
|
||||
|
||||
BUILD_DIR=$1
|
||||
echo "Info: BUILD_DIR=$BUILD_DIR"
|
||||
CACHE_DIR=$2
|
||||
echo "Info: CACHE_DIR=$CACHE_DIR"
|
||||
|
||||
## CHECK BUILDPACK_GHC_BASE_URL is set
|
||||
if [ "$BUILDPACK_GHC_BASE_URL" != "" ]; then
|
||||
arch=$(uname -m)
|
||||
ghcver=$GHC_BOOTSTRAP_VERSION
|
||||
if [ "$ghcver" == "" ]; then
|
||||
echo "Error: please set GHC_BOOTSTRAP_VERSION";
|
||||
exit 1;
|
||||
fi;
|
||||
bsdir=$CACHE_DIR/bootstrap
|
||||
ghcurl="$BUILDPACK_GHC_BASE_URL/$ghcver/ghc-$ghcver-$arch-unknown-linux.tar.bz2"
|
||||
echo "Info: bootstrap directory: ${bsdir}";
|
||||
echo "Info: bootstrap URL: $ghcurl";
|
||||
if [ -f "$bsdir.downloaded" ]; then
|
||||
echo "Info: already downloaded GHC bootstrap version ${ghcver}";
|
||||
else
|
||||
echo "Info: downloading GHC $ghcver form $ghcurl";
|
||||
$(downloadAndExtract $bsdir $ghcurl);
|
||||
touch $bsdir.downloaded;
|
||||
fi;
|
||||
|
||||
if [ -f "$bsdir.compiled" ]; then
|
||||
echo "Info: already compiled GHC bootstrap version ${ghcver}";
|
||||
else
|
||||
$(configureMakeInstall $bsdir/ghc-$ghcver $BUILD_DIR/bootstrap/ghc-$ghcver);
|
||||
touch $bsdir.compiled;
|
||||
fi;
|
||||
else
|
||||
echo "Error: please set BUILDPACK_GHC_BASE_URL";
|
||||
exit 1;
|
||||
if [ "$BUILDPACK_GHC_BASE_URL" = "" ]; then
|
||||
BUILDPACK_GHC_BASE_URL="http://www.haskell.org/ghc/dist"
|
||||
loginfo "BUILDPACK_GHC_BASE_URL is not set; use $BUILDPACK_GHC_BASE_URL"
|
||||
fi
|
||||
|
||||
## 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)
|
||||
ghcver=$GHC_BOOTSTRAP_VERSION
|
||||
bsdir=$CACHE_DIR/bootstrap
|
||||
ghcurl="$BUILDPACK_GHC_BASE_URL/$ghcver/ghc-$ghcver-$arch-unknown-linux.tar.bz2"
|
||||
|
||||
loginfo "bootstrap directory: ${bsdir}";
|
||||
loginfo "bootstrap URL: $ghcurl";
|
||||
|
||||
if [ -f "$bsdir.downloaded" ]; then
|
||||
loginfo "already downloaded GHC bootstrap version ${ghcver}";
|
||||
else
|
||||
loginfo "downloading GHC $ghcver from $ghcurl";
|
||||
$(downloadAndExtract $bsdir $ghcurl) && \
|
||||
touch $bsdir.downloaded;
|
||||
fi
|
||||
|
||||
if [ -f "$bsdir.compiled" ]; then
|
||||
loginfo "already compiled GHC bootstrap version ${ghcver}";
|
||||
else
|
||||
$(configureMakeInstall $bsdir/ghc-$ghcver $BUILD_DIR/bootstrap/ghc-$ghcver) && \
|
||||
touch $bsdir.compiled;
|
||||
fi
|
||||
|
|
|
@ -12,13 +12,14 @@ function clearEnvironment() {
|
|||
}
|
||||
|
||||
function downloadAndExtract() {
|
||||
mkdir -p $1 && curl $2 -o - | tar jxf - -C $1
|
||||
mkdir -p $1 && curl $2 -o - | tar xzf - -C $1
|
||||
}
|
||||
|
||||
function configureMakeInstall() {
|
||||
pushd $1;
|
||||
echo -n "Info: ./configure --prefix=$2 && make && make install";
|
||||
./configure --prefix=$2 && make && make install;
|
||||
cmd="./configure --prefix=$2 && make && make install"
|
||||
echo -n "Info: $cmd";
|
||||
eval $cmd
|
||||
echo "[OK]";
|
||||
popd;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue