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.power 3.9 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. ifdef USE_THREAD
  2. ifeq ($(USE_THREAD), 0)
  3. USE_OPENMP = 0
  4. else
  5. USE_OPENMP = 1
  6. endif
  7. else
  8. USE_OPENMP = 1
  9. endif
  10. ifeq ($(CORE), POWER10)
  11. ifeq ($(USE_OPENMP), 1)
  12. COMMON_OPT += -Ofast -mcpu=future -mtune=future -mvsx -malign-power -DUSE_OPENMP -fno-fast-math -fopenmp
  13. FCOMMON_OPT += -O2 -frecursive -mcpu=future -mtune=future -malign-power -DUSE_OPENMP -fno-fast-math -fopenmp
  14. else
  15. COMMON_OPT += -Ofast -mcpu=future -mtune=future -mvsx -malign-power -fno-fast-math
  16. FCOMMON_OPT += -O2 -frecursive -mcpu=future -mtune=future -malign-power -fno-fast-math
  17. endif
  18. endif
  19. ifeq ($(CORE), POWER9)
  20. ifeq ($(USE_OPENMP), 1)
  21. COMMON_OPT += -Ofast -mcpu=power9 -mtune=power9 -mvsx -malign-power -DUSE_OPENMP -fno-fast-math -fopenmp
  22. FCOMMON_OPT += -O2 -frecursive -mcpu=power9 -mtune=power9 -malign-power -DUSE_OPENMP -fno-fast-math -fopenmp
  23. else
  24. COMMON_OPT += -Ofast -mcpu=power9 -mtune=power9 -mvsx -malign-power -fno-fast-math
  25. FCOMMON_OPT += -O2 -frecursive -mcpu=power9 -mtune=power9 -malign-power -fno-fast-math
  26. endif
  27. endif
  28. ifeq ($(CORE), POWER8)
  29. ifeq ($(USE_OPENMP), 1)
  30. COMMON_OPT += -Ofast -mcpu=power8 -mtune=power8 -mvsx -malign-power -DUSE_OPENMP -fno-fast-math -fopenmp
  31. FCOMMON_OPT += -O2 -frecursive -mcpu=power8 -mtune=power8 -malign-power -DUSE_OPENMP -fno-fast-math -fopenmp
  32. else
  33. COMMON_OPT += -Ofast -mcpu=power8 -mtune=power8 -mvsx -malign-power -fno-fast-math
  34. FCOMMON_OPT += -O2 -frecursive -mcpu=power8 -mtune=power8 -malign-power -fno-fast-math
  35. endif
  36. endif
  37. # workaround for C->FORTRAN ABI violation in LAPACKE
  38. ifeq ($(F_COMPILER), GFORTRAN)
  39. FCOMMON_OPT += -fno-optimize-sibling-calls
  40. endif
  41. FLAMEPATH = $(HOME)/flame/lib
  42. #ifeq ($(CORE), CELL)
  43. #CELL_SDK_ROOT = /opt/IBM/cell-sdk-1.1/sysroot/usr
  44. #SPU_CC = spu-gcc
  45. #EXTRALIB += -lspe
  46. #endif
  47. ifeq ($(OSNAME), Linux)
  48. ifdef BINARY64
  49. # COMPILER_PREFIX = powerpc64-linux-
  50. else
  51. # COMPILER_PREFIX = powerpc-linux-
  52. endif
  53. endif
  54. #Either uncomment below line or run make with `USE_MASS=1` to enable support of MASS library
  55. #USE_MASS = 1
  56. ifeq ($(USE_MASS), 1)
  57. # Path to MASS libs, change it if the libs are installed at any other location
  58. MASSPATH = /opt/ibm/xlmass/8.1.5/lib
  59. COMMON_OPT += -mveclibabi=mass -ftree-vectorize -funsafe-math-optimizations -DUSE_MASS
  60. EXTRALIB += -L$(MASSPATH) -lmass -lmassvp8 -lmass_simdp8
  61. endif
  62. ifdef BINARY64
  63. ifeq ($(OSNAME), AIX)
  64. CCOMMON_OPT += -mpowerpc64 -maix64
  65. ifeq ($(COMPILER_F77), g77)
  66. FCOMMON_OPT += -mpowerpc64 -maix64
  67. endif
  68. ifeq ($(COMPILER_F77), xlf)
  69. FCOMMON_OPT += -q64
  70. endif
  71. ARFLAGS = -X 64
  72. ASFLAGS = -a64
  73. endif
  74. else
  75. ifeq ($(OSNAME), AIX)
  76. CCOMMON_OPT += -Wa,-a32
  77. ARFLAGS = -X 32
  78. ASFLAGS = -a32
  79. endif
  80. endif
  81. # CCOMMON_OPT += -maltivec -mabi=altivec
  82. LIBFLAME = -L$(FLAMEPATH) -llapack2flame -lflame-lapack -lflame-base $(LIBS)
  83. ifeq ($(OSNAME), Darwin)
  84. CCOMMON_OPT += -force_cpusubtype_ALL
  85. endif
  86. ifndef BINARY64
  87. ifeq ($(OSNAME), Linux)
  88. ESSLPATH = -L/opt/ibmcmp/lib -L/opt/ibmcmp/xlf/11.1/lib -Wl,-rpath,/opt/ibmcmp/lib -Wl,-rpath,/opt/ibmcmp/xlf/11.1/lib -lxlf90_r -lxlomp_ser -lxlfmath -lxl -lpthread
  89. else
  90. ESSLPATH = -lxlf90_r
  91. endif
  92. LIBVECLIB = -framework VecLib
  93. ifndef SMP
  94. LIBATLAS = -L/usr/lib/atlas3.7.11 -lf77blas -latlas -lg2c -lm
  95. LIBESSL = -lessl $(ESSLPATH) ../../level1/others/libmisc.a -lm
  96. else
  97. LIBATLAS = -L/usr/lib/atlas3.7.11p -lptf77blas -latlas -lm -lpthread
  98. LIBESSL = -lesslsmp $(ESSLPATH) ../../level1/others/libmisc.a -lm
  99. endif
  100. else
  101. ifeq ($(OSNAME), Linux)
  102. ESSLPATH = -L/opt/ibmcmp/lib64 -Wl,-rpath,/opt/ibmcmp/lib64 -L/opt/ibmcmp/xlf/11.1/lib64 -Wl,-rpath,/opt/ibmcmp/xlf/11.1/lib64 -lxlf90_r -lxlomp_ser
  103. else
  104. ESSLPATH = -lxlf90_r
  105. endif
  106. LIBVECLIB = /System/Library/Frameworks/vecLib.framework/Versions/Current/vecLib
  107. ifndef SMP
  108. LIBATLAS = -L/usr/lib64/atlas3.7.11 -lf77blas -latlas -lg2c -lm
  109. LIBESSL = -lessl $(ESSLPATH) -lm
  110. else
  111. LIBATLAS = -L/usr/lib64/atlas3.7.11p -lptf77blas -latlas -lm -lpthread
  112. LIBESSL = -lesslsmp $(ESSLPATH) -lxlsmp -lm
  113. endif
  114. endif