You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1080 lines
34 KiB
1080 lines
34 KiB
2 years ago
|
#! /usr/bin/env bash
|
||
|
|
||
|
# Text color variables
|
||
|
if [[ $TERM != *"xterm"* ]]; then
|
||
|
export TERM=dumb
|
||
|
fi
|
||
|
txtred=$(tput setaf 1) # Red
|
||
|
txtgrn=$(tput setaf 2) # Green
|
||
|
txtylw=$(tput setaf 3) # Yellow
|
||
|
#txtblu=$(tput setaf 4) # Blue
|
||
|
#txtpur=$(tput setaf 5) # Purple
|
||
|
txtcyn=$(tput setaf 6) # Cyan
|
||
|
#txtwht=$(tput setaf 7) # White
|
||
|
txtrst=$(tput sgr0) # Text reset
|
||
|
|
||
|
# Which compiler to use?
|
||
|
export ACCESS=$(pwd)
|
||
|
. ${ACCESS}/TPL/compiler.sh
|
||
|
|
||
|
function check_exec()
|
||
|
{
|
||
|
local var=$1
|
||
|
command -v ${var} >/dev/null 2>&1 || { echo >&2 "${txtred}---${var} is required, but is not currently in path. Aborting TPL Install.${txtrst}"; exit 1; }
|
||
|
}
|
||
|
|
||
|
function check_valid()
|
||
|
{
|
||
|
if [ "${!1}" == "YES" ] || [ "${!1}" == "ON" ]; then
|
||
|
echo "YES"
|
||
|
return 1
|
||
|
fi
|
||
|
if [ "${!1}" == "NO" ] || [ "${!1}" == "OFF" ]; then
|
||
|
echo "NO"
|
||
|
return 1
|
||
|
fi
|
||
|
echo "${txtred}Invalid value for $1 (${!1}) -- Must be ON, YES, NO, or OFF${txtrst}"
|
||
|
exit 1
|
||
|
}
|
||
|
|
||
|
#By default, download and then install.
|
||
|
DOWNLOAD=${DOWNLOAD:-YES}
|
||
|
DOWNLOAD=$(check_valid DOWNLOAD)
|
||
|
|
||
|
BUILD=${BUILD:-YES}
|
||
|
BUILD=$(check_valid BUILD)
|
||
|
|
||
|
# Force downloading and installation even if the TPL already exists in lib/include
|
||
|
FORCE=${FORCE:-NO}
|
||
|
FORCE=$(check_valid FORCE)
|
||
|
|
||
|
DEBUG=${DEBUG:-NO}
|
||
|
DEBUG=$(check_valid DEBUG)
|
||
|
|
||
|
# Shared libraries or static libraries?
|
||
|
# For CRAY, must explicitly specify SHARED=YES, or it will default to NO
|
||
|
# All other platforms default to SHARED=YES
|
||
|
if [ "$CRAY" == "YES" ]
|
||
|
then
|
||
|
SHARED="${SHARED:-NO}"
|
||
|
else
|
||
|
SHARED="${SHARED:-YES}"
|
||
|
fi
|
||
|
SHARED=$(check_valid SHARED)
|
||
|
|
||
|
# Enable Burst-Buffer support in PnetCDF?
|
||
|
BB=${BB:-NO}
|
||
|
BB=$(check_valid BB)
|
||
|
|
||
|
CRAY=${CRAY:-NO}
|
||
|
CRAY=$(check_valid CRAY)
|
||
|
|
||
|
# Which TPLS? (NetCDF always, PnetCDF if MPI=ON)
|
||
|
HDF5=${HDF5:-YES}
|
||
|
HDF5=$(check_valid HDF5)
|
||
|
CGNS=${CGNS:-${HDF5}}
|
||
|
CGNS=$(check_valid CGNS)
|
||
|
|
||
|
MATIO=${MATIO:-YES}
|
||
|
MATIO=$(check_valid MATIO)
|
||
|
|
||
|
PARMETIS=${PARMETIS:-NO}
|
||
|
PARMETIS=$(check_valid PARMETIS)
|
||
|
|
||
|
METIS=${METIS:-NO}
|
||
|
METIS=$(check_valid METIS)
|
||
|
|
||
|
if [ "$PARMETIS" == "YES" ]
|
||
|
then
|
||
|
METIS="YES"
|
||
|
fi
|
||
|
|
||
|
FMT=${FMT:-YES}
|
||
|
FMT=$(check_valid FMT)
|
||
|
|
||
|
GNU_PARALLEL=${GNU_PARALLEL:-YES}
|
||
|
GNU_PARALLEL=$(check_valid GNU_PARALLEL)
|
||
|
|
||
|
USE_ZLIB_NG=${USE_ZLIB_NG:-NO}
|
||
|
USE_ZLIB_NG=$(check_valid USE_ZLIB_NG)
|
||
|
|
||
|
if [ "${USE_ZLIB_NG}" == "YES" ]
|
||
|
then
|
||
|
export NEEDS_ZLIB="YES"
|
||
|
fi
|
||
|
|
||
|
NEEDS_ZLIB=${NEEDS_ZLIB:-NO}
|
||
|
NEEDS_ZLIB=$(check_valid NEEDS_ZLIB)
|
||
|
|
||
|
NEEDS_SZIP=${NEEDS_SZIP:-NO}
|
||
|
NEEDS_SZIP=$(check_valid NEEDS_SZIP)
|
||
|
|
||
|
USE_AEC=${USE_AEC:-NO}
|
||
|
USE_AEC=$(check_valid USE_AEC)
|
||
|
|
||
|
KOKKOS=${KOKKOS:-NO}
|
||
|
KOKKOS=$(check_valid KOKKOS)
|
||
|
|
||
|
H5VERSION=${H5VERSION:-V112}
|
||
|
|
||
|
FAODEL=${FAODEL:-NO}
|
||
|
FAODEL=$(check_valid FAODEL)
|
||
|
|
||
|
ADIOS2=${ADIOS2:-NO}
|
||
|
ADIOS2=$(check_valid ADIOS2)
|
||
|
|
||
|
CATALYST2=${CATALYST2:-NO}
|
||
|
CATALYST2=$(check_valid CATALYST2)
|
||
|
|
||
|
GTEST=${GTEST:-NO}
|
||
|
GTEST=$(check_valid GTEST)
|
||
|
|
||
|
MPI=${MPI:-NO}
|
||
|
MPI=$(check_valid MPI)
|
||
|
|
||
|
SUDO=${SUDO:-}
|
||
|
JOBS=${JOBS:-2}
|
||
|
VERBOSE=${VERBOSE:-1}
|
||
|
|
||
|
USE_PROXY=${USE_PROXY:-NO}
|
||
|
USE_PROXY=$(check_valid USE_PROXY)
|
||
|
|
||
|
if [ "${USE_PROXY}" == "YES" ]
|
||
|
then
|
||
|
export http_proxy="http://proxy.sandia.gov:80"
|
||
|
export https_proxy="https://proxy.sandia.gov:80"
|
||
|
fi
|
||
|
|
||
|
pwd
|
||
|
INSTALL_PATH=${INSTALL_PATH:-${ACCESS}}
|
||
|
|
||
|
if [ "$MPI" == "YES" ] && [ "$CRAY" == "YES" ]
|
||
|
then
|
||
|
CC=cc; export CC
|
||
|
CFLAGS=-static; export CFLAGS
|
||
|
CXX=CC; export CXX
|
||
|
CXXFLAGS=-static; export CXXFLAGS
|
||
|
elif [ "$MPI" == "YES" ]
|
||
|
then
|
||
|
CC=mpicc; export CC
|
||
|
fi
|
||
|
|
||
|
OS=$(uname -s)
|
||
|
if [ "$SHARED" == "YES" ]
|
||
|
then
|
||
|
if [ "$OS" == "Darwin" ] ; then
|
||
|
LD_EXT="dylib"
|
||
|
else
|
||
|
LD_EXT="so"
|
||
|
fi
|
||
|
else
|
||
|
LD_EXT="a"
|
||
|
fi
|
||
|
|
||
|
if [ $# -gt 0 ]; then
|
||
|
if [ "$1" == "--help" ]; then
|
||
|
echo "${txtcyn}Environment Variables used in the script and their default values:"
|
||
|
echo ""
|
||
|
echo " ACCESS = ${txtgrn}${ACCESS}${txtcyn} (Automatically set to current directory)"
|
||
|
echo " INSTALL_PATH = ${txtgrn}${INSTALL_PATH}${txtcyn}"
|
||
|
echo " OS = ${txtgrn}${OS}${txtcyn} (Automatically set)"
|
||
|
echo " COMPILER = ${COMPILER} (gnu clang intel ibm)"
|
||
|
echo " MPI = ${MPI} (Parallel Build?)"
|
||
|
echo ""
|
||
|
echo " FORCE = ${FORCE}"
|
||
|
echo " DOWNLOAD = ${DOWNLOAD}"
|
||
|
echo " BUILD = ${BUILD}"
|
||
|
echo " SHARED = ${SHARED}"
|
||
|
echo " DEBUG = ${DEBUG}"
|
||
|
echo " USE_PROXY = ${USE_PROXY}"
|
||
|
echo ""
|
||
|
echo " HDF5 = ${HDF5}"
|
||
|
echo " H5VERSION = ${H5VERSION}"
|
||
|
echo " CGNS = ${CGNS}"
|
||
|
echo " MATIO = ${MATIO}"
|
||
|
echo " METIS = ${METIS}"
|
||
|
echo " PARMETIS = ${PARMETIS}"
|
||
|
echo " GNU_PARALLEL = ${GNU_PARALLEL}"
|
||
|
echo " FMT = ${FMT}"
|
||
|
echo " NEEDS_ZLIB = ${NEEDS_ZLIB}"
|
||
|
echo " USE_ZLIB_NG = ${USE_ZLIB_NG}"
|
||
|
echo " NEEDS_SZIP = ${NEEDS_SZIP}"
|
||
|
echo " USE_AEC = ${USE_AEC}"
|
||
|
echo " KOKKOS = ${KOKKOS}"
|
||
|
echo " BB = ${BB}"
|
||
|
echo " FAODEL = ${FAODEL}"
|
||
|
echo " ADIOS2 = ${ADIOS2}"
|
||
|
echo " CATALYST2 = ${CATALYST2}"
|
||
|
echo " GTEST = ${GTEST}"
|
||
|
echo ""
|
||
|
echo " SUDO = ${SUDO} (empty unless need superuser permission via 'sudo')"
|
||
|
echo " JOBS = ${JOBS}"
|
||
|
echo " VERBOSE = ${VERBOSE}"
|
||
|
echo "${txtrst}"
|
||
|
exit 0
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
# Check that cmake, git, wget exist at the beginning instead of erroring out later on...
|
||
|
check_exec cmake
|
||
|
check_exec git
|
||
|
check_exec wget
|
||
|
|
||
|
if [ "$NEEDS_SZIP" == "YES" ]
|
||
|
then
|
||
|
if [ "$USE_AEC" == "YES" ]
|
||
|
then
|
||
|
if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/lib/libsz.${LD_EXT} ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ SZIP (via libaec library)${txtrst}"
|
||
|
szip_version="1.0.4"
|
||
|
|
||
|
cd $ACCESS || exit
|
||
|
cd TPL/szip || exit
|
||
|
if [ "$DOWNLOAD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Downloading...${txtrst}"
|
||
|
rm -rf libaec-${szip_version}
|
||
|
rm -rf v-${szip_version}.tar.gz
|
||
|
wget --no-check-certificate https://github.com/MathisRosenhauer/libaec/archive/v${szip_version}.tar.gz
|
||
|
tar -xzf v${szip_version}.tar.gz
|
||
|
rm -rf v${szip_version}.tar.gz
|
||
|
fi
|
||
|
|
||
|
if [ "$BUILD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Configuring, Building, and Installing...${txtrst}"
|
||
|
cd libaec-${szip_version} || exit
|
||
|
mkdir build
|
||
|
cd build || exit
|
||
|
|
||
|
CRAY=${CRAY} SHARED=${SHARED} DEBUG=${DEBUG} MPI=${MPI} bash -x ../../runcmake.sh
|
||
|
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 "${txtred}couldn\'t configure libaec(szip). exiting.${txtrst}"
|
||
|
exit 1
|
||
|
fi
|
||
|
make -j${JOBS} && ${SUDO} make install
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 "${txtred}couldn\'t build libaec(szip). exiting.${txtrst}"
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
else
|
||
|
echo "${txtylw}+++ SZIP already installed. Skipping download and installation.${txtrst}"
|
||
|
fi
|
||
|
else
|
||
|
if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/lib/libsz.${LD_EXT} ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ SZIP${txtrst}"
|
||
|
szip_version="2.1.1"
|
||
|
|
||
|
cd $ACCESS || exit
|
||
|
cd TPL/szip || exit
|
||
|
if [ "$DOWNLOAD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Downloading...${txtrst}"
|
||
|
rm -rf szip-${szip_version}
|
||
|
rm -rf szip-${szip_version}.tar.gz
|
||
|
wget --no-check-certificate https://support.hdfgroup.org/ftp/lib-external/szip/2.1.1/src/szip-${szip_version}.tar.gz
|
||
|
tar -xzf szip-${szip_version}.tar.gz
|
||
|
rm -rf szip-${szip_version}.tar.gz
|
||
|
fi
|
||
|
|
||
|
if [ "$BUILD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Configuring, Building, and Installing...${txtrst}"
|
||
|
cd szip-${szip_version} || exit
|
||
|
# mkdir build
|
||
|
# cd build || exit
|
||
|
|
||
|
./configure --prefix=${INSTALL_PATH}
|
||
|
# CRAY=${CRAY} SHARED=${SHARED} DEBUG=${DEBUG} MPI=${MPI} bash -x ../../runcmake.sh
|
||
|
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t configure szip. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
make -j${JOBS} && ${SUDO} make install
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t build szip. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
else
|
||
|
echo "${txtylw}+++ SZIP already installed. Skipping download and installation.${txtrst}"
|
||
|
fi
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
if [ "$NEEDS_ZLIB" == "YES" ]
|
||
|
then
|
||
|
if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/lib/libz.${LD_EXT} ]
|
||
|
then
|
||
|
if [ "$USE_ZLIB_NG" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ ZLIB-NG${txtrst}"
|
||
|
zlib_ng_version="develop"
|
||
|
|
||
|
cd $ACCESS || exit
|
||
|
cd TPL || exit
|
||
|
if [ "$DOWNLOAD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Downloading...${txtrst}"
|
||
|
rm -rf zlib-ng
|
||
|
git clone https://github.com/zlib-ng/zlib-ng
|
||
|
fi
|
||
|
|
||
|
if [ "$BUILD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Configuring, Building, and Installing...${txtrst}"
|
||
|
cd zlib-ng || exit
|
||
|
git checkout ${zlib_ng_version}
|
||
|
rm -rf build
|
||
|
mkdir build
|
||
|
cmake -Bbuild -DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} -DZLIB_COMPAT=YES .
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t configure zlib-ng. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
cmake --build build --config Release
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t build zlib-ng. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
cmake --install build --config Release
|
||
|
fi
|
||
|
else
|
||
|
echo "${txtgrn}+++ ZLIB${txtrst}"
|
||
|
zlib_version="1.2.13"
|
||
|
|
||
|
cd $ACCESS || exit
|
||
|
cd TPL || exit
|
||
|
if [ "$DOWNLOAD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Downloading...${txtrst}"
|
||
|
rm -rf zlib-${zlib_version}
|
||
|
rm -rf zlib-${zlib_version}.tar.gz
|
||
|
wget --no-check-certificate https://zlib.net/fossils/zlib-${zlib_version}.tar.gz
|
||
|
tar -xzf zlib-${zlib_version}.tar.gz
|
||
|
rm -rf zlib-${zlib_version}.tar.gz
|
||
|
fi
|
||
|
|
||
|
if [ "$BUILD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Configuring, Building, and Installing...${txtrst}"
|
||
|
cd zlib-${zlib_version} || exit
|
||
|
if [ "$SHARED" == "NO" ]
|
||
|
then
|
||
|
USE_STATIC="--static"
|
||
|
fi
|
||
|
./configure --prefix=${INSTALL_PATH} ${USE_STATIC}
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t configure zlib. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
make -j${JOBS} && ${SUDO} make install
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t build zlib. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
fi
|
||
|
else
|
||
|
echo "${txtylw}+++ ZLIB already installed. Skipping download and installation.${txtrst}"
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
# =================== BUILD HDF5 ===============
|
||
|
if [ "$HDF5" == "YES" ]
|
||
|
then
|
||
|
if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/lib/libhdf5.${LD_EXT} ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ HDF5${txtrst}"
|
||
|
hdf_suffix=""
|
||
|
if [ "${H5VERSION}" == "V18" ]; then
|
||
|
hdf_version="1.8.23"
|
||
|
hdf_base="1.8"
|
||
|
elif [ "${H5VERSION}" == "V110" ]; then
|
||
|
hdf_version="1.10.10"
|
||
|
hdf_base="1.10"
|
||
|
elif [ "${H5VERSION}" == "V112" ]; then
|
||
|
hdf_version="1.12.2"
|
||
|
hdf_base="1.12"
|
||
|
elif [ "${H5VERSION}" == "V113" ]; then
|
||
|
hdf_version="1.13.1"
|
||
|
hdf_base="1.13"
|
||
|
elif [ "${H5VERSION}" == "V114" ]; then
|
||
|
hdf_version="1.14.1"
|
||
|
hdf_base="1.14"
|
||
|
hdf_suffix="-2"
|
||
|
elif [ "${H5VERSION}" == "develop" ]; then
|
||
|
hdf_version="develop"
|
||
|
else
|
||
|
echo 1>&2 ${txtred}Invalid HDF5 version specified: ${H5VERSION}. Must be one of V18, V110, V112. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
cd $ACCESS || exit
|
||
|
cd TPL/hdf5 || exit
|
||
|
if [ "$DOWNLOAD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Downloading...${txtrst}"
|
||
|
rm -rf hdf5-${hdf_version}${hdf_suffix}
|
||
|
rm -f hdf5-${hdf_version}${hdf_suffix}.tar.bz2
|
||
|
if [ "${H5VERSION}" == "develop" ]; then
|
||
|
git clone https://github.com/HDFGroup/hdf5.git hdf5-develop
|
||
|
else
|
||
|
wget --no-check-certificate https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${hdf_base}/hdf5-${hdf_version}/src/hdf5-${hdf_version}${hdf_suffix}.tar.bz2
|
||
|
fi
|
||
|
if [ "${H5VERSION}" != "develop" ]
|
||
|
then
|
||
|
tar -jxf hdf5-${hdf_version}${hdf_suffix}.tar.bz2
|
||
|
rm -f hdf5-${hdf_version}${hdf_suffix}.tar.bz2
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
if [ "$BUILD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Configuring, Building, and Installing...${txtrst}"
|
||
|
cd hdf5-${hdf_version}${hdf_suffix} || exit
|
||
|
rm -rf build
|
||
|
mkdir build
|
||
|
cd build || exit
|
||
|
CRAY=${CRAY} H5VERSION=${H5VERSION} DEBUG=${DEBUG} SHARED=${SHARED} NEEDS_ZLIB=${NEEDS_ZLIB} NEEDS_SZIP=${NEEDS_SZIP} MPI=${MPI} bash -x ../../runcmake.sh
|
||
|
#CRAY=${CRAY} H5VERSION=${H5VERSION} DEBUG=${DEBUG} SHARED=${SHARED} NEEDS_ZLIB=${NEEDS_ZLIB} NEEDS_SZIP=${NEEDS_SZIP} MPI=${MPI} bash ../runconfigure.sh
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t configure hdf5. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
make -j${JOBS} && ${SUDO} make "V=${VERBOSE}" install
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t build hdf5. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
# Create default plugin directory...
|
||
|
mkdir ${INSTALL_PATH}/lib/hdf5
|
||
|
mkdir ${INSTALL_PATH}/lib/hdf5/lib
|
||
|
mkdir ${INSTALL_PATH}/lib/hdf5/lib/plugin
|
||
|
else
|
||
|
echo "${txtylw}+++ HDF5 already installed. Skipping download and installation.${txtrst}"
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
# =================== INSTALL PnetCDF if parallel build ===============
|
||
|
if [ "$MPI" == "YES" ]
|
||
|
then
|
||
|
# PnetCDF currently only builds static library...
|
||
|
if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/lib/libpnetcdf.a ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ PnetCDF${txtrst}"
|
||
|
pnet_version="1.12.3"
|
||
|
pnet_base="pnetcdf"
|
||
|
cd $ACCESS || exit
|
||
|
cd TPL/pnetcdf || exit
|
||
|
if [ "$DOWNLOAD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Downloading...${txtrst}"
|
||
|
rm -rf ${pnet_base}-${pnet_version}
|
||
|
rm -f ${pnet_base}-${pnet_version}.tar.gz
|
||
|
wget --no-check-certificate https://parallel-netcdf.github.io/Release/${pnet_base}-${pnet_version}.tar.gz
|
||
|
tar -xzf ${pnet_base}-${pnet_version}.tar.gz
|
||
|
rm -f ${pnet_base}-${pnet_version}.tar.gz
|
||
|
fi
|
||
|
|
||
|
if [ "$BUILD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Configuring, Building, and Installing...${txtrst}"
|
||
|
cd ${pnet_base}-${pnet_version} || exit
|
||
|
CRAY=${CRAY} BB=${BB} DEBUG=${DEBUG} SHARED=${SHARED} bash ../runconfigure.sh
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t configure PnetCDF. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
|
||
|
if [ "$CRAY" == "YES" ]
|
||
|
then
|
||
|
make -j${JOBS} LDFLAGS=-all-static && ${SUDO} make install
|
||
|
else
|
||
|
make -j${JOBS} && ${SUDO} make install
|
||
|
fi
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t build PnetCDF. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
else
|
||
|
echo "${txtylw}+++ PnetCDF already installed. Skipping download and installation.${txtrst}"
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
# =================== INSTALL NETCDF ===============
|
||
|
if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/lib/libnetcdf.${LD_EXT} ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ NetCDF${txtrst}"
|
||
|
cd $ACCESS || exit
|
||
|
cd TPL/netcdf || exit
|
||
|
if [ "$DOWNLOAD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Downloading...${txtrst}"
|
||
|
rm -rf netcdf-c
|
||
|
git clone https://github.com/Unidata/netcdf-c netcdf-c
|
||
|
fi
|
||
|
|
||
|
# net_version="v4.9.1"
|
||
|
net_version="v4.9.2"
|
||
|
# net_version="v4.8.1"
|
||
|
# net_version="master"
|
||
|
|
||
|
if [ "$BUILD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Configuring, Building, and Installing...${txtrst}"
|
||
|
cd netcdf-c || exit
|
||
|
if [ "$net_version" != "master" ]
|
||
|
then
|
||
|
git checkout $net_version
|
||
|
fi
|
||
|
rm -rf build
|
||
|
mkdir build
|
||
|
cd build || exit
|
||
|
if [ "$HDF5" == "YES" ]
|
||
|
then
|
||
|
export HDF5_PLUGIN_PATH=${INSTALL_PATH}/lib/hdf5/lib/plugin
|
||
|
fi
|
||
|
CRAY=${CRAY} SHARED=${SHARED} DEBUG=${DEBUG} HDF5=${HDF5} NEEDS_ZLIB=${NEEDS_ZLIB} MPI=${MPI} bash -x ../../runcmake.sh
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t configure cmake for NetCDF. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
make -j${JOBS} && ${SUDO} make "VERBOSE=${VERBOSE}" install
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t build NetCDF. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
else
|
||
|
echo "${txtylw}+++ NetCDF already installed. Skipping download and installation.${txtrst}"
|
||
|
fi
|
||
|
# =================== INSTALL CGNS ===============
|
||
|
if [ "$CGNS" == "YES" ] && [ "$HDF5" == "YES" ]
|
||
|
then
|
||
|
if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/lib/libcgns.${LD_EXT} ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ CGNS${txtrst}"
|
||
|
cd $ACCESS || exit
|
||
|
cd TPL/cgns || exit
|
||
|
if [ "$DOWNLOAD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Downloading...${txtrst}"
|
||
|
rm -rf CGNS
|
||
|
git clone https://github.com/cgns/CGNS
|
||
|
fi
|
||
|
|
||
|
if [ "$BUILD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Configuring, Building, and Installing...${txtrst}"
|
||
|
cd CGNS || exit
|
||
|
git checkout v4.3.0
|
||
|
rm -rf build
|
||
|
mkdir build
|
||
|
cd build || exit
|
||
|
CRAY=${CRAY} SHARED=${SHARED} DEBUG=${DEBUG} NEEDS_ZLIB=${NEEDS_ZLIB} MPI=${MPI} bash ../../runcmake.sh
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t configure CGNS. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
make -j${JOBS} && ${SUDO} make install
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t build CGNS. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
else
|
||
|
echo "${txtylw}+++ CGNS already installed. Skipping download and installation.${txtrst}"
|
||
|
fi
|
||
|
fi
|
||
|
if [ "$CGNS" == "YES" ] && [ "$HDF5" == "NO" ]
|
||
|
then
|
||
|
echo "${txtred}+++ CGNS requested, but HDF5 is not enabled. Cannot build CGNS without HDF5.${txtrst}"
|
||
|
fi
|
||
|
|
||
|
# =================== INSTALL METIS ===============
|
||
|
if [ "$METIS" == "YES" ]
|
||
|
then
|
||
|
if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/lib/libmetis.a ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Metis${txtrst}"
|
||
|
cd $ACCESS || exit
|
||
|
cd TPL/metis || exit
|
||
|
if [ "$DOWNLOAD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Downloading...${txtrst}"
|
||
|
rm -rf metis-5.1.0
|
||
|
rm -f metis-5.1.0.tar.gz
|
||
|
wget --no-check-certificate https://github.com/scivision/METIS/archive/v5.1.0.1.tar.gz
|
||
|
tar zxvf v5.1.0.1.tar.gz
|
||
|
fi
|
||
|
|
||
|
if [ "$BUILD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Configuring, Building, and Installing...${txtrst}"
|
||
|
cd METIS-5.1.0.1 || exit
|
||
|
sed 's/TYPEWIDTH 32/TYPEWIDTH 64/' src/include/metis.h > tmp
|
||
|
mv tmp src/include/metis.h
|
||
|
INSTALL_PATH=${INSTALL_PATH} CRAY=${CRAY} SHARED=${SHARED} DEBUG=${DEBUG} bash ../runconfigure.sh
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t configure Metis. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
cd build || exit; make -j${JOBS} && ${SUDO} make install
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t build Metis. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
else
|
||
|
echo "${txtylw}+++ Metis already installed. Skipping download and installation.${txtrst}"
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
|
||
|
# =================== INSTALL PARMETIS ===============
|
||
|
if [ "$PARMETIS" == "YES" ] && [ "$MPI" == "YES" ]
|
||
|
then
|
||
|
if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/lib/libparmetis.a ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ ParMETIS${txtrst}"
|
||
|
cd $ACCESS || exit
|
||
|
cd TPL/parmetis || exit
|
||
|
if [ "$DOWNLOAD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Downloading...${txtrst}"
|
||
|
rm -rf parmetis
|
||
|
git clone https://github.com/gsjaardema/parmetis
|
||
|
fi
|
||
|
|
||
|
if [ "$BUILD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Configuring, Building, and Installing...${txtrst}"
|
||
|
cd parmetis || exit
|
||
|
INSTALL_PATH=${INSTALL_PATH} CRAY=${CRAY} MPI=${MPI} SHARED=${SHARED} DEBUG=${DEBUG} bash ../runconfigure.sh
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t configure ParMETIS. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
make -j${JOBS} && ${SUDO} make install
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t build ParMETIS. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
else
|
||
|
echo "${txtylw}+++ ParMETIS already installed. Skipping download and installation.${txtrst}"
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
|
||
|
# =================== INSTALL MATIO ===============
|
||
|
if [ "$MATIO" == "YES" ]
|
||
|
then
|
||
|
# Check that aclocal, automake, autoconf exist...
|
||
|
check_exec aclocal
|
||
|
check_exec automake
|
||
|
check_exec autoconf
|
||
|
|
||
|
matio_version="1.5.23"
|
||
|
if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/lib/libmatio.${LD_EXT} ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ MatIO${txtrst}"
|
||
|
cd $ACCESS || exit
|
||
|
cd TPL/matio || exit
|
||
|
if [ "$DOWNLOAD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Downloading...${txtrst}"
|
||
|
rm -rf matio
|
||
|
git clone https://github.com/tbeu/matio.git
|
||
|
fi
|
||
|
|
||
|
if [ "$BUILD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Configuring, Building, and Installing...${txtrst}"
|
||
|
cd matio || exit
|
||
|
git checkout ${matio_version}
|
||
|
rm -rf build
|
||
|
mkdir build
|
||
|
cd build || exit
|
||
|
CRAY=${CRAY} SHARED=${SHARED} DEBUG=${DEBUG} NEEDS_ZLIB=${NEEDS_ZLIB} HDF5=${HDF5} bash -x ../../runcmake.sh
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t configure MatIO. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
make -j${JOBS} && ${SUDO} make install
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t build MatIO. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
else
|
||
|
echo "${txtylw}+++ MatIO already installed. Skipping download and installation.${txtrst}"
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
# =================== INSTALL FMT ===============
|
||
|
if [ "$FMT" == "YES" ]
|
||
|
then
|
||
|
if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/include/fmt/core.h ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ FMT${txtrst}"
|
||
|
cd $ACCESS || exit
|
||
|
cd TPL/fmt || exit
|
||
|
fmt_version="10.0.0"
|
||
|
|
||
|
if [ "$DOWNLOAD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Downloading...${txtrst}"
|
||
|
rm -rf fmt
|
||
|
git clone https://github.com/fmtlib/fmt
|
||
|
fi
|
||
|
|
||
|
if [ "$BUILD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Configuring, Building, and Installing...${txtrst}"
|
||
|
cd fmt || exit
|
||
|
git checkout ${fmt_version}
|
||
|
rm -rf build
|
||
|
mkdir build
|
||
|
cd build || exit
|
||
|
cmake -DCMAKE_CXX_COMPILER:FILEPATH=${CXX} -DCMAKE_INSTALL_PREFIX:PATH=${INSTALL_PATH} -DCMAKE_INSTALL_LIBDIR:PATH=lib -DFMT_TEST:BOOL=OFF -DBUILD_SHARED_LIBS=${SHARED} ..
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t configure FMT. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
make -j${JOBS} && ${SUDO} make install
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t build FMT. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
else
|
||
|
echo "${txtylw}+++ FMT already installed. Skipping download and installation.${txtrst}"
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
# =================== INSTALL KOKKOS ===============
|
||
|
if [ "$KOKKOS" == "YES" ]
|
||
|
then
|
||
|
if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/lib/libkokkoscore.${LD_EXT} ]
|
||
|
then
|
||
|
kokkos_version="3.6.00"
|
||
|
echo "${txtgrn}+++ KOKKOS${txtrst}"
|
||
|
cd $ACCESS || exit
|
||
|
cd TPL/kokkos || exit
|
||
|
if [ "$DOWNLOAD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Downloading...${txtrst}"
|
||
|
rm -rf kokkos
|
||
|
wget --no-check-certificate https://github.com/kokkos/kokkos/archive/${kokkos_version}.tar.gz
|
||
|
tar -zxf ${kokkos_version}.tar.gz
|
||
|
rm -f ${kokkos_version}.tar.gz
|
||
|
ln -s kokkos-${kokkos_version} kokkos
|
||
|
fi
|
||
|
|
||
|
if [ "$BUILD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Configuring, Building, and Installing...${txtrst}"
|
||
|
cd kokkos-${kokkos_version} || exit
|
||
|
rm -rf build
|
||
|
mkdir build
|
||
|
cd build || exit
|
||
|
CUDA=${CUDA} SHARED=${SHARED} DEBUG=${DEBUG} MPI=${MPI} bash ../../runcmake.sh
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t configure cmake for KOKKOS. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
make -j${JOBS} && ${SUDO} make "VERBOSE=${VERBOSE}" install
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t build KOKKOS. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
else
|
||
|
echo "${txtylw}+++ KOKKOS already installed. Skipping download and installation.${txtrst}"
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
# =================== INSTALL ADIOS2 ===============
|
||
|
if [ "$ADIOS2" == "YES" ]
|
||
|
then
|
||
|
if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/lib/libadios2.${LD_EXT} ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ ADIOS2${txtrst}"
|
||
|
cd $ACCESS || exit
|
||
|
cd TPL/adios2 || exit
|
||
|
if [ "$DOWNLOAD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Downloading...${txtrst}"
|
||
|
rm -rf ADIOS2
|
||
|
git clone https://github.com/ornladios/ADIOS2.git
|
||
|
fi
|
||
|
|
||
|
if [ "$BUILD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Configuring, Building, and Installing...${txtrst}"
|
||
|
cd ADIOS2 || exit
|
||
|
git checkout v2.5.0
|
||
|
rm -rf build
|
||
|
mkdir build
|
||
|
cd build || exit
|
||
|
CRAY=${CRAY} SHARED=${SHARED} MPI=${MPI} DEBUG=${DEBUG} bash -x ../../runcmake.sh
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t configure cmake for ADIOS2. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
make -j${JOBS} && ${SUDO} make "VERBOSE=${VERBOSE}" install
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t build ADIOS2. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
else
|
||
|
echo "${txtylw}+++ ADIOS2 already installed. Skipping download and installation.${txtrst}"
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
# =================== INSTALL CATALYST2 ===============
|
||
|
if [ "$CATALYST2" == "YES" ]
|
||
|
then
|
||
|
if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/lib/libcatalyst.${LD_EXT} ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Catalyst2${txtrst}"
|
||
|
cd $ACCESS || exit
|
||
|
cd TPL/catalyst2 || exit
|
||
|
if [ "$DOWNLOAD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Downloading...${txtrst}"
|
||
|
rm -rf catalyst
|
||
|
git clone https://gitlab.kitware.com/paraview/catalyst.git
|
||
|
fi
|
||
|
|
||
|
if [ "$BUILD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Configuring, Building, and Installing...${txtrst}"
|
||
|
cd catalyst || exit
|
||
|
git checkout master #todo: a specific version
|
||
|
rm -rf build
|
||
|
mkdir build
|
||
|
cd build || exit
|
||
|
CRAY=${CRAY} SHARED=${SHARED} MPI=${MPI} DEBUG=${DEBUG} bash -x ../../runcmake.sh
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t configure cmake for Catalyst2. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
make -j${JOBS} && ${SUDO} make "VERBOSE=${VERBOSE}" install
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t build Catalyst2. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
else
|
||
|
echo "${txtylw}+++ Catalyst2 already installed. Skipping download and installation.${txtrst}"
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
# =================== INSTALL gtest ===============
|
||
|
if [ "$GTEST" == "YES" ]
|
||
|
then
|
||
|
if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/lib/libgtest.${LD_EXT} ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ gtest${txtrst}"
|
||
|
cd $ACCESS || exit
|
||
|
cd TPL/gtest || exit
|
||
|
if [ "$DOWNLOAD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Downloading...${txtrst}"
|
||
|
rm -rf googletest
|
||
|
git clone https://github.com/google/googletest.git
|
||
|
fi
|
||
|
|
||
|
if [ "$BUILD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Configuring, Building, and Installing...${txtrst}"
|
||
|
cd googletest || exit
|
||
|
git checkout release-1.11.0
|
||
|
rm -rf build
|
||
|
mkdir build
|
||
|
cd build || exit
|
||
|
CRAY=${CRAY} SHARED=${SHARED} DEBUG=${DEBUG} bash -x ../../runcmake.sh
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t configure cmake for gtest. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
make -j${JOBS} && ${SUDO} make "VERBOSE=${VERBOSE}" install
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t build gtest. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
else
|
||
|
echo "${txtylw}+++ gtest already installed. Skipping download and installation.${txtrst}"
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
# =================== INSTALL PARALLEL ===============
|
||
|
if [ "$GNU_PARALLEL" == "YES" ]
|
||
|
then
|
||
|
if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/bin/env_parallel ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ GNU Parallel${txtrst}"
|
||
|
cd $ACCESS || exit
|
||
|
cd TPL/parallel || exit
|
||
|
if [ "$DOWNLOAD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Downloading...${txtrst}"
|
||
|
rm -rf parallel-*
|
||
|
wget --no-check-certificate https://ftp.gnu.org/gnu/parallel/parallel-latest.tar.bz2
|
||
|
tar -jxf parallel-latest.tar.bz2
|
||
|
rm -rf parallel-latest.tar.bz2
|
||
|
fi
|
||
|
|
||
|
if [ "$BUILD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Configuring, Building, and Installing...${txtrst}"
|
||
|
cd parallel-* || exit
|
||
|
bash ../runconfigure.sh
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t configure parallel. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
make -j${JOBS} && ${SUDO} make install
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t build parallel. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
else
|
||
|
echo "${txtylw}+++ Parallel already installed. Skipping download and installation.${txtrst}"
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
# =================== INSTALL FAODEL ===============
|
||
|
if [ "$FAODEL" == "YES" ]
|
||
|
then
|
||
|
if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/lib/libkelpie.a ]
|
||
|
then
|
||
|
faodel_base="faodel"
|
||
|
echo "${txtgrn}+++ Faodel${txtrst}"
|
||
|
cd $ACCESS || exit
|
||
|
cd TPL/faodel || exit
|
||
|
if [ "$DOWNLOAD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Downloading...${txtrst}"
|
||
|
rm -rf faodel*
|
||
|
git clone git@github.com:faodel/faodel.git
|
||
|
fi
|
||
|
|
||
|
if [ "$BUILD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Configuring, Building, and Installing...${txtrst}"
|
||
|
mkdir ${faodel_base}/build
|
||
|
cd ${faodel_base}/build || exit
|
||
|
echo "------------- ${faodel_base}"
|
||
|
echo "------------- $(pwd)"
|
||
|
MPI=${MPI} bash ../../runcmake.sh
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t configure faodel. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
make -j${JOBS} && ${SUDO} make install
|
||
|
if [[ $? != 0 ]]
|
||
|
then
|
||
|
echo 1>&2 ${txtred}couldn\'t build faodel. exiting.${txtrst}
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
else
|
||
|
echo "${txtylw}+++ Faodel already installed. Skipping download and installation.${txtrst}"
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
# =================== INSTALL CEREAL ===============
|
||
|
if [ "$FAODEL" == "YES" ]
|
||
|
then
|
||
|
# Currently, the FAODEL backend requires cereal, so if Faodel is enabled, we'll install cereal, too.
|
||
|
if [ "$FORCE" == "YES" ] || ! [ -e $INSTALL_PATH/include/cereal/archives/portable_binary.hpp ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Cereal${txtrst}"
|
||
|
cd $ACCESS || exit
|
||
|
CEREAL_DIR="TPL/cereal"
|
||
|
if [ ! -d "${CEREAL_DIR}" ]; then
|
||
|
mkdir ${CEREAL_DIR}
|
||
|
fi
|
||
|
cd ${CEREAL} || exit
|
||
|
if [ "$DOWNLOAD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Downloading...${txtrst}"
|
||
|
rm -rf cereal*
|
||
|
wget --no-check-certificate https://github.com/USCiLab/cereal/archive/v1.3.0.tar.gz
|
||
|
tar xzf v1.3.0.tar.gz
|
||
|
rm -f v1.3.0.tar.gz
|
||
|
cp -R cereal-1.3.0/include/cereal $INSTALL_PATH/include/
|
||
|
fi
|
||
|
|
||
|
if [ "$BUILD" == "YES" ]
|
||
|
then
|
||
|
echo "${txtgrn}+++ Configuring, Building, and Installing...${txtrst}"
|
||
|
fi
|
||
|
else
|
||
|
echo "${txtylw}+++ Cereal already installed. Skipping download and installation.${txtrst}"
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
# ==================================
|
||
|
cd $ACCESS || exit
|
||
|
#ls -l include
|
||
|
#ls -l bin
|
||
|
#ls -l lib
|