Commit graph

196 commits

Author SHA1 Message Date
Muhammad Usman Saleem
8bfffc5fe9 #!/bin/bash -l
#
# Install script inspired by the ebuild system of Gentoo Linux
#
# Christoph Niethammer <niethammer@hlrs.de> (C) 2011-2013
#
 
# exit on any error!
set -e
# for debugging:
# set -x 

# Reading in execution option
SIT_RUN_OPTION=$2
if [[ -n $SIT_RUN_OPTION ]] ; then
	echo "Executing with option: $SIT_RUN_OPTION"
else
	echo "Default execution"
fi

SIT_PATH=$(dirname $PWD/$0)
SIT_CONFIG_FILE=$SIT_PATH/etc/sit.conf
SIT_USER_CONFIG_FILE=$HOME/.sit

# Reading in user configuration file if it exists
if [[ -e $SIT_USER_CONFIG_FILE ]] ; then
    source $SIT_USER_CONFIG_FILE
fi
# Reading in global configuration file
if [[ -e $SIT_CONFIG_FILE ]] ; then
    source $SIT_CONFIG_FILE
fi
source "$SIT_PATH/functions.sh"

sit_countdown 1

# identify platform manually if no environment variable was set
PLATFORM=${PLATFORM:=$SITE_PLATFORM_NAME}
if [ -z $PLATFORM ]; then
    sit_info "Unknown platform using default platform '${DEFAULT_PLATFORM}' configuration"
    PLATFORM="${DEFAULT_PLATFORM}"
fi

sit_info "Platform: $PLATFORM"

# compiler to use
# (gnu|intel|pgi)
COMPILER=${COMPILER:=${DEFAULT_COMPILER}}
# use specific compiler version
COMPILER_VERSION=${COMPILER_VERSION:=}


# add a descriptor at the end of the installation path e.g. for special config options etc.
PACKAGE_DESCRIPTOR=${PACKAGE_DESCRIPTOR:+-$PACKAGE_DESCRIPTOR}


# Compiler specifications
COMPILER_CONFIG_FILE="$SIT_PATH/etc/platform-configs/${PLATFORM}/compiler/${COMPILER}"
if [ -e $COMPILER_CONFIG_FILE ] ; then
    source $COMPILER_CONFIG_FILE
else
    sit_fail "Could not find configuration file for compiler '${COMPILER}' on platform '${PLATFORM}'."
fi


if [ "$COMPILER" == "system" ] ; then
    echo "Using system default compiler"
    COMPILER="" # prevent any compiler specs in the prefix
else 
    case $PLATFORM in
        hermit|hermit1)
            module swap $(module list -l 2>&1 | awk '/^PrgEnv-/{print $1}') PrgEnv-${COMPILER}
            if [ ! -z "$COMPILER_VERSION" ] ; then
                if [ "${COMPILER}" == "gnu" ] ; then
                    module swap gcc gcc/$COMPILER_VERSION
                else
                    module swap $COMPILER $COMPILER/$COMPILER_VERSION
                fi
            fi
            ;;
        laki|*)
            if [ -z "$COMPILER_VERSION" ] ; then
                COMPILER_MODULE=compiler/${COMPILER}
            else
                COMPILER_MODULE=compiler/${COMPILER}/${COMPILER_VERSION}
            fi
            echo "Loading compiler module ${COMPILER_MODULE}"
            module load ${COMPILER_MODULE}
            ;;
    esac
fi

if [ ! -z "${COMPILER}" ] ; then
    # reevaluate compiler version
    COMPILER_VERSION=$(eval "$COMPILER_VERSION_CMD")
fi
# make the compiler variables CC, CXX, FC and F77 available
if [ ! -z "$COMPILER_OPTS" ] ; then  
    echo "Compiler env: ${COMPILER_OPTS}"
    export ${COMPILER_OPTS}
fi
if [ ! -z $COMPILER ] ; then
    echo "Using compiler: $COMPILER version: $COMPILER_VERSION"
fi

if [ ! -z "$MPI" ] ; then 
    MPI_MODULE="mpi/$MPI"
    if [ ! -z "$MPI_VERSION" ] ; then
        MPI_VERSION_NUM=${MPI_VERSION%%-*}
        case $MPI in
            impi)
                MPI_MODULE=${MPI_MODULE}${MPI_VERSION_NUM:+"/${MPI_VERSION_NUM}"}
                ;;
            *)
                MPI_MODULE=${MPI_MODULE}${MPI_VERSION_NUM:+"/${MPI_VERSION_NUM}-$COMPILER-$COMPILER_VERSION"}
                ;;
        esac
    fi  
    echo "Loading MPI module ${MPI_MODULE}"
    module load $MPI_MODULE

    case $COMPILER in
	intel)
            if [[ $MPI == "impi" ]] ; then
		MPICC="mpiicc"
		MPICXX="mpiicpc"
		MPIFC="mpiifort"
            else
		MPICC="mpicc"
		MPICXX="mpicxx"
		MPIFC="mpif90"
            fi
	    ;;
	gnu|*)
	    MPICC="mpicc"
	    MPICXX="mpicxx"
	    MPIFC="mpif90"
	    ;;
    esac
    echo "MPI compiler env: MPICC=$MPICC, MPICXX=$MPICXX, MPIFC=$MPIFC"
    MPI_DIR=${MPI_DIR:=$(dirname $(dirname $(which $MPICC)))}
fi

SCLASSFILE=$1
ACTION=$2

if [ -f $SCLASS_DIR/$SCLASSFILE ] ; then
    source $SCLASS_DIR/$SCLASSFILE
else
    sit_fail "Could not find file $SCLASS_DIR/$SCLASSFILE"
fi

PACKAGENAME=${PACKAGENAME:=$PACKAGE}

# construct the final installation directory path
if [ -z $PREFIX ] ; then
PREFIX="${PREFIX_BASE}/${CATEGORY}/${PACKAGE}/${VERSION}"
PREFIX_SUFFIX=${MPI:+"-$MPI"}${MPI_VERSION_NUM:+"-$MPI_VERSION_NUM"}
PREFIX_SUFFIX=$PREFIX_SUFFIX${COMPILER:+"-$COMPILER"}${COMPILER_VERSION:+"-$COMPILER_VERSION"}
PREFIX_SUFFIX=$PREFIX_SUFFIX${PACKAGE_DESCRIPTOR}

PREFIX=$PREFIX${PREFIX_SUFFIX:+"$PREFIX_SUFFIX"}
fi

# final working directory path
WORKDIR=${WORKDIR_BASE}/${CATEGORY}/${PACKAGE}/${VERSION}$PREFIX_SUFFIX

# path to the source code directory
SRCDIR=${WORKDIR}/${P}

# build directory (should be different from source directory):
BUILDDIR=${WORKDIR}/build

# logfile directory
LOGDIR=${WORKDIR}


# source the package class file a second time, so we can modify variables 
# using their default values. (Defaults depend on other vairables in 
# the class file like CATEGORY or PACKAGE)
source $SCLASS_DIR/$SCLASSFILE

echo "Package name:        $PACKAGENAME"
echo "Installation PREFIX: $PREFIX"
echo "Working dir:         $WORKDIR"
echo "Source dir:          $SRCDIR"
echo "Build dir:           $BUILDDIR"
echo "Logfile dir:         $LOGDIR"

sit_countdown 3

# if working dir already exists and execution option is Default then remove
# previous working directory and create new
if [[ -d ${WORKDIR} && -z $SIT_RUN_OPTION ]] ; then
    sit_info "Removing existing working directory ${WORKDIR}"
    sit_countdown 5
    rm -rf ${WORKDIR}
fi

if [ ! -d ${WORKDIR} ] ; then
	mkdir -p ${WORKDIR}
	mkdir -p ${BUILDDIR}
fi

if [ ! -z ${LOGDIR} ] ; then
    mkdir -p ${LOGDIR}
else
# TODO: this is dangerous as we compress and copy all *.log files inside LOGDIR!
    LOGDIR="/tmp"
fi


case $SIT_RUN_OPTION in
"sitinfo")
sit_sitinfo >> "$LOGDIR/sit_cmd.log"
;;
"unpack")
sit_unpack    2>&1 | tee "$LOGDIR/unpack.log";       ( exit ${PIPESTATUS[0]} )
;;
"prepare")
sit_prepare   2>&1 | tee "$LOGDIR/prepare.log";      ( exit ${PIPESTATUS[0]} )
;;
"configure")
sit_configure 2>&1 | tee "$LOGDIR/configure.log";    ( exit ${PIPESTATUS[0]} )
;;
"build")
sit_build     2>&1 | tee "$LOGDIR/make.log";         ( exit ${PIPESTATUS[0]} )
;;
"pretest")
sit_pretest   2>&1 | tee "$LOGDIR/pretest.log";      ( exit ${PIPESTATUS[0]} )
;;
"install")
sit_install   2>&1 | tee "$LOGDIR/make_install.log"; ( exit ${PIPESTATUS[0]} )
;;
"posttest")
sit_posttest  2>&1 | tee "$LOGDIR/posttest.log";     ( exit ${PIPESTATUS[0]} )
;;
"postinst")
sit_postinst  2>&1 | tee "$LOGDIR/postinst.log";     ( exit ${PIPESTATUS[0]} )
;;
"copy_logs")
sit_copy_logs
;;
"setperms")
sit_setperms
;;
"")
sit_sitinfo >> "$LOGDIR/sit_cmd.log"
sit_unpack    2>&1 | tee "$LOGDIR/unpack.log";       ( exit ${PIPESTATUS[0]} )
sit_prepare   2>&1 | tee "$LOGDIR/prepare.log";      ( exit ${PIPESTATUS[0]} )
sit_configure 2>&1 | tee "$LOGDIR/configure.log";    ( exit ${PIPESTATUS[0]} )
sit_build     2>&1 | tee "$LOGDIR/make.log";         ( exit ${PIPESTATUS[0]} )

sit_pretest   2>&1 | tee "$LOGDIR/pretest.log";      ( exit ${PIPESTATUS[0]} )
sit_install   2>&1 | tee "$LOGDIR/make_install.log"; ( exit ${PIPESTATUS[0]} )
sit_posttest  2>&1 | tee "$LOGDIR/posttest.log";     ( exit ${PIPESTATUS[0]} )
sit_postinst  2>&1 | tee "$LOGDIR/postinst.log";     ( exit ${PIPESTATUS[0]} )
sit_copy_logs
sit_setperms
;;
*)
echo "Argument $SIT_RUN_OPTION unrecognized."
esac


#sit_sitinfo >> "$LOGDIR/sit_cmd.log"
#sit_unpack    2>&1 | tee "$LOGDIR/unpack.log";       ( exit ${PIPESTATUS[0]} )
#sit_prepare   2>&1 | tee "$LOGDIR/prepare.log";      ( exit ${PIPESTATUS[0]} )
#sit_configure 2>&1 | tee "$LOGDIR/configure.log";    ( exit ${PIPESTATUS[0]} )
#sit_build     2>&1 | tee "$LOGDIR/make.log";         ( exit ${PIPESTATUS[0]} )

#sit_pretest   2>&1 | tee "$LOGDIR/pretest.log";      ( exit ${PIPESTATUS[0]} )
#sit_install   2>&1 | tee "$LOGDIR/make_install.log"; ( exit ${PIPESTATUS[0]} )
#sit_posttest  2>&1 | tee "$LOGDIR/posttest.log";     ( exit ${PIPESTATUS[0]} )
#sit_postinst  2>&1 | tee "$LOGDIR/postinst.log";     ( exit ${PIPESTATUS[0]} )
#sit_copy_logs
#sit_setperms  


cat <<EOF
##############################################################################
# IMPORTANT!
##############################################################################
# Do not forget to provide a module file!
##############################################################################
EOF

exit 0
2024-03-28 02:45:19 +01:00
8fdc167748 Added sit class file for Open MPI 1.8.1. 2024-03-28 02:45:19 +01:00
Elke Flehmig
9c5f2fc2ab new scriptfile for latest gcc 4.9.0 version 2024-03-28 02:45:19 +01:00
e2fbecc5ad Sit class file for MVAPICH2-2.0rc2. 2024-03-28 02:45:19 +01:00
733e714d85 Added packages to build any nanox and mcxx version -> together compiler/ompss 2024-03-28 02:45:19 +01:00
d8612f979f Sit class package for Open MPI trunk.
* developer headers
* static and shared libs
* Java bindings
2024-03-28 02:45:19 +01:00
Elke Flehmig
43ad4b90a4 removed old versions 2024-03-28 02:45:19 +01:00
Elke Flehmig
5a62f0006a version updates 2024-03-28 02:45:19 +01:00
Elke Flehmig
25743acc0e version update
ssThis line, and those below, will be ignored--

AM   gcc/gcc-4.8.2
AM   gcc/gcc-4.7.3
2024-03-28 02:45:19 +01:00
Elke Flehmig
4bf84c640e version update
ssThis line, and those below, will be ignored--

M    trilinos/11.4.3
AM   trilinos/11.6.1
2024-03-28 02:45:19 +01:00
04affb59fe Added sit class file for Open MPI 1.8 2024-03-28 02:45:19 +01:00
Elke Flehmig
c3387454a7 obsolete outdated version 2024-03-28 02:45:19 +01:00
bcf2596c49 Added sit class file for MVAPICH2-2.0b 2024-03-28 02:45:19 +01:00
2b54d2a43e Added sit class file for MVAPICH2-1.9. 2024-03-28 02:45:19 +01:00
de52f45532 Added sit class file for Open MPI 1.7.4 2024-03-28 02:45:19 +01:00
Elke Flehmig
a02204d66d update of package scripts for new versions 2024-03-28 02:45:19 +01:00
Elke Flehmig
37d7badfaf update for mpi 1.6.5 version 2024-03-28 02:45:19 +01:00
Elke Flehmig
c0992ff68e update for newer mpi version 1.6.5 2024-03-28 02:45:19 +01:00
a386417f32 Modified check_modules.sh script running the mpi_test_suite for allOpen MPI instalaltions. 2024-03-28 02:45:19 +01:00
fbddead2c0 Added sit class file for Open MPI 1.7.3 2024-03-28 02:45:19 +01:00
Elke Flehmig
6febb84ecb Deleted obsolete parmetis versions 2024-03-28 02:45:19 +01:00
Elke Flehmig
75e0f73deb Deleted obsolete metis versions 2024-03-28 02:45:19 +01:00
547d674482 packages/temanejo: fixed filename of omps plugin 2024-03-28 02:45:19 +01:00
Elke Flehmig
84a7e379ee added gcc 4.8.1 script 2024-03-28 02:45:19 +01:00
Elke Flehmig
27f32418be added sit command as comment, new package scripts 2024-03-28 02:45:19 +01:00
fc389d5a33 Added sit class file for Vampirtrace 5.14.4.
Initial OpenACC configuration for Hermit according to vampirtrace support,
but not working properly at the moment.
2024-03-28 02:45:19 +01:00
45013b528f Added debugger/temanejo
temanejo-1.0_any allows to set  on the command line and will work for allmost any version.
2024-03-28 02:45:19 +01:00
a1b6715971 revised scalasca-1.4.2 2024-03-28 02:45:19 +01:00
ec93df37a0 Minor update removing unused code and adding log output. 2024-03-28 02:45:19 +01:00
03eefdae92 Removed patch from nanox sit class file and wait for patch in the nanox source. 2024-03-28 02:45:19 +01:00
5bfef39d85 Skipp already applied patch. 2024-03-28 02:45:19 +01:00
22368253bc Updated nanox sit class file. 2024-03-28 02:45:19 +01:00
Elke Flehmig
3b5d70ac82 new scripts for scotch installation 2024-03-28 02:45:19 +01:00
604d15e1ec Added sit class file for Open MPI 1.7.2. 2024-03-28 02:45:19 +01:00
c34ef45cc4 Added sit class file for Open MPI 1.6.5. 2024-03-28 02:45:19 +01:00
Elke Flehmig
65f0ea276e scripts for new versions of numlib packages 2024-03-28 02:43:58 +01:00
53415f9852 Added sit class file for Vampirtrace 5.14.3 gpu1 including accelerator patches. 2024-03-28 02:43:58 +01:00
72f83aebe4 Added sit class file for Score-P 1.1.1. 2024-03-28 02:43:58 +01:00
90b8fed4b8 Added sit class file for mercurium 1.99.0-2013-04-25. 2024-03-28 02:43:58 +01:00
2e1b9a1746 Added sit class file for nanox 0.7a-2013-04-22. 2024-03-28 02:43:58 +01:00
Elke Flehmig
a4f0318828 added sit script for metis 2024-03-28 02:43:58 +01:00
Elke Flehmig
d165e6c0f9 added patch for Makefile on cray 2024-03-28 02:43:58 +01:00
Elke Flehmig
616362b6f3 added parts for cray installation 2024-03-28 02:43:58 +01:00
Elke Flehmig
d20de5fd01 sit script and patch file for parmetis 2024-03-28 02:43:58 +01:00
Elke Flehmig
6a027ec448 removed outdated version of petsc 2024-03-28 02:43:58 +01:00
48e9c910c6 Added sit class file for Open MPI 1.7.1. 2024-03-28 02:43:58 +01:00
Elke Flehmig
72187eb175 added missing configure option for c-support 2024-03-28 02:43:58 +01:00
6809c041b4 Added sit class file for Open MPI 1.7. 2024-03-28 02:43:58 +01:00
Elke Flehmig
a39084cb49 sit script for latest petsc 3.3-p6, for both impi/intel and openmpi/gnu configurations 2024-03-28 02:43:58 +01:00
f087f698ac Sit class file for VampirTrace 5.14.2 2024-03-28 02:43:58 +01:00
Elke Flehmig
c16ffefcc0 make check muss doch in src_pretest stehen...Kommentar zu autogen eingefuegt 2024-03-28 02:43:58 +01:00
Elke Flehmig
54b20efa31 make check ausfuehren (nach make, vor make install) 2024-03-28 02:43:58 +01:00
660bd53efc Fixed problem missing makefile. 2024-03-28 02:43:58 +01:00
9e7aca27d0 Fixing dependencies for newer GMP, MPFR and MPC versions on laki. 2024-03-28 02:43:58 +01:00
4ab85784a0 Calling installer in src_install() instead of src_build(). 2024-03-28 02:43:58 +01:00
44aefa4cd3 Sit class file for pgi 13.2. 2024-03-28 02:43:58 +01:00
c937a952ae Added sit class file for GCC 4.7.2. 2024-03-28 02:43:58 +01:00
162dc8262f Added sit class file for Open MPI 1.6.4. 2024-03-28 02:43:58 +01:00
42ba246ad3 Added sit class file for ayudame. 2024-03-28 02:43:58 +01:00
238dbd0c6c Use new platform configuration for Cray XE systems. 2024-03-28 02:43:58 +01:00
b69b7f842a Sit class file for Vampirtrace-5.14.1.
Enable --with-papi=DIR to fix problems with system PAPI installation on Laki.
2024-03-28 02:43:58 +01:00
4bc63ebc73 Removed superfluous code. 2024-03-28 02:43:58 +01:00
7bbaec17c7 Cosmetic line break chance. 2024-03-28 02:43:58 +01:00
a44e3ed0b9 Fixed probelm with MPI process startup in PETSC 3.3-p5 pretest. 2024-03-28 02:43:58 +01:00
21c56d8cc1 Sit class file for PETSC 3.3-p5. 2024-03-28 02:43:58 +01:00
9bd98e935b Don't use module command inside package file; updated url. 2024-03-28 02:43:58 +01:00
3fb95675a9 Rename instrumentation option to extrae, enable ayudame by default, build static and shared libs. 2024-03-28 02:43:58 +01:00
65ebef950e Don't use module command inside package file, dependencies shall be handled externally. 2024-03-28 02:43:58 +01:00
91e3222f6a Sit class file for extrae 2.3. 2024-03-28 02:43:58 +01:00
e0b527b1d8 New sit class file for Vampirtrace 5.14. 2024-03-28 02:43:58 +01:00
2312b7db1f Fixed typo in version number. 2024-03-28 02:43:58 +01:00
6882a37221 Update scalasca 1.4.1, add 1.4.2 2024-03-28 02:43:58 +01:00
ff51320aa2 Added sit class file for Open MPI 1.6.3. 2024-03-28 02:43:58 +01:00
96c7122765 Sit class file for extrae-2.2.1 2024-03-28 02:43:58 +01:00
943a04e722 Added sit class file for openmpi-1.6.2. 2024-03-28 02:43:58 +01:00
fd2c67d3c1 Added sit class file for openmpi-1.6.1. 2024-03-28 02:43:58 +01:00
6cd92f1ace Removed sit class file for mvapich2-1.8 as it was replaced by 1.8-r5435 2024-03-28 02:43:58 +01:00
dc204cad82 Corrected copyright note. 2024-03-28 02:43:58 +01:00
ae08a4b02b New sit class file for MVAPICH2-1.8-r5435. 2024-03-28 02:43:58 +01:00
1c03d248b9 New sit class file for vampirtrace-5.13. 2024-03-28 02:43:58 +01:00
114d866f51 Enable experimental Fortran support for Mercurium compiler. 2024-03-28 02:43:58 +01:00
6822294c23 Added sit class file for likwid-2.3.0. 2024-03-28 02:43:58 +01:00
bc81f90450 Added sit class file for gcc 4.6.3. 2024-03-28 02:43:58 +01:00
2199cc777f Added package for scalasca-1.4.1 2024-03-28 02:43:58 +01:00
ff562ceb7e Updated vampirtrace-5.12.2 sit class file for hermit1; minor bugfixes. 2024-03-28 02:43:56 +01:00
1848b6d659 Added sit class file for vampirtrace-5.12.2. 2024-03-28 02:43:56 +01:00
d690a80aac Added sit class file for fftw-3.3.2. 2024-03-28 02:43:56 +01:00
6986ae0c6c Added sit class file for parallel-netcdf-1.2.0. 2024-03-28 02:43:56 +01:00
f57365dbf0 Updatet sit class file for netcdf-4.1.3. 2024-03-28 02:43:56 +01:00
b63cc2e27a Updatet sit class file for netcdf-4.1.3. 2024-03-28 02:43:56 +01:00
264ccc6143 Added sit class file for netcdf-4.1.3 2024-03-28 02:43:56 +01:00
4b05d29e5a Added sit class file for openmpi-1.6. 2024-03-28 02:43:56 +01:00
393868777a Added sit class file for MVAPICH2-1.8 2024-03-28 02:43:56 +01:00
377a0cffdd Added sit class file for openmpi-1.4.5. 2024-03-28 02:43:56 +01:00
5bcc7e44a7 Added sit class file for openmpi-1.5.5. 2024-03-28 02:43:56 +01:00
317b33ee8c Added sit class files for Berkeley UPC 2.14.0 translator and compiler. 2024-03-28 02:43:56 +01:00
e8dc05c1db Added sit class file for mvapich2-1.7. 2024-03-28 02:43:56 +01:00
5de871bfb7 Added sit class file for mpich2 missing in the previous commit.
Moving a file into a directory of the same name as the file does not work
with git svn plugin as git handles directories in a different way than svn.
2024-03-28 02:43:56 +01:00
068686efb3 Moved sit class files into sub directories for all the packages.
Moved packages into sub directories easing the use of additional
installation files (e.g. patches).

Calling sit now with the following syntax:

[OPTIONS] ./sit <category>/<package>/<package>-<version>
2024-03-28 02:43:56 +01:00
4d98166827 Added sit class file for Marmot 2.4.0. 2024-03-28 02:43:56 +01:00