diff --git a/Build/Scripts/HYPRE/build_hypre.sh b/Build/Scripts/HYPRE/build_hypre.sh index 029ced9280a..b28419333d7 100755 --- a/Build/Scripts/HYPRE/build_hypre.sh +++ b/Build/Scripts/HYPRE/build_hypre.sh @@ -32,17 +32,17 @@ if [ -d "$FIREMODELS/hypre" ]; then cd $FIREMODELS/hypre if [[ "$(git tag -l "v2.32.0")" == "v2.32.0" ]]; then echo "Checking out v2.32.0" - $(git checkout v2.32.0) + git checkout v2.32.0 fi - cd $FIREMODELS/hypre/src + cd $FIREMODELS/hypre/src/cmbuild export HYPRE_VERSION=$(git describe) echo "Cleaning hypre repository..." - make distclean + rm -r $FIREMODELS/hypre/src/cmbuild/* cp $FIREMODELS/fds/Build/Scripts/HYPRE/$CONFMAKE . ./$CONFMAKE # get back from detached HEAD state cd $FIREMODELS/hypre - $(git checkout master) + git checkout master cd $dir export HYPRE_HOME=$FIREMODELS/libs/hypre/$HYPRE_VERSION echo "Hypre library:" $FIREMODELS/libs/hypre/$HYPRE_VERSION diff --git a/Build/Scripts/HYPRE/confmake.sh b/Build/Scripts/HYPRE/confmake.sh new file mode 100755 index 00000000000..ec56159a5e4 --- /dev/null +++ b/Build/Scripts/HYPRE/confmake.sh @@ -0,0 +1,33 @@ +export HYPRE_INSTALL_PREFIX=$FIREMODELS/libs/hypre/$HYPRE_VERSION + +if [[ "$FDS_BUILD_TARGET" == *"osx"* ]]; then + C_FLAGS="-O3" +elif [[ "$FDS_BUILD_TARGET" == *"intel"* ]]; then + C_FLAGS="-O3 -fno-unsafe-math-optimizations -fp-model=precise" +else + C_FLAGS="-O3" +fi + +cmake_args=( + -DCMAKE_INSTALL_PREFIX="$HYPRE_INSTALL_PREFIX" + -DCMAKE_C_COMPILER="$CC" + -DCMAKE_C_FLAGS="$C_FLAGS" + -DCMAKE_INSTALL_LIBDIR="lib" +) + +# Add OSX deployment target if building for macOS +if [[ "$FDS_BUILD_TARGET" == *"osx"* ]]; then + if [ "$(uname -m)" == "x86_64" ]; then + cmake_args+=(-DCMAKE_OSX_DEPLOYMENT_TARGET="10.6") + else + cmake_args+=(-DCMAKE_OSX_DEPLOYMENT_TARGET="13.0") + fi +fi + +# Run cmake with the arguments +cmake ../ "${cmake_args[@]}" + +# ./configure CC=$CC FC=mpiifort CFLAGS="-O3 -fno-unsafe-math-optimizations -fp-model=precise" FFLAGS="-O3 -fno-unsafe-math-optimizations -fp-model=precise" \ +# --prefix=$FIREMODELS/libs/hypre/$HYPRE_VERSION + +make install diff --git a/Build/Scripts/HYPRE/confmake_impi_intel_linux.sh b/Build/Scripts/HYPRE/confmake_impi_intel_linux.sh deleted file mode 100755 index 58bd9e910ba..00000000000 --- a/Build/Scripts/HYPRE/confmake_impi_intel_linux.sh +++ /dev/null @@ -1,13 +0,0 @@ -# Check for mpiicx or mpiicc -if command -v mpiicx &> /dev/null; then - CC=mpiicx -elif command -v mpiicc &> /dev/null; then - CC=mpiicc -else - echo "Error: Neither mpiicx nor mpiicc is available on this system." - exit 1 -fi - -./configure CC=$CC FC=mpiifort CFLAGS="-O3 -fno-unsafe-math-optimizations -fp-model=precise" FFLAGS="-O3 -fno-unsafe-math-optimizations -fp-model=precise" \ - --prefix=$FIREMODELS/libs/hypre/$HYPRE_VERSION -make install diff --git a/Build/Scripts/SUNDIALS/build_sundials.sh b/Build/Scripts/SUNDIALS/build_sundials.sh index 41e4b74af50..50f3c8eb5c3 100755 --- a/Build/Scripts/SUNDIALS/build_sundials.sh +++ b/Build/Scripts/SUNDIALS/build_sundials.sh @@ -33,7 +33,7 @@ if [ -d "$FIREMODELS/sundials" ]; then cd $FIREMODELS/sundials if [[ "$(git tag -l "v6.7.0")" == "v6.7.0" ]]; then echo "Checking out v6.7.0" - $(git checkout v6.7.0) + git checkout v6.7.0 fi mkdir $FIREMODELS/sundials/BUILDDIR cd $FIREMODELS/sundials/BUILDDIR @@ -46,7 +46,7 @@ if [ -d "$FIREMODELS/sundials" ]; then ./$CONFMAKE # get back from detached HEAD state cd $FIREMODELS/sundials - $(git checkout main) + git checkout main cd $dir export SUNDIALS_HOME=$FIREMODELS/libs/sundials/$SUNDIALS_VERSION echo "Sundials library:" $FIREMODELS/libs/sundials/$SUNDIALS_VERSION diff --git a/Build/Scripts/SUNDIALS/confmake.sh b/Build/Scripts/SUNDIALS/confmake.sh new file mode 100755 index 00000000000..3706c927f37 --- /dev/null +++ b/Build/Scripts/SUNDIALS/confmake.sh @@ -0,0 +1,29 @@ +export SUNDIALS_INSTALL_PREFIX=$FIREMODELS/libs/sundials/$SUNDIALS_VERSION + +cmake_args=( + -DCMAKE_INSTALL_PREFIX="$SUNDIALS_INSTALL_PREFIX" + -DEXAMPLES_INSTALL_PATH="$SUNDIALS_INSTALL_PREFIX/examples" + -DCMAKE_C_COMPILER="$CC" + -DCMAKE_CXX_COMPILER="$CXX" + -DCMAKE_Fortran_COMPILER="$FC" + -DBUILD_FORTRAN_MODULE_INTERFACE=ON + -DEXAMPLES_ENABLE_CXX=OFF + -DEXAMPLES_ENABLE_CUDA=OFF + -DEXAMPLES_ENABLE_F2003=OFF + -DENABLE_OPENMP=OFF + -DCMAKE_INSTALL_LIBDIR="lib" +) + +# Add OSX deployment target if building for macOS +if [[ "$FDS_BUILD_TARGET" == *"osx"* ]]; then + if [ "$(uname -m)" == "x86_64" ]; then + cmake_args+=(-DCMAKE_OSX_DEPLOYMENT_TARGET="10.6") + else + cmake_args+=(-DCMAKE_OSX_DEPLOYMENT_TARGET="13.0") + fi +fi + +# Run cmake with the arguments +cmake ../ "${cmake_args[@]}" + +make install diff --git a/Build/Scripts/SUNDIALS/confmake_impi_intel_linux.sh b/Build/Scripts/SUNDIALS/confmake_impi_intel_linux.sh deleted file mode 100755 index 70409510adf..00000000000 --- a/Build/Scripts/SUNDIALS/confmake_impi_intel_linux.sh +++ /dev/null @@ -1,35 +0,0 @@ -export SUNDIALS_INSTALL_PREFIX=$FIREMODELS/libs/sundials/$SUNDIALS_VERSION - -# Check for Intel C compiler (icx or icc) -if command -v icx &> /dev/null; then - CC=icx -elif command -v icc &> /dev/null; then - CC=icc -else - echo "Error: Neither icx nor icc is available on this system." - exit 1 -fi - -# Check for Intel C++ compiler (icpx or icpc) -if command -v icpx &> /dev/null; then - CXX=icpx -elif command -v icpc &> /dev/null; then - CXX=icpc -else - echo "Error: Neither icpx nor icpc is available on this system." - exit 1 -fi - -cmake ../ \ --DCMAKE_INSTALL_PREFIX=$SUNDIALS_INSTALL_PREFIX \ --DEXAMPLES_INSTALL_PATH=$SUNDIALS_INSTALL_PREFIX/examples \ --DCMAKE_C_COMPILER=$CC \ --DCMAKE_CXX_COMPILER=$CXX \ --DCMAKE_Fortran_COMPILER=ifort \ --DBUILD_FORTRAN_MODULE_INTERFACE=ON \ --DEXAMPLES_ENABLE_CXX=OFF \ --DEXAMPLES_ENABLE_CUDA=OFF \ --DEXAMPLES_ENABLE_F2003=OFF \ --DENABLE_OPENMP=ON - -make install diff --git a/Build/Scripts/build_thirdparty_libs.sh b/Build/Scripts/build_thirdparty_libs.sh new file mode 100644 index 00000000000..a5f3f78c949 --- /dev/null +++ b/Build/Scripts/build_thirdparty_libs.sh @@ -0,0 +1,63 @@ +# PARSE OPTIONS FOR CLEAN LIBRARY BUILDS #################################### + +# Set FIREMODELS environment variable if it is not already exists. +if [ -z "${FIREMODELS}" ]; then + export FIREMODELS="$(readlink -f "$(pwd)/../../../")" +fi + +echo "FIREMODELS=$FIREMODELS" + +clean_hypre=false +clean_sundials=false +ARG="" + +# Loop through the options +while [[ $# -gt 0 ]]; do + case "$1" in + --clean-hypre) + clean_hypre=true # Set the flag to true when --clean-hypre is used + shift + ;; + --clean-sundials) + clean_sundials=true + shift + ;; + --) + shift + break + ;; + *) + ARG="${ARG} $1" # Append unrecognized arguments to ARG + shift + ;; + esac +done + +# Trim leading spaces from ARG, if necessary +ARG="${ARG#"${ARG%%[![:space:]]*}"}" + +if [ "$clean_hypre" = true ]; then + echo "Option --clean-hypre is set." +fi + +if [ "$clean_sundials" = true ]; then + echo "Option --clean-sundials is set." +fi + +# FINISHED WITH CLEANING OPTIONS ########################################### + +# Decide compilers +source ../Scripts/set_thirdparty_compilers.sh + +# build hypre +source ../Scripts/HYPRE/build_hypre.sh confmake.sh $clean_hypre + +## build sundials +source ../Scripts/SUNDIALS/build_sundials.sh confmake.sh $clean_sundials + + +# Use ARG and the options +#echo "ARG is: $ARG" +if [ "$SOURCE_INTEL_IFORT" -eq 1 ]; then + source ../Scripts/set_intel_compiler.sh $ARG +fi diff --git a/Build/Scripts/set_thirdparty_compilers.sh b/Build/Scripts/set_thirdparty_compilers.sh new file mode 100755 index 00000000000..624f7c0e824 --- /dev/null +++ b/Build/Scripts/set_thirdparty_compilers.sh @@ -0,0 +1,166 @@ +echo "FDS build target = $FDS_BUILD_TARGET" + +# For following variables 1- indicate availble through +# environment variable FIREMODELS_CC, FIREMODELS_CXX, and FIREMODELS_FC +set_CC=0 +set_CXX=0 +set_FC=0 + +if [ -n "$FIREMODELS_CC" ]; then + CC=$FIREMODELS_CC + if command -v $CC &> /dev/null; then + set_CC=1 + else + echo "The compiler specified by the FIREMODELS_CC environment variable ($CC) is not available on this system. Searching for an alternative compiler." + fi +fi + +if [ -n "$FIREMODELS_CXX" ]; then + CXX=$FIREMODELS_CXX + if command -v $CXX &> /dev/null; then + set_CXX=1 + else + echo "The compiler specified by the FIREMODELS_CXX environment variable ($CXX) is not available on this system. Searching for an alternative compiler." + fi +fi + +if [ -n "$FIREMODELS_FC" ]; then + FC=$FIREMODELS_FC + if command -v $FC &> /dev/null; then + set_FC=1 + else + echo "The compiler specified by the FIREMODELS_FC environment variable ($FC) is not available on this system. Searching for an alternative compiler." + fi +fi + + +if [[ "$FDS_BUILD_TARGET" == *"osx"* ]]; then + # Check for C compiler (mpicc, gcc, clang) + if [ $set_CC -eq 0 ]; then + if command -v mpicc &> /dev/null; then + CC=mpicc + elif command -v clang &> /dev/null; then + CC=clang + elif command -v gcc &> /dev/null; then + CC=gcc + else + echo "Error: Any of mpicc, iclang, or gcc is not available on this system." + exit 1 + fi + fi + + # Check for clang C++ compiler (mpicxx, g++, clang ++) + if [ $set_CXX -eq 0 ]; then + if command -v mpicxx &> /dev/null; then + CXX=mpicxx + elif command -v clang++ &> /dev/null; then + CXX=clang++ + elif command -v g++ &> /dev/null; then + CXX=g++ + else + echo "Error: Any of mpicxx, clang++, or g++ is not available on this system." + exit 1 + fi + fi + + # Check for Fortran compiler (gfortran) + if [ $set_FC -eq 0 ]; then + if command -v mpifort &> /dev/null; then + FC=mpifort + elif command -v gfortran &> /dev/null; then + FC=gfortran + else + echo "Error: gfortran is not available on this system." + exit 1 + fi + fi + +elif [[ "$FDS_BUILD_TARGET" == *"intel"* ]]; then + # Check for Intel C compiler + if [ $set_CC -eq 0 ]; then + if command -v mpiicx &> /dev/null; then + CC=mpiicx + elif command -v icx &> /dev/null; then + CC=icx + elif command -v mpiicc &> /dev/null; then + CC=mpiicc + elif command -v icc &> /dev/null; then + CC=icc + else + echo "Error: Any of mpiicx, icx, mpiicc, or icc is not available on this system." + exit 1 + fi + fi + + # Check for Intel C++ compiler + if [ $set_CXX -eq 0 ]; then + if command -v mpiicpx &> /dev/null; then + CXX=mpiicpx + elif command -v icpx &> /dev/null; then + CXX=icpx + elif command -v mpiicpc &> /dev/null; then + CXX=mpiicpc + elif command -v icpc &> /dev/null; then + CXX=icpc + else + echo "Error: Any of mpiicpx, icpx, mpiicpc, or icpc is not available on this system." + exit 1 + fi + fi + + # Check for Intel Fortran compiler (ifort). ifx will be added in future. + if [ $set_FC -eq 0 ]; then + if command -v mpiifort &> /dev/null; then + FC=mpiifort + elif command -v ifort &> /dev/null; then + FC=ifort + else + echo "Error: Any of mpiifort, or ifort is not available on this system." + exit 1 + fi + fi +else #gnu + # Check for gnu C compiler (gcc) + if [ $set_CC -eq 0 ]; then + if command -v mpicc &> /dev/null; then + CC=mpicc + elif command -v gcc &> /dev/null; then + CC=gcc + else + echo "Error: Any of mpicc, gcc is not available on this system." + exit 1 + fi + fi + + # Check for Intel C++ compiler (g++) + if [ $set_CXX -eq 0 ]; then + if command -v mpicxx &> /dev/null; then + CXX=mpicxx + elif command -v g++ &> /dev/null; then + CXX=g++ + else + echo "Error: Any of mpicxx, g++ is not available on this system." + exit 1 + fi + fi + + # Check for Fortran compiler (gfortran) + if [ $set_FC -eq 0 ]; then + if command -v mpifort &> /dev/null; then + FC=mpifort + elif command -v gfortran &> /dev/null; then + FC=gfortran + else + echo "Error: Any of mpifort, gfortran is not available on this system." + exit 1 + fi + fi +fi + +echo "C Compiler CC=$CC" +echo "C++ compiler CXX=$CXX" +echo "Fortran compiler FC=$FC" + +export CC=$CC +export CXX=$CXX +export FC=$FC diff --git a/Build/impi_intel_linux_db/make_fds.sh b/Build/impi_intel_linux_db/make_fds.sh index 293acd281e7..0144295d470 100755 --- a/Build/impi_intel_linux_db/make_fds.sh +++ b/Build/impi_intel_linux_db/make_fds.sh @@ -1,74 +1,13 @@ #!/bin/bash -# PARSE OPTIONS FOR CLEAN LIBRARY BUILDS #################################### - -# Parse the long options first using getopt -OPTIONS=$(getopt -o "" --long clean-hypre,clean-sundials -- "$@") - -# Check if getopt parsed successfully -if [ $? -ne 0 ]; then - echo "Error parsing options." - exit 1 -fi - -# Evaluate the parsed options -eval set -- "$OPTIONS" - -# Initialize variables for options -clean_hypre=false -clean_sundials=false -ARG="" - -# Loop through the options -while true; do - case "$1" in - --clean-hypre) - clean_hypre=true # Set the flag to true when --clean-hypre is used - shift - ;; - --clean-sundials) - clean_sundials=true - shift - ;; - --) - shift - break - ;; - *) - echo "Invalid option." - exit 1 - ;; - esac -done - -# After all options are processed, check for any remaining positional argument (ARG) -if [ -n "$1" ]; then - ARG=$1 -fi - -# Use ARG and the options -#echo "ARG is: $ARG" - -if [ "$clean_hypre" = true ]; then - echo "Option --clean-hypre is set." -fi - -if [ "$clean_sundials" = true ]; then - echo "Option --clean-sundials is set." -fi - -# FINISHED WITH CLEANING OPTIONS ########################################### - -source ../Scripts/set_intel_compiler.sh $ARG - dir=`pwd` target=${dir##*/} -# build hypre -source ../Scripts/HYPRE/build_hypre.sh confmake_impi_intel_linux.sh $clean_hypre +# Compile third-party libraries. +export FDS_BUILD_TARGET=$target +export SOURCE_INTEL_IFORT=1 +source ../Scripts/build_thirdparty_libs.sh "$@" -## build sundials -source ../Scripts/SUNDIALS/build_sundials.sh confmake_impi_intel_linux.sh $clean_sundials # build fds echo Building $target with Intel MPI and $INTEL_IFORT diff --git a/Build/makefile b/Build/makefile index 4bcca163b77..9eb95afde2e 100644 --- a/Build/makefile +++ b/Build/makefile @@ -109,9 +109,7 @@ endif # MKLROOT test ifdef SUNDIALS_HOME # This assumes the SUNDIALS library is available. FFLAGS_SUNDIALS = -DWITH_SUNDIALS -I"${SUNDIALS_HOME}/fortran" FFLAGS_SUNDIALS_WIN = -DWITH_SUNDIALS /I"${SUNDIALS_HOME}\fortran" - LFLAGS_SUNDIALS = -L${SUNDIALS_HOME}/lib64 -l:libsundials_fcvode_mod.a -l:libsundials_fnvecserial_mod.a -l:libsundials_cvode.a - LFLAGS_SUNDIALS_INTEL = ${SUNDIALS_HOME}/lib64/libsundials_fcvode_mod.a ${SUNDIALS_HOME}/lib64/libsundials_fnvecserial_mod.a ${SUNDIALS_HOME}/lib64/libsundials_cvode.a - LFLAGS_SUNDIALS_OSX = ${SUNDIALS_HOME}/lib/libsundials_fcvode_mod.a ${SUNDIALS_HOME}/lib/libsundials_fnvecserial_mod.a ${SUNDIALS_HOME}/lib/libsundials_cvode.a + LFLAGS_SUNDIALS = ${SUNDIALS_HOME}/lib/libsundials_fcvode_mod.a ${SUNDIALS_HOME}/lib/libsundials_fnvecserial_mod.a ${SUNDIALS_HOME}/lib/libsundials_cvode.a LFLAGS_SUNDIALS_WIN = ${SUNDIALS_HOME}\lib\sundials_fcvode_mod.lib ${SUNDIALS_HOME}\lib\sundials_fnvecserial_mod.lib ${SUNDIALS_HOME}\lib\sundials_cvode.lib /link /NODEFAULTLIB:MSVCRTD /NODEFAULTLIB:libcmtd.lib endif @@ -235,14 +233,14 @@ impi_intel_win_openmp_db : setup_win $(objwin_mpi) # Linux Intel Fortran Compiler and Intel MPI impi_intel_linux : FFLAGS = -m64 -fc=$(I_IFORT) -O2 -ipo -no-wrap-margin $(GITINFO) $(FFLAGSMKL_INTEL) $(FFLAGS_HYPRE) $(FFLAGS_SUNDIALS) -DUSE_IFPORT -diag-disable=10448 -impi_intel_linux : LFLAGSMKL = $(LFLAGSMKL_INTEL) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS_INTEL) +impi_intel_linux : LFLAGSMKL = $(LFLAGSMKL_INTEL) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS) impi_intel_linux : FCOMPL = mpiifort impi_intel_linux : obj = fds_impi_intel_linux impi_intel_linux : setup $(obj_mpi) $(FCOMPL) $(FFLAGS) -o $(obj) $(obj_mpi) $(LFLAGSMKL) impi_intel_linux_openmp : FFLAGS = -m64 -fc=$(I_IFORT) -O2 -ipo -no-wrap-margin $(GITINFO) $(FFLAGSMKL_INTEL) $(FFLAGS_HYPRE) $(FFLAGS_SUNDIALS) -DUSE_IFPORT -diag-disable=10448_INTEL -impi_intel_linux_openmp : LFLAGSMKL = $(LFLAGSMKL_INTEL_OPENMP) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS_INTEL) +impi_intel_linux_openmp : LFLAGSMKL = $(LFLAGSMKL_INTEL_OPENMP) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS) impi_intel_linux_openmp : FCOMPL = mpiifort impi_intel_linux_openmp : FOPENMPFLAGS = -qopenmp impi_intel_linux_openmp : obj = fds_impi_intel_linux_openmp @@ -250,14 +248,14 @@ impi_intel_linux_openmp : setup $(obj_mpi) $(FCOMPL) $(FFLAGS) $(FOPENMPFLAGS) -o $(obj) $(obj_mpi) $(LFLAGSMKL) impi_intel_linux_db : FFLAGS = -m64 -fc=$(I_IFORT) -check all -warn all -diag-error=remark,warn,error -O0 -g -traceback -fpe0 -nofltconsistency -stand:f18 -no-wrap-margin $(GITINFO) $(FFLAGSMKL_INTEL) $(FFLAGS_HYPRE) $(FFLAGS_SUNDIALS) -DUSE_IFPORT -diag-disable=10448_INTEL -impi_intel_linux_db : LFLAGSMKL = $(LFLAGSMKL_INTEL) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS_INTEL) +impi_intel_linux_db : LFLAGSMKL = $(LFLAGSMKL_INTEL) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS) impi_intel_linux_db : FCOMPL = mpiifort impi_intel_linux_db : obj = fds_impi_intel_linux_db impi_intel_linux_db : setup $(obj_mpi) $(FCOMPL) $(FFLAGS) -o $(obj) $(obj_mpi) $(LFLAGSMKL) impi_intel_linux_openmp_db : FFLAGS = -m64 -fc=$(I_IFORT) -check all -warn all -diag-error=remark,warn,error -O0 -g -traceback -fpe0 -nofltconsistency -stand:f18 -no-wrap-margin $(GITINFO) $(FFLAGSMKL_INTEL) $(FFLAGS_HYPRE) $(FFLAGS_SUNDIALS) -DUSE_IFPORT -diag-disable=10448 -impi_intel_linux_openmp_db : LFLAGSMKL = $(LFLAGSMKL_INTEL_OPENMP) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS_INTEL) +impi_intel_linux_openmp_db : LFLAGSMKL = $(LFLAGSMKL_INTEL_OPENMP) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS) impi_intel_linux_openmp_db : FCOMPL = mpiifort impi_intel_linux_openmp_db : FOPENMPFLAGS = -qopenmp impi_intel_linux_openmp_db : obj = fds_impi_intel_linux_openmp_db @@ -265,14 +263,14 @@ impi_intel_linux_openmp_db : setup $(obj_mpi) $(FCOMPL) $(FFLAGS) $(FOPENMPFLAGS) -o $(obj) $(obj_mpi) $(LFLAGSMKL) impi_intel_linux_dv : FFLAGS = -m64 -fc=$(I_IFORT) -warn unused -O1 -g -traceback -no-wrap-margin $(GITINFO) $(FFLAGSMKL_INTEL) $(FFLAGS_HYPRE) $(FFLAGS_SUNDIALS) -DUSE_IFPORT -diag-disable=10448 -impi_intel_linux_dv : LFLAGSMKL = $(LFLAGSMKL_INTEL) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS_INTEL) +impi_intel_linux_dv : LFLAGSMKL = $(LFLAGSMKL_INTEL) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS) impi_intel_linux_dv : FCOMPL = mpiifort impi_intel_linux_dv : obj = fds_impi_intel_linux_dv impi_intel_linux_dv : setup $(obj_mpi) $(FCOMPL) $(FFLAGS) -o $(obj) $(obj_mpi) $(LFLAGSMKL) impi_intel_linux_openmp_dv : FFLAGS = -m64 -fc=$(I_IFORT) -warn unused -O1 -g -traceback -no-wrap-margin $(GITINFO) $(FFLAGSMKL_INTEL) $(FFLAGS_HYPRE) $(FFLAGS_SUNDIALS) -DUSE_IFPORT -diag-disable=10448 -impi_intel_linux_openmp_dv : LFLAGSMKL = $(LFLAGSMKL_INTEL_OPENMP) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS_INTEL) +impi_intel_linux_openmp_dv : LFLAGSMKL = $(LFLAGSMKL_INTEL_OPENMP) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS) impi_intel_linux_openmp_dv : FCOMPL = mpiifort impi_intel_linux_openmp_dv : FOPENMPFLAGS = -qopenmp impi_intel_linux_openmp_dv : obj = fds_impi_intel_linux_openmp_dv @@ -282,7 +280,7 @@ impi_intel_linux_openmp_dv : setup $(obj_mpi) # OSX Intel Fortran and Open MPI ompi_intel_osx : FFLAGS = -m64 -O2 -stand:f18 -no-wrap-margin $(GITINFO) $(FFLAGSMKL_CUSTOM) $(FFLAGS_HYPRE) $(FFLAGS_SUNDIALS) -ompi_intel_osx : LFLAGSMKL = $(LFLAGSMKL_CUSTOM) $(CLT_VERSION) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS_OSX) +ompi_intel_osx : LFLAGSMKL = $(LFLAGSMKL_CUSTOM) $(CLT_VERSION) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS) ompi_intel_osx : LFLAGS = -static-intel ompi_intel_osx : FCOMPL = mpifort ompi_intel_osx : obj = fds_ompi_intel_osx @@ -290,7 +288,7 @@ ompi_intel_osx : setup $(obj_mpi) $(FCOMPL) $(FFLAGS) $(LFLAGS) -o $(obj) $(obj_mpi) $(LFLAGSMKL) ompi_intel_osx_openmp : FFLAGS = -m64 -O2 -stand:f18 -no-wrap-margin $(GITINFO) $(FFLAGSMKL_CUSTOM) $(FFLAGS_HYPRE) $(FFLAGS_SUNDIALS) -ompi_intel_osx_openmp : LFLAGSMKL = $(LFLAGSMKL_CUSTOM_OPENMP) $(CLT_VERSION) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS_OSX) +ompi_intel_osx_openmp : LFLAGSMKL = $(LFLAGSMKL_CUSTOM_OPENMP) $(CLT_VERSION) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS) ompi_intel_osx_openmp : LFLAGS = -static-intel ompi_intel_osx_openmp : FOPENMPFLAGS = -qopenmp -qopenmp-link static ompi_intel_osx_openmp : FCOMPL = mpifort @@ -299,7 +297,7 @@ ompi_intel_osx_openmp : setup $(obj_mpi) $(FCOMPL) $(FFLAGS) $(LFLAGS) $(FOPENMPFLAGS) -o $(obj) $(obj_mpi) $(LFLAGSMKL) ompi_intel_osx_db : FFLAGS = -m64 -check all -fp-stack-check -warn unused -O0 -auto -WB -g -traceback -fpe0 -nofltconsistency -stand:f18 -no-wrap-margin $(GITINFO) $(FFLAGSMKL_CUSTOM) $(FFLAGS_HYPRE) $(FFLAGS_SUNDIALS) -ompi_intel_osx_db : LFLAGSMKL = $(LFLAGSMKL_CUSTOM) $(CLT_VERSION) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS_OSX) +ompi_intel_osx_db : LFLAGSMKL = $(LFLAGSMKL_CUSTOM) $(CLT_VERSION) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS) ompi_intel_osx_db : LFLAGS = -static-intel ompi_intel_osx_db : FCOMPL = mpifort ompi_intel_osx_db : obj = fds_ompi_intel_osx_db @@ -307,7 +305,7 @@ ompi_intel_osx_db : setup $(obj_mpi) $(FCOMPL) $(FFLAGS) $(LFLAGS) -o $(obj) $(obj_mpi) $(LFLAGSMKL) ompi_intel_osx_openmp_db : FFLAGS = -m64 -check all -fp-stack-check -warn unused -O0 -auto -WB -g -traceback -fpe0 -nofltconsistency -stand:f18 -no-wrap-margin $(GITINFO) $(FFLAGSMKL_CUSTOM) $(FFLAGS_HYPRE) $(FFLAGS_SUNDIALS) -ompi_intel_osx_openmp_db : LFLAGSMKL = $(LFLAGSMKL_CUSTOM_OPENMP) $(CLT_VERSION) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS_OSX) +ompi_intel_osx_openmp_db : LFLAGSMKL = $(LFLAGSMKL_CUSTOM_OPENMP) $(CLT_VERSION) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS) ompi_intel_osx_openmp_db : LFLAGS = -static-intel ompi_intel_osx_openmp_db : FOPENMPFLAGS = -qopenmp -qopenmp-link static ompi_intel_osx_openmp_db : FCOMPL = mpifort @@ -316,7 +314,7 @@ ompi_intel_osx_openmp_db : setup $(obj_mpi) $(FCOMPL) $(FFLAGS) $(LFLAGS) $(FOPENMPFLAGS) -o $(obj) $(obj_mpi) $(LFLAGSMKL) ompi_intel_osx_dv : FFLAGS = -m64 -warn unused -O1 -g -traceback -stand:f18 -no-wrap-margin $(GITINFO) $(FFLAGSMKL_CUSTOM) $(FFLAGS_HYPRE) $(FFLAGS_SUNDIALS) -ompi_intel_osx_dv : LFLAGSMKL = $(LFLAGSMKL_CUSTOM) $(CLT_VERSION) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS_OSX) +ompi_intel_osx_dv : LFLAGSMKL = $(LFLAGSMKL_CUSTOM) $(CLT_VERSION) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS) ompi_intel_osx_dv : LFLAGS = -static-intel ompi_intel_osx_dv : FCOMPL = mpifort ompi_intel_osx_dv : obj = fds_ompi_intel_osx_dv @@ -324,7 +322,7 @@ ompi_intel_osx_dv : setup $(obj_mpi) $(FCOMPL) $(FFLAGS) $(LFLAGS) -o $(obj) $(obj_mpi) $(LFLAGSMKL) ompi_intel_osx_openmp_dv : FFLAGS = -m64 -warn unused -O1 -g -traceback -stand:f18 -no-wrap-margin $(GITINFO) $(FFLAGSMKL_CUSTOM) $(FFLAGS_HYPRE) $(FFLAGS_SUNDIALS) -ompi_intel_osx_openmp_dv : LFLAGSMKL = $(LFLAGSMKL_CUSTOM_OPENMP) $(CLT_VERSION) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS_OSX) +ompi_intel_osx_openmp_dv : LFLAGSMKL = $(LFLAGSMKL_CUSTOM_OPENMP) $(CLT_VERSION) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS) ompi_intel_osx_openmp_dv : LFLAGS = -static-intel ompi_intel_osx_openmp_dv : FOPENMPFLAGS = -qopenmp -qopenmp-link static ompi_intel_osx_openmp_dv : FCOMPL = mpifort @@ -335,7 +333,7 @@ ompi_intel_osx_openmp_dv : setup $(obj_mpi) #*** Intel compiler and OpenMPI in Linux **** ompi_intel_linux : FFLAGS = -m64 -O2 -ipo -no-wrap-margin $(GITINFO) $(FFLAGSMKL_INTEL_OPENMPI) $(FFLAGS_HYPRE) $(FFLAGS_SUNDIALS) -DUSE_IFPORT -diag-disable=10448 -ompi_intel_linux : LFLAGSMKL = $(LFLAGSMKL_INTEL_OPENMPI) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS_INTEL) +ompi_intel_linux : LFLAGSMKL = $(LFLAGSMKL_INTEL_OPENMPI) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS) ompi_intel_linux : FCOMPL = mpifort ompi_intel_linux : obj = fds_ompi_intel_linux ompi_intel_linux : setup $(obj_mpi) @@ -368,7 +366,7 @@ ompi_gnu_linux_dv : setup $(obj_mpi) $(FCOMPL) $(FFLAGS) $(FOPENMPFLAGS) -o $(obj) $(obj_mpi) $(LFLAGSMKL) ompi_gnu_osx : FFLAGS = -m64 -O2 -std=f2018 -frecursive -ffpe-summary=none -fall-intrinsics $(GITINFOGNU) $(FFLAGSMKL_GNU_CUSTOM) $(GFORTRAN_OPTIONS) $(FFLAGS_HYPRE) $(FFLAGS_SUNDIALS) -ompi_gnu_osx : LFLAGSMKL = $(LFLAGSMKL_GNU_CUSTOM) $(CLT_VERSION) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS_OSX) +ompi_gnu_osx : LFLAGSMKL = $(LFLAGSMKL_GNU_CUSTOM) $(CLT_VERSION) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS) ompi_gnu_osx : FCOMPL = mpifort ompi_gnu_osx : FOPENMPFLAGS = -fopenmp ompi_gnu_osx : obj = fds_ompi_gnu_osx @@ -376,7 +374,7 @@ ompi_gnu_osx : setup $(obj_mpi) $(FCOMPL) $(FFLAGS) $(FOPENMPFLAGS) -o $(obj) $(obj_mpi) $(LFLAGSMKL) ompi_gnu_osx_db : FFLAGS = -m64 -O0 -std=f2018 -ggdb -Wall -Wcharacter-truncation -Wno-target-lifetime -fcheck=all -fbacktrace -ffpe-trap=invalid,zero,overflow -frecursive -ffpe-summary=none -fall-intrinsics $(GITINFOGNU) $(FFLAGSMKL_GNU_CUSTOM) $(GFORTRAN_OPTIONS) $(FFLAGS_HYPRE) $(FFLAGS_SUNDIALS) -ompi_gnu_osx_db : LFLAGSMKL = $(LFLAGSMKL_GNU_CUSTOM) $(CLT_VERSION) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS_OSX) +ompi_gnu_osx_db : LFLAGSMKL = $(LFLAGSMKL_GNU_CUSTOM) $(CLT_VERSION) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS) ompi_gnu_osx_db : FCOMPL = mpifort ompi_gnu_osx_db : FOPENMPFLAGS = -fopenmp ompi_gnu_osx_db : obj = fds_ompi_gnu_osx_db @@ -384,7 +382,7 @@ ompi_gnu_osx_db : setup $(obj_mpi) $(FCOMPL) $(FFLAGS) $(FOPENMPFLAGS) -o $(obj) $(obj_mpi) $(LFLAGSMKL) ompi_gnu_osx_dv : FFLAGS = -m64 -O1 -fbacktrace -std=f2018 -frecursive -ffpe-summary=none -fall-intrinsics $(GITINFOGNU) $(FFLAGSMKL_GNU_CUSTOM) $(GFORTRAN_OPTIONS) $(FFLAGS_HYPRE) $(FFLAGS_SUNDIALS) -ompi_gnu_osx_dv : LFLAGSMKL = $(LFLAGSMKL_GNU_CUSTOM) $(CLT_VERSION) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS_OSX) +ompi_gnu_osx_dv : LFLAGSMKL = $(LFLAGSMKL_GNU_CUSTOM) $(CLT_VERSION) $(LFLAGS_HYPRE) $(LFLAGS_SUNDIALS) ompi_gnu_osx_dv : FCOMPL = mpifort ompi_gnu_osx_dv : FOPENMPFLAGS = -fopenmp ompi_gnu_osx_dv : obj = fds_ompi_gnu_osx_dv diff --git a/Build/ompi_gnu_linux_db/make_fds.sh b/Build/ompi_gnu_linux_db/make_fds.sh index 885bf58554f..c9efae70d4b 100755 --- a/Build/ompi_gnu_linux_db/make_fds.sh +++ b/Build/ompi_gnu_linux_db/make_fds.sh @@ -2,5 +2,9 @@ dir=`pwd` target=${dir##*/} +# Compile third-party libraries. +export FDS_BUILD_TARGET=$target +source ../Scripts/build_thirdparty_libs.sh "$@" + echo Building $target make -j4 VPATH="../../Source" -f ../makefile $target diff --git a/Build/ompi_gnu_osx_db/make_fds.sh b/Build/ompi_gnu_osx_db/make_fds.sh index 885bf58554f..c9efae70d4b 100755 --- a/Build/ompi_gnu_osx_db/make_fds.sh +++ b/Build/ompi_gnu_osx_db/make_fds.sh @@ -2,5 +2,9 @@ dir=`pwd` target=${dir##*/} +# Compile third-party libraries. +export FDS_BUILD_TARGET=$target +source ../Scripts/build_thirdparty_libs.sh "$@" + echo Building $target make -j4 VPATH="../../Source" -f ../makefile $target diff --git a/Build/ompi_intel_osx_db/make_fds.sh b/Build/ompi_intel_osx_db/make_fds.sh index 0c83fe5dce3..66a833df5da 100755 --- a/Build/ompi_intel_osx_db/make_fds.sh +++ b/Build/ompi_intel_osx_db/make_fds.sh @@ -3,6 +3,10 @@ dir=`pwd` target=${dir##*/} +# Compile third-party libraries. +export FDS_BUILD_TARGET=$target +source ../Scripts/build_thirdparty_libs.sh "$@" + echo Building $target `ifort -v`