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