From 898ea8f8ee26efc675ebf83373a47b61f0000e77 Mon Sep 17 00:00:00 2001 From: Tidbit Software Date: Thu, 9 Jan 2025 20:37:38 -0800 Subject: [PATCH] CHG: Updated install scripts and configuration for Pleiades --- etc/environment.sh | 640 +++++++++--------- .../dakota/install-6.2-pleiades.sh | 8 +- .../dakota/install-6.2-pleiades_toss4.sh | 84 --- .../gdal/install-3-ghub-workspace_10.sh | 2 +- .../gdal/install-3-linux-python.sh | 2 +- externalpackages/gdal/install-3-linux.sh | 2 +- externalpackages/gdal/install-3-mac-python.sh | 2 +- externalpackages/gdal/install-3-mac.sh | 2 +- .../gdal/install-3-python-static.sh | 2 +- externalpackages/gdal/install-3-static.sh | 2 +- externalpackages/gmsh/install-4-pleiades.sh | 84 +++ externalpackages/gmt/install-6-pleiades.sh | 72 ++ externalpackages/packagemaker/install.sh | 8 - externalpackages/proj/install-6-static.sh | 2 +- externalpackages/proj/install-6.sh | 2 +- externalpackages/semic/install.sh | 15 +- jenkins/pleiades-basic | 40 +- jenkins/pleiades-dakota | 52 +- jenkins/pleiades-solid_earth | 52 +- m4/issm_options.m4 | 115 ++-- 20 files changed, 662 insertions(+), 526 deletions(-) delete mode 100755 externalpackages/dakota/install-6.2-pleiades_toss4.sh create mode 100755 externalpackages/gmsh/install-4-pleiades.sh create mode 100755 externalpackages/gmt/install-6-pleiades.sh delete mode 100755 externalpackages/packagemaker/install.sh diff --git a/etc/environment.sh b/etc/environment.sh index 23cf6b9bd..1efa3695f 100755 --- a/etc/environment.sh +++ b/etc/environment.sh @@ -4,9 +4,11 @@ # ISSM_DIR and ISSM_ARCH should have been defined already in your shell # settings file (i.e. .bashrc, .cshrc). # -# TODO: -# - Condition all path modifications on existence of external package 'install' -# directory +# NOTE: +# - We use _ROOT_TEMP variables because all variables are exported to +# environment when this script is source'd. In some cases, this may cause +# conflicts (e.g. on Pleiades, we use the module copy of PETSc, which +# defines PETSC_ROOT). # if [[ -n "$ZSH_VERSION" ]]; then @@ -87,6 +89,7 @@ dyld_library_path_append(){ #{{{ fi fi } #}}} + dyld_library_path_prepend(){ #{{{ if [ -d "${1}" ]; then if [ -z "${DYLD_LIBRARY_PATH}" ]; then @@ -116,6 +119,7 @@ ld_library_path_append(){ #{{{ fi fi } #}}} + ld_library_path_prepend(){ #{{{ if [ -d "${1}" ]; then if [ -z "${LD_LIBRARY_PATH}" ]; then @@ -140,6 +144,7 @@ library_path_append(){ #{{{ fi fi } #}}} + library_path_prepend(){ #{{{ if [ -d "${1}" ]; then if [ -z "${LIBRARY_PATH}" ]; then @@ -159,6 +164,7 @@ path_append(){ #{{{ export PATH="${PATH}:${PATH_IN}" fi } #}}} + path_prepend(){ #{{{ if [ -d "${1}" ] && [[ ":${PATH}:" != *":${1}:"* ]]; then PATH_IN="${1}" @@ -235,64 +241,47 @@ fi ######################### # Command-line utilities ######################### -SSH_ROOT="${ISSM_EXT_DIR}/ssh" -if [ -d "${SSH_ROOT}" ]; then - path_append "${SSH_ROOT}" +SSH_ROOT_TEMP="${ISSM_EXT_DIR}/ssh" +if [ -d "${SSH_ROOT_TEMP}" ]; then + path_append "${SSH_ROOT_TEMP}" fi -SVN_ROOT="${ISSM_EXT_DIR}/svn/install" -if [ -d "${SVN_ROOT}" ]; then - path_prepend "${SVN_ROOT}/bin" - ld_library_path_append "${SVN_ROOT}/lib" +SVN_ROOT_TEMP="${ISSM_EXT_DIR}/svn/install" +if [ -d "${SVN_ROOT_TEMP}" ]; then + path_prepend "${SVN_ROOT_TEMP}/bin" + ld_library_path_append "${SVN_ROOT_TEMP}/lib" fi -GIT_ROOT="${ISSM_EXT_DIR}/git/install" -if [ -d "${GIT_ROOT}" ]; then - path_prepend "${GIT_ROOT}/bin" +GIT_ROOT_TEMP="${ISSM_EXT_DIR}/git/install" +if [ -d "${GIT_ROOT_TEMP}" ]; then + path_prepend "${GIT_ROOT_TEMP}/bin" fi ############################# # Compilers / runtime / SDKs ############################# -export ANDROID_DIR="${ISSM_EXT_DIR}/android" - -export ANDROID_NDK_DIR="$ANDROID_DIR/android-ndk/install" -path_append "$ANDROID_NDK_DIR/arm-linux-android-install/bin" - -export ANDROID_SDK_ROOT="$ANDROID_DIR/android-sdk/install" -path_append "$ANDROID_SDK_ROOT/" - -EMSCRIPTEN_ROOT="${ISSM_EXT_DIR}/emscripten/install" -if [ -d ${EMSCRIPTEN_ROOT} ]; then - export EMSCRIPTEN_ROOT # Used in JavaScript build in installation of GSL, Triangle +EMSCRIPTEN_ROOT_TEMP="${ISSM_EXT_DIR}/emscripten/install" +if [ -d ${EMSCRIPTEN_ROOT_TEMP} ]; then + export EMSCRIPTEN_ROOT="${EMSCRIPTEN_ROOT_TEMP}" # Used in JavaScript build in installation of GSL, Triangle fi -JVM_ROOT="/usr/local/gcc/4.3.2/lib64/gcj-4.3.2-9/" -ld_library_path_append "${JVM_ROOT}" - -############################# -# IDEs -############################# -ECLIPSE_ROOT="${ISSM_EXT_DIR}/eclipse/install" -path_append "${ECLIPSE_ROOT}" - ############################# # Build systems ############################# -AUTOTOOLS_ROOT="${ISSM_EXT_DIR}/autotools/install" -path_prepend "${AUTOTOOLS_ROOT}/bin" - -CMAKE_ROOT="${ISSM_EXT_DIR}/cmake/install" -path_prepend "${CMAKE_ROOT}/bin" +AUTOTOOLS_ROOT_TEMP="${ISSM_EXT_DIR}/autotools/install" +if [ -d "${AUTOTOOLS_ROOT_TEMP}" ]; then + path_prepend "${AUTOTOOLS_ROOT_TEMP}/bin" +fi -GMAKE_ROOT="${ISSM_EXT_DIR}/gmake/install" -path_prepend "${GMAKE_ROOT}/bin" +CMAKE_ROOT_TEMP="${ISSM_EXT_DIR}/cmake/install" +if [ -d "${CMAKE_ROOT_TEMP}" ]; then + path_prepend "${CMAKE_ROOT_TEMP}/bin" +fi -############################# -# Packagers -############################# -PACKAGEMAKER_ROOT="${ISSM_EXT_DIR}/packagemaker/install" -path_append "${PACKAGEMAKER_ROOT}" +GMAKE_ROOT_TEMP="${ISSM_EXT_DIR}/gmake/install" +if [ -d "${GMAKE_ROOT_TEMP}" ]; then + path_prepend "${GMAKE_ROOT_TEMP}/bin" +fi ############################# # Libraries / binaries @@ -311,405 +300,446 @@ fi # NOTE: The following checks *must* come before PETSc as we prefer packages # installed via PETSc # -BLAS_ROOT="${ISSM_EXT_DIR}/blas/install" -if [ -d "${BLAS_ROOT}" ]; then - export BLAS_ROOT # Used in installation of LAPACK, ScaLAPACK, PETSc - library_path_append "${BLAS_ROOT}/lib" - ld_library_path_append "${BLAS_ROOT}/lib" +BLAS_ROOT_TEMP="${ISSM_EXT_DIR}/blas/install" +if [ -d "${BLAS_ROOT_TEMP}" ]; then + export BLAS_ROOT="${BLAS_ROOT_TEMP}" # Used in installation of LAPACK, ScaLAPACK, PETSc + library_path_append "${BLAS_ROOT_TEMP}/lib" + ld_library_path_append "${BLAS_ROOT_TEMP}/lib" if [[ ${MINGW} -eq 1 ]]; then - path_append "${BLAS_ROOT}/lib" # Allows dynamic loader to find DLLs + path_append "${BLAS_ROOT_TEMP}/lib" # Allows dynamic loader to find DLLs fi fi -HDF5_ROOT="${ISSM_EXT_DIR}/hdf5/install" -if [ -d "${HDF5_ROOT}" ]; then - export HDF5_ROOT # Used in installation of NetCDF, GDAL - cpath_append "${HDF5_ROOT}/include" - library_path_prepend "${HDF5_ROOT}/lib" - dyld_library_path_prepend "${HDF5_ROOT}/lib" - ld_library_path_prepend "${HDF5_ROOT}/lib" +HDF5_ROOT_TEMP="${ISSM_EXT_DIR}/hdf5/install" +if [ -d "${HDF5_ROOT_TEMP}" ]; then + export HDF5_ROOT="${HDF5_ROOT_TEMP}" # Used in installation of NetCDF, GDAL + cpath_append "${HDF5_ROOT_TEMP}/include" + library_path_prepend "${HDF5_ROOT_TEMP}/lib" + dyld_library_path_prepend "${HDF5_ROOT_TEMP}/lib" + ld_library_path_prepend "${HDF5_ROOT_TEMP}/lib" fi -LAPACK_ROOT="${ISSM_EXT_DIR}/lapack/install" -if [ -d "${LAPACK_ROOT}" ]; then - export LAPACK_ROOT # Used in installation of ScaLAPACK, MUMPS, PETSc - library_path_append "${LAPACK_ROOT}/lib" - ld_library_path_append "${LAPACK_ROOT}/lib" +LAPACK_ROOT_TEMP="${ISSM_EXT_DIR}/lapack/install" +if [ -d "${LAPACK_ROOT_TEMP}" ]; then + export LAPACK_ROOT="${LAPACK_ROOT_TEMP}" # Used in installation of ScaLAPACK, MUMPS, PETSc + library_path_append "${LAPACK_ROOT_TEMP}/lib" + ld_library_path_append "${LAPACK_ROOT_TEMP}/lib" if [[ ${MINGW} -eq 1 ]]; then - path_append "${LAPACK_ROOT}/lib" # Allows dynamic loader to find DLLs + path_append "${LAPACK_ROOT_TEMP}/lib" # Allows dynamic loader to find DLLs fi - if ls ${LAPACK_ROOT}/lib/libblas.* 1> /dev/null 2>&1; then - export BLAS_ROOT="${LAPACK_ROOT}" + if ls ${LAPACK_ROOT_TEMP}/lib/libblas.* 1> /dev/null 2>&1; then + export BLAS_ROOT="${LAPACK_ROOT_TEMP}" fi fi -METIS_ROOT="${ISSM_EXT_DIR}/metis/install" -if [ -d "${METIS_ROOT}" ]; then - export METIS_ROOT # Used in installation of ParMETIS, Gmsh, PETSc - library_path_prepend "${METIS_ROOT}/lib" - ld_library_path_prepend "${METIS_ROOT}/lib" +METIS_ROOT_TEMP="${ISSM_EXT_DIR}/metis/install" +if [ -d "${METIS_ROOT_TEMP}" ]; then + export METIS_ROOT="${METIS_ROOT_TEMP}" # Used in installation of ParMETIS, Gmsh, PETSc + library_path_prepend "${METIS_ROOT_TEMP}/lib" + ld_library_path_prepend "${METIS_ROOT_TEMP}/lib" if [[ ${MINGW} -eq 1 ]]; then - path_append "${METIS_ROOT}/lib" # Allows dynamic loader to find DLLs + path_append "${METIS_ROOT_TEMP}/lib" # Allows dynamic loader to find DLLs fi fi -MUMPS_ROOT="${ISSM_EXT_DIR}/mumps/install" -if [ -d "${MUMPS_ROOT}" ]; then - export MUMPS_ROOT # Used in installation of PETSc - library_path_append "${MUMPS_ROOT}/lib" +MUMPS_ROOT_TEMP="${ISSM_EXT_DIR}/mumps/install" +if [ -d "${MUMPS_ROOT_TEMP}" ]; then + export MUMPS_ROOT="${MUMPS_ROOT_TEMP}" # Used in installation of PETSc + library_path_append "${MUMPS_ROOT_TEMP}/lib" if [[ ${MINGW} -eq 1 ]]; then - path_append "${MUMPS_ROOT}/lib" # Allows dynamic loader to find DLLs + path_append "${MUMPS_ROOT_TEMP}/lib" # Allows dynamic loader to find DLLs fi fi -PARMETIS_ROOT="${ISSM_EXT_DIR}/parmetis/install" -if [ -d "${PARMETIS_ROOT}" ]; then - export PARMETIS_ROOT # Used in installation of MUMPS, PETSc - library_path_prepend "${PARMETIS_ROOT}/lib" - ld_library_path_prepend "${PARMETIS_ROOT}/lib" +PARMETIS_ROOT_TEMP="${ISSM_EXT_DIR}/parmetis/install" +if [ -d "${PARMETIS_ROOT_TEMP}" ]; then + export PARMETIS_ROOT="${PARMETIS_ROOT_TEMP}" # Used in installation of MUMPS, PETSc + library_path_prepend "${PARMETIS_ROOT_TEMP}/lib" + ld_library_path_prepend "${PARMETIS_ROOT_TEMP}/lib" if [[ ${MINGW} -eq 1 ]]; then - path_append "${PARMETIS_ROOT}/lib" # Allows dynamic loader to find DLLs + path_append "${PARMETIS_ROOT_TEMP}/lib" # Allows dynamic loader to find DLLs fi fi -QD_ROOT="${ISSM_EXT_DIR}/qd/install" -if [ -d "${QD_ROOT}" ]; then - export QD_ROOT # Used in installation of MPLAPACK - library_path_prepend "${QD_ROOT}/lib" - ld_library_path_prepend "${QD_ROOT}/lib" +QD_ROOT_TEMP="${ISSM_EXT_DIR}/qd/install" +if [ -d "${QD_ROOT_TEMP}" ]; then + export QD_ROOT="${QD_ROOT_TEMP}" # Used in installation of MPLAPACK + library_path_prepend "${QD_ROOT_TEMP}/lib" + ld_library_path_prepend "${QD_ROOT_TEMP}/lib" fi -SCALAPACK_ROOT="${ISSM_EXT_DIR}/scalapack/install" -if [ -d "${SCALAPACK_ROOT}" ]; then - export SCALAPACK_ROOT # Used in installation of MUMPS, PETSc - library_path_append "${SCALAPACK_ROOT}/lib" +SCALAPACK_ROOT_TEMP="${ISSM_EXT_DIR}/scalapack/install" +if [ -d "${SCALAPACK_ROOT_TEMP}" ]; then + export SCALAPACK_ROOT="${SCALAPACK_ROOT_TEMP}" # Used in installation of MUMPS, PETSc + library_path_append "${SCALAPACK_ROOT_TEMP}/lib" if [[ ${MINGW} -eq 1 ]]; then - path_append "${SCALAPACK_ROOT}/lib" # Allows dynamic loader to find DLLs + path_append "${SCALAPACK_ROOT_TEMP}/lib" # Allows dynamic loader to find DLLs fi fi -ZLIB_ROOT="${ISSM_EXT_DIR}/zlib/install" -if [ -d "${ZLIB_ROOT}" ]; then - export ZLIB_ROOT # Used in installation of NetCDF, GDAL, GMT - ld_library_path_append "${ZLIB_ROOT}/lib" +ZLIB_ROOT_TEMP="${ISSM_EXT_DIR}/zlib/install" +if [ -d "${ZLIB_ROOT_TEMP}" ]; then + export ZLIB_ROOT="${ZLIB_ROOT_TEMP}" # Used in installation of NetCDF, GDAL, GMT + ld_library_path_append "${ZLIB_ROOT_TEMP}/lib" fi -PETSC_ROOT="${ISSM_EXT_DIR}/petsc/install" -if [ -d "${PETSC_ROOT}" ]; then - export PETSC_ROOT # Used in installation of Gmsh - cpath_prepend "${PETSC_ROOT}/include" - library_path_prepend "${PETSC_ROOT}/lib" - ld_library_path_prepend "${PETSC_ROOT}/lib" +PETSC_ROOT_TEMP="${ISSM_EXT_DIR}/petsc/install" +if [ -d "${PETSC_ROOT_TEMP}" ]; then + export PETSC_ROOT="${PETSC_ROOT_TEMP}" # Used in installation of Gmsh + cpath_prepend "${PETSC_ROOT_TEMP}/include" + library_path_prepend "${PETSC_ROOT_TEMP}/lib" + ld_library_path_prepend "${PETSC_ROOT_TEMP}/lib" if [[ ${MINGW} -eq 1 ]]; then - path_append "${PETSC_ROOT}/lib" # Allows dynamic loader to find DLLs + path_append "${PETSC_ROOT_TEMP}/lib" # Allows dynamic loader to find DLLs fi # In case we have installed certain external packages via PETSc # # BLAS - if ls ${PETSC_ROOT}/lib/libblas.* 1> /dev/null 2>&1 || ls ${PETSC_ROOT}/lib/libfblas.* 1> /dev/null 2>&1; then - export BLAS_ROOT="${PETSC_ROOT}" # Used in installation of Dakota, GMT + if ls ${PETSC_ROOT_TEMP}/lib/libblas.* 1> /dev/null 2>&1 || ls ${PETSC_ROOT_TEMP}/lib/libfblas.* 1> /dev/null 2>&1; then + export BLAS_ROOT="${PETSC_ROOT_TEMP}" # Used in installation of Dakota, GMT fi # HDF5 - if ls ${PETSC_ROOT}/lib/libhdf5.* 1> /dev/null 2>&1; then - export HDF5_ROOT="${PETSC_ROOT}" # Used in installation of NetCDF, GDAL - cpath_append "${PETSC_ROOT}/include" - library_path_append "${PETSC_ROOT}/lib" - dyld_library_path_append "${PETSC_ROOT}/lib" - ld_library_path_append "${PETSC_ROOT}/lib" + if ls ${PETSC_ROOT_TEMP}/lib/libhdf5.* 1> /dev/null 2>&1; then + export HDF5_ROOT="${PETSC_ROOT_TEMP}" # Used in installation of NetCDF, GDAL + cpath_append "${PETSC_ROOT_TEMP}/include" + library_path_append "${PETSC_ROOT_TEMP}/lib" + dyld_library_path_append "${PETSC_ROOT_TEMP}/lib" + ld_library_path_append "${PETSC_ROOT_TEMP}/lib" fi # LAPACK - if ls ${PETSC_ROOT}/lib/liblapack.* 1> /dev/null 2>&1 || ls ${PETSC_ROOT}/lib/libflapack.* 1> /dev/null 2>&1; then - export LAPACK_ROOT="${PETSC_ROOT}" # Used in installation of Dakota, GMT + if ls ${PETSC_ROOT_TEMP}/lib/liblapack.* 1> /dev/null 2>&1 || ls ${PETSC_ROOT_TEMP}/lib/libflapack.* 1> /dev/null 2>&1; then + export LAPACK_ROOT="${PETSC_ROOT_TEMP}" # Used in installation of Dakota, GMT fi # METIS - if ls ${PETSC_ROOT}/lib/libmetis.* 1> /dev/null 2>&1; then - export METIS_ROOT="${PETSC_ROOT}" # Used in installation of Gmsh + if ls ${PETSC_ROOT_TEMP}/lib/libmetis.* 1> /dev/null 2>&1; then + export METIS_ROOT="${PETSC_ROOT_TEMP}" # Used in installation of Gmsh fi # MPICH - if [ -f "${PETSC_ROOT}/bin/mpiexec" ]; then - export MPI_ROOT=${PETSC_ROOT} - export MPI_DIR=${MPI_ROOT} - export MPI_HOME=${MPI_ROOT} # Used in installation of Dakota - export MPI_INC_DIR="${MPI_ROOT}/include" - path_prepend "${MPI_ROOT}/bin" - cpath_prepend "${MPI_ROOT}/include" - ld_library_path_append "${MPI_ROOT}/lib" + if [ -f "${PETSC_ROOT_TEMP}/bin/mpiexec" ]; then + export MPI_ROOT=${PETSC_ROOT_TEMP} + export MPI_DIR=${PETSC_ROOT_TEMP} + export MPI_HOME=${PETSC_ROOT_TEMP} # Used in installation of Dakota + export MPI_INC_DIR="${PETSC_ROOT_TEMP}/include" + path_prepend "${PETSC_ROOT_TEMP}/bin" + cpath_prepend "${PETSC_ROOT_TEMP}/include" + ld_library_path_append "${PETSC_ROOT_TEMP}/lib" fi # ZLIB - if ls ${PETSC_ROOT}/lib/libz.* 1> /dev/null 2>&1; then - export ZLIB_ROOT="${PETSC_ROOT}" # Used in installation of NetCDF, GDAL - ld_library_path_append "${PETSC_ROOT}/lib" + if ls ${PETSC_ROOT_TEMP}/lib/libz.* 1> /dev/null 2>&1; then + export ZLIB_ROOT="${PETSC_ROOT_TEMP}" # Used in installation of NetCDF, GDAL + ld_library_path_append "${PETSC_ROOT_TEMP}/lib" fi fi -MPLAPACK_ROOT="${ISSM_EXT_DIR}/mplapack/install" -if [ -d "${MPLAPACK_ROOT}" ]; then - cplus_include_path_prepend "${MPLAPACK_ROOT}/include" - cplus_include_path_prepend "${MPLAPACK_ROOT}/include/mplapack" - library_path_prepend "${MPLAPACK_ROOT}/lib" - ld_library_path_prepend "${MPLAPACK_ROOT}/lib" +MPLAPACK_ROOT_TEMP="${ISSM_EXT_DIR}/mplapack/install" +if [ -d "${MPLAPACK_ROOT_TEMP}" ]; then + cplus_include_path_prepend "${MPLAPACK_ROOT_TEMP}/include" + cplus_include_path_prepend "${MPLAPACK_ROOT_TEMP}/include/mplapack" + library_path_prepend "${MPLAPACK_ROOT_TEMP}/lib" + ld_library_path_prepend "${MPLAPACK_ROOT_TEMP}/lib" fi -SCOTCH_ROOT="${ISSM_EXT_DIR}/scotch/install" -ld_library_path_append "${SCOTCH_ROOT}/lib" +SCOTCH_ROOT_TEMP="${ISSM_EXT_DIR}/scotch/install" +ld_library_path_append "${SCOTCH_ROOT_TEMP}/lib" -SLEPC_ROOT="${ISSM_EXT_DIR}/slepc/install" -ld_library_path_append "${SLEPC_ROOT}/lib" +SLEPC_ROOT_TEMP="${ISSM_EXT_DIR}/slepc/install" +ld_library_path_append "${SLEPC_ROOT_TEMP}/lib" -TAO_ROOT="${ISSM_EXT_DIR}/tao/install" -ld_library_path_append "${TAO_ROOT}/lib" +TAO_ROOT_TEMP="${ISSM_EXT_DIR}/tao/install" +ld_library_path_append "${TAO_ROOT_TEMP}/lib" -BOOST_ROOT="${ISSM_EXT_DIR}/boost/install" -if [ -d "${BOOST_ROOT}" ]; then - export BOOST_ROOT # Used in installation of Dakota - export BOOST_DIR=${BOOST_ROOT} - export BOOSTROOT=${BOOST_ROOT} - path_append "${BOOST_ROOT}/bin" - library_path_prepend "${BOOST_ROOT}/lib" - ld_library_path_prepend "${BOOST_ROOT}/lib" - dyld_library_path_prepend "${BOOST_ROOT}/lib" +BOOST_ROOT_TEMP="${ISSM_EXT_DIR}/boost/install" +if [ -d "${BOOST_ROOT_TEMP}" ]; then + export BOOST_ROOT=${BOOST_ROOT_TEMP} # Used in installation of Dakota + export BOOST_DIR=${BOOST_ROOT_TEMP} + export BOOSTROOT=${BOOST_ROOT_TEMP} + path_append "${BOOST_ROOT_TEMP}/bin" + library_path_prepend "${BOOST_ROOT_TEMP}/lib" + ld_library_path_prepend "${BOOST_ROOT_TEMP}/lib" + dyld_library_path_prepend "${BOOST_ROOT_TEMP}/lib" fi -DAKOTA_ROOT="${ISSM_EXT_DIR}/dakota/install" -if [ -d "${DAKOTA_ROOT}" ]; then - path_append "${DAKOTA_ROOT}/bin" - ld_library_path_prepend "${DAKOTA_ROOT}/lib" - dyld_library_path_prepend "${DAKOTA_ROOT}/lib" +DAKOTA_ROOT_TEMP="${ISSM_EXT_DIR}/dakota/install" +if [ -d "${DAKOTA_ROOT_TEMP}" ]; then + path_append "${DAKOTA_ROOT_TEMP}/bin" + ld_library_path_prepend "${DAKOTA_ROOT_TEMP}/lib" + dyld_library_path_prepend "${DAKOTA_ROOT_TEMP}/lib" fi -NCO_ROOT="${ISSM_EXT_DIR}/nco/install/bin" -path_prepend "${NCO_ROOT}/bin" +NCO_ROOT_TEMP="${ISSM_EXT_DIR}/nco/install/bin" +path_prepend "${NCO_ROOT_TEMP}/bin" -CPPCHECK_ROOT="${ISSM_EXT_DIR}/cppcheck/install" -path_append "${CPPCHECK_ROOT}/bin" +CPPCHECK_ROOT_TEMP="${ISSM_EXT_DIR}/cppcheck/install" +path_append "${CPPCHECK_ROOT_TEMP}/bin" -MERCURIAL_ROOT="${ISSM_EXT_DIR}/mercurial/install" -if [ -d "${MERCURIAL_ROOT}" ]; then - export PYTHONPATH="${PYTHONPATH}:${MERCURIAL_ROOT}/mercurial/pure/" - path_append "${MERCURIAL_ROOT}" +MERCURIAL_ROOT_TEMP="${ISSM_EXT_DIR}/mercurial/install" +if [ -d "${MERCURIAL_ROOT_TEMP}" ]; then + export PYTHONPATH="${PYTHONPATH}:${MERCURIAL_ROOT_TEMP}/mercurial/pure/" + path_append "${MERCURIAL_ROOT_TEMP}" fi -GSL_ROOT="${ISSM_EXT_DIR}/gsl/install" -if [ -d "${GSL_ROOT}" ]; then - export GSL_HOME="${GSL_ROOT}" # Used in installation of Dakota - cpath_prepend "${GSL_ROOT}/include" - ld_library_path_append "${GSL_ROOT}/lib" +GSL_ROOT_TEMP="${ISSM_EXT_DIR}/gsl/install" +if [ -d "${GSL_ROOT_TEMP}" ]; then + export GSL_HOME="${GSL_ROOT_TEMP}" # Used in installation of Dakota + cpath_prepend "${GSL_ROOT_TEMP}/include" + ld_library_path_append "${GSL_ROOT_TEMP}/lib" fi -NETCDF_ROOT="${ISSM_EXT_DIR}/netcdf/install" -if [ -d "${NETCDF_ROOT}" ]; then - export NETCDF_ROOT # Used in installation of GDAL, GMT - path_prepend "${NETCDF_ROOT}/bin" - cpath_prepend "${NETCDF_ROOT}/include" - library_path_prepend "${NETCDF_ROOT}/lib" - ld_library_path_prepend "${NETCDF_ROOT}/lib" - dyld_library_path_prepend "${NETCDF_ROOT}/lib" +NETCDF_ROOT_TEMP="${ISSM_EXT_DIR}/netcdf/install" +if [ -d "${NETCDF_ROOT_TEMP}" ]; then + export NETCDF_ROOT="${NETCDF_ROOT_TEMP}" # Used in installation of GDAL, GMT + path_prepend "${NETCDF_ROOT_TEMP}/bin" + cpath_prepend "${NETCDF_ROOT_TEMP}/include" + library_path_prepend "${NETCDF_ROOT_TEMP}/lib" + ld_library_path_prepend "${NETCDF_ROOT_TEMP}/lib" + dyld_library_path_prepend "${NETCDF_ROOT_TEMP}/lib" fi -NETCDF_CXX_ROOT="${ISSM_EXT_DIR}/netcdf-cxx/install" -if [ -d "${NETCDF_CXX_ROOT}" ]; then - ld_library_path_append "${NETCDF_CXX_ROOT}/lib" +NETCDF_CXX_ROOT_TEMP="${ISSM_EXT_DIR}/netcdf-cxx/install" +if [ -d "${NETCDF_CXX_ROOT_TEMP}" ]; then + ld_library_path_append "${NETCDF_CXX_ROOT_TEMP}/lib" fi -NETCDF_PYTHON_ROOT="${ISSM_EXT_DIR}/netcdf-python/install" -if [ -d "${NETCDF_PYTHON_ROOT}" ]; then - if [ -d "${NETCDF_PYTHON_ROOT}/lib/python2.7/site-packages" ]; then - ld_library_path_append "${NETCDF_PYTHON_ROOT}/lib/python2.7/site-packages" +NETCDF_PYTHON_ROOT_TEMP="${ISSM_EXT_DIR}/netcdf-python/install" +if [ -d "${NETCDF_PYTHON_ROOT_TEMP}" ]; then + if [ -d "${NETCDF_PYTHON_ROOT_TEMP}/lib/python2.7/site-packages" ]; then + ld_library_path_append "${NETCDF_PYTHON_ROOT_TEMP}/lib/python2.7/site-packages" fi fi -CURL_ROOT="${ISSM_EXT_DIR}/curl/install" -if [ -d "${CURL_ROOT}" ]; then - export CURL_ROOT # Used in installation of NetCDF, GDAL, GMT - cpath_prepend "${CURL_ROOT}/include" - ld_library_path_prepend "${CURL_ROOT}/lib" - dyld_library_path_prepend "${CURL_ROOT}/lib" - path_append "${CURL_ROOT}/bin" +CURL_ROOT_TEMP="${ISSM_EXT_DIR}/curl/install" +if [ -d "${CURL_ROOT_TEMP}" ]; then + export CURL_ROOT="${CURL_ROOT_TEMP}" # Used in installation of NetCDF, GDAL, GMT + cpath_prepend "${CURL_ROOT_TEMP}/include" + ld_library_path_prepend "${CURL_ROOT_TEMP}/lib" + dyld_library_path_prepend "${CURL_ROOT_TEMP}/lib" + path_append "${CURL_ROOT_TEMP}/bin" fi -SQLITE_ROOT="${ISSM_EXT_DIR}/sqlite/install" -if [ -d "${SQLITE_ROOT}" ]; then - export SQLITE_ROOT # Used in installation of GDAL - path_prepend "${SQLITE_ROOT}/bin" - cpath_prepend "${SQLITE_ROOT}/include" - library_path_prepend "${SQLITE_ROOT}/lib" - ld_library_path_prepend "${SQLITE_ROOT}/lib" +SQLITE_ROOT_TEMP="${ISSM_EXT_DIR}/sqlite/install" +if [ -d "${SQLITE_ROOT_TEMP}" ]; then + export SQLITE_ROOT="${SQLITE_ROOT_TEMP}" # Used in installation of GDAL + path_prepend "${SQLITE_ROOT_TEMP}/bin" + cpath_prepend "${SQLITE_ROOT_TEMP}/include" + library_path_prepend "${SQLITE_ROOT_TEMP}/lib" + ld_library_path_prepend "${SQLITE_ROOT_TEMP}/lib" fi -LIBTIFF_ROOT="${ISSM_EXT_DIR}/libtiff/install" -if [ -d "${LIBTIFF_ROOT}" ]; then - dyld_library_path_append "${LIBTIFF_ROOT}/install/libtiff" - ld_library_path_append "${LIBTIFF_ROOT}/install/libtiff" +LIBTIFF_ROOT_TEMP="${ISSM_EXT_DIR}/libtiff/install" +if [ -d "${LIBTIFF_ROOT_TEMP}" ]; then + dyld_library_path_append "${LIBTIFF_ROOT_TEMP}/install/libtiff" + ld_library_path_append "${LIBTIFF_ROOT_TEMP}/install/libtiff" fi -PROJ_ROOT="${ISSM_EXT_DIR}/proj/install" -if [ -d "${PROJ_ROOT}" ]; then - export PROJ_ROOT # Used in installation of GDAL - export PROJ_LIB="${PROJ_ROOT}/share/proj" #in order to find proj.db - path_append "${PROJ_ROOT}/bin" - ld_library_path_prepend "${PROJ_ROOT}/lib" - dyld_library_path_prepend "${PROJ_ROOT}/lib" - ld_library_path_prepend "${PROJ_ROOT}/lib" +PROJ_ROOT_TEMP="${ISSM_EXT_DIR}/proj/install" +if [ -d "${PROJ_ROOT_TEMP}" ]; then + export PROJ_ROOT="${PROJ_ROOT_TEMP}" # Used in installation of GDAL + export PROJ_LIB="${PROJ_ROOT_TEMP}/share/proj" #in order to find proj.db + path_append "${PROJ_ROOT_TEMP}/bin" + ld_library_path_prepend "${PROJ_ROOT_TEMP}/lib" + dyld_library_path_prepend "${PROJ_ROOT_TEMP}/lib" + ld_library_path_prepend "${PROJ_ROOT_TEMP}/lib" fi -GDAL_ROOT="${ISSM_EXT_DIR}/gdal/install" -if [ -d "${GDAL_ROOT}" ]; then - export GDAL_ROOT # Used in installation of GMT - path_prepend "${GDAL_ROOT}/bin" - ld_library_path_append "${GDAL_ROOT}/lib" - dyld_library_path_append "${GDAL_ROOT}/lib" +GDAL_ROOT_TEMP="${ISSM_EXT_DIR}/gdal/install" +if [ -d "${GDAL_ROOT_TEMP}" ]; then + export GDAL_ROOT="${GDAL_ROOT_TEMP}" # Used in installation of GMT + path_prepend "${GDAL_ROOT_TEMP}/bin" + ld_library_path_append "${GDAL_ROOT_TEMP}/lib" + dyld_library_path_append "${GDAL_ROOT_TEMP}/lib" fi -GSHHG_ROOT="${ISSM_EXT_DIR}/gshhg/install" -if [ -d "${GSHHG_ROOT}" ]; then - export GSHHG_ROOT # Used in installation of GMT +GSHHG_ROOT_TEMP="${ISSM_EXT_DIR}/gshhg/install" +if [ -d "${GSHHG_ROOT_TEMP}" ]; then + export GSHHG_ROOT="${GSHHG_ROOT_TEMP}" # Used in installation of GMT fi -GMT_ROOT="${ISSM_EXT_DIR}/gmt/install" -if [ -d "${GMT_ROOT}" ]; then - path_prepend "${GMT_ROOT}/bin" - ld_library_path_append "${GMT_ROOT}/lib" - dyld_library_path_append "${GMT_ROOT}/lib" +GMT_ROOT_TEMP="${ISSM_EXT_DIR}/gmt/install" +if [ -d "${GMT_ROOT_TEMP}" ]; then + path_prepend "${GMT_ROOT_TEMP}/bin" + ld_library_path_append "${GMT_ROOT_TEMP}/lib" + dyld_library_path_append "${GMT_ROOT_TEMP}/lib" fi -GMSH_ROOT="${ISSM_EXT_DIR}/gmsh/install" -if [ -d "${GMSH_ROOT}" ]; then - path_prepend "${GMSH_ROOT}/bin" - ld_library_path_append "${GMSH_ROOT}/lib" - dyld_library_path_append "${GMSH_ROOT}/lib" +GMSH_ROOT_TEMP="${ISSM_EXT_DIR}/gmsh/install" +if [ -d "${GMSH_ROOT_TEMP}" ]; then + path_prepend "${GMSH_ROOT_TEMP}/bin" + ld_library_path_append "${GMSH_ROOT_TEMP}/lib" + dyld_library_path_append "${GMSH_ROOT_TEMP}/lib" fi -TRIANGLE_ROOT="${ISSM_EXT_DIR}/triangle/install" -if [ -d "${TRIANGLE_ROOT}" ]; then - ld_library_path_append "${TRIANGLE_ROOT}/lib" - dyld_library_path_append "${TRIANGLE_ROOT}/lib" +TRIANGLE_ROOT_TEMP="${ISSM_EXT_DIR}/triangle/install" +if [ -d "${TRIANGLE_ROOT_TEMP}" ]; then + ld_library_path_append "${TRIANGLE_ROOT_TEMP}/lib" + dyld_library_path_append "${TRIANGLE_ROOT_TEMP}/lib" if [[ ${MINGW} -eq 1 ]]; then - path_append "${TRIANGLE_ROOT}/lib" # Allows dynamic loader to find DLLs + path_append "${TRIANGLE_ROOT_TEMP}/lib" # Allows dynamic loader to find DLLs fi fi -ANGELROOT="${ISSM_EXT_DIR}/angel/angel" -if [ -d "${ANGELROOT}" ]; then - export ANGELROOT +ANGELROOT_TEMP="${ISSM_EXT_DIR}/angel/angel" +if [ -d "${ANGELROOT_TEMP}" ]; then + export ANGELROOT="${ANGELROOT_TEMP}" fi -OPENANALYSISROOT="${ISSM_EXT_DIR}/openanalysis/install" -if [ -d "${OPENANALYSISROOT}" ]; then - export OPENANALYSISROOT - ld_library_path_append "${OPENANALYSISROOT}/lib" +OPENANALYSISROOT_TEMP="${ISSM_EXT_DIR}/openanalysis/install" +if [ -d "${OPENANALYSISROOT_TEMP}" ]; then + export OPENANALYSISROOT="${OPENANALYSISROOT_TEMP}" + ld_library_path_append "${OPENANALYSISROOT_TEMP}/lib" fi -BBFTP_ROOT="${ISSM_EXT_DIR}/bbftp/install" -path_append "${BBFTP_ROOT}/bin" +BBFTP_ROOT_TEMP="${ISSM_EXT_DIR}/bbftp/install" +if [ -d "${BBFTP_ROOT_TEMP}" ]; then + path_append "${BBFTP_ROOT_TEMP}/bin" +fi -ADIC_ROOT="${ISSM_EXT_DIR}/adic/install" -path_append "${ADIC_ROOT}/bin" -ld_library_path_append "${ADIC_ROOT}/lib" +ADIC_ROOT_TEMP="${ISSM_EXT_DIR}/adic/install" +if [ -d "${ADIC_ROOT_TEMP}" ]; then + path_append "${ADIC_ROOT_TEMP}/bin" + ld_library_path_append "${ADIC_ROOT_TEMP}/lib" +fi -COLPACK_ROOT="${ISSM_EXT_DIR}/colpack/install" -ld_library_path_append "${COLPACK_ROOT}/lib" +COLPACK_ROOT_TEMP="${ISSM_EXT_DIR}/colpack/install" +if [ -d "${COLPACK_ROOT_TEMP}" ]; then + ld_library_path_append "${COLPACK_ROOT_TEMP}/lib" +fi -APPSCAN_ROOT="${ISSM_EXT_DIR}/appscan/install" -path_append "${APPSCAN_ROOT}/bin" +APPSCAN_ROOT_TEMP="${ISSM_EXT_DIR}/appscan/install" +if [ -d "${APPSCAN_ROOT_TEMP}" ]; then + path_append "${APPSCAN_ROOT_TEMP}/bin" +fi -RATS_ROOT="${ISSM_EXT_DIR}/rats/install" -path_append "${RATS_ROOT}/bin" +RATS_ROOT_TEMP="${ISSM_EXT_DIR}/rats/install" +if [ -d "${RATS_ROOT_TEMP}" ]; then + path_append "${RATS_ROOT_TEMP}/bin" +fi -DYSON_ROOT="${ISSM_EXT_DIR}/dyson/" -path_append "${DYSON_ROOT}" +DYSON_ROOT_TEMP="${ISSM_EXT_DIR}/dyson" +if [ -d "${DYSON_ROOT_TEMP}" ]; then + path_append "${DYSON_ROOT_TEMP}" +fi -SHAPELIB_ROOT="${ISSM_EXT_DIR}/shapelib/install" -path_append "${SHAPELIB_ROOT}/exec" +SHAPELIB_ROOT_TEMP="${ISSM_EXT_DIR}/shapelib/install" +if [ -d "${SHAPELIB_ROOT_TEMP}" ]; then + path_append "${SHAPELIB_ROOT_TEMP}/exec" +fi -CCCL_ROOT="${ISSM_EXT_DIR}/cccl/install" -path_append "${CCCL_ROOT}/bin" +CCCL_ROOT_TEMP="${ISSM_EXT_DIR}/cccl/install" +if [ -d "${CCCL_ROOT_TEMP}" ]; then + path_append "${CCCL_ROOT_TEMP}/bin" +fi -MODELE_ROOT="${ISSM_EXT_DIR}/modelE/install" -path_append "${MODELE_ROOT}/src/exec" +MODELE_ROOT_TEMP="${ISSM_EXT_DIR}/modelE/install" +if [ -d "${MODELE_ROOT_TEMP}" ]; then + path_append "${MODELE_ROOT_TEMP}/src/exec" +fi -NCVIEW_ROOT="${ISSM_EXT_DIR}/ncview/install" -path_append "${NCVIEW_ROOT}" +NCVIEW_ROOT_TEMP="${ISSM_EXT_DIR}/ncview/install" +if [ -d "${NCVIEW_ROOT}" ]; then + path_append "${NCVIEW_ROOT}" +fi -TCLX_ROOT="${ISSM_EXT_DIR}/tclx/install/lib/tclx8.4" -ld_library_path_append "${TCLX_ROOT}" +TCLX_ROOT_TEMP="${ISSM_EXT_DIR}/tclx/install/lib/tclx8.4" +if [ -d "${TCLX_ROOT_TEMP}" ]; then + ld_library_path_append "${TCLX_ROOT_TEMP}" +fi -ASPELL_ROOT="${ISSM_EXT_DIR}/aspell/install" -path_append "${ASPELL_ROOT}/bin" +ASPELL_ROOT_TEMP="${ISSM_EXT_DIR}/aspell/install" +if [ -d "${ASPELL_ROOT_TEMP}" ]; then + path_prepend "${ASPELL_ROOT_TEMP}/bin" +fi -ESMF_ROOT="${ISSM_EXT_DIR}/esmf/install" -if [ -d "${ESMF_ROOT}" ]; then - path_prepend "${ESMF_ROOT}/bin" - ld_library_path_append "${ESMF_ROOT}/lib/libO/Linux.gfortran.64.mpich.default/" +ESMF_ROOT_TEMP="${ISSM_EXT_DIR}/esmf/install" +if [ -d "${ESMF_ROOT_TEMP}" ]; then + path_prepend "${ESMF_ROOT_TEMP}/bin" + ld_library_path_append "${ESMF_ROOT_TEMP}/lib/libO/Linux.gfortran.64.mpich.default" fi -CVS_ROOT="${ISSM_EXT_DIR}/cvs/install" -path_prepend "${CVS_ROOT}/bin" +CVS_ROOT_TEMP="${ISSM_EXT_DIR}/cvs/install" +if [ -d "${CVS_ROOT_TEMP}" ]; then + path_prepend "${CVS_ROOT_TEMP}/bin" +fi -APR_ROOT="${ISSM_EXT_DIR}/apr/install" -path_append "${APR_ROOT}/bin" -ld_library_path_append "${APR_ROOT}/lib" +APR_ROOT_TEMP="${ISSM_EXT_DIR}/apr/install" +if [ -d "${APR_ROOT_TEMP}" ]; then + path_prepend "${APR_ROOT_TEMP}/bin" + ld_library_path_append "${APR_ROOT_TEMP}/lib" +fi -APR_UTIL_ROOT="${ISSM_EXT_DIR}/apr-util/install" -path_prepend "${APR_UTIL_ROOT}/bin" -ld_library_path_append "${APR_UTIL_ROOT}/lib" +APR_UTIL_ROOT_TEMP="${ISSM_EXT_DIR}/apr-util/install" +if [ -d "${APR_UTIL_ROOT_TEMP}" ]; then + path_prepend "${APR_UTIL_ROOT_TEMP}/bin" + ld_library_path_append "${APR_UTIL_ROOT_TEMP}/lib" +fi -YAMS_ROOT="${ISSM_EXT_DIR}/yams/install" -path_append "${YAMS_ROOT}" +YAMS_ROOT_TEMP="${ISSM_EXT_DIR}/yams/install" +if [ -d "${YAMS_ROOT_TEMP}" ]; then + path_prepend "${YAMS_ROOT_TEMP}" +fi -SWIG_ROOT="${ISSM_EXT_DIR}/swig/install" -path_append "${SWIG_ROOT}" +SWIG_ROOT_TEMP="${ISSM_EXT_DIR}/swig/install" +if [ -d "${SWIG_ROOT_TEMP}" ]; then + path_prepend "${SWIG_ROOT_TEMP}" +fi -INISHELL_ROOT="${ISSM_EXT_DIR}/inishell/install" -path_append "${INISHELL_ROOT}" +INISHELL_ROOT_TEMP="${ISSM_EXT_DIR}/inishell/install" +if [ -d "${INISHELL_ROOT_TEMP}" ]; then + path_prepend "${INISHELL_ROOT_TEMP}" +fi -EXPAT_ROOT="${ISSM_EXT_DIR}/expat/install" -ld_library_path_prepend "${EXPAT_ROOT}" -dyld_library_path_prepend "${EXPAT_ROOT}" +EXPAT_ROOT_TEMP="${ISSM_EXT_DIR}/expat/install" +if [ -d "${EXPAT_ROOT_TEMP}" ]; then + ld_library_path_prepend "${EXPAT_ROOT_TEMP}" + dyld_library_path_prepend "${EXPAT_ROOT_TEMP}" +fi -NEOPZ_ROOT="${ISSM_EXT_DIR}/neopz/install" -if [ -d "${NEOPZ_ROOT}" ]; then - export REFPATTERNDIR="${NEOPZ_ROOT}/include/refpatterns" +NEOPZ_ROOT_TEMP="${ISSM_EXT_DIR}/neopz/install" +if [ -d "${NEOPZ_ROOT_TEMP}" ]; then + export REFPATTERNDIR="${NEOPZ_ROOT_TEMP}/include/refpatterns" fi -XERCESROOT="${ISSM_EXT_DIR}/xerces/install" -if [ -d "${XERCESROOT}" ]; then - export XERCESROOT - export XERCESCROOT="${ISSM_EXT_DIR}/xerces/src" +XERCESROOT_TEMP="${ISSM_EXT_DIR}/xerces/install" +if [ -d "${XERCESROOT_TEMP}" ]; then + export XERCESROOT="${XERCESROOT_TEMP}" + export XERCESCROOT="${XERCESROOT_TEMP}/../src" fi -XAIFBOOSTERROOT="${ISSM_EXT_DIR}/xaifbooster" -XAIF_ROOT="${XAIFBOOSTERROOT}/xaifBooster" -if [ -d "${XAIF_ROOT}" ]; then - export XAIFBOOSTERROOT - export XAIF_DIR="${XAIF_ROOT}" - export XAIFBOOSTER_HOME="${XAIF_ROOT}" +XAIFBOOSTERROOT_TEMP="${ISSM_EXT_DIR}/xaifbooster" +XAIF_ROOT_TEMP="${XAIFBOOSTERROOT_TEMP}/xaifBooster" +if [ -d "${XAIF_ROOT_TEMP}" ]; then + export XAIFBOOSTERROOT="${XAIFBOOSTERROOT_TEMP}" + export XAIF_DIR="${XAIF_ROOT_TEMP}" + export XAIFBOOSTER_HOME="${XAIF_ROOT_TEMP}" export PLATFORM="x86-Linux" fi -VALGRIND_ROOT="${ISSM_DIR}/externalpackages/valgrind/install" -if [ -d "${VALGRIND_ROOT="${ISSM_DIR}/valgrind/install" -}" ]; then - path_prepend "${VALGRIND_ROOT}/bin" +VALGRIND_ROOT_TEMP="${ISSM_DIR}/externalpackages/valgrind/install" +if [ -d "${VALGRIND_ROOT_TEMP}" ]; then + path_prepend "${VALGRIND_ROOT_TEMP}/bin" fi -DOXYGEN_ROOT="${ISSM_EXT_DIR}/doxygen/install" -path_prepend "${DOXYGEN_ROOT}/bin" +DOXYGEN_ROOT_TEMP="${ISSM_EXT_DIR}/doxygen/install" +if [ -d "${DOXYGEN_ROOT_TEMP}" ]; then + path_append "${DOXYGEN_ROOT_TEMP}/bin" +fi -SHELL2JUNIT_ROOT="${ISSM_EXT_DIR}/shell2junit/install" -path_append "${SHELL2JUNIT_ROOT}" +SHELL2JUNIT_ROOT_TEMP="${ISSM_EXT_DIR}/shell2junit/install" +if [ -d "${SHELL2JUNIT_ROOT_TEMP}" ]; then + path_append "${SHELL2JUNIT_ROOT_TEMP}" +fi diff --git a/externalpackages/dakota/install-6.2-pleiades.sh b/externalpackages/dakota/install-6.2-pleiades.sh index 7e6447a17..96c41fcef 100755 --- a/externalpackages/dakota/install-6.2-pleiades.sh +++ b/externalpackages/dakota/install-6.2-pleiades.sh @@ -10,12 +10,12 @@ PREFIX="${ISSM_DIR}/externalpackages/dakota/install" # Set to location where ext ## Environment # -export BLAS_LIBS="-L/nasa/intel/Compiler/2018.3.222/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64/ -lmkl_intel_lp64 -lmkl_sequential -lmkl_core" # Need to export BLAS_LIBS *and* pass it as an option to CMake to ensure that external packages also find it; should upate to /nasa/intel/Compiler/2021.4.0/mkl/2021.4.0/lib/intel64 -export CXXFLAGS='-std=c++11' +export BLAS_LIBS="-L${COMP_INTEL_ROOT}/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core" # Need to export BLAS_LIBS *and* pass it as an option to CMake to ensure that external packages also find it +export CXXFLAGS='-std=c++98' export DAK_BUILD=${ISSM_DIR}/externalpackages/dakota/build # DO NOT CHANGE THIS export DAK_INSTALL=${PREFIX} # DO NOT CHANGE THIS export DAK_SRC=${ISSM_DIR}/externalpackages/dakota/src # DO NOT CHANGE THIS -export LAPACK_LIBS="-L/nasa/intel/Compiler/2018.3.222/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64/lib/intel64/ -lmkl_intel_lp64 -lmkl_sequential -lmkl_core" # Need to export LAPACK_LIBS *and* pass it as an option to CMake to ensure that external packages also find it; should upate to /nasa/intel/Compiler/2021.4.0/mkl/2021.4.0/lib/intel64 +export LAPACK_LIBS="-L${COMP_INTEL_ROOT}/mkl/lib/intel64/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core" # Need to export LAPACK_LIBS *and* pass it as an option to CMake to ensure that external packages also find it # Cleanup rm -rf ${DAK_BUILD} ${DAK_INSTALL} ${DAK_SRC} @@ -58,7 +58,7 @@ cmake \ -DCMAKE_C_COMPILER=mpicc \ -DCMAKE_C_FLAGS="-Wno-error=implicit-function-declaration" \ -DCMAKE_CXX_COMPILER=mpicxx \ - -DCMAKE_Fortran_COMPILER=/usr/bin/gfortran \ + -DCMAKE_Fortran_COMPILER=gfortran \ -DBoost_NO_BOOST_CMAKE=TRUE \ -DHAVE_ACRO=OFF \ -DHAVE_JEGA=OFF \ diff --git a/externalpackages/dakota/install-6.2-pleiades_toss4.sh b/externalpackages/dakota/install-6.2-pleiades_toss4.sh deleted file mode 100755 index 60d109033..000000000 --- a/externalpackages/dakota/install-6.2-pleiades_toss4.sh +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/bash -set -eu - - -## Constants -# -VER="6.2" - -PREFIX="${ISSM_DIR}/externalpackages/dakota/install" # Set to location where external package should be installed - -## Environment -# -export BLAS_LIBS="-L/nasa/intel/Compiler/2018.3.222/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64/ -lmkl_intel_lp64 -lmkl_sequential -lmkl_core" # Need to export BLAS_LIBS *and* pass it as an option to CMake to ensure that external packages also find it; should upate to /nasa/intel/Compiler/2021.4.0/mkl/2021.4.0/lib/intel64 -export CXXFLAGS='-std=c++98' -export DAK_BUILD=${ISSM_DIR}/externalpackages/dakota/build # DO NOT CHANGE THIS -export DAK_INSTALL=${PREFIX} # DO NOT CHANGE THIS -export DAK_SRC=${ISSM_DIR}/externalpackages/dakota/src # DO NOT CHANGE THIS -export LAPACK_LIBS="-L/nasa/intel/Compiler/2018.3.222/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64/lib/intel64/ -lmkl_intel_lp64 -lmkl_sequential -lmkl_core" # Need to export LAPACK_LIBS *and* pass it as an option to CMake to ensure that external packages also find it; should upate to /nasa/intel/Compiler/2021.4.0/mkl/2021.4.0/lib/intel64 - -# Cleanup -rm -rf ${DAK_BUILD} ${DAK_INSTALL} ${DAK_SRC} -mkdir -p ${DAK_BUILD} ${DAK_INSTALL} ${DAK_SRC} - -# Download source -${ISSM_DIR}/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/dakota-${VER}-public.src.tar.gz" "dakota-${VER}-public-src.tar.gz" - -# Unpack source -tar -zxvf dakota-${VER}-public-src.tar.gz - -# Move source to 'src' directory -mv dakota-${VER}.0.src/* ${DAK_SRC} -rm -rf dakota-${VER}.0.src - -# Copy customized source and configuration files to 'src' directory -cp configs/${VER}/packages/DDACE/src/Analyzer/MainEffectsExcelOutput.cpp ${DAK_SRC}/packages/DDACE/src/Analyzer -cp configs/${VER}/packages/queso/src/misc/src/1DQuadrature.C ${DAK_SRC}/packages/queso/src/misc/src -cp configs/${VER}/packages/surfpack/src/surfaces/nkm/NKM_KrigingModel.cpp ${DAK_SRC}/packages/surfpack/src/surfaces/nkm -cp configs/${VER}/packages/VPISparseGrid/src/sandia_rules.cpp ${DAK_SRC}/packages/VPISparseGrid/src -cp configs/${VER}/src/DakotaInterface.cpp ${DAK_SRC}/src -cp configs/${VER}/src/NonDLocalReliability.cpp ${DAK_SRC}/src -cp configs/${VER}/src/NonDSampling.cpp ${DAK_SRC}/src - -# Copy customized source and configuration files specific to Linux to 'src' directory -cp configs/${VER}/linux/cmake/BuildDakotaCustom.pleiades.cmake ${DAK_SRC}/cmake/BuildDakotaCustom.cmake -cp configs/${VER}/cmake/DakotaDev.cmake ${DAK_SRC}/cmake - -# Patch source -patch ${DAK_SRC}/src/dakota_data_io.hpp configs/${VER}/src/dakota_data_io.hpp.patch - -# Disable requirement of Python 2 for TriBITS -sed -i'' -e 's|SET(PythonInterp_FIND_VERSION|#SET(PythonInterp_FIND_VERSION|' ${DAK_SRC}/packages/teuchos/cmake/tribits/package_arch/TribitsFindPythonInterp.cmake - -# Configure -cd ${DAK_BUILD} -cmake \ - -DBUILD_SHARED_LIBS=ON \ - -DBUILD_STATIC_LIBS=OFF \ - -DCMAKE_C_COMPILER=mpicc \ - -DCMAKE_C_FLAGS="-Wno-error=implicit-function-declaration" \ - -DCMAKE_CXX_COMPILER=mpicxx \ - -DCMAKE_Fortran_COMPILER=gfortran \ - -DBoost_NO_BOOST_CMAKE=TRUE \ - -DHAVE_ACRO=OFF \ - -DHAVE_JEGA=OFF \ - -DHAVE_QUESO=ON \ - -DDAKOTA_HAVE_GSL=ON \ - -C${DAK_SRC}/cmake/BuildDakotaCustom.cmake \ - -C${DAK_SRC}/cmake/DakotaDev.cmake \ - ${DAK_SRC} - -# Compile and install -if [ $# -eq 0 ]; then - make - make install -else - make -j $1 - make -j $1 install -fi - -cd ${DAK_INSTALL} - -# Comment out definition of HAVE_MPI in Teuchos config header file in order to -# avoid conflict with our definition -sed -i -e "s/#define HAVE_MPI/\/* #define HAVE_MPI *\//g" include/Teuchos_config.h diff --git a/externalpackages/gdal/install-3-ghub-workspace_10.sh b/externalpackages/gdal/install-3-ghub-workspace_10.sh index 106214847..af0e0771b 100755 --- a/externalpackages/gdal/install-3-ghub-workspace_10.sh +++ b/externalpackages/gdal/install-3-ghub-workspace_10.sh @@ -8,7 +8,7 @@ set -eu ## Constants # -VER="3.5.3" +VER="3.10.0" ## Environment # diff --git a/externalpackages/gdal/install-3-linux-python.sh b/externalpackages/gdal/install-3-linux-python.sh index b84ef3467..91b8d0e78 100755 --- a/externalpackages/gdal/install-3-linux-python.sh +++ b/externalpackages/gdal/install-3-linux-python.sh @@ -8,7 +8,7 @@ set -e ## Constants # -VER="3.8.4" +VER="3.10.0" PREFIX="${ISSM_DIR}/externalpackages/gdal/install" diff --git a/externalpackages/gdal/install-3-linux.sh b/externalpackages/gdal/install-3-linux.sh index f0941d293..06aed9b31 100755 --- a/externalpackages/gdal/install-3-linux.sh +++ b/externalpackages/gdal/install-3-linux.sh @@ -8,7 +8,7 @@ set -e ## Constants # -VER="3.8.4" +VER="3.10.0" PREFIX="${ISSM_DIR}/externalpackages/gdal/install" diff --git a/externalpackages/gdal/install-3-mac-python.sh b/externalpackages/gdal/install-3-mac-python.sh index ec36fb145..396ca3aef 100755 --- a/externalpackages/gdal/install-3-mac-python.sh +++ b/externalpackages/gdal/install-3-mac-python.sh @@ -8,7 +8,7 @@ set -e ## Constants # -VER="3.8.4" +VER="3.10.0" PREFIX="${ISSM_DIR}/externalpackages/gdal/install" diff --git a/externalpackages/gdal/install-3-mac.sh b/externalpackages/gdal/install-3-mac.sh index b05b7701d..778e25341 100755 --- a/externalpackages/gdal/install-3-mac.sh +++ b/externalpackages/gdal/install-3-mac.sh @@ -8,7 +8,7 @@ set -e ## Constants # -VER="3.8.4" +VER="3.10.0" PREFIX="${ISSM_DIR}/externalpackages/gdal/install" diff --git a/externalpackages/gdal/install-3-python-static.sh b/externalpackages/gdal/install-3-python-static.sh index e09f8a513..2ae0f6a9e 100755 --- a/externalpackages/gdal/install-3-python-static.sh +++ b/externalpackages/gdal/install-3-python-static.sh @@ -8,7 +8,7 @@ set -e ## Constants # -VER="3.8.4" +VER="3.10.0" PREFIX="${ISSM_DIR}/externalpackages/gdal/install" diff --git a/externalpackages/gdal/install-3-static.sh b/externalpackages/gdal/install-3-static.sh index 5a62ed940..399f60049 100755 --- a/externalpackages/gdal/install-3-static.sh +++ b/externalpackages/gdal/install-3-static.sh @@ -8,7 +8,7 @@ set -e ## Constants # -VER="3.8.4" +VER="3.10.0" PREFIX="${ISSM_DIR}/externalpackages/gdal/install" diff --git a/externalpackages/gmsh/install-4-pleiades.sh b/externalpackages/gmsh/install-4-pleiades.sh new file mode 100755 index 000000000..030f29092 --- /dev/null +++ b/externalpackages/gmsh/install-4-pleiades.sh @@ -0,0 +1,84 @@ +#!/bin/bash +set -e + + +# TODO: +# - Add support for, +# - MUMPS +# - PETSc +# +# See Also: +# - configs/4/static/CMakeLists.txt +# - http://gmsh.info/doc/texinfo/gmsh.html#Compiling-the-source-code +# + +## Constants +# +VER="4.12.2" + +PREFIX="${ISSM_DIR}/externalpackages/gmsh/install" # Set to location where external package should be installed + +BLASLAPACK_LIBFLAGS="-L${COMP_INTEL_ROOT}/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core" +LIBGFORTRAN_LIBFLAGS="-L${COMP_INTEL_ROOT}/compiler/lib/intel64_lin -lifcore -lifport -lgfortran" + +# Environment +# +export CXXFLAGS="${CXXFLAGS} -w" + +# Cleanup +rm -rf ${PREFIX} src +mkdir -p ${PREFIX} src + +# Download source +$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://gmsh.info/src/gmsh-${VER}-source.tgz" "gmsh-${VER}-source.tgz" + +# Unpack source +tar -xvzf gmsh-${VER}-source.tgz + +# Move source to 'src' directory +mv gmsh-${VER}-source/* src +rm -rf gmsh-${VER}-source + +# Configure +# +# NOTE: +# - Option -DENABLE_FLTK=0 is used because we do not need GUI. +# - Option -DENABLE_MPEG_ENCODE=0 is used because we do not need to record MPEG +# movies. +# - Option -DENABLE_OCC=0 is used because we do not need CAD kernel and are not +# importing STEP/IGES files. +# - Option -DENABLE_TOUCHBAR=0 is used because we do not have GUI, therefore we +# do not need to support Apple Touch bar (does not affect compilation on +# Linux). +# +cd src +cmake \ + -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ + -DCMAKE_INSTALL_RPATH="${PREFIX}/lib" \ + -DCMAKE_BUILD_TYPE=Release \ + -DENABLE_BUILD_DYNAMIC=1 \ + -DENABLE_BUILD_SHARED=1 \ + -DBLAS_LAPACK_LIBRARIES="${BLASLAPACK_LIBFLAGS} ${LIBGFORTRAN_LIBFLAGS}" \ + -DENABLE_BLAS_LAPACK=1 \ + -DENABLE_EIGEN=0 \ + -DENABLE_FLTK=0 \ + -DENABLE_MPEG_ENCODE=0 \ + -DENABLE_MPI=1 \ + -DENABLE_OCC=0 \ + -DENABLE_TOUCHBAR=0 \ + -DMETIS_ROOT="${PETSC_DIR}/lib" + +# Compile and install +if [ $# -eq 0 ]; then + make + make install +else + make -j $1 + make -j $1 install +fi + +# Make necessary link on RHEL +if [[ -d ${PREFIX}/lib64 && ! -d ${PREFIX}/lib ]]; then + cd ${PREFIX} + ln -s ./lib64 ./lib +fi diff --git a/externalpackages/gmt/install-6-pleiades.sh b/externalpackages/gmt/install-6-pleiades.sh new file mode 100755 index 000000000..8c46d8b6a --- /dev/null +++ b/externalpackages/gmt/install-6-pleiades.sh @@ -0,0 +1,72 @@ +#!/bin/bash +set -e + + +## Constants +# +VER="6.5.0" + +PREFIX="${ISSM_DIR}/externalpackages/gmt/install" + +BLASLAPACK_LIBFLAGS="-L${COMP_INTEL_ROOT}/mkl/lib/intel64;-lmkl_intel_lp64;-lmkl_sequential;-lmkl_core" +LIBGFORTRAN_LIBFLAGS="-L${COMP_INTEL_ROOT}/compiler/lib/intel64_lin;-lifcore;-lifport;-lgfortran" + +# Environment +# +export CC=mpicc +export CFLAGS="${CFLAGS} -w" + +# Download source +$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://github.com/GenericMappingTools/gmt/archive/refs/tags/${VER}.tar.gz" "gmt-${VER}.tar.gz" + +# Unpack source +tar -zxvf gmt-${VER}.tar.gz + +# Cleanup +rm -rf ${PREFIX} src +mkdir -p ${PREFIX} src + +# Move source to 'src' directory +mv gmt-${VER}/* src +rm -rf gmt-${VER} + +# Copy custom configuration files to source +cp ./src/cmake/ConfigUserAdvancedTemplate.cmake ./src/cmake/ConfigUser.cmake + +# Patch source +patch ./src/cmake/ConfigUser.cmake < ./configs/${VER%.*}/cmake/ConfigUserAdvancedTemplate.cmake.patch + +# Configure +cd src +mkdir build +cd build + +# NOTE: +# - There is a CMake variable named CURL_ROOT in src/cmake/ConfigUser.cmake +# that, ostensibly, allows for supplying the path to curl when it is in a +# non-standard location. That said, newer versions of CMake will ignore said +# variable and instead try to find curl itself. Passing in the two options +# below overrides this behavior. +# +cmake \ + -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ + -DBLAS_LIBRARIES="${BLASLAPACK_LIBFLAGS};${LIBGFORTRAN_LIBFLAGS}" \ + -DCURL_INCLUDE_DIR="${CURL_ROOT}/include" \ + -DCURL_LIBRARY="-L${CURL_ROOT}/lib;-lcurl" \ + -DLAPACK_LIBRARIES="${BLASLAPACK_LIBFLAGS};${LIBGFORTRAN_LIBFLAGS}" \ + .. + +# Compile and install +if [ $# -eq 0 ]; then + make + make install +else + make -j $1 + make -j $1 install +fi + +# Make necessary link on RHEL +if [[ -d ${PREFIX}/lib64 && ! -d ${PREFIX}/lib ]]; then + cd ${PREFIX} + ln -s ./lib64 ./lib +fi diff --git a/externalpackages/packagemaker/install.sh b/externalpackages/packagemaker/install.sh deleted file mode 100755 index d4169e060..000000000 --- a/externalpackages/packagemaker/install.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -set -eu - -#Erase symlink -rm -rf install - -#Select or create a new simlink -ln -s /Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/ install diff --git a/externalpackages/proj/install-6-static.sh b/externalpackages/proj/install-6-static.sh index caa73c049..432da253c 100755 --- a/externalpackages/proj/install-6-static.sh +++ b/externalpackages/proj/install-6-static.sh @@ -4,7 +4,7 @@ set -eu # Constants # -VER="6.2.1" +VER="6.3.2" PREFIX="${ISSM_DIR}/externalpackages/proj/install" # Set to location where external package should be installed diff --git a/externalpackages/proj/install-6.sh b/externalpackages/proj/install-6.sh index e8827b9a2..0177a65ec 100755 --- a/externalpackages/proj/install-6.sh +++ b/externalpackages/proj/install-6.sh @@ -4,7 +4,7 @@ set -eu # Constants # -VER="6.2.1" +VER="6.3.2" PREFIX="${ISSM_DIR}/externalpackages/proj/install" # Set to location where external package should be installed diff --git a/externalpackages/semic/install.sh b/externalpackages/semic/install.sh index c90db0341..cdc494839 100755 --- a/externalpackages/semic/install.sh +++ b/externalpackages/semic/install.sh @@ -4,15 +4,25 @@ set -eu ## Constants # +VER="1.2" + PREFIX="${ISSM_DIR}/externalpackages/semic/install" # Set to location where external package should be installed # Cleanup rm -rf ${PREFIX} src -mkdir -p ${PREFIX}/lib +mkdir -p ${PREFIX} ${PREFIX}/lib src # Download source -git clone https://github.com/mkrapp/semic.git src +$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://github.com/mkrapp/semic/archive/refs/tags/v${VER}.tar.gz" "semic-${VER}.tar.gz" + +# Unpack source +tar -xvzf semic-${VER}.tar.gz + +# Move source to 'src' directory +mv semic-${VER}/* src +rm -rf semic-${VER} +# Compile and install semic module utils.f90 if which ifort >/dev/null; then FC="ifort" FFLAGS="-traceback -check all" # -O2 is default @@ -25,7 +35,6 @@ else fi fi -# Compile and install semic module utils.f90 cd src/ ( cat << EOF diff --git a/jenkins/pleiades-basic b/jenkins/pleiades-basic index d7a621ed0..fe75ec81e 100755 --- a/jenkins/pleiades-basic +++ b/jenkins/pleiades-basic @@ -2,30 +2,32 @@ # Environment # #-------------# -export CC=icc -export CFLAGS="-O3 -D_INTEL_LINUX_" -export CXX=icpc -export CXXFLAGS="-g -O3 -D_INTEL_LINUX_ -std=c++11 -axCORE-AVX2,AVX -xSSE4.2 -ipo -no-inline-min-size -inline-max-size=345 -no-inline-max-total-size -no-inline-max-per-routine -no-inline-max-per-compile" +export CFLAGS="-O3" +export CXXFLAGS="-O3 -std=c++11" #--------------------# # ISSM Configuration # #--------------------# ISSM_CONFIG='\ - --prefix=${ISSM_DIR} \ + --prefix="${ISSM_DIR}" \ + --enable-development \ + --enable-standalone-libraries \ --with-wrappers=no \ - --with-petsc-dir="${ISSM_DIR}/externalpackages/petsc/install" \ + --with-graphics-lib="/usr/lib64/libX11.so" \ + --with-fortran-lib="-L${COMP_INTEL_ROOT}/compiler/lib/intel64_lin -lifcore -lifport -lgfortran" \ + --with-mkl-libflags="-L${COMP_INTEL_ROOT}/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm" \ + --with-mpi-include="/nasa/hpe/mpt/2.30_rhel810/include" \ + --with-mpi-libflags="-L/nasa/hpe/mpt/2.30_rhel810/lib -lmpi" \ + --with-blas-lapack-lib="-L${COMP_INTEL_ROOT}/mkl/lib/intel64 -lmkl_blas95_lp64 -lmkl_lapack95_lp64" \ + --with-metis-dir="${PETSC_DIR}" \ + --with-parmetis-dir="${PETSC_DIR}" \ + --with-scalapack-lib="-L${COMP_INTEL_ROOT}/mkl/lib/intel64/libmkl_scalapack_lp64.so" \ + --with-mumps-dir="${PETSC_DIR}" \ + --with-petsc-dir="${PETSC_DIR}" \ + --with-triangle-dir="${ISSM_DIR}/externalpackages/triangle/install" \ --with-m1qn3-dir="${ISSM_DIR}/externalpackages/m1qn3/install" \ - --with-mpi-include=" " \ - --with-mpi-libflags=" -lmpi" \ - --with-mkl-libflags="-L/nasa/intel/Compiler/2016.2.181/mkl/lib/intel64/ -mkl=cluster " \ - --with-metis-dir="${ISSM_DIR}/externalpackages/petsc/install" \ - --with-parmetis-dir=${ISSM_DIR}/externalpackages/petsc/install \ - --with-mumps-dir="${ISSM_DIR}/externalpackages/petsc/install" \ - --with-scalapack-dir="${ISSM_DIR}/externalpackages/petsc/install" \ - --with-fortran-lib="-L/nasa/intel/Compiler/2016.2.181/compilers_and_libraries_2016.2.181/linux/compiler/lib/intel64/ -lifcore -lifport" \ - --enable-development \ - --with-semic-dir=${ISSM_DIR}/externalpackages/semic/install \ + --with-semic-dir="${ISSM_DIR}/externalpackages/semic/install" \ ' #-------------------# @@ -33,9 +35,9 @@ ISSM_CONFIG='\ #-------------------# EXTERNALPACKAGES=" - petsc install-3.13-pleiades.sh - m1qn3 install-linux.sh - semic install.sh + triangle install-linux.sh + m1qn3 install-linux.sh + semic install.sh " #---------# diff --git a/jenkins/pleiades-dakota b/jenkins/pleiades-dakota index aa3659dad..7167dc202 100755 --- a/jenkins/pleiades-dakota +++ b/jenkins/pleiades-dakota @@ -2,52 +2,50 @@ # Environment # #-------------# -export CC=icc -export CFLAGS="-O3 -D_INTEL_LINUX_" -export CXX=icpc -export CXXFLAGS="-O3 -D_INTEL_LINUX_ -std=c++11" +export CFLAGS="-O3" +export CXXFLAGS="-O3 -std=c++11" #--------------------# # ISSM Configuration # #--------------------# ISSM_CONFIG='\ - --prefix=$ISSM_DIR \ + --prefix="${ISSM_DIR}" \ --enable-development \ --enable-standalone-libraries \ --with-wrappers=no \ - --with-petsc-dir="${ISSM_DIR}/externalpackages/petsc/install" \ - --with-m1qn3-dir="${ISSM_DIR}/externalpackages/m1qn3/install" \ + --with-graphics-lib="/usr/lib64/libX11.so" \ + --with-fortran-lib="-L${COMP_INTEL_ROOT}/compiler/lib/intel64_lin -lifcore -lifport -lgfortran" \ + --with-mkl-libflags="-L${COMP_INTEL_ROOT}/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm" \ + --with-mpi-include="${COMP_INTEL_ROOT}/mpi/intel64/include" \ + --with-mpi-libflags="-lmpi" \ + --with-blas-lapack-lib="-L${COMP_INTEL_ROOT}/mkl/lib/intel64 -lmkl_blas95_lp64 -lmkl_lapack95_lp64" \ + --with-metis-dir="${PETSC_DIR}" \ + --with-parmetis-dir="${PETSC_DIR}" \ + --with-mumps-dir="${PETSC_DIR}" \ + --with-scalapack-lib="-L${COMP_INTEL_ROOT}/mkl/lib/intel64/libmkl_scalapack_lp64.so" \ + --with-petsc-dir="${PETSC_DIR}" \ + --with-gsl-dir="${ISSM_DIR}/externalpackages/gsl/install" \ --with-boost-dir="${ISSM_DIR}/externalpackages/boost/install" \ --with-dakota-dir="${ISSM_DIR}/externalpackages/dakota/install" \ --with-chaco-dir="${ISSM_DIR}/externalpackages/chaco/install" \ - --with-gsl-dir=${ISSM_DIR}/externalpackages/gsl/install \ - --with-mpi-include=" " \ - --with-mpi-libflags=" -lmpi" \ - --with-mkl-libflags="-L/nasa/intel/Compiler/2018.3.222/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm" \ - --with-metis-dir="${ISSM_DIR}/externalpackages/petsc/install" \ - --with-parmetis-dir=${ISSM_DIR}/externalpackages/petsc/install \ - --with-mumps-dir="${ISSM_DIR}/externalpackages/petsc/install" \ - --with-scalapack-lib="-L/nasa/intel/Compiler/2018.3.222/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64/libmkl_scalapack_lp64.so" \ - --with-graphics-lib="/usr/lib64/libX11.so" \ - --with-fortran-lib="-L/nasa/intel/Compiler/2018.3.222/compilers_and_libraries_2018.3.222/linux/compiler/lib/intel64_lin/ -lifcore -lifport -lgfortran" \ - --with-semic-dir=${ISSM_DIR}/externalpackages/semic/install \ + --with-triangle-dir="${ISSM_DIR}/externalpackages/triangle/install" \ + --with-m1qn3-dir="${ISSM_DIR}/externalpackages/m1qn3/install" \ + --with-semic-dir="${ISSM_DIR}/externalpackages/semic/install" \ ' #-------------------# # External Packages # #-------------------# -# NOTE: Python 3 is installed only as a build system for GSL EXTERNALPACKAGES=" - python install-3-linux.sh - petsc install-3.14-pleiades.sh - gsl install-pleiades.sh - boost install-1.55-pleiades.sh - dakota install-6.2-pleiades.sh - chaco install-linux.sh - m1qn3 install-linux.sh - semic install.sh + gsl install-pleiades.sh + boost install-1.7-linux.sh + dakota install-6.2-pleiades.sh + chaco install-linux.sh + triangle install-linux.sh + m1qn3 install-linux.sh + semic install.sh " #---------# diff --git a/jenkins/pleiades-solid_earth b/jenkins/pleiades-solid_earth index 7f109ea7c..6001e7109 100755 --- a/jenkins/pleiades-solid_earth +++ b/jenkins/pleiades-solid_earth @@ -2,63 +2,59 @@ # Environment # #-------------# -export CC=icc -export CFLAGS="-O3 -D_INTEL_LINUX_" -export CXX=icpc -export CXXFLAGS="-O3 -D_INTEL_LINUX_ -std=c++11" +export CFLAGS="-O3" +export CXXFLAGS="-O3 -std=c++11" #--------------------# # ISSM Configuration # #--------------------# ISSM_CONFIG='\ - --prefix=$ISSM_DIR \ + --prefix="${ISSM_DIR}" \ --enable-development \ --enable-standalone-libraries \ --with-wrappers=no \ - --with-petsc-dir="${ISSM_DIR}/externalpackages/petsc/install" \ - --with-m1qn3-dir="${ISSM_DIR}/externalpackages/m1qn3/install" \ + --with-graphics-lib="/usr/lib64/libX11.so" \ + --with-fortran-lib="-L${COMP_INTEL_ROOT}/compiler/lib/intel64_lin -lifcore -lifport -lgfortran" \ + --with-mkl-libflags="-L${COMP_INTEL_ROOT}/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm" \ + --with-mpi-include="/nasa/hpe/mpt/2.30_rhel810/include" \ + --with-mpi-libflags="-L/nasa/hpe/mpt/2.30_rhel810/lib -lmpi" \ + --with-blas-lapack-lib="-L${COMP_INTEL_ROOT}/mkl/lib/intel64 -lmkl_blas95_lp64 -lmkl_lapack95_lp64" \ + --with-metis-dir="${PETSC_DIR}" \ + --with-parmetis-dir="${PETSC_DIR}" \ + --with-scalapack-lib="-L${COMP_INTEL_ROOT}/mkl/lib/intel64/libmkl_scalapack_lp64.so" \ + --with-mumps-dir="${PETSC_DIR}" \ + --with-hdf5-dir="${ISSM_DIR}/externalpackages/hdf5/install" \ + --with-petsc-dir="${PETSC_DIR}" \ + --with-gsl-dir="${ISSM_DIR}/externalpackages/gsl/install" \ --with-boost-dir="${ISSM_DIR}/externalpackages/boost/install" \ --with-dakota-dir="${ISSM_DIR}/externalpackages/dakota/install" \ --with-chaco-dir="${ISSM_DIR}/externalpackages/chaco/install" \ - --with-gsl-dir=${ISSM_DIR}/externalpackages/gsl/install \ - --with-mpi-include=" " \ - --with-mpi-libflags=" -lmpi" \ - --with-mkl-libflags="-L/nasa/intel/Compiler/2018.3.222/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm" \ - --with-metis-dir="${ISSM_DIR}/externalpackages/petsc/install" \ - --with-parmetis-dir=${ISSM_DIR}/externalpackages/petsc/install \ - --with-mumps-dir="${ISSM_DIR}/externalpackages/petsc/install" \ - --with-scalapack-lib="-L/nasa/intel/Compiler/2018.3.222/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64/libmkl_scalapack_lp64.so" \ - --with-graphics-lib="/usr/lib64/libX11.so" \ - --with-fortran-lib="-L/nasa/intel/Compiler/2018.3.222/compilers_and_libraries_2018.3.222/linux/compiler/lib/intel64_lin/ -lifcore -lifport -lgfortran" \ - --with-semic-dir=${ISSM_DIR}/externalpackages/semic/install \ + --with-proj-dir="${ISSM_DIR}/externalpackages/proj/install" \ + --with-triangle-dir="${ISSM_DIR}/externalpackages/triangle/install" \ + --with-m1qn3-dir="${ISSM_DIR}/externalpackages/m1qn3/install" \ + --with-semic-dir="${ISSM_DIR}/externalpackages/semic/install" \ ' #-------------------# # External Packages # #-------------------# -# NOTE: -# - Python 3 is installed only as a build system for GSL -# - shell2junit is included to run test suites via jenkins.sh -# EXTERNALPACKAGES=" - python install-3-linux.sh - petsc install-3.14-pleiades.sh zlib install-1.sh hdf5 install-1.sh gsl install-pleiades.sh - boost install-1.55-pleiades.sh + boost install-1.7-linux.sh dakota install-6.2-pleiades.sh chaco install-linux.sh curl install-7-linux.sh netcdf install-4.sh sqlite install.sh proj install-6.sh - gdal install-3.sh + gdal install-3-linux.sh gshhg install.sh - gmt install-6-linux.sh - gmsh install-4-linux.sh + gmt install-6-pleiades.sh + gmsh install-4-pleiades.sh triangle install-linux.sh m1qn3 install-linux.sh semic install.sh diff --git a/m4/issm_options.m4 b/m4/issm_options.m4 index ff3460a84..e0f7d398b 100644 --- a/m4/issm_options.m4 +++ b/m4/issm_options.m4 @@ -258,6 +258,31 @@ AC_DEFUN([ISSM_OPTIONS],[ AC_MSG_WARN([If you want to use the optimization flags provided by CXXOPTFLAGS (${CXXOPTFLAGS}), please pass them via CXXFLAGS]) fi dnl }}} + dnl Xlib (graphics library){{{ + AC_MSG_CHECKING([for Xlib (graphics library)]) + AC_ARG_WITH( + [graphics-lib], + AS_HELP_STRING([--with-graphics-lib=options], [Xlib (graphics library) to use]), + [GRAPHICS_LIB=${withval}], + [GRAPHICS_LIB=""] + ) + if test -n "${GRAPHICS_LIB}"; then + GRAPHICS_DIR=$(echo ${GRAPHICS_LIB} | sed -e "s/-L//g" | awk '{print $[1]}') + if test -d "${GRAPHICS_DIR}" || test -f "${GRAPHICS_DIR}"; then + HAVE_GRAPHICS=yes + GRAPHICSLIB="${GRAPHICS_LIB}" + AC_DEFINE([_HAVE_GRAPHICS_], [1], [with Xlib (graphics library) in ISSM src]) + AC_SUBST([GRAPHICSLIB]) + else + if test -f "${PETSC_ROOT}/conf/petscvariables"; then + PETSC_REC_GRAPHICS_LIB=$(cat ${PETSC_ROOT}/conf/petscvariables | grep X_LIB) + AC_MSG_ERROR([Xlib (graphics library) provided (${GRAPHICS_LIB}) does not exist! PETSc suggests the following library: ${PETSC_REC_GRAPHICS_LIB}]); + fi + AC_MSG_ERROR([Xlib (graphics library) provided (${GRAPHICS_LIB}) does not exist!]); + fi + fi + AC_MSG_RESULT([done]) + dnl }}} dnl MATLAB{{{ dnl See if MATLAB has been provided AC_MSG_CHECKING([for MATLAB]) @@ -1642,13 +1667,21 @@ AC_DEFUN([ISSM_OPTIONS],[ [BLASLAPACK_ROOT=$withval], [BLASLAPACK_ROOT="no"] ) - if (test "x${BLAS_ROOT}" = "xno" || test "x${LAPACK_ROOT}" = "xno") && test "x${BLASLAPACK_ROOT}" = "xno"; then + AC_ARG_WITH( + [blas-lapack-lib], + AS_HELP_STRING([--with-blas-lapack-lib=LIBFLAGS], [BLAS/LAPACK libflags]), + [BLASLAPACK_LIB=$withval], + [BLASLAPACK_LIB="no"] + ) + if (test "x${BLAS_ROOT}" = "xno" || test "x${LAPACK_ROOT}" = "xno") && test "x${BLASLAPACK_ROOT}" = "xno" && test "x${BLASLAPACK_LIB}" = "xno"; then HAVE_BLASLAPACK=no else HAVE_BLASLAPACK=yes - if ! test -d "${BLAS_ROOT}" || ! test -d "${LAPACK_ROOT}"; then - if ! test -d "${BLASLAPACK_ROOT}"; then - AC_MSG_ERROR([Use either --with-blas-dir and --with-lapack-dir *or* --with-blaslapack-dir]); + if test -z "${BLASLAPACK_LIB}"; then + if ! test -d "${BLAS_ROOT}" || ! test -d "${LAPACK_ROOT}"; then + if ! test -d "${BLASLAPACK_ROOT}"; then + AC_MSG_ERROR([Use either --with-blas-dir and --with-lapack-dir *or* --with-blaslapack-dir]); + fi fi fi fi @@ -1656,48 +1689,52 @@ AC_DEFUN([ISSM_OPTIONS],[ dnl BLAS/LAPACK libraries and header files if test "x${HAVE_BLASLAPACK}" == "xyes"; then - case "${host_os}" in - *darwin*) - BLASLAPACKLIB="-L${BLASLAPACK_ROOT}/lib" - if ls ${BLASLAPACK_ROOT}/lib/libopenblas.* 1> /dev/null 2>&1; then - BLASLAPACKLIB+=" -lopenblas" - elif ls ${BLASLAPACK_ROOT}/lib/libf2clapack.* 1> /dev/null 2>&1; then - BLASLAPACKLIB+=" -lf2clapack -lf2cblas" - elif ls ${BLASLAPACK_ROOT}/lib/libflapack.* 1> /dev/null 2>&1; then - BLASLAPACKLIB+=" -lflapack -lfblas" - else - BLASLAPACKLIB+=" -llapack -lblas" - fi - ;; - *linux*) - BLASLAPACKLIB="-L${BLASLAPACK_ROOT}/lib" - if ls ${BLASLAPACK_ROOT}/lib/libopenblas.* 1> /dev/null 2>&1; then - BLASLAPACKLIB+=" -lopenblas" - elif ls ${BLASLAPACK_ROOT}/lib/libf2clapack.* 1> /dev/null 2>&1; then - BLASLAPACKLIB+=" -lf2clapack -lf2cblas" - elif ls ${BLASLAPACK_ROOT}/lib/libflapack.* 1> /dev/null 2>&1; then - BLASLAPACKLIB+=" -lflapack -lfblas" - else - BLASLAPACKLIB+=" -llapack -lblas" - fi - ;; - *mingw*) - if test -d "${BLASLAPACK_ROOT}"; then - BLASLAPACKLIB="-Wl,-L${BLASLAPACK_ROOT}/lib" + if test ! -z "${BLASLAPACK_LIB}"; then + BLASLAPACKLIB="${BLASLAPACK_LIB}" + else + case "${host_os}" in + *darwin*) + BLASLAPACKLIB="-L${BLASLAPACK_ROOT}/lib" if ls ${BLASLAPACK_ROOT}/lib/libopenblas.* 1> /dev/null 2>&1; then BLASLAPACKLIB+=" -lopenblas" elif ls ${BLASLAPACK_ROOT}/lib/libf2clapack.* 1> /dev/null 2>&1; then BLASLAPACKLIB+=" -lf2clapack -lf2cblas" elif ls ${BLASLAPACK_ROOT}/lib/libflapack.* 1> /dev/null 2>&1; then - BLASLAPACKLIB="-Wl,-L${BLASLAPACK_ROOT}/lib -Wl,-lflapack -Wl,-lfblas" + BLASLAPACKLIB+=" -lflapack -lfblas" else - BLASLAPACKLIB+=" -Wl,-llapack -Wl,-lblas" + BLASLAPACKLIB+=" -llapack -lblas" fi - else - BLASLAPACKLIB="${LAPACK_ROOT}/lib/liblapack.a ${BLAS_ROOT}/lib/libblas.a" - fi - ;; - esac + ;; + *linux*) + BLASLAPACKLIB="-L${BLASLAPACK_ROOT}/lib" + if ls ${BLASLAPACK_ROOT}/lib/libopenblas.* 1> /dev/null 2>&1; then + BLASLAPACKLIB+=" -lopenblas" + elif ls ${BLASLAPACK_ROOT}/lib/libf2clapack.* 1> /dev/null 2>&1; then + BLASLAPACKLIB+=" -lf2clapack -lf2cblas" + elif ls ${BLASLAPACK_ROOT}/lib/libflapack.* 1> /dev/null 2>&1; then + BLASLAPACKLIB+=" -lflapack -lfblas" + else + BLASLAPACKLIB+=" -llapack -lblas" + fi + ;; + *mingw*) + if test -d "${BLASLAPACK_ROOT}"; then + BLASLAPACKLIB="-Wl,-L${BLASLAPACK_ROOT}/lib" + if ls ${BLASLAPACK_ROOT}/lib/libopenblas.* 1> /dev/null 2>&1; then + BLASLAPACKLIB+=" -lopenblas" + elif ls ${BLASLAPACK_ROOT}/lib/libf2clapack.* 1> /dev/null 2>&1; then + BLASLAPACKLIB+=" -lf2clapack -lf2cblas" + elif ls ${BLASLAPACK_ROOT}/lib/libflapack.* 1> /dev/null 2>&1; then + BLASLAPACKLIB="-Wl,-L${BLASLAPACK_ROOT}/lib -Wl,-lflapack -Wl,-lfblas" + else + BLASLAPACKLIB+=" -Wl,-llapack -Wl,-lblas" + fi + else + BLASLAPACKLIB="${LAPACK_ROOT}/lib/liblapack.a ${BLAS_ROOT}/lib/libblas.a" + fi + ;; + esac + fi AC_DEFINE([_HAVE_BLASLAPACK_], [1], [with BLAS/LAPACK in ISSM src]) AC_SUBST([BLASLAPACKLIB]) fi