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