You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

Makefile.x86_64 5.2 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. # CCOMMON_OPT += -DFASTCPU
  2. ifeq ($(OSNAME), SunOS)
  3. ifdef BINARY64
  4. ifeq ($(F_COMPILER), SUN)
  5. FCOMMON_OPT += -m64
  6. endif
  7. endif
  8. endif
  9. ifdef HAVE_SSE3
  10. ifndef DYNAMIC_ARCH
  11. CCOMMON_OPT += -msse3
  12. FCOMMON_OPT += -msse3
  13. endif
  14. endif
  15. ifeq ($(CORE), SKYLAKEX)
  16. ifndef DYNAMIC_ARCH
  17. ifndef NO_AVX512
  18. CCOMMON_OPT += -march=skylake-avx512
  19. FCOMMON_OPT += -march=skylake-avx512
  20. ifeq ($(OSNAME), CYGWIN_NT)
  21. CCOMMON_OPT += -fno-asynchronous-unwind-tables
  22. FCOMMON_OPT += -fno-asynchronous-unwind-tables
  23. endif
  24. ifeq ($(OSNAME), WINNT)
  25. ifeq ($(C_COMPILER), GCC)
  26. CCOMMON_OPT += -fno-asynchronous-unwind-tables
  27. FCOMMON_OPT += -fno-asynchronous-unwind-tables
  28. endif
  29. endif
  30. endif
  31. endif
  32. endif
  33. ifeq ($(CORE), COOPERLAKE)
  34. ifndef DYNAMIC_ARCH
  35. ifndef NO_AVX512
  36. ifeq ($(C_COMPILER), GCC)
  37. # cooperlake support was added in 10.1
  38. GCCVERSIONGTEQ10 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 10)
  39. GCCMINORVERSIONGTEQ1 := $(shell expr `$(CC) -dumpversion | cut -f2 -d.` \>= 1)
  40. ifeq ($(GCCVERSIONGTEQ10)$(GCCMINORVERSIONGTEQ1), 11)
  41. CCOMMON_OPT += -march=cooperlake
  42. FCOMMON_OPT += -march=cooperlake
  43. endif
  44. endif
  45. ifeq ($(OSNAME), CYGWIN_NT)
  46. CCOMMON_OPT += -fno-asynchronous-unwind-tables
  47. FCOMMON_OPT += -fno-asynchronous-unwind-tables
  48. endif
  49. ifeq ($(OSNAME), WINNT)
  50. ifeq ($(C_COMPILER), GCC)
  51. CCOMMON_OPT += -fno-asynchronous-unwind-tables
  52. FCOMMON_OPT += -fno-asynchronous-unwind-tables
  53. endif
  54. endif
  55. endif
  56. endif
  57. endif
  58. ifeq ($(CORE), HASWELL)
  59. ifndef DYNAMIC_ARCH
  60. ifndef NO_AVX2
  61. ifeq ($(C_COMPILER), GCC)
  62. # AVX2 support was added in 4.7.0
  63. GCCVERSIONGTEQ4 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 4)
  64. GCCMINORVERSIONGTEQ7 := $(shell expr `$(CC) -dumpversion | cut -f2 -d.` \>= 7)
  65. ifeq ($(GCCVERSIONGTEQ4)$(GCCMINORVERSIONGTEQ7), 11)
  66. CCOMMON_OPT += -mavx2
  67. endif
  68. endif
  69. ifeq ($(F_COMPILER), GFORTRAN)
  70. # AVX2 support was added in 4.7.0
  71. GCCVERSIONGTEQ4 := $(shell expr `$(FC) -dumpversion | cut -f1 -d.` \>= 4)
  72. GCCMINORVERSIONGTEQ7 := $(shell expr `$(FC) -dumpversion | cut -f2 -d.` \>= 7)
  73. ifeq ($(GCCVERSIONGTEQ4)$(GCCMINORVERSIONGTEQ7), 11)
  74. FCOMMON_OPT += -mavx2
  75. endif
  76. endif
  77. endif
  78. endif
  79. endif
  80. ifeq ($(OSNAME), Interix)
  81. ARFLAGS = -m x64
  82. endif
  83. ifeq ($(OSNAME), Darwin)
  84. ifndef SMP
  85. LIBMKL = -L$(MKLPATH)/em64t -Wl,-rpath,$(MKLPATH)/em64t -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lguide -lpthread -lm
  86. else
  87. LIBMKL = -L$(MKLPATH)/em64t -Wl,-rpath,$(MKLPATH)/em64t -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lguide -lpthread -lm
  88. endif
  89. else
  90. ifndef SMP
  91. LIBMKL = -L$(MKLPATH)/em64t -Wl,-rpath,$(MKLPATH)/em64t -Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -Wl,--end-group -lguide -lpthread -lm
  92. else
  93. 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
  94. endif
  95. endif
  96. ifndef SMP
  97. LIBATLAS = -L$(ATLASPATH)64 -llapack -lcblas -lf77blas -latlas -lm
  98. else
  99. LIBATLAS = -L$(ATLASPATH)64 -llapack -lptcblas -lptf77blas -latlas -lpthread -lm
  100. endif
  101. LIBFLAME = -L$(FLAMEPATH) -llapack2flame -lflame $(TOPDIR)/$(LIBNAME) -lgfortran -lpthread -lm
  102. ifeq ($(F_COMPILER), g77)
  103. LIBACML = -L$(ACMLPATH)/gnu64/lib -Wl,-rpath,$(ACMLPATH)/gnu64/lib -lacml -lacml_mv -lg2c -lm
  104. endif
  105. ifeq ($(F_COMPILER), GFORTRAN)
  106. ifndef SMP
  107. LIBACML = -L$(ACMLPATH)/gfortran64/lib -Wl,-rpath,$(ACMLPATH)/gfortran64/lib -lacml -lacml_mv -lgfortran -lm
  108. else
  109. LIBACML = -L$(ACMLPATH)/gfortran64_mp/lib -Wl,-rpath,$(ACMLPATH)/gfortran64_mp/lib -lacml_mp -lacml_mv -lgfortran -lgomp -lm
  110. endif
  111. endif
  112. ifeq ($(F_COMPILER), INTEL)
  113. ifndef SMP
  114. LIBACML = -L$(ACMLPATH)/ifort64/lib -Wl,-rpath,$(ACMLPATH)/ifort64/lib -lacml -lacml_mv -lifcoremt_pic -lirc -lm -lpthread -ldl
  115. else
  116. LIBACML = -L$(ACMLPATH)/ifort64_mp/lib -Wl,-rpath,$(ACMLPATH)/ifort64_mp/lib -lacml_mp -lacml_mv -lifcoremt_pic -liomp5 -lirc -lm -lpthread -ldl
  117. endif
  118. endif
  119. ifeq ($(F_COMPILER), OPEN64)
  120. ifndef SMP
  121. LIBACML = -L$(ACMLPATH)/open64/lib -Wl,-rpath,$(ACMLPATH)/open64/lib -lacml -lacml_mv -lm
  122. else
  123. LIBACML = -L$(ACMLPATH)/open64_mp/lib -Wl,-rpath,$(ACMLPATH)/open64_mp/lib -lacml_mp -lacml_mv -lm -lpthread
  124. endif
  125. endif
  126. ifeq ($(F_COMPILER), pgf77)
  127. ifndef SMP
  128. LIBACML = -L$(ACMLPATH)/pgi64/lib -Wl,-rpath,$(ACMLPATH)/pgi64/lib -lacml -lacml_mv -L$(PGIPATH) -Wl,-rpath,$(PGIPATH) -lpgftnrtl -lnspgc -lpgmp -lpgc
  129. else
  130. LIBACML = -L$(ACMLPATH)/pgi64_mp/lib -Wl,-rpath,$(ACMLPATH)/pgi64_mp/lib -lacml -lacml_mv -L$(PGIPATH) -Wl,-rpath,$(PGIPATH) -lpgftnrtl -lnspgc -lpgmp -lpgc
  131. endif
  132. endif
  133. ifeq ($(F_COMPILER), PATHSCALE)
  134. ifndef SMP
  135. LIBACML = -L$(ACMLPATH)/pathscale64/lib -Wl,-rpath,$(ACMLPATH)/pathscale64/lib -lacml -lacml_mv -Wl,-rpath,$(PATHSCALEPATH) -L$(PATHSCALEPATH) -lpathfortran -lm
  136. else
  137. LIBACML = -L$(ACMLPATH)/pathscale64_mp/lib -Wl,-rpath,$(ACMLPATH)/pathscale64_mp/lib -lacml_mp -lacml_mv -Wl,-rpath,$(PATHSCALEPATH) -L$(PATHSCALEPATH) -lopenmp -lpathfortran -lm
  138. endif
  139. endif
  140. ifeq ($(F_COMPILER), f90)
  141. LIBACML = -L$(ACMLPATH)/sun64/lib -Wl,-R,$(ACMLPATH)/sun64/lib -L$(SUNPATH)/lib/amd64 -Wl,-R,$(SUNPATH)/lib/amd64 -lacml -lacml_mv -lfsu
  142. endif
  143. LIBSUNPERF = -L$(SUNPATH)/lib/amd64 -L$(SUNPATH)/rtlibs/amd64 -Wl,-R,$(SUNPATH)/lib/amd64 -Wl,-R,$(SUNPATH)/rtlibs/amd64 -lsunperf -lfui -lfsu -lmtsk
  144. LIBVECLIB = /System/Library/Frameworks/vecLib.framework/Versions/Current/vecLib