mips: implement MB and WMB
[platform/upstream/openblas.git] / cmake / fc.cmake
1 ##
2 ## Author: Hank Anderson <hank@statease.com>
3 ## Description: Ported from portion of OpenBLAS/Makefile.system
4 ##              Sets Fortran related variables.
5
6 if (${F_COMPILER} STREQUAL "G77")
7   set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_G77")
8   set(FCOMMON_OPT "${FCOMMON_OPT} -Wall")
9   if (NOT NO_BINARY_MODE)
10     if (BINARY64)
11       set(FCOMMON_OPT "${FCOMMON_OPT} -m64")
12     else ()
13       set(FCOMMON_OPT "${FCOMMON_OPT} -m32")
14     endif ()
15   endif ()
16 endif ()
17
18 if (${F_COMPILER} STREQUAL "G95")
19   set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_G95")
20   set(FCOMMON_OPT "${FCOMMON_OPT} -Wall")
21   if (NOT NO_BINARY_MODE)
22     if (BINARY64)
23       set(FCOMMON_OPT "${FCOMMON_OPT} -m64")
24     else ()
25       set(FCOMMON_OPT "${FCOMMON_OPT} -m32")
26     endif ()
27   endif ()
28 endif ()
29
30 if (${F_COMPILER} STREQUAL "GFORTRAN")
31   set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_GFORT")
32   set(FCOMMON_OPT "${FCOMMON_OPT} -Wall")
33   #Don't include -lgfortran, when NO_LAPACK=1 or lsbcc
34   if (NOT NO_LAPACK)
35     set(EXTRALIB "{EXTRALIB} -lgfortran")
36   endif ()
37   if (NO_BINARY_MODE)
38     if (${ARCH} STREQUAL "mips64")
39       if (BINARY64)
40         set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=64")
41       else ()
42         set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=n32")
43       endif ()
44     endif ()
45   else ()
46     if (BINARY64)
47       set(FCOMMON_OPT "${FCOMMON_OPT} -m64")
48       if (INTERFACE64)
49         set(FCOMMON_OPT "${FCOMMON_OPT} -fdefault-integer-8")
50       endif ()
51     else ()
52       set(FCOMMON_OPT "${FCOMMON_OPT} -m32")
53     endif ()
54   endif ()
55
56   if (USE_OPENMP)
57     set(FCOMMON_OPT "${FCOMMON_OPT} -fopenmp")
58   endif ()
59 endif ()
60
61 if (${F_COMPILER} STREQUAL "INTEL")
62   set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_INTEL")
63   if (INTERFACE64)
64     set(FCOMMON_OPT "${FCOMMON_OPT} -i8")
65   endif ()
66   if (USE_OPENMP)
67     set(FCOMMON_OPT "${FCOMMON_OPT} -openmp")
68   endif ()
69 endif ()
70
71 if (${F_COMPILER} STREQUAL "FUJITSU")
72   set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_FUJITSU")
73   if (USE_OPENMP)
74     set(FCOMMON_OPT "${FCOMMON_OPT} -openmp")
75   endif ()
76 endif ()
77
78 if (${F_COMPILER} STREQUAL "IBM")
79   set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_IBM")
80   # FCOMMON_OPT += -qarch=440
81   if (BINARY64)
82     set(FCOMMON_OPT "${FCOMMON_OPT} -q64")
83     if (INTERFACE64)
84       set(FCOMMON_OPT "${FCOMMON_OPT} -qintsize=8")
85     endif ()
86   else ()
87     set(FCOMMON_OPT "${FCOMMON_OPT} -q32")
88   endif ()
89   if (USE_OPENMP)
90     set(FCOMMON_OPT "${FCOMMON_OPT} -openmp")
91   endif ()
92 endif ()
93
94 if (${F_COMPILER} STREQUAL "PGI")
95   set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_PGI")
96   set(COMMON_PROF "${COMMON_PROF} -DPGICOMPILER")
97   if (BINARY64)
98     if (INTERFACE64)
99       set(FCOMMON_OPT "${FCOMMON_OPT} -i8")
100     endif ()
101     set(FCOMMON_OPT "${FCOMMON_OPT} -tp p7-64")
102   else ()
103     set(FCOMMON_OPT "${FCOMMON_OPT} -tp p7")
104   endif ()
105   if (USE_OPENMP)
106     set(FCOMMON_OPT "${FCOMMON_OPT} -mp")
107   endif ()
108 endif ()
109
110 if (${F_COMPILER} STREQUAL "PATHSCALE")
111   set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_PATHSCALE")
112   if (BINARY64)
113     if (INTERFACE64)
114       set(FCOMMON_OPT "${FCOMMON_OPT} -i8")
115     endif ()
116   endif ()
117
118   if (NOT ${ARCH} STREQUAL "mips64")
119     if (NOT BINARY64)
120       set(FCOMMON_OPT "${FCOMMON_OPT} -m32")
121     else ()
122       set(FCOMMON_OPT "${FCOMMON_OPT} -m64")
123     endif ()
124   else ()
125     if (BINARY64)
126       set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=64")
127     else ()
128     set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=n32")
129     endif ()
130   endif ()
131
132   if (USE_OPENMP)
133     set(FCOMMON_OPT "${FCOMMON_OPT} -mp")
134   endif ()
135 endif ()
136
137 if (${F_COMPILER} STREQUAL "OPEN64")
138
139   set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_OPEN64")
140   if (BINARY64)
141     if (INTERFACE64)
142       set(FCOMMON_OPT "${FCOMMON_OPT} -i8")
143     endif ()
144   endif ()
145
146   if (${ARCH} STREQUAL "mips64")
147
148     if (NOT BINARY64)
149       set(FCOMMON_OPT "${FCOMMON_OPT} -n32")
150     else ()
151       set(FCOMMON_OPT "${FCOMMON_OPT} -n64")
152     endif ()
153
154     if (${CORE} STREQUAL "LOONGSON3A")
155       set(FCOMMON_OPT "${FCOMMON_OPT} -loongson3 -static")
156     endif ()
157
158     if (${CORE} STREQUAL "LOONGSON3B")
159     set(FCOMMON_OPT "${FCOMMON_OPT} -loongson3 -static")
160     endif ()
161   else ()
162     if (NOT BINARY64)
163       set(FCOMMON_OPT "${FCOMMON_OPT} -m32")
164     else ()
165       set(FCOMMON_OPT "${FCOMMON_OPT} -m64")
166     endif ()
167   endif ()
168
169   if (USE_OPENMP)
170     set(FEXTRALIB "${FEXTRALIB} -lstdc++")
171     set(FCOMMON_OPT "${FCOMMON_OPT} -mp")
172   endif ()
173 endif ()
174
175 if (${F_COMPILER} STREQUAL "SUN")
176   set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_SUN")
177   if (${ARCH} STREQUAL "x86")
178     set(FCOMMON_OPT "${FCOMMON_OPT} -m32")
179   else ()
180     set(FCOMMON_OPT "${FCOMMON_OPT} -m64")
181   endif ()
182   if (USE_OPENMP)
183     set(FCOMMON_OPT "${FCOMMON_OPT} -xopenmp=parallel")
184   endif ()
185 endif ()
186
187 if (${F_COMPILER} STREQUAL "COMPAQ")
188   set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_COMPAQ")
189   if (USE_OPENMP)
190     set(FCOMMON_OPT "${FCOMMON_OPT} -openmp")
191   endif ()
192 endif ()
193
194 # from the root Makefile - this is for lapack-netlib to compile the correct secnd file.
195 if (${F_COMPILER} STREQUAL "GFORTRAN")
196   set(TIMER "INT_ETIME")
197 else ()
198   set(TIMER "NONE")
199 endif ()
200