Statistiques
| Révision :

root / src / Makefile @ 4

Historique | Voir | Annoter | Télécharger (8,97 ko)

1
################### Makefile for Path ############
2
# (C) PFL 2008
3
#################################################
4
# Change the value of Machine before compiling
5
# You might also have to edit the location of
6
# some libraries (like mkl for ifort)
7

    
8
Machine=gfortran
9

    
10
###########################################
11
#                                         #
12
########### Main supported compilers     ##
13
#                                         #
14
###########################################
15
ifeq ($(Machine),ifort)
16
# Flags for arq Ifort
17
COMP=ifort
18
#F90=${COMP}   -g -check bounds  -check format -check uninit  -traceback
19
F90=${COMP}   -g  -traceback
20
F77=${F90}
21
#F90=${COMP}  
22
LIBMATH=  -L/opt/intel/Compiler/11.1/064/mkl/lib/64  \
23
    -Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential \
24
    -lmkl_core -Wl,--end-group 
25
LINK=${COMP} -lguide -lpthread   -L/usr/lib/ 
26
FreeF=-FR
27
endif
28

    
29

    
30
ifeq ($(Machine),g95)
31
# Flags for g95 
32
COMP=g95 -g   -Wall -fbounds-check
33
#COMP=g95  -fbounds-check -g -ftrace=full -ftrace=frame  -save-temps
34
F90=${COMP}
35
F77=${COMP}
36
LIBMATH= -llapack -lblas
37
LINK=${COMP}   -L/usr/lib/
38
FreeF=-ffree-form
39
endif
40

    
41
ifeq ($(Machine),gfortran)
42
# Flags for gfortran
43
COMP=gfortran  -pedantic -std=gnu 
44
#COMP=g95  -fbounds-check -g -ftrace=full -ftrace=frame  -save-temps
45
F90=${COMP}
46
F77=${COMP}
47
LIBMATH= -llapack -lblas
48
LINK=${COMP}   -L/usr/lib/
49
FreeF=-ffree-form
50
endif
51

    
52

    
53
ifeq ($(Machine),pgf)
54
# Flags for PGF
55
COMP=pgf90
56
FLAGS= -mp  -fast -Kieee -fastsse  -tpp7 -Mipa=fast
57
F90=$(COMP)  -c  $(FLAGS)
58
LIBMATH= -llapack -lblas
59
LINK=${COMP} $(FLAGS)  -L/usr/local/pgi/linux86/6.2/lib  -lpthread 
60
FreeF=-Mfree
61
endif
62

    
63
ifeq ($(Machine),pathscale)
64
# Flags for PathScale
65
COMP=/softs/pathscale/bin/pathf90
66
F90=${COMP}
67
LIBMATH= -llapack -lblas
68
LINK=${COMP}   -L/usr/lib/ 
69
FreeF=-FR
70
endif
71

    
72
ifeq ($(Machine),xlf)
73
# Flags for Xlf
74
COMP=xlf
75
F90=${COMP}
76
LIBMATH= -llapack -lblas
77
LINK=${COMP}   -L/usr/lib/ 
78
FreeF=-qfree
79
endif
80

    
81
############################################
82
#
83
# national center
84
#
85
############################################
86
#
87
#### IDRIS
88
#
89
ifeq ($(Machine),vargas)
90
# Flags for Xlf
91
COMP=xlf
92
F90=${COMP}
93
F77=${COMP}
94
LINK=${COMP}   -L/usr/lib/
95
FreeF=-qfree
96
endif
97

    
98
ifeq ($(Machine),idris)
99
# Flags for Xlf
100
COMP=xlf
101
F90=${COMP}
102
F77=${COMP}
103
LINK=${COMP}   -L/usr/lib/
104
FreeF=-qfree
105
endif
106
#
107
#### CINES
108
#
109

    
110
ifeq ($(Machine),jade)
111
# Flags for Ifort
112
COMP=ifort
113
F90=${COMP}
114
F77=${COMP}
115
LIBMATH=  -Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential \
116
           -lmkl_core -Wl,--end-group
117
LINK=${COMP}  -lguide -lpthread 
118
FreeF=-FR
119
endif
120

    
121
ifeq ($(Machine),zeus)
122
# Flags for Xlf
123
COMP=xlf
124
F90=${COMP}
125
F77=${COMP}
126
LINK=${COMP}   -L/usr/lib/
127
FreeF=-qfree
128
endif
129

    
130

    
131
############################################
132
#
133
# local machines at the ENS Lyon
134
#
135
############################################
136

    
137
ifeq ($(Machine),arq)
138
# Flags for arq Ifort
139
COMP=ifort
140
F90=${COMP}   -g -check all -traceback
141
F77=${F90}
142
#F90=${COMP}  
143
LINK=${COMP} -lguide -lpthread 
144
FreeF=-FR
145
endif
146

    
147

    
148

    
149
ifeq ($(Machine),arqP)
150
# Flags for arq Ifort
151
COMP=ifort
152
#F90=${COMP}   -g -check bounds  -check format -check uninit  -traceback
153
F90=${COMP}   -g -check all  -traceback
154
F77=${F90}
155
#F90=${COMP}  
156
LIBMATH= -L/opt/intel/Compiler/11.1/064/mkl/lib/64  \
157
  -Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential \
158
           -lmkl_core -Wl,--end-group
159
LINK=${COMP} -lguide -lpthread   -L/usr/lib/
160
FreeF=-FR
161
endif
162

    
163
ifeq ($(Machine),arqg)
164
# Flags for arq GFortran
165
COMP=gfortran -g -fbacktrace -fbounds-check -Wall -Wextra
166
F90=${COMP}  
167
F77=${F90}
168
#F90=${COMP}  
169
F90=${COMP}
170
LIBMATH= -llapack -lblas
171
LINK=${COMP}  -L/usr/lib/  
172
FreeF=-ffree-form
173
endif
174

    
175
ifeq ($(Machine),psmn)
176
# Flags for PSMN PathScale
177
COMP=/softs/pathscale/bin/pathf90
178
F90=${COMP}
179
LINK=${COMP}   -L/usr/lib/
180
FreeF=-FR
181
endif
182

    
183
ifeq ($(Machine),psmnI)
184
# Flags for PSMN Ifort v12
185
COMP=ifort
186
F90=${COMP}   -g -check all -traceback
187
F77=${F90}
188
#F90=${COMP}  
189
LIBMATH=    -L/softs/intel/v12.0.084/mkl/lib/intel64  \
190
 -L/softs/intel/v12.0.084/lib/intel64  -L/usr/lib \
191
  -Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential \
192
           -lmkl_core -Wl,--end-group
193
LINK=${COMP}
194
FreeF=-FR
195
endif
196

    
197

    
198
ifeq ($(Machine),psmnI11)
199
# Flags for PSMN Ifort v11
200
COMP=ifort
201
F90=${COMP}   -g -check all -traceback
202
F77=${F90}
203
#F90=${COMP}  
204
LIBMATH=   -L/softs/intel/v11.1.069/mkl/lib/em64t  \
205
  -Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential \
206
           -lmkl_core -Wl,--end-group 
207
LINK=${COMP} -lguide -lpthread   -L/usr/lib/
208
FreeF=-FR
209
endif
210

    
211
###############################################################
212
#
213
# Help Makefile 
214
# voir: http://gl.developpez.com/tutoriel/outil/makefile/
215
#
216
###############################################################
217
# $@  	Le nom de la cible
218
# $< 	Le nom de la première dépendance
219
# $^ 	La liste des dépendances
220
# $? 	La liste des dépendances plus récentes que la cible
221
# $* 	Le nom du fichier sans suffixe
222

    
223
SRC=  Path.f90 \
224
      PathCreate.f90 \
225
      Read_geom.f90 \
226
      Calc_zmat.f90 \
227
      Calc_zmat_frag.f90 \
228
      Calc_zmat_constr_frag.f90 \
229
      Decomp_frag.f90 \
230
      Calc_mixed_frag.f90 \
231
      Calc_baker.f90 \
232
      Calc_Xprim.f90 \
233
      Calc_baker_allGeomF.f90 \
234
      ConvertZmat_cart.f90  \
235
      ConvertBakerInternal_cart.f90  \
236
      ConvertZmat_cart_3.f90  \
237
      Egrad.f90  \
238
      EgradPath.f90 \
239
      egrad_gaussian.f90 \
240
      egrad_mopac.f90 \
241
      egrad_ext.f90 \
242
      egrad_test.f90 \
243
      egrad_vasp.f90 \
244
      egrad_turbomole.f90 \
245
      egrad_chamfre.f90 \
246
      egrad_LEPS.f90 \
247
      CalcHess.f90 \
248
      Hupdate_all.f90 \
249
      Hupdate_MS.f90 \
250
      Hupdate_Bofill.f90 \
251
      Hinvup_BFGS.f90 \
252
      Hinvup_DFP.f90 \
253
      CalcTangent.f90 \
254
      Step_RFO_all.f90 \
255
      Step_GEDIIS.f90  \
256
      Step_GEDIIS_All.f90 \
257
      Energy_GEDIIS.f90 \
258
      Step_DIIS_all.f90 \
259
      Extrapol_int.f90 \
260
      Extrapol_baker.f90 \
261
      Extrapol_mixed.f90 \
262
      Extrapol_cart.f90 \
263
      IntCoord_der.f90 \
264
      Step_DIIS.f90 \
265
      Step_GDIIS_Simple_Err.f90  \
266
      minv.f90 \
267
      Space.f90 \
268
      Space_GEDIIS.f90 \
269
      Space_GEDIIS_all.f90 \
270
      Space_all.f90 \
271
      freemv.f90 \
272
      Mat_util.f90 \
273
      refsor.f90 \
274
      Ginvse.f90
275

    
276
SRC0= ConvertNumAt.f90 \
277
      CheckPeriodicBound.f90 \
278
      Check_step.f90 \
279
      TestCart.f90 \
280
      Opt_Geom.f90 \
281
      PrintGeom.f90 \
282
      PrintGeomVasp.f90 \
283
      test_zmat.f90 \
284
      Annul.f90 \
285
      addligne.f90 \
286
      Splin1D.f90 \
287
      bib_oper.f90 \
288
      VectorPer.f90 \
289
      ZmatBuild.f90 \
290
      CalcCnct.f90 \
291
      ConvXyzZmat.f90 \
292
      ConvXyzMixed.f90 \
293
      Add2indzmat.f90 \
294
      CalcRmsd.f90\
295
      AlignPartial.f90 \
296
      Rotation_matrix.f90 \
297
      valid.f90  \
298
      upcase.f90\
299
      CalcBMat_int.f90 \
300
      CalcBMat_mixed.f90 \
301
      ConvGrad_Cart2Int.f90 \
302
      Int2cart.f90 \
303
      Mixed2cart.f90 \
304
      Write_path.f90  \
305
      Write_vasp.f90  \
306
      Std_ori.f90 \
307
      Tensor.f90 \
308
      cmshft.f90 \
309
      sinangle.f90 \
310
      Header.f90 \
311
      gaussj.f90  \
312
      Expand.f90
313

    
314
MAIN= $(SRC:.f90=.o)
315
TOOLS= $(SRC0:.f90=.o)
316

    
317
MOD = VarTypes.mod \
318
      Path_module.mod \
319
      Io_module.mod  \
320
      m_mrgrnk.mod
321
      
322
MODo = $(MOD:.mod=.o)
323
MODSRC = $(MOD:.mod=.f90)
324

    
325
OBJ = ${MAIN} ${TOOLS}
326

    
327
EXAMPLES = Path.valid  parameter.dat
328

    
329

    
330
###############################################################
331
#
332
# For now, we also give Lapack and Blas source files in case
333
# the libraries are not found by the user
334
#
335
###############################################################
336
SRCLAPACKD=$(wildcard ./lapack/double/*.f )
337
SRCLAPACKU=$(wildcard ./lapack/util/*.f )
338
SRCBLAS=$(wildcard ./blas/*.f )
339

    
340
OBJLAPACK=$(SRCLAPACKD:.f=.o) \
341
        $(SRCLAPACKU:.f=.o)
342

    
343
OBJBLAS=$(SRCBLAS:.f=.o)
344

    
345
all: path utils
346

    
347
install: 
348
	mkdir -p ${PWD}/../exe
349
	ln -s ${PWD}/Path.exe ../exe/.
350
	ln -s ${PWD}/../utils/xyz2scan ../exe/.
351
	ln -s ${PWD}/../utils/xyz2path ../exe/.
352

    
353
path: ${MODo} ${OBJ} 
354
	${LINK} -o Path.exe ${OBJ} ${MODo} ${LIBMATH} 
355
	@echo ""
356
	@echo "Path.exe has been created."
357

    
358
path_noL: ${MODo} ${OBJ} lapack blas
359
	${LINK} -o Path.exe ${OBJ} ${MODo}  ./lapack/lapack.a ./blas/blas.a
360
	@echo ""
361
	@echo "Path.exe has been created."
362

    
363
util: utils
364
utils:  xyz2scan xyz2path
365
	@echo ""
366
	@echo "Utilities have been created."
367
	@echo "Make sure that they are in your PATH environment"
368

    
369
xyz2scan: ../utils/Xyz2Scan.f90
370
	${F90} -o ../utils/xyz2scan ../utils/Xyz2Scan.f90
371

    
372
xyz2path: ../utils/Xyz2Path.f90 ../utils/Xyz2Path.param 
373
	${F90} -o ../utils/xyz2path ../utils/Xyz2Path.f90
374

    
375
tgz:  ${SRC0} ${SRC} Makefile ${EXAMPLES} ${MODSRC} ${SRCLAPACKD} ${SRCLAPACKU} ${SRCBLAS} 
376
	tar -cvf OpenPath_${Version}.tar ${SRC0} ${SRC} Makefile ${EXAMPLES} ${MODSRC}
377
	gzip OpenPath_${Version}.tar 
378
	mv  OpenPath_${Version}.tar.gz OpenPath_${Version}.tgz
379
	@echo "OpenPath_${Version}.tgz  has been created."
380

    
381
lapack: ${OBJLAPACK} 
382
	ar rcs ./lapack/lapack.a ${OBJLAPACK}
383

    
384
blas: ${OBJBLAS}
385
	ar rcs ./blas/blas.a ${OBJBLAS}
386

    
387
clean:
388
	rm -f *~ "#"* *.s ${OBJ} *.mod  ${MODo} ${OBJLAPACK} ${OBJBLAS}  
389

    
390
veryclean: clean
391
	rm -f Path.exe ./lapack/lapack.a  ./blas/blas.a ../utils/xyz2scan ../utils/xyz2path
392

    
393
%.o : %.mod
394

    
395
%.o: %.f90 ${MOD}
396
	${F90} -c $*.f90 
397

    
398
%.o: %.f
399
	${F90} -o $@ -c $<
400

    
401
%.exe: %.f90
402
	${F90} -o $*.exe $*.f90
403
	chmod u+x  $*.exe
404

    
405
%.mod: %.f90
406
	${F90} -c $*.f90