sit/packages/numlib/trilinos/11.12.1
2024-03-28 03:11:44 +01:00

118 lines
3.7 KiB
Bash
Executable file

#!/bin/sh
# sit class file
#
# Christoph Niethammer <niethammer@hlrs.de> (C) 2012
#
# sit command:
# PREFIX_BASE=/opt ./sit numlib/trilinos/11.12.1
#
# sit command for trilinos with mpi:
# PREFIX_BASE=/opt COMPILER=gnu COMPILER_VERSION=4.8.1 MPI=openmpi MPI_VERSION=1.6.5 ./sit numlib/trilinos/11.12.1
CATEGORY="numlib"
PACKAGE="trilinos"
VERSION="11.12.1"
URL="http://trilinos.sandia.gov/"
INSTALLER="Elke Flehmig <flehmig@hlrs.de>"
# cmake 2.8 or higher is required
case $PLATFORM in
hermit|hermit1)
sit_fail "on hermit, trilinos is installed by cray!"
;;
esac
# now continue for laki
module load tools/cmake/2.8.12
# Archive A and package name P
A=${PACKAGE}-${VERSION}-Source.tar.gz
P=${PACKAGE}-${VERSION}-Source
src_configure() {
cd $BUILDDIR
export TRILINOS_PATH=$SRCDIR
# export EXTRA_ARGS=$@
export EXTRA_ARGS=""
# Each invocation of CMake caches the values of build options in a
# CMakeCache.txt file. If you run CMake again without deleting the
# CMakeCache.txt file, CMake won't notice any build options that have
# changed, because it found their original values in the cache file.
# Deleting the CMakeCache.txt file before invoking CMake will insure
# that CMake learns about any build options you may have changed.
#
# not necessary because sit reruns clean up everything at first
# rm -f CMakeCache.txt
#
# A sampling of CMake build options.
#
# CMAKE_INSTALL_PREFIX: Where to install Trilinos.
# CMAKE_BUILD_TYPE: DEBUG or RELEASE.
# CMAKE_CXX_COMPILER: The C++ compiler to use when building Trilinos.
# CMAKE_C_COMPILER: The C compiler to use when building Trilinos.
# Some parts of Trilinos are implemented in C.
# CMAKE_Fortran_COMPILER: The Fortran compiler to use when building
# Trilinos. Some parts of Trilinos are implemented in Fortran.
# HAVE_GCC_ABI_DEMANGLE: Setting this option to ON improves
# debugging messages.
# CMAKE_VERBOSE_MAKEFILE: Set to OFF (or FALSE) if you prefer a quiet
# build.
# Trilinos_ENABLE_ALL_PACKAGES: If you like, you can build _all_ of
# Trilinos, but you don't have to.
# Trilinos_ENABLE_Epetra: If ON, build Epetra.
# Trilinos_ENABLE_Triutils: If ON, bulid Triutils.
# Trilinos_ENABLE_TESTS: If ON, build the tests for all packages that
# are to be built.
# Trilinos_ENABLE_EXAMPLES: If ON, build the examples for all
# packages that are to be built.
if [ -z "$MPI" ] ; then
export CMAKE_ARGS="
-D CMAKE_INSTALL_PREFIX:PATH=$PREFIX \
-D CMAKE_BUILD_TYPE:STRING=DEBUG \
-D CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/g++ \
-D CMAKE_C_COMPILER:FILEPATH=/usr/bin/gcc \
-D CMAKE_Fortran_COMPILER:FILEPATH=/usr/bin/gfortran \
-D HAVE_GCC_ABI_DEMANGLE:BOOL=ON \
-D Trilinos_WARNINGS_AS_ERRORS_FLAGS:STRING="" \
-D CMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-D Trilinos_ENABLE_ALL_PACKAGES:BOOL=ON \
-D Trilinos_ENABLE_TESTS:BOOL=ON \
"
# speed up the build process (default -j)
MAKEOPTS="-j4"
else
export CMAKE_ARGS="
-D CMAKE_INSTALL_PREFIX:PATH=$PREFIX \
-D CMAKE_BUILD_TYPE:STRING=DEBUG \
-D CMAKE_CXX_COMPILER:FILEPATH=mpicxx \
-D CMAKE_C_COMPILER:FILEPATH=mpicc \
-D CMAKE_Fortran_COMPILER:FILEPATH=mpif90 \
-D HAVE_GCC_ABI_DEMANGLE:BOOL=ON \
-D Trilinos_WARNINGS_AS_ERRORS_FLAGS:STRING="" \
-D CMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-D Trilinos_ENABLE_ALL_PACKAGES:BOOL=ON \
-D Trilinos_ENABLE_TESTS:BOOL=ON \
-D TPL_ENABLE_MPI:BOOL=ON \
-D MPI_BASE_DIR:PATH=/opt/mpi/$MPI/$MPI_VERSION \
"
fi
cmake \
${CMAKE_ARGS} \
$EXTRA_ARGS \
${TRILINOS_PATH}
}
src_pretest() {
make test $MAKEOPTS
}
sit_pretest() {
sit_info "Running pre installation tests ..."
cd ${BUILDDIR}
src_pretest || echo "!!! Pre installation tests failed, continuing anyway - may have to check test results before accepting installation!!!"
}