diff --git a/mvapich2_install.sh b/mvapich2_install.sh new file mode 100755 index 0000000..a995eeb --- /dev/null +++ b/mvapich2_install.sh @@ -0,0 +1,146 @@ +#!/bin/sh +# installation script for Open MPI +# +# Christoph Niethammer (C) 2011 +# + +# exit on any error! +set -e + +# directory containing the source tar files +SRC_POOL="$HOME/src" + +# basic installation directory +PREFIX_BASE=${PREFIX_BASE:=$HOME/bin} + +# compiler to use +# (gnu|intel|pgi) +COMPILER=${COMPILER:=gnu} +# use specific compiler version +COMPILER_VERSION=${COMPILER_VERSION:=} + +# package to build +CATEGORY="mpi" +PACKAGE="mvapich2" +VERSION="1.6rc2" + +# add a descriptor at the end of the installation path e.g. for special config options etc. +PACKAGE_DESCRIPTOR=${PACKAGE_DESCRIPTOR:+-$PACKAGE_DESCRIPTOR} + +# Archive A and package name P +# archive can be tar.bz2 or tar.gz file +A=${PACKAGE}-${VERSION}.tgz +P=${PACKAGE}-${VERSION} + +# If you want to use the CC, CXX, FC or F77 variables for the compilers put the following +# below the compiler loading section! +# Other interesting configure options: +#--with-file-system=lustre +#--enable-sharedlibs=gcc \ +CONFIGURE_OPTS="\ + " +MAKEOPTS="-j2" + + +# Compiler specifications + +if [ "x${COMPILER_VERSION}" != "x" ] +then + COMPILER_MODULE=compiler/${COMPILER}/${COMPILER_VERSION} +else + COMPILER_MODULE=compiler/${COMPILER} +fi + +echo "Loading compiler module ${COMPILER_MODULE}" +module load ${COMPILER_MODULE} + +case ${COMPILER} in + gnu) + COMPILER_OPTS="CC=gcc CXX=g++ FC=gfortran F77=gfortran" + COMPILER_VERSION=$(gcc -dumpversion) + ;; + intel) + COMPILER_OPTS="CC=icc CXX=icpc FC=ifort F77=ifort" + COMPILER_VERSION=$(icc -dumpversion) + ;; + pgi) + COMPILER_OPTS="CC=pgcc CXX=pgCC FC=pgf95 F77=pgf77" + COMPILER_VERSION=$(pgcc -V | awk '/pgcc/{print $2}') + ;; + *) + echo "Unknown compiler ${COMPILER}." + ;; +esac +# make the compiler variables CC, CXX, FC and F77 available +export ${COMPILER_OPTS} + +# construct the final installation directory path +PREFIX="${PREFIX_BASE}/${CATEGORY}/${PACKAGE}/${VERSION}-${COMPILER}-${COMPILER_VERSION}${PACKAGE_DESCRIPTOR}" + +# basepath for the working directory +ORIGDIR="${HOME}/work" +# final working directory path +WORKDIR=${ORIGDIR}/${CATEGORY}/${PACKAGE}/${VERSION}-${COMPILER}-${COMPILER_VERSION}${PACKAGE_DESCRIPTOR} +# path to the source code directory +SRCDIR=${WORKDIR}/${P} +# build directory (should be different from source directory): +BUILDDIR=${SRCDIR}/build + +echo "Using workir $WORKDIR" +echo "Building with PREFIX=$PREFIX" + +umask 0002 + + +if [ -d ${WORKDIR} ] +then + rm -rf ${WORKDIR} +fi + +echo "Creating working dir ${WORKDIR}" +mkdir -p ${WORKDIR} +cd ${WORKDIR} + +echo "Extracting sources" +case "${A##*.}" in + bz2) + tar xfjv ${SRC_POOL}/${A} + ;; + gz|tgz) + tar xfzv ${SRC_POOL}/${A} + ;; + *) + echo "Archive format not recogized" + exit + ;; +esac + + +mkdir ${BUILDDIR} +cd ${BUILDDIR} +echo "Running configure" +${SRCDIR}/configure --prefix=${PREFIX} ${CONFIGURE_OPTS} ${COMPILER_OPTS} 2>&1 | tee configure.log +echo "Running make" +make ${MAKEOPTS} 2>&1 | tee make.log + +module unload compiler + +cat <&1 | tee make_install.log +bzip2 *.log +mv *.log.bz2 ${PREFIX}/ +cd ${PREFIX} +chmod -R g+rwX . +chmod -R o+rX . +# Finally do not forget to provide a module file! +############################################################################## +EOF + +exit 0 + diff --git a/openmpi_install.sh b/openmpi_install.sh index 507ec8e..08a9f87 100755 --- a/openmpi_install.sh +++ b/openmpi_install.sh @@ -111,7 +111,7 @@ case "${A##*.}" in bz2) tar xfjv ${SRC_POOL}/${A} ;; - gz) + gz|tgz) tar xfzv ${SRC_POOL}/${A} ;; *)