#! /bin/bash ################################################################################ # Prepare ################################################################################ # Set up shell if [ "$(echo ${VERBOSE} | tr '[:upper:]' '[:lower:]')" = 'yes' ]; then set -x # Output commands fi set -e # Abort on errors ################################################################################ # Build ################################################################################ echo "BEGIN MESSAGE" echo "Using bundled Vecmathlib..." echo "END MESSAGE" # Set locations THORN=Vecmathlib NAME=eschnett-vecmathlib-293067dda922 SRCDIR=$(dirname $0) BUILD_DIR=${SCRATCH_BUILD}/build/${THORN} INSTALL_DIR=${SCRATCH_BUILD}/external/${THORN} DONE_FILE=${SCRATCH_BUILD}/done/${THORN} VECMATHLIB_DIR=${INSTALL_DIR} if [ -e ${DONE_FILE} -a ${DONE_FILE} -nt ${SRCDIR}/dist/${NAME}.tar.gz \ -a ${DONE_FILE} -nt ${SRCDIR}/configure.sh ] then echo "BEGIN MESSAGE" echo "Vecmathlib has already been built; doing nothing" echo "END MESSAGE" else echo "BEGIN MESSAGE" echo "Building Vecmathlib" echo "END MESSAGE" # Build in a subshell ( exec >&2 # Redirect stdout to stderr if [ "$(echo ${VERBOSE} | tr '[:upper:]' '[:lower:]')" = 'yes' ]; then set -x # Output commands fi set -e # Abort on errors cd ${SCRATCH_BUILD} echo "Vecmathlib: Preparing directory structure..." mkdir build external done 2> /dev/null || true rm -rf ${BUILD_DIR} ${INSTALL_DIR} mkdir ${BUILD_DIR} ${INSTALL_DIR} echo "Vecmathlib: Unpacking archive..." pushd ${BUILD_DIR} ${TAR?} xzf ${SRCDIR}/dist/${NAME}.tar.gz echo "Vecmathlib: Building..." cd ${NAME} # nothing to build echo "Vecmathlib: Testing..." if echo '' ${CXXFLAGS} | grep -q -v -e -ftrapv; then ${MAKE} test ./test else echo '[skipping test because -ftrapv is used]' fi echo "Vecmathlib: Installing..." mkdir ${INSTALL_DIR}/include cp *.h ${INSTALL_DIR}/include mkdir ${INSTALL_DIR}/doc cp LICENCE README *.rst ${INSTALL_DIR}/doc mkdir ${INSTALL_DIR}/examples cp *.cc ${INSTALL_DIR}/examples popd echo "Vecmathlib: Cleaning up..." rm -rf ${BUILD_DIR} date > ${DONE_FILE} echo "Vecmathlib: Done." ) if (( $? )); then echo 'BEGIN ERROR' echo 'Error while building Vecmathlib. Aborting.' echo 'END ERROR' exit 1 fi fi ################################################################################ # Set options ################################################################################ VECMATHLIB_INC_DIRS="${VECMATHLIB_DIR}/include" VECMATHLIB_LIB_DIRS='' VECMATHLIB_LIBS='' ################################################################################ # Configure Cactus ################################################################################ VECMATHLIB_INC_DIRS="$(${CCTK_HOME}/lib/sbin/strip-incdirs.sh ${VECMATHLIB_INC_DIRS})" VECMATHLIB_LIB_DIRS="$(${CCTK_HOME}/lib/sbin/strip-libdirs.sh ${VECMATHLIB_LIB_DIRS})" # Pass options to Cactus echo "BEGIN MAKE_DEFINITION" echo "VECMATHLIB_DIR = ${VECMATHLIB_DIR}" echo "VECMATHLIB_INC_DIRS = ${VECMATHLIB_INC_DIRS}" echo "VECMATHLIB_LIB_DIRS = ${VECMATHLIB_LIB_DIRS}" echo "VECMATHLIB_LIBS = ${VECMATHLIB_LIBS}" echo "END MAKE_DEFINITION" echo 'INCLUDE_DIRECTORY $(VECMATHLIB_INC_DIRS)' echo 'LIBRARY_DIRECTORY $(VECMATHLIB_LIB_DIRS)' echo 'LIBRARY $(VECMATHLIB_LIBS)'