diff --git a/Allwmake b/Allwmake index 9e1c942043fc8d3646072fb3dcf89287c1bc6a15..d7c90c858e8d1a61dde4fa8cb68c977b5ab90d65 100755 --- a/Allwmake +++ b/Allwmake @@ -23,12 +23,12 @@ else echo "mpirun=$(command -v mpirun || true)" fi echo -# Report compiler information +# Report compiler information. First non-blank line from --version output compiler="$(wmake -show-path-cxx 2>/dev/null || true)" if [ -x "$compiler" ] then echo "compiler=$compiler" - "$compiler" --version 2>/dev/null | sed -ne '1p' + "$compiler" --version 2>/dev/null | sed -e '/^$/d;q' else echo "compiler=unknown" fi diff --git a/bin/foamSystemCheck b/bin/foamSystemCheck index 4d5c7fadf0c2e65e5fda94453b7fb97e14eaf236..d741aab1b72e601237a705b188d997b30bf780e5 100755 --- a/bin/foamSystemCheck +++ b/bin/foamSystemCheck @@ -167,22 +167,22 @@ checkUserShell checkHostName checkOS -# check user name -USER_NAME="$LOGNAME" -if [ $(length $USER_NAME) -eq 0 ] -then - USER_NAME="$USER" -fi - -echo "$(fixlen User: $WIDTH) ${USER_NAME}" -if [ $(length $USER_NAME) -eq 0 ] -then - echo "ERROR: Cannot stat user name $USER_NAME." - echo " OpenFOAM $WM_PROJECT_VERSION needs a valid user name." - echo " Contact your system administrator. " - echo - fatalError="x${fatalError}" -fi +## # check user name +## USER_NAME="$LOGNAME" +## if [ $(length $USER_NAME) -eq 0 ] +## then +## USER_NAME="$USER" +## fi +## +## echo "$(fixlen User: $WIDTH) ${USER_NAME}" +## if [ $(length $USER_NAME) -eq 0 ] +## then +## echo "ERROR: Cannot stat user name $USER_NAME." +## echo " OpenFOAM $WM_PROJECT_VERSION needs a valid user name." +## echo " Contact your system administrator. " +## echo +## fatalError="x${fatalError}" +## fi echo if [ -n "$fatalError" ] diff --git a/etc/bashrc b/etc/bashrc index e8857b474d46a66e5701889a6ef5225e893dd4eb..9d79aaab2f7dfc6b12ce371198083ddb827d80de 100644 --- a/etc/bashrc +++ b/etc/bashrc @@ -66,8 +66,9 @@ export WM_PROJECT_VERSION=com export WM_COMPILER_TYPE=system # [WM_COMPILER] - Compiler: -# = Gcc | Clang | Icc | Icx | Cray | Amd | Arm | Pgi | Fujitsu | +# = Gcc | Clang | Icc | Icx | Amd | Arm | Cray | Fujitsu | # Gcc<digits> | Clang<digits> +# [Not well tested: Pgi | Nvidia] export WM_COMPILER=Gcc # [WM_PRECISION_OPTION] - Floating-point precision: @@ -162,7 +163,7 @@ unset FOAM_EXTRA_CFLAGS FOAM_EXTRA_CXXFLAGS FOAM_EXTRA_LDFLAGS # Capture values of old directories to be cleaned from PATH, LD_LIBRARY_PATH foamOldDirs="$WM_PROJECT_DIR $WM_THIRD_PARTY_DIR \ - $HOME/$WM_PROJECT/$USER $FOAM_USER_APPBIN $FOAM_USER_LIBBIN \ + $HOME/$WM_PROJECT/${USER:-user} $FOAM_USER_APPBIN $FOAM_USER_LIBBIN \ $WM_PROJECT_SITE $FOAM_SITE_APPBIN $FOAM_SITE_LIBBIN \ $FOAM_MODULE_APPBIN $FOAM_MODULE_LIBBIN" @@ -170,7 +171,7 @@ foamOldDirs="$WM_PROJECT_DIR $WM_THIRD_PARTY_DIR \ export WM_PROJECT_DIR="$projectDir" # [WM_PROJECT_USER_DIR] - Location of user files -export WM_PROJECT_USER_DIR="$HOME/$WM_PROJECT/$USER-$WM_PROJECT_VERSION" +export WM_PROJECT_USER_DIR="$HOME/$WM_PROJECT/${USER:-user}-$WM_PROJECT_VERSION" # [WM_PROJECT_SITE] - Location of site-specific (group) files # Default (unset) implies WM_PROJECT_DIR/site diff --git a/etc/config.csh/mpi b/etc/config.csh/mpi index e8bd71b0d4fe400911caff33f3b5371e3c7f9c4d..d69122a9460557ea764a33cc97bc0b877685afc9 100644 --- a/etc/config.csh/mpi +++ b/etc/config.csh/mpi @@ -62,7 +62,7 @@ switch ("$WM_MPLIB") # The system openmpi, discover locations via <mpicc> case SYSTEMOPENMPI[1-9]: # Preserve major version for the naming - set _foamMpiVersion=`echo "$WM_MPLIB" | sed -e 's/^.*MPI//'` + set _foamMpiVersion=`echo "$WM_MPLIB" | sed -e 's#^.*MPI##'` #[fallthrough] case SYSTEMOPENMPI: @@ -77,16 +77,17 @@ case SYSTEMOPENMPI: endif # Use <orte-info> (openmpi only command) to query configuration + # Parse "path:prefix:<pathname>" type of output if ( "$MPI_ARCH_PATH" == "" ) then set _foamFoundCmd=`which orte-info` if ($status == 0) then # prefix - set _foamFoundDir=`orte-info --path prefix --parsable | sed -e 's/^.*:prefix://'` + set _foamFoundDir=`orte-info --path prefix --parsable | sed -e 's#^path:[^:]*:##'` if ( -d "$_foamFoundDir" ) then setenv MPI_ARCH_PATH "${_foamFoundDir}" # libdir - set _foamFoundDir=`orte-info --path libdir --parsable | sed -e 's/^.*:libdir://'` + set _foamFoundDir=`orte-info --path libdir --parsable | sed -e 's#^path:[^:]*:##'` if ( -d "$_foamFoundDir" ) then _foamAddLib "$_foamFoundDir" else if ( "$MPI_ARCH_PATH" != "/usr" ) then @@ -101,7 +102,7 @@ case SYSTEMOPENMPI: if ( "$MPI_ARCH_PATH" == "" ) then set _foamFoundCmd=`which mpicc` if ($status == 0) then - set _foamFoundDir=`mpicc --showme:link | sed -e 's/.*-L\([^ ]*\).*/\1/'` + set _foamFoundDir=`mpicc --showme:link | sed -e 's#.*-L\([^ ]*\).*#\1#'` setenv MPI_ARCH_PATH "${_foamFoundDir:h}" # Prefix from libdir _foamAddLib "$_foamFoundDir" endif @@ -128,7 +129,7 @@ case SYSTEMOPENMPI: # TBD: extra (major) version qualifier on name? #- ## if ( "$FOAM_MPI" == "sys-openmpi" ) then - ## set _foamMpiVersion=`echo "$MPI_ARCH_PATH" | sed -e 's/^.*mpi//'` + ## set _foamMpiVersion=`echo "$MPI_ARCH_PATH" | sed -e 's#^.*mpi##'` ## switch ("$_foamMpiVersion") ## case [1-9]: ## setenv FOAM_MPI "${FOAM_MPI}${_foamMpiVersion}" diff --git a/etc/config.sh/mpi b/etc/config.sh/mpi index d131891f9c9a6674f092364a6f47b237167adba1..1e056c3ec9789a8eb060e3cbdec3bbdb167339bf 100644 --- a/etc/config.sh/mpi +++ b/etc/config.sh/mpi @@ -81,17 +81,19 @@ SYSTEMOPENMPI | SYSTEMOPENMPI[1-9]) unset MPI_ARCH_PATH fi - # Use <orte-info> (openmpi only command) to query configuration + # Use <orte-info> (openmpi only command) to query configuration. + # Parse "path:prefix:<pathname>" type of output if [ -z "$MPI_ARCH_PATH" ] && _foamFoundCmd="$(command -v orte-info)" then # prefix - _foamFoundDir="$("$_foamFoundCmd" --path prefix --parsable | sed -e 's/^.*:prefix://')" + _foamFoundDir="$("$_foamFoundCmd" --path prefix --parsable | sed -e 's#^path:[^:]*:##')" + if [ -d "$_foamFoundDir" ] then MPI_ARCH_PATH="${_foamFoundDir}" # libdir - _foamFoundDir="$("$_foamFoundCmd" --path libdir --parsable | sed -e 's/^.*:libdir://')" + _foamFoundDir="$("$_foamFoundCmd" --path libdir --parsable | sed -e 's#^path:[^:]*:##')" if [ -d "$_foamFoundDir" ] then _foamAddLib "$_foamFoundDir" @@ -106,7 +108,7 @@ SYSTEMOPENMPI | SYSTEMOPENMPI[1-9]) # strip off 'lib' to get the prefix directory if [ -z "$MPI_ARCH_PATH" ] && _foamFoundCmd="$(command -v mpicc)" then - _foamFoundDir="$("$_foamFoundCmd" --showme:link | sed -e 's/.*-L\([^ ]*\).*/\1/')" + _foamFoundDir="$("$_foamFoundCmd" --showme:link | sed -e 's#.*-L\([^ ]*\).*#\1#')" MPI_ARCH_PATH="${_foamFoundDir%/*}" # Prefix from libdir _foamAddLib "$_foamFoundDir" diff --git a/etc/cshrc b/etc/cshrc index cf2323792e3fedd012e6f8cc8b1f96e02eaa8a11..b28b48add15d30dd520d87085f920accadf4ce00 100644 --- a/etc/cshrc +++ b/etc/cshrc @@ -66,8 +66,9 @@ setenv WM_PROJECT_VERSION com setenv WM_COMPILER_TYPE system # [WM_COMPILER] - Compiler: -# = Gcc | Clang | Icc | Icx | Cray | Amd | Arm | Pgi | Fujitsu | +# = Gcc | Clang | Icc | Icx | Amd | Arm | Cray | Fujitsu | # Gcc<digits> | Clang<digits> +# [Not well tested: Pgi | Nvidia] setenv WM_COMPILER Gcc # [WM_PRECISION_OPTION] - Floating-point precision: diff --git a/src/Allwmake b/src/Allwmake index 0af702324ec94173a950030338fdca03eedbee5e..04ef9881d4f8c06d20c361419237a1208acaaa6a 100755 --- a/src/Allwmake +++ b/src/Allwmake @@ -26,19 +26,19 @@ OpenFOAM/Alltouch -check 2>/dev/null OSspecific/"${WM_OSTYPE:-POSIX}"/Allwmake $targetType $* case "$WM_COMPILER" in -Mingw*) +(Mingw* | Nvidia*) # Pstream/OpenFOAM cyclic dependency # 1st pass: link as Pstream as single .o object WM_MPLIB=dummy Pstream/Allwmake libo FOAM_LINK_DUMMY_PSTREAM=libo wmake $targetType OpenFOAM - # 2nd pass: link Pstream.dll against libOpenFOAM.dll + # 2nd pass: link Pstream.{dll,so} against libOpenFOAM.{dll,so} Pstream/Allwmake $targetType $* - # Force relink libOpenFOAM.dll against libPstream.dll + # Force relink libOpenFOAM.{dll,so} against libPstream.{dll,so} OpenFOAM/Alltouch 2>/dev/null ;; -*) +(*) Pstream/Allwmake $targetType $* ;; esac diff --git a/wmake/rules/General/Clang/c++ b/wmake/rules/General/Clang/c++ index 4bba0cb56913d68e21a3c9d6d75fc6571ff650a4..9ce764d305d682f1b90b857ef2c3efff65b79fc8 100644 --- a/wmake/rules/General/Clang/c++ +++ b/wmake/rules/General/Clang/c++ @@ -1,6 +1,7 @@ +#------------------------------------------------------------------------------ SUFFIXES += .C .cc .cpp .cxx -CC = clang++ -std=c++11 +CC = clang++ -std=c++14 c++ARCH = c++DBUG = diff --git a/wmake/rules/General/Gcc/c++ b/wmake/rules/General/Gcc/c++ index 337a7dfe73f12283700d742ebd0698411eefd68b..4a1b4b8ac290a2c0ec66af03144380b626cf0ee2 100644 --- a/wmake/rules/General/Gcc/c++ +++ b/wmake/rules/General/Gcc/c++ @@ -1,3 +1,9 @@ +#------------------------------------------------------------------------------ +# C++14 support with gcc-5 and later, but several systems (as of 2021) +# are still using gcc-4.8.4 (centos7, suse SLES12, ...) +# +# NOTE if your system gcc is new enough can simply use c++14 too. +#------------------------------------------------------------------------------ SUFFIXES += .C .cc .cpp .cxx CC = g++ -std=c++11 diff --git a/wmake/rules/General/Icc/c++ b/wmake/rules/General/Icc/c++ index e0ad375d2ae5530a1e39bfd6d0ab3c992dc51fd4..543b5adcec850af52c7849decd2bec28a53e4f2a 100644 --- a/wmake/rules/General/Icc/c++ +++ b/wmake/rules/General/Icc/c++ @@ -1,6 +1,9 @@ +#------------------------------------------------------------------------------ +# Intel compiler is new enough to support c++14 +#------------------------------------------------------------------------------ SUFFIXES += .C .cc .cpp .cxx -CC = icpc -std=c++11 +CC = icpc -std=c++14 c++ARCH = c++DBUG = diff --git a/wmake/rules/General/Icx/c++ b/wmake/rules/General/Icx/c++ index 657e02660b26c37d08bf5f48e36ac08eff74f10d..3cced84b1b94d81e9b74441e2946021e6caefbd9 100644 --- a/wmake/rules/General/Icx/c++ +++ b/wmake/rules/General/Icx/c++ @@ -1,6 +1,9 @@ +#------------------------------------------------------------------------------ +# Intel compiler is new enough to support c++14 +#------------------------------------------------------------------------------ SUFFIXES += .C .cc .cpp .cxx -CC = icpx -std=c++11 +CC = icpx -std=c++14 c++ARCH = c++DBUG = diff --git a/wmake/rules/General/Nvidia/c b/wmake/rules/General/Nvidia/c new file mode 100644 index 0000000000000000000000000000000000000000..0ec9a118d126d9e556e21dd4e7b80abf39399dd9 --- /dev/null +++ b/wmake/rules/General/Nvidia/c @@ -0,0 +1,13 @@ +#------------------------------------------------------------------------------ +# Nvidia compilers +#------------------------------------------------------------------------------ +SUFFIXES += .c + +cc = nvc + +cARCH = +cDBUG = +cOPT = -O2 +cWARN = $(FOAM_EXTRA_CFLAGS) + +#------------------------------------------------------------------------------ diff --git a/wmake/rules/General/Nvidia/c++ b/wmake/rules/General/Nvidia/c++ new file mode 100644 index 0000000000000000000000000000000000000000..cd88194621d63d6f6c4970862951caffd2562f02 --- /dev/null +++ b/wmake/rules/General/Nvidia/c++ @@ -0,0 +1,37 @@ +#------------------------------------------------------------------------------ +# Nvidia compilers +#------------------------------------------------------------------------------ +SUFFIXES += .C .cc .cpp .cxx + +CC = nvc++ -std=c++14 + +c++ARCH = +c++DBUG = +c++OPT = -O2 +ptFLAGS = -DNoRepository + +# - Standard warnings +# - Less restrictive warnings (may be needed for flex++, CGAL, etc.) + +c++WARN = \ + -Wall -Wextra \ + --diag_suppress=111,128,177,185,612,998,1098 \ + --display_error_number \ + $(FOAM_EXTRA_CXXFLAGS) + +c++LESSWARN = + +# Warnings +# -------- +# Run with --display_error_number to get numbers +# and --diag_suppress=XXX to suppress +# +#111-D: statement is unreachable +#128-D: loop is not reachable +#177-D: function was declared but never referenced +#185-D: dynamic initialization in unreachable code +#612-D: overloaded virtual function ... is only partially overridden +#998-D: function XX is hidden by YY -- virtual function override intended? +#1098-D: unknown attribute "fallthrough" +# +#------------------------------------------------------------------------------ diff --git a/wmake/rules/General/Nvidia/link-c b/wmake/rules/General/Nvidia/link-c new file mode 100644 index 0000000000000000000000000000000000000000..79d1f2b6be48c27c1632b999597c318a262a2458 --- /dev/null +++ b/wmake/rules/General/Nvidia/link-c @@ -0,0 +1,5 @@ +LINK_LIBS = $(cDBUG) + +LINKLIBSO = $(cc) $(cARCH) -shared + +LINKEXE = $(cc) $(cARCH) -Xlinker --add-needed -Xlinker -z -Xlinker nodefs diff --git a/wmake/rules/General/Nvidia/link-c++ b/wmake/rules/General/Nvidia/link-c++ new file mode 100644 index 0000000000000000000000000000000000000000..1713460ec3cf403129e93921f36b5baf1872d489 --- /dev/null +++ b/wmake/rules/General/Nvidia/link-c++ @@ -0,0 +1,8 @@ +LINK_LIBS = $(c++DBUG) + +LINKLIBSO = $(CC) $(c++FLAGS) -shared \ + $(FOAM_EXTRA_LDFLAGS) + +LINKEXE = $(CC) $(c++FLAGS) \ + -Xlinker --add-needed \ + $(FOAM_EXTRA_LDFLAGS) diff --git a/wmake/rules/General/Nvidia/openmp b/wmake/rules/General/Nvidia/openmp new file mode 100644 index 0000000000000000000000000000000000000000..72ae175519a5d063bec6a27d9a04ff5665ba4fe6 --- /dev/null +++ b/wmake/rules/General/Nvidia/openmp @@ -0,0 +1,5 @@ +# Flags for compiling/linking openmp +# The USE_OMP is for OpenFOAM-specific use (general use is _OPENMP) + +COMP_OPENMP = -DUSE_OMP -fopenmp +LINK_OPENMP = -lnvomp diff --git a/wmake/rules/General/Pgi/c++ b/wmake/rules/General/Pgi/c++ index e1f41b942533e34280e8c8d296fc1bef3b63fe1d..c520c7b275841ca6c83d1eabd881ebf884c0784c 100644 --- a/wmake/rules/General/Pgi/c++ +++ b/wmake/rules/General/Pgi/c++ @@ -1,3 +1,6 @@ +#------------------------------------------------------------------------------ +# PGI Compilers are defunct - now in NVIDIA HPC SDK (2021) +#------------------------------------------------------------------------------ SUFFIXES += .C .cc .cpp .cxx CC = pgc++ -std=c++11 diff --git a/wmake/rules/linux64Cray/c++ b/wmake/rules/linux64Cray/c++ index 0b09cbe47e6ff9f1d404fefd627669ad508819f3..48a769f89566ff1030d5090a282395bc2c32f21d 100644 --- a/wmake/rules/linux64Cray/c++ +++ b/wmake/rules/linux64Cray/c++ @@ -1,7 +1,10 @@ +#------------------------------------------------------------------------------ # Cray compiler - a gcc variant/wrapper +# presumably new enough to support c++14 +#------------------------------------------------------------------------------ include $(GENERAL_RULES)/Gcc/c++ -CC = CC -std=c++11 +CC = CC -std=c++14 c++ARCH = -m64 -pthread @@ -15,3 +18,5 @@ cctoo = $(Ctoo) cpptoo = $(Ctoo) include $(GENERAL_RULES)/Gcc/link-c++ + +#------------------------------------------------------------------------------ diff --git a/wmake/rules/linux64Mingw/c++ b/wmake/rules/linux64Mingw/c++ index 4aad3937215a78d2493388a38782a0cb8694147e..de6fa6489c5c216772b82838a25062ce2fe4440c 100644 --- a/wmake/rules/linux64Mingw/c++ +++ b/wmake/rules/linux64Mingw/c++ @@ -1,9 +1,12 @@ +#------------------------------------------------------------------------------ +# mingw is gcc, but new enough to support c++14 +#------------------------------------------------------------------------------ include $(GENERAL_RULES)/Gcc/c++ c++ARCH = -m64 -pthread -# With gnu++11 (not c++11) to ensure __STRICT_ANSI__ is not defined -CC = x86_64-w64-mingw32-g++ -std=gnu++11 +# With gnu++14 (not c++14) to ensure __STRICT_ANSI__ is not defined +CC = x86_64-w64-mingw32-g++ -std=gnu++14 include $(RULES)/c++$(WM_COMPILE_OPTION) @@ -34,3 +37,5 @@ LINKEXE = $(CC) $(c++FLAGS) \ -Wl,--strip-all \ -Wl,--force-exe-suffix \ $(FOAM_EXTRA_LDFLAGS) + +#------------------------------------------------------------------------------ diff --git a/wmake/rules/linux64Nvidia/c b/wmake/rules/linux64Nvidia/c new file mode 100644 index 0000000000000000000000000000000000000000..6479237d6a0d7431772c94990e7770dc2fe1a64a --- /dev/null +++ b/wmake/rules/linux64Nvidia/c @@ -0,0 +1,12 @@ +include $(GENERAL_RULES)/Nvidia/c + +cARCH = -m64 + +# Compile option is non-mandatory, but must be non-empty +sinclude $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION) + +cFLAGS = $(cARCH) $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC + +ctoo = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $< -o $@ + +include $(GENERAL_RULES)/Nvidia/link-c diff --git a/wmake/rules/linux64Nvidia/c++ b/wmake/rules/linux64Nvidia/c++ new file mode 100644 index 0000000000000000000000000000000000000000..bc82b15e8fc943c5f8044546a039af701322a90d --- /dev/null +++ b/wmake/rules/linux64Nvidia/c++ @@ -0,0 +1,14 @@ +include $(GENERAL_RULES)/Nvidia/c++ + +c++ARCH = -m64 + +include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION) + +c++FLAGS = $(c++ARCH) $(GFLAGS) $(c++WARN) $(c++OPT) $(c++DBUG) $(ptFLAGS) $(LIB_HEADER_DIRS) -fPIC + +Ctoo = $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $< -o $@ +cxxtoo = $(Ctoo) +cctoo = $(Ctoo) +cpptoo = $(Ctoo) + +include $(GENERAL_RULES)/Nvidia/link-c++ diff --git a/wmake/rules/linux64Nvidia/c++Debug b/wmake/rules/linux64Nvidia/c++Debug new file mode 100644 index 0000000000000000000000000000000000000000..48f0b6643e18406a22b768923aa876a312269ea1 --- /dev/null +++ b/wmake/rules/linux64Nvidia/c++Debug @@ -0,0 +1,2 @@ +c++DBUG = -g -DFULLDEBUG +c++OPT = -O0 diff --git a/wmake/rules/linux64Nvidia/c++Opt b/wmake/rules/linux64Nvidia/c++Opt new file mode 100644 index 0000000000000000000000000000000000000000..2aedabd6280a3476bc58db13139a0a3aa579502b --- /dev/null +++ b/wmake/rules/linux64Nvidia/c++Opt @@ -0,0 +1,2 @@ +c++DBUG = +c++OPT = -O3 diff --git a/wmake/rules/linux64Nvidia/c++Prof b/wmake/rules/linux64Nvidia/c++Prof new file mode 100644 index 0000000000000000000000000000000000000000..3bda4dad55e898a8198f6e8bfe21e8d829d7230a --- /dev/null +++ b/wmake/rules/linux64Nvidia/c++Prof @@ -0,0 +1,2 @@ +c++DBUG = -pg +c++OPT = -O2 diff --git a/wmake/rules/linux64Nvidia/cDebug b/wmake/rules/linux64Nvidia/cDebug new file mode 100644 index 0000000000000000000000000000000000000000..7b7adf10deade9c64833672b98de8ace4fb61a0e --- /dev/null +++ b/wmake/rules/linux64Nvidia/cDebug @@ -0,0 +1,2 @@ +cDBUG = -g -DFULLDEBUG +cOPT = -O0 diff --git a/wmake/rules/linux64Nvidia/cOpt b/wmake/rules/linux64Nvidia/cOpt new file mode 100644 index 0000000000000000000000000000000000000000..17318709f1fa39e6bf89cbe87778bc6fa459de17 --- /dev/null +++ b/wmake/rules/linux64Nvidia/cOpt @@ -0,0 +1,2 @@ +cDBUG = +cOPT = -O3 diff --git a/wmake/rules/linux64Nvidia/cProf b/wmake/rules/linux64Nvidia/cProf new file mode 100644 index 0000000000000000000000000000000000000000..ca3ac9bf5f0cd61fe99e0f05fa1bd4bdf9fa6cf7 --- /dev/null +++ b/wmake/rules/linux64Nvidia/cProf @@ -0,0 +1,2 @@ +cDBUG = -pg +cOPT = -O2 diff --git a/wmake/rules/linux64Nvidia/general b/wmake/rules/linux64Nvidia/general new file mode 100644 index 0000000000000000000000000000000000000000..5cfb798fac46c20cb988bfc66aa017b6fe18ce16 --- /dev/null +++ b/wmake/rules/linux64Nvidia/general @@ -0,0 +1,13 @@ +CPP = cpp -traditional-cpp $(GFLAGS) + +include $(GENERAL_RULES)/standard +## include $(GENERAL_RULES)/Pgi/openmp + +ifneq (,$(findstring ~openmp,$(WM_COMPILE_CONTROL))) + include $(GENERAL_RULES)/no-openmp +endif + +include $(DEFAULT_RULES)/c +include $(DEFAULT_RULES)/c++ + +# ----------------------------------------------------------------------------- diff --git a/wmake/rules/linux64Nvidia/mplibOPENMPI b/wmake/rules/linux64Nvidia/mplibOPENMPI new file mode 100644 index 0000000000000000000000000000000000000000..0faf49ed1e5df5df4ba4ae67fe6d9e8210858e39 --- /dev/null +++ b/wmake/rules/linux64Nvidia/mplibOPENMPI @@ -0,0 +1,3 @@ +PFLAGS = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX +PINC = -I$(MPI_ARCH_PATH)/include +PLIBS = -L$(MPI_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) -L$(MPI_ARCH_PATH)/lib -lmpi diff --git a/wmake/rules/linuxARM64Arm/c++ b/wmake/rules/linuxARM64Arm/c++ index 9a920288855448f1aa2341effa73140b9f149a9d..933cf970ecf934ed40b08d0c963d9101638eb59a 100644 --- a/wmake/rules/linuxARM64Arm/c++ +++ b/wmake/rules/linuxARM64Arm/c++ @@ -1,7 +1,9 @@ +#------------------------------------------------------------------------------ # A clang variant +#------------------------------------------------------------------------------ include $(GENERAL_RULES)/Clang/c++ -CC = armclang++ -std=c++11 +CC = armclang++ -std=c++14 c++ARCH = -mcpu=native -pthread @@ -18,3 +20,5 @@ include $(GENERAL_RULES)/Clang/link-c++ LINKLIBSO += -armpl LINKEXE += -armpl + +#------------------------------------------------------------------------------ diff --git a/wmake/rules/linuxARM64Fujitsu/c++ b/wmake/rules/linuxARM64Fujitsu/c++ index c6838152bc7c10888497c619a0df2b15d50075bf..540397fd75879db3cbc3c37e13faa92b494924a1 100644 --- a/wmake/rules/linuxARM64Fujitsu/c++ +++ b/wmake/rules/linuxARM64Fujitsu/c++ @@ -1,7 +1,9 @@ +#------------------------------------------------------------------------------ # Fujitsu compiler - a clang variant +#------------------------------------------------------------------------------ include $(GENERAL_RULES)/Clang/c++ -CC = FCC -std=c++11 +CC = FCC -std=c++14 c++ARCH = -pthread @@ -15,3 +17,5 @@ cctoo = $(Ctoo) cpptoo = $(Ctoo) include $(GENERAL_RULES)/Clang/link-c++ + +#------------------------------------------------------------------------------