From c1be64d8dbbc336bc6d89fff9f35ac9c2ce687c9 Mon Sep 17 00:00:00 2001 From: Christoph Niethammer Date: Fri, 21 Jan 2011 00:06:59 +0000 Subject: [PATCH] Added build script for a local autotools toolchain. --- install_toolchain.sh | 120 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100755 install_toolchain.sh diff --git a/install_toolchain.sh b/install_toolchain.sh new file mode 100755 index 0000000..40270a6 --- /dev/null +++ b/install_toolchain.sh @@ -0,0 +1,120 @@ +#!/usr/bin/env bash + +# Installation script to build the autotools toolchain. +# Christoph Niethammer (C) 2011 + +set -e +set -x + +export ORIGDIR=`pwd` +export SIT_DIR=$(dirname "$ORIGDIR/$0") +echo $SIT_DIR + +export SRC_POOL=${HOME}/src +export WORKDIR=${HOME}/work + +PREFIX=$HOME/bin/local +MAKEOPTS="-j4" + + + +module load compiler/gnu/4.5 + +M4_VERSION=1.4.15 +BISON_VERSION=2.4.2 +LIBTOOL_VERSION=2.2.10 +AUTOCONF_VERSION=2.65 +AUTOMAKE_VERSION=1.11.1 + +function sit_fail() { + msg=$0 + echo "$msg" + exit 1 +} + +function sit_unpack() { + if [ ! -e ${SRC_POOL}/${A} ] + then + sit_fail "${SRC_POOL}/${A} doesn't exist" + fi + case "${A##*.}" in + bz2) + tar xfjv ${SRC_POOL}/${A} || sit_fail + ;; + gz|tgz) + tar xfzv ${SRC_POOL}/${A} || sit_fail + ;; + xz) + tar xfJv ${SRC_POOL}/${A} || sit_fail + ;; + *) + sit_fail "Archive format not recogized" + ;; + esac +} + +function sit_configure() { + cd ${BUILDDIR=} + ${SRCDIR}/configure --prefix=$PREFIX +} + +function sit_build() { + make $MAKEOPTS +} + +function sit_install() { + make install +} + +function sit_auto_install() { + if [ -d ${WORKDIR} ] + then + rm -rf ${WORKDIR} + fi + mkdir -p ${WORKDIR} + mkdir -p ${BUILDDIR} + cd ${WORKDIR} + sit_unpack + sit_configure + sit_build + sit_install +} + + +# install m4 +P=m4-${M4_VERSION} +A=${P}.tar.bz2 +export SRCDIR=${WORKDIR}/${P} +export BUILDDIR=${WORKDIR}/build +sit_auto_install + + +# install bison +P=bison-${BISON_VERSION} +A=${P}.tar.bz2 +export SRCDIR=${WORKDIR}/${P} +export BUILDDIR=${WORKDIR}/build +sit_auto_install + +# install libtool +P=libtool-${LIBTOOL_VERSION} +A=${P}.tar.gz +export SRCDIR=${WORKDIR}/${P} +export BUILDDIR=${WORKDIR}/build +sit_auto_install + +# install autoconf +P=autoconf-${AUTOCONF_VERSION} +A=${P}.tar.gz +export SRCDIR=${WORKDIR}/${P} +export BUILDDIR=${WORKDIR}/build +sit_auto_install + +# install automake +P=automake-${AUTOMAKE_VERSION} +A=${P}.tar.bz2 +export SRCDIR=${WORKDIR}/${P} +export BUILDDIR=${WORKDIR}/build +sit_auto_install + +exit 0