1 # CCOMMON_OPT += -DFASTCPU
3 ifeq ($(OSNAME), SunOS)
5 ifeq ($(F_COMPILER), SUN)
12 ifneq ($(DYNAMIC_ARCH),1)
23 ifneq ($(F_COMPILER), NAG)
28 CCOMMON_OPT += -mssse3
29 ifneq ($(F_COMPILER), NAG)
30 FCOMMON_OPT += -mssse3
34 CCOMMON_OPT += -msse4.1
35 ifneq ($(F_COMPILER), NAG)
36 FCOMMON_OPT += -msse4.1
42 ifneq ($(F_COMPILER), NAG)
50 ifneq ($(F_COMPILER), NAG)
56 ifeq ($(CORE), SKYLAKEX)
58 CCOMMON_OPT += -march=skylake-avx512
59 ifneq ($(F_COMPILER), NAG)
60 FCOMMON_OPT += -march=skylake-avx512
62 ifeq ($(OSNAME), CYGWIN_NT)
63 CCOMMON_OPT += -fno-asynchronous-unwind-tables
64 FCOMMON_OPT += -fno-asynchronous-unwind-tables
66 ifeq ($(OSNAME), WINNT)
67 ifeq ($(C_COMPILER), GCC)
68 CCOMMON_OPT += -fno-asynchronous-unwind-tables
69 FCOMMON_OPT += -fno-asynchronous-unwind-tables
75 ifeq ($(CORE), COOPERLAKE)
77 ifeq ($(C_COMPILER), GCC)
78 # cooperlake support was added in 10.1
79 ifeq ($(GCCVERSIONGTEQ10)$(GCCMINORVERSIONGTEQ1), 11)
80 CCOMMON_OPT += -march=cooperlake
81 ifneq ($(F_COMPILER), NAG)
82 FCOMMON_OPT += -march=cooperlake
84 else # gcc not support, fallback to avx512
85 CCOMMON_OPT += -march=skylake-avx512
86 ifneq ($(F_COMPILER), NAG)
87 FCOMMON_OPT += -march=skylake-avx512
91 ifeq ($(OSNAME), CYGWIN_NT)
92 CCOMMON_OPT += -fno-asynchronous-unwind-tables
93 FCOMMON_OPT += -fno-asynchronous-unwind-tables
95 ifeq ($(OSNAME), WINNT)
96 ifeq ($(C_COMPILER), GCC)
97 CCOMMON_OPT += -fno-asynchronous-unwind-tables
98 FCOMMON_OPT += -fno-asynchronous-unwind-tables
104 ifeq ($(CORE), SAPPHIRERAPIDS)
106 ifeq ($(C_COMPILER), GCC)
107 # sapphire rapids support was added in 11
108 ifeq ($(GCCVERSIONGTEQ11), 1)
109 CCOMMON_OPT += -march=sapphirerapids
110 ifneq ($(F_COMPILER), NAG)
111 FCOMMON_OPT += -march=sapphirerapids
113 else # gcc not support, fallback to avx512
114 CCOMMON_OPT += -march=skylake-avx512
115 ifneq ($(F_COMPILER), NAG)
116 FCOMMON_OPT += -march=skylake-avx512
120 ifeq ($(OSNAME), CYGWIN_NT)
121 CCOMMON_OPT += -fno-asynchronous-unwind-tables
122 FCOMMON_OPT += -fno-asynchronous-unwind-tables
124 ifeq ($(OSNAME), WINNT)
125 ifeq ($(C_COMPILER), GCC)
126 CCOMMON_OPT += -fno-asynchronous-unwind-tables
127 FCOMMON_OPT += -fno-asynchronous-unwind-tables
135 ifeq ($(C_COMPILER), GCC)
136 # AVX2 support was added in 4.7.0
137 GCCVERSIONCHECK := $(GCCVERSIONGT4)$(GCCVERSIONGTEQ4)$(GCCMINORVERSIONGTEQ7)
138 ifeq ($(GCCVERSIONCHECK), $(filter $(GCCVERSIONCHECK), 011 110 111))
139 CCOMMON_OPT += -mavx2
142 ifeq ($(C_COMPILER), CLANG)
143 CCOMMON_OPT += -mavx2
146 ifeq ($(F_COMPILER), GFORTRAN)
147 # AVX2 support was added in 4.7.0
148 GCCVERSIONGTEQ4 := $(shell expr `$(FC) -dumpversion | cut -f1 -d.` \>= 4)
149 GCCVERSIONGTEQ5 := $(shell expr `$(FC) -dumpversion | cut -f1 -d.` \>= 5)
150 GCCMINORVERSIONGTEQ7 := $(shell expr `$(FC) -dumpversion | cut -f2 -d.` \>= 7)
151 GCCVERSIONCHECK := $(GCCVERSIONGTEQ5)$(GCCVERSIONGTEQ4)$(GCCMINORVERSIONGTEQ7)
152 ifeq ($(GCCVERSIONCHECK), $(filter $(GCCVERSIONCHECK), 011 110 111))
153 FCOMMON_OPT += -mavx2
156 ifeq ($(F_COMPILER), FLANG)
157 FCOMMON_OPT += -mavx2
166 ifeq ($(OSNAME), Interix)
170 ifeq ($(OSNAME), Darwin)
172 LIBMKL = -L$(MKLPATH)/em64t -Wl,-rpath,$(MKLPATH)/em64t -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lguide -lpthread -lm
174 LIBMKL = -L$(MKLPATH)/em64t -Wl,-rpath,$(MKLPATH)/em64t -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lguide -lpthread -lm
178 LIBMKL = -L$(MKLPATH)/em64t -Wl,-rpath,$(MKLPATH)/em64t -Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -Wl,--end-group -lguide -lpthread -lm
180 LIBMKL = -L$(MKLPATH)/em64t -Wl,-rpath,$(MKLPATH)/em64t -Wl,--start-group -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -Wl,--end-group -lguide -lpthread -lm
186 LIBATLAS = -L$(ATLASPATH)64 -llapack -lcblas -lf77blas -latlas -lm
188 LIBATLAS = -L$(ATLASPATH)64 -llapack -lptcblas -lptf77blas -latlas -lpthread -lm
191 LIBFLAME = -L$(FLAMEPATH) -llapack2flame -lflame $(TOPDIR)/$(LIBNAME) -lgfortran -lpthread -lm
194 ifeq ($(F_COMPILER), g77)
195 LIBACML = -L$(ACMLPATH)/gnu64/lib -Wl,-rpath,$(ACMLPATH)/gnu64/lib -lacml -lacml_mv -lg2c -lm
198 ifeq ($(F_COMPILER), GFORTRAN)
200 LIBACML = -L$(ACMLPATH)/gfortran64/lib -Wl,-rpath,$(ACMLPATH)/gfortran64/lib -lacml -lacml_mv -lgfortran -lm
202 LIBACML = -L$(ACMLPATH)/gfortran64_mp/lib -Wl,-rpath,$(ACMLPATH)/gfortran64_mp/lib -lacml_mp -lacml_mv -lgfortran -lgomp -lm
206 ifeq ($(F_COMPILER), INTEL)
208 LIBACML = -L$(ACMLPATH)/ifort64/lib -Wl,-rpath,$(ACMLPATH)/ifort64/lib -lacml -lacml_mv -lifcoremt_pic -lirc -lm -lpthread -ldl
210 LIBACML = -L$(ACMLPATH)/ifort64_mp/lib -Wl,-rpath,$(ACMLPATH)/ifort64_mp/lib -lacml_mp -lacml_mv -lifcoremt_pic -liomp5 -lirc -lm -lpthread -ldl
214 ifeq ($(F_COMPILER), OPEN64)
216 LIBACML = -L$(ACMLPATH)/open64/lib -Wl,-rpath,$(ACMLPATH)/open64/lib -lacml -lacml_mv -lm
218 LIBACML = -L$(ACMLPATH)/open64_mp/lib -Wl,-rpath,$(ACMLPATH)/open64_mp/lib -lacml_mp -lacml_mv -lm -lpthread
222 ifeq ($(F_COMPILER), pgf77)
224 LIBACML = -L$(ACMLPATH)/pgi64/lib -Wl,-rpath,$(ACMLPATH)/pgi64/lib -lacml -lacml_mv -L$(PGIPATH) -Wl,-rpath,$(PGIPATH) -lpgftnrtl -lnspgc -lpgmp -lpgc
226 LIBACML = -L$(ACMLPATH)/pgi64_mp/lib -Wl,-rpath,$(ACMLPATH)/pgi64_mp/lib -lacml -lacml_mv -L$(PGIPATH) -Wl,-rpath,$(PGIPATH) -lpgftnrtl -lnspgc -lpgmp -lpgc
230 ifeq ($(F_COMPILER), PATHSCALE)
232 LIBACML = -L$(ACMLPATH)/pathscale64/lib -Wl,-rpath,$(ACMLPATH)/pathscale64/lib -lacml -lacml_mv -Wl,-rpath,$(PATHSCALEPATH) -L$(PATHSCALEPATH) -lpathfortran -lm
234 LIBACML = -L$(ACMLPATH)/pathscale64_mp/lib -Wl,-rpath,$(ACMLPATH)/pathscale64_mp/lib -lacml_mp -lacml_mv -Wl,-rpath,$(PATHSCALEPATH) -L$(PATHSCALEPATH) -lopenmp -lpathfortran -lm
238 ifeq ($(F_COMPILER), f90)
239 LIBACML = -L$(ACMLPATH)/sun64/lib -Wl,-R,$(ACMLPATH)/sun64/lib -L$(SUNPATH)/lib/amd64 -Wl,-R,$(SUNPATH)/lib/amd64 -lacml -lacml_mv -lfsu
242 LIBSUNPERF = -L$(SUNPATH)/lib/amd64 -L$(SUNPATH)/rtlibs/amd64 -Wl,-R,$(SUNPATH)/lib/amd64 -Wl,-R,$(SUNPATH)/rtlibs/amd64 -lsunperf -lfui -lfsu -lmtsk
244 LIBVECLIB = /System/Library/Frameworks/vecLib.framework/Versions/Current/vecLib