Commit 2952f3c6608dcdae52e0a3b6173cb4349ffdba02
1 parent
f10a8fbdfd
Exists in
master
Added template for gfortran+openblas
Showing 1 changed file with 295 additions and 0 deletions Side-by-side Diff
Make.inc.gfortran.openblas
1 | + | |
2 | +# IMPORTANT : | |
3 | +# Variable BTREE must have been set to the build directory | |
4 | +# ( export BTREE=/home/daniau/plpmx/svn/build ) | |
5 | +# It is possible to build with the same sources under win32 with PGI Compiler | |
6 | +# For Windows : use a cygwin bash shell and set BTREE using cygwin path ex: | |
7 | +# export BTREE=/c/dev/build | |
8 | + | |
9 | +# Location of qmake utility for qt3 and qt4, this is specific to each linux distribution | |
10 | +QMAKE3=/usr/lib/qt3/bin/qmake | |
11 | +QMAKE4=/usr/bin/qmake | |
12 | + | |
13 | +# How many thread for Make Qt programs | |
14 | +#NBTHREAD=2 | |
15 | + | |
16 | +############################################################################### | |
17 | +# | |
18 | +# Extensions | |
19 | +# | |
20 | +# This define the extension names for : | |
21 | +# + static libraries : libext | |
22 | +# + dynamic libraries : soext | |
23 | +# + executable : exext | |
24 | +# | |
25 | +# Uncomment the following according to your platform | |
26 | + | |
27 | + | |
28 | +# Windows | |
29 | +#libext=.lib | |
30 | +#exext=.exe | |
31 | + | |
32 | + | |
33 | +# Linux | |
34 | +# | |
35 | +libext=.a | |
36 | +soext=.so | |
37 | +exext= | |
38 | + | |
39 | +############################################################################### | |
40 | +# | |
41 | +# Dynamic libraries | |
42 | +# | |
43 | +# Set BUILDSO to y to build dynamic versions of libraries if available | |
44 | +# | |
45 | +# This has been only tested with gfortran under linux for now | |
46 | +############################################################################### | |
47 | +BUILDSO=n | |
48 | + | |
49 | +############################################################################### | |
50 | +# | |
51 | +# OpenMP setup | |
52 | +# | |
53 | +# The variable OMP contains either nothing, either the compiler switch to | |
54 | +# enable OpenMP | |
55 | +# | |
56 | +# If you want to build a pure serial version leave OMP empty | |
57 | +# OMP = | |
58 | +# for PGI : | |
59 | +# OMP = -mp | |
60 | +# for gfortran : | |
61 | +# OMP = -fopenmp | |
62 | +############################################################################### | |
63 | +OMP = -fopenmp | |
64 | + | |
65 | +############################################################################### | |
66 | +# | |
67 | +# C Compiler Configuration | |
68 | +# | |
69 | +############################################################################### | |
70 | +# | |
71 | +# CC = C compiler | |
72 | +# CFLAGS = flags that are used for compiling C files | |
73 | +# | |
74 | +# Debug setting : | |
75 | +# CC = gcc | |
76 | +# CFLAGS = -g -fpic -m64 | |
77 | +# | |
78 | +# Production setting : | |
79 | +# CC = gcc | |
80 | +# CFLAGS = -O2 -fpic -m64 | |
81 | +# | |
82 | +# Or for pgcc : | |
83 | +# CC = pgcc | |
84 | +# CFLAGS = -g -fpic | |
85 | +# or CFLAGS = -O2 -fpic | |
86 | + | |
87 | +# For Compiling under Windows 32bits with PGI add -DPGIW32 to CFLAGS | |
88 | +#CC = pgcc | |
89 | +#CFLAGS = -O2 -Bstatic -DPGIW32 | |
90 | + | |
91 | +CC = gcc | |
92 | +CFLAGS = -O2 -fpic -m64 | |
93 | + | |
94 | + | |
95 | +############################################################################### | |
96 | +# | |
97 | +# Fortran 95 Compiler Configuration | |
98 | +# | |
99 | +############################################################################### | |
100 | +# | |
101 | +# F95 = fortran 95 compiler | |
102 | +# F95FLAGS = flags to be used when building objects | |
103 | +# | |
104 | +# Debug settings | |
105 | +# F95 = pgf95 | |
106 | +# F95FLAGS = -g -fpic -I$(BTREE)/modules | |
107 | +# | |
108 | +# Production settings | |
109 | +# F95 = pgf95 | |
110 | +# F95FLAGS = -fastsse -Mipa=fast -fpic -I$(BTREE)/modules | |
111 | +# | |
112 | +# Note that .mod files will be put in $(BTREE)/modules by makefiles | |
113 | +# this is the reason for -I$(BTREE)/modules | |
114 | +# | |
115 | +# An other note for portland compiler at least : by default the compiler will use | |
116 | +# all possible optimisations for the current processor, so the binaries may or may not | |
117 | +# work on another one. For example a binary compiled on an Opteron64 may not work | |
118 | +# on an Intel x86_64. If you plan to use your binaries on different platforms, | |
119 | +# you should use the -tp option | |
120 | +# | |
121 | +# -tp k8-64 => produce a binary optimized for AMD Opteron family | |
122 | +# -tp p7-64 => produce a binary optimized for Intel x64 processors | |
123 | +# -tp x64 => produce an unified binary which will run on both AMD and Intel | |
124 | +# no -tp option => produce a binary optimized for the running processor | |
125 | + | |
126 | +#F95 = pgf95 | |
127 | +#F95FLAGS = -g -fpic -I$(BTREE)/modules | |
128 | +#F95FLAGS = -fastsse -fpic -I$(BTREE)/modules | |
129 | +F95 = gfortran | |
130 | +F95FLAGS = -ffree-line-length-none -O2 -fexternal-blas -fpic -I$(BTREE)/modules | |
131 | + | |
132 | +# For Compiling under Windows 32bits with PGI | |
133 | +# Paths for -I must be specified in a windows way (not cygwin way) | |
134 | +# that is -I"c:\dev\build\modules" and not -I/c/dev/build/modules | |
135 | +#F95 = pgf95 | |
136 | +#F95FLAGS = -g -Munix -Bstatic -I"c:\dev\build\modules" | |
137 | + | |
138 | +# Win32 production setting : | |
139 | +#F95FLAGS = -fastsse -Munix -Bstatic -I"c:\dev\build\modules" | |
140 | + | |
141 | +############################################################################### | |
142 | +# | |
143 | +# Linking Configuration | |
144 | +# | |
145 | +############################################################################### | |
146 | +# | |
147 | +# LINK = linker program, usually same as compiler | |
148 | +# LINKFLAGS = flags to be used when linking programs | |
149 | +# | |
150 | +# Debug settings | |
151 | +# LINK = pgf95 | |
152 | +# LINKFLAGS = -g -L$(BTREE)/lib | |
153 | +# | |
154 | +# Production settings | |
155 | +# LINK = pgf95 | |
156 | +# LINKFLAGS = -fastsse -Mipa=fast -L$(BTREE)/lib | |
157 | +# | |
158 | +# Note that .a files will be put in $(BTREE)/lib by makefiles | |
159 | +# this is the reason for -L$(BTREE)/lib | |
160 | +#LINK = pgf95 | |
161 | +#LINKFLAGS = -g -L$(BTREE)/lib | |
162 | +#LINKFLAGS = -fastsse -L$(BTREE)/lib | |
163 | + | |
164 | +LINK = gfortran | |
165 | +LINKFLAGS = -ffree-line-length-none -O2 -L$(BTREE)/lib | |
166 | + | |
167 | +# For Compiling under Windows 32bits with PGI | |
168 | +# Paths for -I must be specified in a windows way (not cygwin way) | |
169 | +# that is -L"c:\dev\build\lib" and not -I/c/dev/build/lib | |
170 | +#LINK = pgf95 | |
171 | +#LINKFLAGS = -g -Munix -Bstatic -L"c:\dev\build\lib" | |
172 | + | |
173 | +# Win32 production setting : | |
174 | +#LINKFLAGS = -fastsse -Munix -Bstatic -L"c:\dev\build\lib" | |
175 | + | |
176 | + | |
177 | +############################################################################### | |
178 | +# | |
179 | +# BLAS/LAPACK/ACML Configuration | |
180 | +# | |
181 | +############################################################################### | |
182 | +# | |
183 | +# Location of blas and lapack | |
184 | +# | |
185 | +# Commercial fortran compilers comes with their own optimized versions of blas | |
186 | +# and lapack. If you're running on an AMD processor, you should use acml | |
187 | +# http://developer.amd.com/acml.jsp , which is an optimized version of both | |
188 | +# blas and lapack (and also some more functionnalities). | |
189 | +# | |
190 | +# Our Portland Fortran compiler comes with the 3 libraries. As we're running | |
191 | +# AMD processors, we use acml. | |
192 | +# | |
193 | +# EXTERNALLIBPATH may contain a -Ldirectory directive | |
194 | +# LAPACK = directive for lapack | |
195 | +# BLAS = directive for blas | |
196 | +# ACML = directive for acml | |
197 | +# | |
198 | +# Example 1: | |
199 | +# EXTERNALLIBPATH = -L/usr/local/pgi/linux86-64/6.1/lib/ | |
200 | +# LAPACK = -llapack | |
201 | +# BLAS = -lblas | |
202 | +# ACML = | |
203 | +# | |
204 | +# Example 2: | |
205 | +# EXTERNALLIBPATH = | |
206 | +# LAPACK = /usr/local/pgi/linux86-64/6.1/lib/liblapack.a | |
207 | +# BLAS = /usr/local/pgi/linux86-64/6.1/lib/libblas.a | |
208 | +# ACML = | |
209 | +# | |
210 | +# Example 3: | |
211 | +# EXTERNALLIBPATH = -L/usr/local/pgi/linux86-64/6.1/lib/ | |
212 | +# LAPACK = | |
213 | +# BLAS = | |
214 | +# ACML = -lacml | |
215 | +# | |
216 | +# Example 4: | |
217 | +# EXTERNALLIBPATH = | |
218 | +# LAPACK = | |
219 | +# BLAS = | |
220 | +# ACML = /usr/local/pgi/linux86-64/6.1/lib/libacml.a | |
221 | +# | |
222 | +# Simple rule is that if you set ACML then leave BLAS and LAPACK empty. | |
223 | +# | |
224 | +# | |
225 | + | |
226 | +#EXTERNALLIBPATH = | |
227 | +#LAPACK = | |
228 | +#BLAS = | |
229 | +#ACML = /usr/local/pgi/linux86-64/7.0/lib/libacml.a | |
230 | + | |
231 | +# With gfortran and reference implementation | |
232 | +#EXTERNALLIBPATH = | |
233 | +#LAPACK = $(BTREE)/lib/lapack_LINUX.a | |
234 | +#BLAS = $(BTREE)/lib/blas_LINUX.a /usr/lib64/libgfortran.so.2 | |
235 | +#ACML = | |
236 | + | |
237 | +# With gfortran and acml | |
238 | +#EXTERNALLIBPATH = | |
239 | +#LAPACK = | |
240 | +#BLAS = | |
241 | +#ACML = /usr/local/acml4.1.0/gfortran64/lib/libacml.a /usr/lib64/libgfortran.so.2 | |
242 | + | |
243 | +# With atlas compiled with gfortran and gcc | |
244 | +# EXTERNALLIBPATH = | |
245 | +# LAPACK = $(BTREE)/lib/liblapack.a | |
246 | +# BLAS = $(BTREE)/lib/libf77blas.a $(BTREE)/lib/libcblas.a $(BTREE)/lib/libatlas.a | |
247 | +# ACML = | |
248 | + | |
249 | +# With dynamic versions of atlas compiled with gfortran and gcc | |
250 | +#EXTERNALLIBPATH = | |
251 | +#LAPACK = $(BTREE)/lib/liblapack.so | |
252 | +#BLAS = $(BTREE)/lib/libf77blas.so $(BTREE)/lib/libcblas.so $(BTREE)/lib/libatlas.so | |
253 | +#ACML = | |
254 | + | |
255 | +# With dynamic version of openblas | |
256 | +EXTERNALLIBPATH = | |
257 | +LAPACK = | |
258 | +BLAS = | |
259 | +ACML = -lopenblas_lxsd | |
260 | + | |
261 | + | |
262 | +# Libs that may be necessary for compiling umfpack, for exemple | |
263 | +# EXTRALIBS = -lm -L/usr/local/pgi/linux86-64/7.0/lib -lpgftnrtl -lpgc -lrt | |
264 | +# is necessary for using portland fortran blas | |
265 | +# | |
266 | +#EXTRALIBS = -lm -L/usr/local/pgi/linux86-64/7.0/lib -lpgftnrtl -lpgc -lrt | |
267 | +#EXTRALIBS = -lm | |
268 | + | |
269 | +# Win32 settings | |
270 | +#EXTERNALLIBPATH = | |
271 | +#LAPACK = -llapack | |
272 | +#BLAS = -lblas | |
273 | +#ACML = | |
274 | +#EXTRALIBS = -llapack -lpgftnrtl | |
275 | + | |
276 | + | |
277 | +############################################################################### | |
278 | +# | |
279 | +# FVN Configuration | |
280 | +# | |
281 | +############################################################################### | |
282 | +# | |
283 | +# LINKFVN should not be changed, it defines the linking directives to link | |
284 | +# with fvn as it needs both blas and lapack, and also umfpack and amd | |
285 | +# which are both compiled within fvn | |
286 | +# | |
287 | +#LINKFVN = -lfvn -lfvn_fnlib -lumfpack -lamd $(EXTERNALLIBPATH) $(LAPACK) $(BLAS) $(ACML) | |
288 | +LINKFVN = -lfvn $(EXTERNALLIBPATH) $(LAPACK) $(BLAS) $(ACML) | |
289 | + | |
290 | + | |
291 | +# | |
292 | +# AR = archive utility | |
293 | +# | |
294 | +AR = ar | |
295 | +RANLIB = ranlib |