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

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