diff --git a/etc/bashrc b/etc/bashrc index ab79b9ad74a531eb30b842651f37a9e92651d385..e8857b474d46a66e5701889a6ef5225e893dd4eb 100644 --- a/etc/bashrc +++ b/etc/bashrc @@ -66,7 +66,7 @@ export WM_PROJECT_VERSION=com export WM_COMPILER_TYPE=system # [WM_COMPILER] - Compiler: -# = Gcc | Clang | Icc | Cray | Amd | Arm | Pgi | Fujitsu | +# = Gcc | Clang | Icc | Icx | Cray | Amd | Arm | Pgi | Fujitsu | # Gcc<digits> | Clang<digits> export WM_COMPILER=Gcc diff --git a/etc/config.csh/compiler b/etc/config.csh/compiler index 4754d598a334219e30e97bba1f118a02aaf6a041..43ebc5582520b45169cbebadcba94b9c38f8bec4 100644 --- a/etc/config.csh/compiler +++ b/etc/config.csh/compiler @@ -6,7 +6,7 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # Copyright (C) 2016 OpenFOAM Foundation -# Copyright (C) 2016-2020 OpenCFD Ltd. +# Copyright (C) 2016-2021 OpenCFD Ltd. #------------------------------------------------------------------------------ # License # This file is part of OpenFOAM, distributed under GPL-3.0-or-later. @@ -23,11 +23,36 @@ # The default values for gcc/clang are not a recommendation, # but typically correspond to the minimum usable version. # +# I_MPI_CC, I_MPI_CXX environment variables may be defined for the +# Intel mpicc/mpicxx wrappers +# +#------------------------------------------------------------------------------ + +# Initial mpi/compiler associations +switch ("$WM_COMPILER") +case Icc*: + setenv I_MPI_CC icc + setenv I_MPI_CXX icpc + breaksw +case Icx*: + setenv I_MPI_CC icx + setenv I_MPI_CXX icpx + breaksw +case Gcc*: + switch ("$WM_MPLIB") + case INTELMPI*: + setenv I_MPI_CC gcc + setenv I_MPI_CXX g++ + breaksw + endsw + breaksw +endsw + #------------------------------------------------------------------------------ switch ("$WM_COMPILER_TYPE") case ThirdParty: - # Default versions (CLANG, GCC, GMP, MPFR, MPC) - override as necessary + # Default/minimum versions (compiler, GMP, MPFR, MPC) - override as needed set default_clang_version=llvm-3.7.1 set default_gcc_version=gcc-4.8.5 @@ -44,6 +69,9 @@ case ThirdParty: case Gcc: set gcc_version="$default_gcc_version" breaksw + case Gcc103*: + set gcc_version=gcc-10.3.0 + breaksw case Gcc102*: set gcc_version=gcc-10.2.0 breaksw @@ -128,8 +156,11 @@ case ThirdParty: case Clang: set clang_version="$default_clang_version" breaksw + case Clang111*: + set clang_version=llvm-11.1.0 + breaksw case Clang110*: - set clang_version=llvm-11.0.0 + set clang_version=llvm-11.0.1 breaksw case Clang100*: set clang_version=llvm-10.0.1 @@ -184,6 +215,7 @@ UNKNOWN_COMPILER breaksw endsw +#------------------------------------------------------------------------------ unset default_gcc_version default_clang_version unset default_gmp_version default_mpfr_version default_mpc_version diff --git a/etc/config.csh/mpi b/etc/config.csh/mpi index 83cc770c7efbde61ea6eb9ef9e6df9cf2ac85449..4942b58efdd70f99bdfaec17b2365af8d1c64acd 100644 --- a/etc/config.csh/mpi +++ b/etc/config.csh/mpi @@ -21,9 +21,6 @@ # For USERMPI, the user is responsible for supplying an appropriate # wmake/rules/General/mplibUSERMPI file and managing all settings # -# For INTELMPI, note that the (I_MPI_CC, I_MPI_CCX) environment variables -# define the underlying compiler to be used -# # User adjustments are controlled by these types of files: # - config.csh/prefs.fjmpi # - config.csh/prefs.intelmpi @@ -42,6 +39,9 @@ # but are not permitted to unset it. # # Environment +# I_MPI_CC, I_MPI_CXX environment variables define the compiler +# to be used the Intel mpicc/mpicxx wrappers +# # MPI_BUFFER_SIZE overrides 'mpiBufferSize' (controlDict entry). # Eg, setenv MPI_BUFFER_SIZE 20000000 # @@ -81,7 +81,9 @@ case SYSTEMOPENMPI: unset libDir endif - # TDB: extra openmpi major qualifier on name? + #- + # TBD: extra (major) version qualifier on name? + #- ## if ( "$FOAM_MPI" == "sys-openmpi" ) then ## set _foamMpiVersion=`echo "$MPI_ARCH_PATH" | sed -e 's/^.*mpi//'` ## switch ("$_foamMpiVersion") @@ -321,6 +323,7 @@ case SGIMPI: case INTELMPI*: + setenv FOAM_MPI intelmpi _foamEtc -config prefs.intelmpi ## Optional adjustments if ( $?I_MPI_ROOT ) then @@ -340,26 +343,38 @@ case INTELMPI*: setenv MPI_ARCH_PATH "${MPI_ARCH_PATH:h}" endif - # Subdir name is FOAM_MPI name - setenv FOAM_MPI "${MPI_ARCH_PATH:t}" - - # If subdir is version number only, prefix with 'impi-' - switch ("$FOAM_MPI") - case [0-9]*: - setenv FOAM_MPI "impi-$FOAM_MPI" - breaksw - endsw - + #- + # TBD: extra version qualifier on name? + # eg, when subdir is version number only + #- + ## if ( "$FOAM_MPI" == "intelmpi" ) then + ## set _foamMpiVersion="${MPI_ARCH_PATH:t}" + ## switch ("$_foamMpiVersion") + ## case [1-9]*: + ## setenv FOAM_MPI "intelmpi-${_foamMpiVersion}" + ## breaksw + ## endsw + ## endif else echo "${_foamMpiWarning}invalid $WM_MPLIB directory" echo " => ${MPI_ARCH_PATH}" - echo "Please set I_MPI_ROOT or MPI_ROOT correctly." + echo "Please set I_MPI_ROOT (or MPI_ROOT) correctly." endif - _foamAddPath "$MPI_ARCH_PATH"/intel64/bin - _foamAddLib "$MPI_ARCH_PATH"/intel64/lib - breaksw - + # With/without "intel64/" directory - handled here and in mpi rules + + # Path, lib-path may have been set prior to call + if (1) then + if ( -d "$MPI_ARCH_PATH"/intel64/lib ) then + _foamAddPath "$MPI_ARCH_PATH"/intel64/bin + _foamAddLib "$MPI_ARCH_PATH"/intel64/lib + _foamAddLib "$MPI_ARCH_PATH"/intel64/lib/release + else if ( -d "$MPI_ARCH_PATH"/lib ) then + _foamAddPath "$MPI_ARCH_PATH"/bin + _foamAddLib "$MPI_ARCH_PATH"/lib + _foamAddLib "$MPI_ARCH_PATH"/lib/release + endif + endif endsw diff --git a/etc/config.sh/compiler b/etc/config.sh/compiler index 0beeb89be1bc3fae1c79bcfa1d7735c05264730c..07dabda36f5e5c0fab6ba163d8940308fe9e5ea3 100644 --- a/etc/config.sh/compiler +++ b/etc/config.sh/compiler @@ -6,7 +6,7 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # Copyright (C) 2011-2016 OpenFOAM Foundation -# Copyright (C) 2016-2020 OpenCFD Ltd. +# Copyright (C) 2016-2021 OpenCFD Ltd. #------------------------------------------------------------------------------ # License # This file is part of OpenFOAM, distributed under GPL-3.0-or-later. @@ -23,11 +23,36 @@ # The default values for gcc/clang are not a recommendation, # but typically correspond to the minimum usable version. # +# I_MPI_CC, I_MPI_CXX environment variables may be defined for the +# Intel mpicc/mpicxx wrappers +# +#------------------------------------------------------------------------------ + +# Initial mpi/compiler associations +case "$WM_COMPILER" in +Icc*) + export I_MPI_CC=icc + export I_MPI_CXX=icpc + ;; +Icx*) + export I_MPI_CC=icx + export I_MPI_CXX=icpx + ;; +Gcc*) + case "$WM_MPLIB" in + INTELMPI*) + export I_MPI_CC=gcc + export I_MPI_CXX=g++ + ;; + esac + ;; +esac + #------------------------------------------------------------------------------ case "$WM_COMPILER_TYPE" in ThirdParty) - # Default versions (CLANG, GCC, GMP, MPFR, MPC) - override as necessary + # Default/minimum versions (compiler, GMP, MPFR, MPC) - override as needed default_clang_version=llvm-3.7.1 default_gcc_version=gcc-4.8.5 @@ -45,6 +70,7 @@ ThirdParty) case "$WM_COMPILER" in Gcc) gcc_version="$default_gcc_version" ;; + Gcc103*) gcc_version=gcc-10.3.0 ;; Gcc102*) gcc_version=gcc-10.2.0 ;; Gcc101*) gcc_version=gcc-10.1.0 ;; Gcc93*) gcc_version=gcc-9.3.0 ;; @@ -74,7 +100,8 @@ ThirdParty) Gcc48*) gcc_version=gcc-4.8.5 ;; Clang) clang_version="$default_clang_version" ;; - Clang110*) clang_version=llvm-11.0.0 ;; + Clang111*) clang_version=llvm-11.1.0 ;; + Clang110*) clang_version=llvm-11.0.1 ;; Clang100*) clang_version=llvm-10.0.1 ;; Clang90*) clang_version=llvm-9.0.1 ;; Clang80*) clang_version=llvm-8.0.1 ;; @@ -107,6 +134,7 @@ UNKNOWN_COMPILER ;; esac +#------------------------------------------------------------------------------ unset default_gcc_version default_clang_version unset default_gmp_version default_mpfr_version default_mpc_version diff --git a/etc/config.sh/mpi b/etc/config.sh/mpi index 04e6219a0f31fdc7475f522780c47ecf2c363ad9..90885f6423652e9462f9411e21ac1016f66fcc4b 100644 --- a/etc/config.sh/mpi +++ b/etc/config.sh/mpi @@ -21,9 +21,6 @@ # For USERMPI, the user is responsible for supplying an appropriate # wmake/rules/General/mplibUSERMPI file and managing all settings # -# For INTELMPI, note that the (I_MPI_CC, I_MPI_CCX) environment variables -# define the underlying compiler to be used -# # User adjustments are controlled by these types of files: # - config.sh/prefs.fjmpi # - config.sh/prefs.intelmpi @@ -40,6 +37,9 @@ # All pre-v2012 names (without the 'prefs.' prefix) are ignored. # # Environment +# I_MPI_CC, I_MPI_CXX environment variables define the compiler +# to be used the Intel mpicc/mpicxx wrappers +# # MPI_BUFFER_SIZE overrides 'mpiBufferSize' (controlDict entry). # Eg, export MPI_BUFFER_SIZE=20000000 # @@ -84,7 +84,9 @@ SYSTEMOPENMPI | SYSTEMOPENMPI[1-9]) unset libDir fi - # TDB: extra openmpi major qualifier on name? + #- + # TBD: extra (major) version qualifier on name? + #- ## if [ "$FOAM_MPI" = "sys-openmpi" ] ## then ## _foamMpiVersion="${MPI_ARCH_PATH##*mpi}" @@ -342,6 +344,7 @@ SGIMPI) INTELMPI*) + export FOAM_MPI=intelmpi _foamEtc -config prefs.intelmpi ## Optional adjustments if [ -n "$I_MPI_ROOT" ] @@ -366,21 +369,45 @@ INTELMPI*) # Remove trailing slash MPI_ARCH_PATH="${MPI_ARCH_PATH%/}" - # Subdir name is FOAM_MPI name - FOAM_MPI="${MPI_ARCH_PATH##*/}" - - # If subdir is version number only, prefix with 'impi-' - case "$FOAM_MPI" in ([0-9]*) FOAM_MPI="impi-$FOAM_MPI";; esac + #- + # TBD: extra version qualifier on name? + # eg, when subdir is version number only + #- + ## if [ "$FOAM_MPI" = "intelmpi" ] + ## then + ## _foamMpiVersion="${MPI_ARCH_PATH##*mpi}" + ## case "$_foamMpiVersion" in + ## ([1-9]*) FOAM_MPI="intelmpi-${_foamMpiVersion}";; + ## esac + ## fi else echo "${_foamMpiWarning}invalid $WM_MPLIB directory" 1>&2 echo " => ${MPI_ARCH_PATH:-unset}" 1>&2 - echo "Please set I_MPI_ROOT or MPI_ROOT correctly." 1>&2 + echo "Please set I_MPI_ROOT (or MPI_ROOT) correctly." 1>&2 fi - export FOAM_MPI MPI_ARCH_PATH + export MPI_ARCH_PATH + + # With/without "intel64/" directory - handled here and in mpi rules + + # Path, lib-path may have been set prior to call + if true + then + if [ -d "$MPI_ARCH_PATH"/intel64/bin ] \ + && [ -d "$MPI_ARCH_PATH"/intel64/lib ] + then + _foamAddPath "$MPI_ARCH_PATH"/intel64/bin + _foamAddLib "$MPI_ARCH_PATH"/intel64/lib + _foamAddLib "$MPI_ARCH_PATH"/intel64/lib/release - _foamAddPath "$MPI_ARCH_PATH"/intel64/bin - _foamAddLib "$MPI_ARCH_PATH"/intel64/lib + elif [ -d "$MPI_ARCH_PATH"/bin ] \ + && [ -d "$MPI_ARCH_PATH"/lib ] + then + _foamAddPath "$MPI_ARCH_PATH"/bin + _foamAddLib "$MPI_ARCH_PATH"/lib + _foamAddLib "$MPI_ARCH_PATH"/lib/release + fi + fi ;; diff --git a/etc/cshrc b/etc/cshrc index 8959453798b4a758e8d5fb8eb37d0bf3de40e35b..cf2323792e3fedd012e6f8cc8b1f96e02eaa8a11 100644 --- a/etc/cshrc +++ b/etc/cshrc @@ -6,7 +6,7 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # Copyright (C) 2011-2016 OpenFOAM Foundation -# Copyright (C) 2016-2020 OpenCFD Ltd. +# Copyright (C) 2016-2021 OpenCFD Ltd. #------------------------------------------------------------------------------ # License # This file is part of OpenFOAM, distributed under GPL-3.0-or-later. @@ -66,7 +66,7 @@ setenv WM_PROJECT_VERSION com setenv WM_COMPILER_TYPE system # [WM_COMPILER] - Compiler: -# = Gcc | Clang | Icc | Cray | Amd | Arm | Pgi | Fujitsu | +# = Gcc | Clang | Icc | Icx | Cray | Amd | Arm | Pgi | Fujitsu | # Gcc<digits> | Clang<digits> setenv WM_COMPILER Gcc diff --git a/wmake/rules/General/Icc/openmp b/wmake/rules/General/Icc/openmp index 738673ca91cc2f2f3f4e4e44cba92db23858d469..b1824a5216adce942b7ae365a33f487d76b5da75 100644 --- a/wmake/rules/General/Icc/openmp +++ b/wmake/rules/General/Icc/openmp @@ -2,4 +2,4 @@ # The USE_OMP is for OpenFOAM-specific use (general use is _OPENMP) COMP_OPENMP = -DUSE_OMP -qopenmp -LINK_OPENMP = -liomp5 +LINK_OPENMP = -qopenmp diff --git a/wmake/rules/General/Icx/c b/wmake/rules/General/Icx/c new file mode 100644 index 0000000000000000000000000000000000000000..93990e6abf64e1181022a7fe21bd49d2f6c36314 --- /dev/null +++ b/wmake/rules/General/Icx/c @@ -0,0 +1,10 @@ +SUFFIXES += .c + +cc = icx + +cARCH = +cDBUG = +cOPT = -O2 +cWARN = $(FOAM_EXTRA_CFLAGS) + +#------------------------------------------------------------------------------ diff --git a/wmake/rules/General/Icx/c++ b/wmake/rules/General/Icx/c++ new file mode 100644 index 0000000000000000000000000000000000000000..657e02660b26c37d08bf5f48e36ac08eff74f10d --- /dev/null +++ b/wmake/rules/General/Icx/c++ @@ -0,0 +1,24 @@ +SUFFIXES += .C .cc .cpp .cxx + +CC = icpx -std=c++11 + +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 \ + -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof \ + -Wno-unknown-pragmas \ + -Wno-undefined-var-template \ + -diag-disable 327,654,1125,1292,2289,2304,11062,11074,11076 \ + $(FOAM_EXTRA_CXXFLAGS) + +c++LESSWARN = \ + -diag-disable 1224,2026,2305 + +#------------------------------------------------------------------------------ diff --git a/wmake/rules/General/Icx/link-c b/wmake/rules/General/Icx/link-c new file mode 100644 index 0000000000000000000000000000000000000000..a689d22d93fdb4e636928458261077e4b4cb2a1b --- /dev/null +++ b/wmake/rules/General/Icx/link-c @@ -0,0 +1,5 @@ +LINK_LIBS = $(cDBUG) + +LINKLIBSO = $(cc) $(cFLAGS) -shared + +LINKEXE = $(cc) $(cFLAGS) -Xlinker --add-needed -Xlinker -z -Xlinker nodefs diff --git a/wmake/rules/General/Icx/link-c++ b/wmake/rules/General/Icx/link-c++ new file mode 100644 index 0000000000000000000000000000000000000000..e023b8a35ed4b4a196cc01c8258312dd24d92c97 --- /dev/null +++ b/wmake/rules/General/Icx/link-c++ @@ -0,0 +1,11 @@ +LINK_LIBS = $(c++DBUG) + +LINKLIBSO = $(CC) $(c++FLAGS) -shared \ + -Xlinker --add-needed \ + -Xlinker --no-as-needed \ + $(FOAM_EXTRA_LDFLAGS) + +LINKEXE = $(CC) $(c++FLAGS) \ + -Xlinker --add-needed \ + -Xlinker --no-as-needed \ + $(FOAM_EXTRA_LDFLAGS) diff --git a/wmake/rules/General/Icx/openmp b/wmake/rules/General/Icx/openmp new file mode 100644 index 0000000000000000000000000000000000000000..e8e20e81a4b8e9fdadbd2d915c63553f03482901 --- /dev/null +++ b/wmake/rules/General/Icx/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 -fiopenmp +LINK_OPENMP = -fiopenmp diff --git a/wmake/rules/General/mplib-x86_64-INTELMPI b/wmake/rules/General/mplib-x86_64-INTELMPI index 6d10729d7368593078170cae49433d92620e076d..f7060abcd0b04e6e5afd76d2f7231486011d5221 100644 --- a/wmake/rules/General/mplib-x86_64-INTELMPI +++ b/wmake/rules/General/mplib-x86_64-INTELMPI @@ -1,8 +1,18 @@ #------------------------------------------------------------------------------ # INTELMPI rules (x86_64) +# - <root>/intel64/{include,lib} +# - <root>/{include,lib} -PFLAGS = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX -PINC = -isystem $(MPI_ARCH_PATH)/intel64/include -PLIBS = -L$(MPI_ARCH_PATH)/intel64/lib -lmpi +intelmpi_subdir := $(shell test -d "$(MPI_ARCH_PATH)/intel64" && echo /intel64) + +PFLAGS = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX +PINC = -isystem $(MPI_ARCH_PATH)$(intelmpi_subdir)/include +PLIBS = -L$(MPI_ARCH_PATH)$(intelmpi_subdir)/lib/release -lmpi + +# DEBUG +# ----- +## $(info MPI_ARCH_PATH: $(MPI_ARCH_PATH)) +## $(info PINC $(PINC)) +## $(info PLIBS $(PLIBS)) #------------------------------------------------------------------------------ diff --git a/wmake/rules/linux64Icc/c b/wmake/rules/linux64Icc/c index 50e1d44de49c117c167c118b4c21e2f7d439544d..c73cd823716942d99ad9a6577bac0908c0348e5a 100644 --- a/wmake/rules/linux64Icc/c +++ b/wmake/rules/linux64Icc/c @@ -1,3 +1,4 @@ +#------------------------------------------------------------------------------ include $(GENERAL_RULES)/Icc/c cARCH = @@ -11,4 +12,5 @@ ctoo = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $< -o $@ include $(GENERAL_RULES)/Icc/link-c -LINK_LIBS += -L$(IA32ROOT)/lib +#legacy: LINK_LIBS += -L$(IA32ROOT)/lib +#------------------------------------------------------------------------------ diff --git a/wmake/rules/linux64Icc/c++ b/wmake/rules/linux64Icc/c++ index 64f41784c404a10899317881a942a183d9a3d7b0..8b55b7df8acd54e75c44dce007f0da9bcad35f1e 100644 --- a/wmake/rules/linux64Icc/c++ +++ b/wmake/rules/linux64Icc/c++ @@ -1,3 +1,4 @@ +#------------------------------------------------------------------------------ include $(GENERAL_RULES)/Icc/c++ c++ARCH = -pthread -fp-trap=common -fp-model precise @@ -13,4 +14,5 @@ cpptoo = $(Ctoo) include $(GENERAL_RULES)/Icc/link-c++ -LINK_LIBS += -L$(IA64ROOT)/lib +#legacy: LINK_LIBS += -L$(IA64ROOT)/lib +#------------------------------------------------------------------------------ diff --git a/wmake/rules/linux64Icc/c++Prof b/wmake/rules/linux64Icc/c++Prof index 3bda4dad55e898a8198f6e8bfe21e8d829d7230a..48e788c41587f341df9934a269b5fce71f2220ce 100644 --- a/wmake/rules/linux64Icc/c++Prof +++ b/wmake/rules/linux64Icc/c++Prof @@ -1,2 +1,2 @@ -c++DBUG = -pg +c++DBUG = -p c++OPT = -O2 diff --git a/wmake/rules/linux64Icc/cProf b/wmake/rules/linux64Icc/cProf index ca3ac9bf5f0cd61fe99e0f05fa1bd4bdf9fa6cf7..f31aabbd9b403ef0a7cc29cbec0bc1b4c561898c 100644 --- a/wmake/rules/linux64Icc/cProf +++ b/wmake/rules/linux64Icc/cProf @@ -1,2 +1,2 @@ -cDBUG = -pg +cDBUG = -p cOPT = -O2 diff --git a/wmake/rules/linux64Icx/c b/wmake/rules/linux64Icx/c new file mode 100644 index 0000000000000000000000000000000000000000..5ee26506cb0c2de3140eedb999bf6471a343cc32 --- /dev/null +++ b/wmake/rules/linux64Icx/c @@ -0,0 +1,15 @@ +#------------------------------------------------------------------------------ +include $(GENERAL_RULES)/Icx/c + +cARCH = + +# 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)/Icx/link-c + +#------------------------------------------------------------------------------ diff --git a/wmake/rules/linux64Icx/c++ b/wmake/rules/linux64Icx/c++ new file mode 100644 index 0000000000000000000000000000000000000000..8d1e04876145beb8eb70294c95c9336de731b43f --- /dev/null +++ b/wmake/rules/linux64Icx/c++ @@ -0,0 +1,17 @@ +#------------------------------------------------------------------------------ +include $(GENERAL_RULES)/Icx/c++ + +c++ARCH = -fp-model precise + +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)/Icx/link-c++ + +#------------------------------------------------------------------------------ diff --git a/wmake/rules/linux64Icx/c++Debug b/wmake/rules/linux64Icx/c++Debug new file mode 100644 index 0000000000000000000000000000000000000000..0aec1fbffe1dd092d778540c501551d87474fb8e --- /dev/null +++ b/wmake/rules/linux64Icx/c++Debug @@ -0,0 +1,2 @@ +c++DBUG = -g -DFULLDEBUG -O0 +c++OPT = diff --git a/wmake/rules/linux64Icx/c++Opt b/wmake/rules/linux64Icx/c++Opt new file mode 100644 index 0000000000000000000000000000000000000000..2aedabd6280a3476bc58db13139a0a3aa579502b --- /dev/null +++ b/wmake/rules/linux64Icx/c++Opt @@ -0,0 +1,2 @@ +c++DBUG = +c++OPT = -O3 diff --git a/wmake/rules/linux64Icx/c++OptKNL b/wmake/rules/linux64Icx/c++OptKNL new file mode 100644 index 0000000000000000000000000000000000000000..ae99496bd47ccb1552c2de6dc32b34ff7132358d --- /dev/null +++ b/wmake/rules/linux64Icx/c++OptKNL @@ -0,0 +1,4 @@ +c++DBUG = +c++OPT = -xmic-avx512 -fp-speculation=safe -O3 + +ROUNDING_MATH = -frounding-math diff --git a/wmake/rules/linux64Icx/c++Prof b/wmake/rules/linux64Icx/c++Prof new file mode 100644 index 0000000000000000000000000000000000000000..3bda4dad55e898a8198f6e8bfe21e8d829d7230a --- /dev/null +++ b/wmake/rules/linux64Icx/c++Prof @@ -0,0 +1,2 @@ +c++DBUG = -pg +c++OPT = -O2 diff --git a/wmake/rules/linux64Icx/cDebug b/wmake/rules/linux64Icx/cDebug new file mode 100644 index 0000000000000000000000000000000000000000..73dce0dfd01f70663ed42deb43c46cb36c39394e --- /dev/null +++ b/wmake/rules/linux64Icx/cDebug @@ -0,0 +1,2 @@ +cDBUG = -g -DFULLDEBUG -O0 +cOPT = diff --git a/wmake/rules/linux64Icx/cOpt b/wmake/rules/linux64Icx/cOpt new file mode 100644 index 0000000000000000000000000000000000000000..17318709f1fa39e6bf89cbe87778bc6fa459de17 --- /dev/null +++ b/wmake/rules/linux64Icx/cOpt @@ -0,0 +1,2 @@ +cDBUG = +cOPT = -O3 diff --git a/wmake/rules/linux64Icx/cOptKNL b/wmake/rules/linux64Icx/cOptKNL new file mode 100644 index 0000000000000000000000000000000000000000..b5349135be42738b3d2ba658701c85c76d0bc0b3 --- /dev/null +++ b/wmake/rules/linux64Icx/cOptKNL @@ -0,0 +1,2 @@ +cDBUG = +cOPT = -O3 -no-prec-div diff --git a/wmake/rules/linux64Icx/cProf b/wmake/rules/linux64Icx/cProf new file mode 100644 index 0000000000000000000000000000000000000000..ca3ac9bf5f0cd61fe99e0f05fa1bd4bdf9fa6cf7 --- /dev/null +++ b/wmake/rules/linux64Icx/cProf @@ -0,0 +1,2 @@ +cDBUG = -pg +cOPT = -O2 diff --git a/wmake/rules/linux64Icx/general b/wmake/rules/linux64Icx/general new file mode 100644 index 0000000000000000000000000000000000000000..cfcb303a4a37be0fd1443f9678a63c518ee709b9 --- /dev/null +++ b/wmake/rules/linux64Icx/general @@ -0,0 +1,13 @@ +CPP = /lib/cpp -traditional-cpp $(GFLAGS) + +include $(GENERAL_RULES)/standard +include $(GENERAL_RULES)/Icx/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/linux64Icx/mplibHPMPI b/wmake/rules/linux64Icx/mplibHPMPI new file mode 100644 index 0000000000000000000000000000000000000000..08c6149fece2c37d21847d8a6c55c055f89df384 --- /dev/null +++ b/wmake/rules/linux64Icx/mplibHPMPI @@ -0,0 +1 @@ +include $(GENERAL_RULES)/mplib-x86_64-HPMPI diff --git a/wmake/rules/linux64Icx/mplibINTELMPI b/wmake/rules/linux64Icx/mplibINTELMPI new file mode 100644 index 0000000000000000000000000000000000000000..6fc8ce3c369372575ec0a9c19333dd7c8f901119 --- /dev/null +++ b/wmake/rules/linux64Icx/mplibINTELMPI @@ -0,0 +1 @@ +include $(GENERAL_RULES)/mplib-x86_64-INTELMPI diff --git a/wmake/rules/linuxIA64Icc/c++Opt b/wmake/rules/linuxIA64Icc/c++Opt index dd3d557474213cb77371150ce00dfb24ed3db919..2cb0159273e1a6dde98d8654428d7aaf4c3f66da 100644 --- a/wmake/rules/linuxIA64Icc/c++Opt +++ b/wmake/rules/linuxIA64Icc/c++Opt @@ -1,5 +1,4 @@ c++DBUG = - c++OPT = \ -DICC_IA64_PREFETCH \ -ansi-alias \ diff --git a/wmake/rules/solaris64Gcc/c++Debug b/wmake/rules/solaris64Gcc/c++Debug index 19bdb9c3346fc7a69380dfedd6e7911fe220a965..08680a0e4aa011a94ce3318e5c869f3db9de286d 100644 --- a/wmake/rules/solaris64Gcc/c++Debug +++ b/wmake/rules/solaris64Gcc/c++Debug @@ -1,2 +1,2 @@ -c++DBUG = -ggdb3 -DFULLDEBUG +c++DBUG = -ggdb3 -DFULLDEBUG c++OPT = -O0 -fdefault-inline