Added the GHC official mirror as default

This commit is contained in:
Yann Esposito (Yogsototh) 2012-04-13 09:53:17 +02:00
parent da58e66c1e
commit 067c0881a3
2 changed files with 39 additions and 31 deletions

View file

@ -5,38 +5,45 @@ 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" echo "Info: BUILD_DIR=$BUILD_DIR"
CACHE_DIR=$2 CACHE_DIR=$2
echo "Info: CACHE_DIR=$CACHE_DIR" echo "Info: CACHE_DIR=$CACHE_DIR"
## CHECK BUILDPACK_GHC_BASE_URL is set ## CHECK BUILDPACK_GHC_BASE_URL is set
if [ "$BUILDPACK_GHC_BASE_URL" != "" ]; then if [ "$BUILDPACK_GHC_BASE_URL" = "" ]; then
arch=$(uname -m) BUILDPACK_GHC_BASE_URL="http://www.haskell.org/ghc/dist"
ghcver=$GHC_BOOTSTRAP_VERSION loginfo "BUILDPACK_GHC_BASE_URL is not set; use $BUILDPACK_GHC_BASE_URL"
if [ "$ghcver" == "" ]; then fi
echo "Error: please set GHC_BOOTSTRAP_VERSION";
exit 1; ## CHECK GHC_BOOTSTRAP_VERSION is set
fi; if [ "$GHC_BOOTSTRAP_VERSION" == "" ]; then
bsdir=$CACHE_DIR/bootstrap GHC_BOOTSTRAP_VERSION="7.0.4"
ghcurl="$BUILDPACK_GHC_BASE_URL/$ghcver/ghc-$ghcver-$arch-unknown-linux.tar.bz2" loginfo "GHC_BOOTSTRAP_VERSION is not set; use $GHC_BOOTSTRAP_VERSION"
echo "Info: bootstrap directory: ${bsdir}"; fi
echo "Info: bootstrap URL: $ghcurl";
if [ -f "$bsdir.downloaded" ]; then arch=$(uname -m)
echo "Info: already downloaded GHC bootstrap version ${ghcver}"; ghcver=$GHC_BOOTSTRAP_VERSION
else bsdir=$CACHE_DIR/bootstrap
echo "Info: downloading GHC $ghcver form $ghcurl"; ghcurl="$BUILDPACK_GHC_BASE_URL/$ghcver/ghc-$ghcver-$arch-unknown-linux.tar.bz2"
$(downloadAndExtract $bsdir $ghcurl);
touch $bsdir.downloaded; loginfo "bootstrap directory: ${bsdir}";
fi; loginfo "bootstrap URL: $ghcurl";
if [ -f "$bsdir.compiled" ]; then if [ -f "$bsdir.downloaded" ]; then
echo "Info: already compiled GHC bootstrap version ${ghcver}"; loginfo "already downloaded GHC bootstrap version ${ghcver}";
else else
$(configureMakeInstall $bsdir/ghc-$ghcver $BUILD_DIR/bootstrap/ghc-$ghcver); loginfo "downloading GHC $ghcver from $ghcurl";
touch $bsdir.compiled; $(downloadAndExtract $bsdir $ghcurl) && \
fi; touch $bsdir.downloaded;
else fi
echo "Error: please set BUILDPACK_GHC_BASE_URL";
exit 1; 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 fi

View file

@ -12,13 +12,14 @@ function clearEnvironment() {
} }
function downloadAndExtract() { function downloadAndExtract() {
mkdir -p $1 && curl $2 -o - | tar jxf - -C $1 mkdir -p $1 && curl $2 -o - | tar xzf - -C $1
} }
function configureMakeInstall() { function configureMakeInstall() {
pushd $1; pushd $1;
echo -n "Info: ./configure --prefix=$2 && make && make install"; cmd="./configure --prefix=$2 && make && make install"
./configure --prefix=$2 && make && make install; echo -n "Info: $cmd";
eval $cmd
echo "[OK]"; echo "[OK]";
popd; popd;
} }