root / src / Makefile @ 7
Historique | Voir | Annoter | Télécharger (9,16 ko)
1 | 1 | equemene | ################### Makefile for Path ############ |
---|---|---|---|
2 | 1 | equemene | # (C) PFL 2008 |
3 | 1 | equemene | ################################################# |
4 | 1 | equemene | # Change the value of Machine before compiling |
5 | 1 | equemene | # You might also have to edit the location of |
6 | 1 | equemene | # some libraries (like mkl for ifort) |
7 | 1 | equemene | |
8 | 4 | pfleura2 | Machine=arqg |
9 | 1 | equemene | |
10 | 1 | equemene | ########################################### |
11 | 1 | equemene | # # |
12 | 1 | equemene | ########### Main supported compilers ## |
13 | 1 | equemene | # # |
14 | 1 | equemene | ########################################### |
15 | 1 | equemene | ifeq ($(Machine),ifort) |
16 | 1 | equemene | # Flags for Ifort |
17 | 1 | equemene | COMP=/opt/intel/fc/9.1.036/bin/ifort |
18 | 1 | equemene | F90=${COMP} |
19 | 1 | equemene | LINK=${COMP} -Vaxlib -L/usr/lib/ -L/opt/intel/mkl/8.1/lib/32/ -lguide -lpthread -lmkl_lapack -lmkl_ia32 -lmkl |
20 | 1 | equemene | FreeF=-FR |
21 | 1 | equemene | endif |
22 | 1 | equemene | |
23 | 1 | equemene | ifeq ($(Machine),g95) |
24 | 1 | equemene | # Flags for g95 |
25 | 1 | equemene | COMP=g95 -g -save-temps -Wall -fbounds-check |
26 | 1 | equemene | #COMP=g95 -fbounds-check -g -ftrace=full -ftrace=frame -save-temps |
27 | 1 | equemene | F90=${COMP} |
28 | 1 | equemene | F77=${COMP} |
29 | 1 | equemene | LINK=${COMP} -L/usr/lib/ -llapack -lblas |
30 | 1 | equemene | FreeF=-ffree-form |
31 | 1 | equemene | endif |
32 | 1 | equemene | |
33 | 1 | equemene | ifeq ($(Machine),gfortran) |
34 | 1 | equemene | # Flags for gfortran |
35 | 4 | pfleura2 | COMP=gfortran -fbounds-check -pedantic -std=gnu |
36 | 1 | equemene | #COMP=g95 -fbounds-check -g -ftrace=full -ftrace=frame -save-temps |
37 | 1 | equemene | F90=${COMP} |
38 | 1 | equemene | F77=${COMP} |
39 | 1 | equemene | LINK=${COMP} -L/usr/lib/ -llapack -lblas |
40 | 1 | equemene | FreeF=-ffree-form |
41 | 1 | equemene | endif |
42 | 1 | equemene | |
43 | 1 | equemene | |
44 | 1 | equemene | ifeq ($(Machine),pgf) |
45 | 1 | equemene | # Flags for PGF |
46 | 1 | equemene | COMP=pgf90 |
47 | 1 | equemene | FLAGS= -mp -fast -Kieee -fastsse -tpp7 -Mipa=fast |
48 | 1 | equemene | F90=$(COMP) -c $(FLAGS) |
49 | 1 | equemene | LINK=pgf90 $(FLAGS) -L/usr/local/pgi/linux86/6.2/lib -llapack -lblas -lpthread |
50 | 1 | equemene | FreeF=-Mfree |
51 | 1 | equemene | endif |
52 | 1 | equemene | |
53 | 1 | equemene | ifeq ($(Machine),pathscale) |
54 | 1 | equemene | # Flags for PathScale |
55 | 1 | equemene | COMP=/softs/pathscale/bin/pathf90 |
56 | 1 | equemene | F90=${COMP} |
57 | 1 | equemene | LINK=${COMP} -L/usr/lib/ -llapack -lblas |
58 | 1 | equemene | FreeF=-FR |
59 | 1 | equemene | endif |
60 | 1 | equemene | |
61 | 1 | equemene | ifeq ($(Machine),xlf) |
62 | 1 | equemene | # Flags for Xlf |
63 | 1 | equemene | COMP=xlf |
64 | 1 | equemene | F90=${COMP} |
65 | 1 | equemene | LINK=${COMP} -L/usr/lib/ -llapack -lblas |
66 | 1 | equemene | FreeF=-qfree |
67 | 1 | equemene | endif |
68 | 1 | equemene | |
69 | 1 | equemene | ############################################ |
70 | 1 | equemene | # |
71 | 1 | equemene | # national center |
72 | 1 | equemene | # |
73 | 1 | equemene | ############################################ |
74 | 1 | equemene | # |
75 | 1 | equemene | #### IDRIS |
76 | 1 | equemene | # |
77 | 1 | equemene | ifeq ($(Machine),vargas) |
78 | 1 | equemene | # Flags for Xlf |
79 | 1 | equemene | COMP=xlf |
80 | 1 | equemene | F90=${COMP} |
81 | 1 | equemene | F77=${COMP} |
82 | 1 | equemene | LINK=${COMP} -L/usr/lib/ |
83 | 1 | equemene | FreeF=-qfree |
84 | 1 | equemene | endif |
85 | 1 | equemene | |
86 | 1 | equemene | ifeq ($(Machine),idris) |
87 | 1 | equemene | # Flags for Xlf |
88 | 1 | equemene | COMP=xlf |
89 | 1 | equemene | F90=${COMP} |
90 | 1 | equemene | F77=${COMP} |
91 | 1 | equemene | LINK=${COMP} -L/usr/lib/ |
92 | 1 | equemene | FreeF=-qfree |
93 | 1 | equemene | endif |
94 | 1 | equemene | # |
95 | 1 | equemene | #### CINES |
96 | 1 | equemene | # |
97 | 1 | equemene | |
98 | 1 | equemene | ifeq ($(Machine),jade) |
99 | 1 | equemene | # Flags for Ifort |
100 | 1 | equemene | COMP=ifort |
101 | 1 | equemene | F90=${COMP} |
102 | 1 | equemene | F77=${COMP} |
103 | 1 | equemene | LINK=${COMP} -lguide -lpthread |
104 | 1 | equemene | FreeF=-FR |
105 | 1 | equemene | endif |
106 | 1 | equemene | |
107 | 1 | equemene | ifeq ($(Machine),zeus) |
108 | 1 | equemene | # Flags for Xlf |
109 | 1 | equemene | COMP=xlf |
110 | 1 | equemene | F90=${COMP} |
111 | 1 | equemene | F77=${COMP} |
112 | 1 | equemene | LINK=${COMP} -L/usr/lib/ |
113 | 1 | equemene | FreeF=-qfree |
114 | 1 | equemene | endif |
115 | 1 | equemene | |
116 | 1 | equemene | |
117 | 1 | equemene | ############################################ |
118 | 1 | equemene | # |
119 | 1 | equemene | # local machines at the ENS Lyon |
120 | 1 | equemene | # |
121 | 1 | equemene | ############################################ |
122 | 1 | equemene | |
123 | 1 | equemene | ifeq ($(Machine),arq) |
124 | 1 | equemene | # Flags for arq Ifort |
125 | 1 | equemene | COMP=ifort |
126 | 1 | equemene | F90=${COMP} -g -check all -traceback |
127 | 1 | equemene | F77=${F90} |
128 | 1 | equemene | #F90=${COMP} |
129 | 1 | equemene | LINK=${COMP} -lguide -lpthread |
130 | 1 | equemene | FreeF=-FR |
131 | 1 | equemene | endif |
132 | 1 | equemene | |
133 | 1 | equemene | |
134 | 1 | equemene | |
135 | 1 | equemene | ifeq ($(Machine),arqP) |
136 | 1 | equemene | # Flags for arq Ifort |
137 | 1 | equemene | COMP=ifort |
138 | 1 | equemene | F90=${COMP} -g -check bounds -check format -check uninit -traceback |
139 | 4 | pfleura2 | #F90=${COMP} -g -check all -traceback |
140 | 1 | equemene | F77=${F90} |
141 | 1 | equemene | #F90=${COMP} |
142 | 1 | equemene | LINK=${COMP} -lguide -lpthread -L/usr/lib/ \ |
143 | 1 | equemene | -L/opt/intel/Compiler/11.1/064/mkl/lib/64 \ |
144 | 1 | equemene | -Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential \ |
145 | 1 | equemene | -lmkl_core -Wl,--end-group -lpthread |
146 | 1 | equemene | FreeF=-FR |
147 | 1 | equemene | endif |
148 | 1 | equemene | |
149 | 1 | equemene | ifeq ($(Machine),arqg) |
150 | 1 | equemene | # Flags for arq GFortran |
151 | 4 | pfleura2 | COMP=gfortran -fbacktrace -fbounds-check -pedantic -std=gnu |
152 | 1 | equemene | F90=${COMP} |
153 | 1 | equemene | F77=${F90} |
154 | 1 | equemene | #F90=${COMP} |
155 | 1 | equemene | LINK=${COMP} -L/usr/lib/ -llapack -lblas |
156 | 1 | equemene | FreeF=-ffree-form |
157 | 1 | equemene | endif |
158 | 1 | equemene | |
159 | 1 | equemene | ifeq ($(Machine),psmn) |
160 | 1 | equemene | # Flags for PSMN PathScale |
161 | 1 | equemene | COMP=/softs/pathscale/bin/pathf90 |
162 | 1 | equemene | F90=${COMP} |
163 | 1 | equemene | LINK=${COMP} -L/usr/lib/ |
164 | 1 | equemene | FreeF=-FR |
165 | 1 | equemene | endif |
166 | 1 | equemene | |
167 | 1 | equemene | ifeq ($(Machine),psmnI) |
168 | 1 | equemene | # Flags for PSMN Ifort v12 |
169 | 1 | equemene | COMP=ifort |
170 | 1 | equemene | F90=${COMP} -g -check all -traceback |
171 | 1 | equemene | F77=${F90} |
172 | 1 | equemene | #F90=${COMP} |
173 | 1 | equemene | LINK=${COMP} -L/softs/intel/v12.0.084/mkl/lib/intel64 \ |
174 | 1 | equemene | -L/softs/intel/v12.0.084/lib/intel64 -L/usr/lib \ |
175 | 1 | equemene | -Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential \ |
176 | 1 | equemene | -lmkl_core -Wl,--end-group |
177 | 1 | equemene | FreeF=-FR |
178 | 1 | equemene | endif |
179 | 1 | equemene | |
180 | 1 | equemene | |
181 | 1 | equemene | ifeq ($(Machine),psmnI11) |
182 | 1 | equemene | # Flags for PSMN Ifort v11 |
183 | 1 | equemene | COMP=ifort |
184 | 1 | equemene | F90=${COMP} -g -check all -traceback |
185 | 1 | equemene | F77=${F90} |
186 | 1 | equemene | #F90=${COMP} |
187 | 1 | equemene | LINK=${COMP} -lguide -lpthread -L/usr/lib/ \ |
188 | 1 | equemene | -L/softs/intel/v11.1.069/mkl/lib/em64t \ |
189 | 1 | equemene | -Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential \ |
190 | 1 | equemene | -lmkl_core -Wl,--end-group -lpthread |
191 | 1 | equemene | FreeF=-FR |
192 | 1 | equemene | endif |
193 | 1 | equemene | |
194 | 1 | equemene | |
195 | 1 | equemene | ifeq ($(Machine),duo) |
196 | 1 | equemene | # Flags for DUO Ifort |
197 | 1 | equemene | COMP=/opt/intel/fc/9.1.037/bin/ifort |
198 | 1 | equemene | #F90=${COMP} -g -check all |
199 | 1 | equemene | F90=${COMP} |
200 | 1 | equemene | LINK=${COMP} -Vaxlib -L/usr/lib/ -L/opt/intel/mkl/8.1/lib/32/ -lguide -lpthread -lmkl_lapack64 -lmkl |
201 | 1 | equemene | FreeF=-FR |
202 | 1 | equemene | endif |
203 | 1 | equemene | |
204 | 1 | equemene | ifeq ($(Machine),commander) |
205 | 1 | equemene | # Flags for Commander Ifort |
206 | 1 | equemene | COMP=/opt/intel/fc/9.0/bin/ifort |
207 | 1 | equemene | #F90=${COMP} -g -check all |
208 | 1 | equemene | F90=${COMP} |
209 | 1 | equemene | LINK=${COMP} -Vaxlib -L/usr/lib/ -L/opt/intel/mkl/8.1/lib/32/ -lguide -lpthread -lmkl_lapack -lmkl_ia32 -lmkl |
210 | 1 | equemene | FreeF=-FR |
211 | 1 | equemene | endif |
212 | 1 | equemene | |
213 | 1 | equemene | Version=1.0 |
214 | 1 | equemene | |
215 | 1 | equemene | |
216 | 1 | equemene | ############################################################### |
217 | 1 | equemene | # |
218 | 1 | equemene | # Help Makefile |
219 | 1 | equemene | # voir: http://gl.developpez.com/tutoriel/outil/makefile/ |
220 | 1 | equemene | # |
221 | 1 | equemene | ############################################################### |
222 | 1 | equemene | # $@ Le nom de la cible |
223 | 1 | equemene | # $< Le nom de la première dépendance |
224 | 1 | equemene | # $^ La liste des dépendances |
225 | 1 | equemene | # $? La liste des dépendances plus récentes que la cible |
226 | 1 | equemene | # $* Le nom du fichier sans suffixe |
227 | 1 | equemene | |
228 | 1 | equemene | SRC= Path.f90 \ |
229 | 1 | equemene | PathCreate.f90 \ |
230 | 1 | equemene | Read_geom.f90 \ |
231 | 1 | equemene | Calc_zmat.f90 \ |
232 | 1 | equemene | Calc_zmat_frag.f90 \ |
233 | 1 | equemene | Calc_zmat_constr_frag.f90 \ |
234 | 1 | equemene | Decomp_frag.f90 \ |
235 | 1 | equemene | Calc_mixed_frag.f90 \ |
236 | 1 | equemene | Calc_baker.f90 \ |
237 | 1 | equemene | Calc_Xprim.f90 \ |
238 | 1 | equemene | Calc_baker_allGeomF.f90 \ |
239 | 1 | equemene | ConvertZmat_cart.f90 \ |
240 | 1 | equemene | ConvertBakerInternal_cart.f90 \ |
241 | 1 | equemene | ConvertZmat_cart_3.f90 \ |
242 | 1 | equemene | Egrad.f90 \ |
243 | 1 | equemene | Egrad_baker.f90 \ |
244 | 1 | equemene | EgradPath.f90 \ |
245 | 1 | equemene | egrad_gaussian.f90 \ |
246 | 1 | equemene | egrad_mopac.f90 \ |
247 | 1 | equemene | egrad_ext.f90 \ |
248 | 1 | equemene | egrad_test.f90 \ |
249 | 1 | equemene | egrad_vasp.f90 \ |
250 | 1 | equemene | egrad_turbomole.f90 \ |
251 | 1 | equemene | egrad_chamfre.f90 \ |
252 | 1 | equemene | CalcHess.f90 \ |
253 | 1 | equemene | Hupdate_all.f90 \ |
254 | 1 | equemene | Hupdate_MS.f90 \ |
255 | 1 | equemene | Hupdate_Bofill.f90 \ |
256 | 1 | equemene | Hinvup_BFGS.f90 \ |
257 | 4 | pfleura2 | Hinvup_DFP.f90 \ |
258 | 1 | equemene | CalcTangent.f90 \ |
259 | 1 | equemene | Step_RFO_all.f90 \ |
260 | 1 | equemene | Step_GEDIIS.f90 \ |
261 | 1 | equemene | Step_GEDIIS_All.f90 \ |
262 | 1 | equemene | Energy_GEDIIS.f90 \ |
263 | 1 | equemene | Step_DIIS_all.f90 \ |
264 | 1 | equemene | Extrapol_int.f90 \ |
265 | 1 | equemene | Extrapol_baker.f90 \ |
266 | 1 | equemene | Extrapol_mixed.f90 \ |
267 | 1 | equemene | Extrapol_cart.f90 \ |
268 | 1 | equemene | IntCoord_der.f90 \ |
269 | 1 | equemene | Step_DIIS.f90 \ |
270 | 1 | equemene | Step_GDIIS_Simple_Err.f90 \ |
271 | 1 | equemene | minv.f90 \ |
272 | 1 | equemene | Space.f90 \ |
273 | 1 | equemene | Space_GEDIIS.f90 \ |
274 | 1 | equemene | Space_GEDIIS_all.f90 \ |
275 | 1 | equemene | Space_all.f90 \ |
276 | 1 | equemene | freemv.f90 \ |
277 | 1 | equemene | Mat_util.f90 \ |
278 | 1 | equemene | refsor.f90 \ |
279 | 1 | equemene | Ginvse.f90 |
280 | 1 | equemene | |
281 | 1 | equemene | SRC0= ConvertNumAt.f90 \ |
282 | 1 | equemene | CheckPeriodicBound.f90 \ |
283 | 1 | equemene | Check_step.f90 \ |
284 | 1 | equemene | TestCart.f90 \ |
285 | 1 | equemene | Opt_Geom.f90 \ |
286 | 1 | equemene | PrintGeom.f90 \ |
287 | 1 | equemene | PrintGeomVasp.f90 \ |
288 | 1 | equemene | test_zmat.f90 \ |
289 | 1 | equemene | Annul.f90 \ |
290 | 1 | equemene | addligne.f90 \ |
291 | 1 | equemene | Splin1D.f90 \ |
292 | 1 | equemene | bib_oper.f90 \ |
293 | 1 | equemene | VectorPer.f90 \ |
294 | 1 | equemene | ZmatBuild.f90 \ |
295 | 1 | equemene | CalcCnct.f90 \ |
296 | 1 | equemene | ConvXyzZmat.f90 \ |
297 | 1 | equemene | ConvXyzMixed.f90 \ |
298 | 1 | equemene | Add2indzmat.f90 \ |
299 | 1 | equemene | CalcRmsd.f90\ |
300 | 1 | equemene | AlignPartial.f90 \ |
301 | 1 | equemene | Rotation_matrix.f90 \ |
302 | 1 | equemene | valid.f90 \ |
303 | 1 | equemene | upcase.f90\ |
304 | 1 | equemene | CalcBMat_int.f90 \ |
305 | 1 | equemene | CalcBMat_mixed.f90 \ |
306 | 1 | equemene | ConvGrad_Cart2Int.f90 \ |
307 | 1 | equemene | Int2cart.f90 \ |
308 | 1 | equemene | Mixed2cart.f90 \ |
309 | 1 | equemene | Write_path.f90 \ |
310 | 1 | equemene | Write_vasp.f90 \ |
311 | 1 | equemene | Std_ori.f90 \ |
312 | 1 | equemene | Tensor.f90 \ |
313 | 1 | equemene | cmshft.f90 \ |
314 | 1 | equemene | sinangle.f90 \ |
315 | 1 | equemene | Header.f90 \ |
316 | 1 | equemene | gaussj.f90 \ |
317 | 1 | equemene | Expand.f90 |
318 | 1 | equemene | |
319 | 1 | equemene | MAIN= $(SRC:.f90=.o) |
320 | 1 | equemene | TOOLS= $(SRC0:.f90=.o) |
321 | 1 | equemene | |
322 | 1 | equemene | MOD = VarTypes.mod \ |
323 | 1 | equemene | Path_module.mod \ |
324 | 1 | equemene | Io_module.mod \ |
325 | 1 | equemene | m_mrgrnk.mod |
326 | 1 | equemene | |
327 | 1 | equemene | MODo = $(MOD:.mod=.o) |
328 | 1 | equemene | MODSRC = $(MOD:.mod=.f90) |
329 | 1 | equemene | |
330 | 1 | equemene | OBJ = ${MAIN} ${TOOLS} |
331 | 1 | equemene | |
332 | 1 | equemene | EXAMPLES = Path.valid parameter.dat |
333 | 1 | equemene | |
334 | 1 | equemene | |
335 | 1 | equemene | ############################################################### |
336 | 1 | equemene | # |
337 | 1 | equemene | # For now, we also give Lapack and Blas source files in case |
338 | 1 | equemene | # the libraries are not found by the user |
339 | 1 | equemene | # |
340 | 1 | equemene | ############################################################### |
341 | 1 | equemene | SRCLAPACKD=$(wildcard ./lapack/double/*.f ) |
342 | 1 | equemene | SRCLAPACKU=$(wildcard ./lapack/util/*.f ) |
343 | 1 | equemene | SRCBLAS=$(wildcard ./blas/*.f ) |
344 | 1 | equemene | |
345 | 1 | equemene | OBJLAPACK=$(SCRLAPACKD:.f=.o) \ |
346 | 1 | equemene | $(SCRLAPACKU:.f=.o) |
347 | 1 | equemene | |
348 | 1 | equemene | OBJBLAS=$(SRCBLAS:.f=.o) |
349 | 1 | equemene | |
350 | 1 | equemene | all: path utils |
351 | 1 | equemene | |
352 | 1 | equemene | install: |
353 | 4 | pfleura2 | mkdir -p ${PWD}/../exe |
354 | 1 | equemene | ln -s ${PWD}/Path.exe ../exe/. |
355 | 1 | equemene | ln -s ${PWD}/../utils/xyz2scan ../exe/. |
356 | 1 | equemene | ln -s ${PWD}/../utils/xyz2path ../exe/. |
357 | 1 | equemene | |
358 | 1 | equemene | path: ${MODo} ${OBJ} |
359 | 1 | equemene | ${LINK} -o Path.exe ${OBJ} ${MODo} |
360 | 1 | equemene | @echo "" |
361 | 1 | equemene | @echo "Path.exe has been created." |
362 | 1 | equemene | |
363 | 1 | equemene | path_noL: ${MODo} ${OBJ} lapack blas |
364 | 1 | equemene | ${LINK} -o Path.exe ${OBJ} ${MODo} ./lapack/lapack.a ./blas/blas.a |
365 | 1 | equemene | @echo "" |
366 | 1 | equemene | @echo "Path.exe has been created." |
367 | 1 | equemene | |
368 | 1 | equemene | util: utils |
369 | 1 | equemene | utils: xyz2scan xyz2path |
370 | 1 | equemene | @echo "" |
371 | 1 | equemene | @echo "Utilities have been created." |
372 | 1 | equemene | @echo "Make sure that they are in your PATH environment" |
373 | 1 | equemene | |
374 | 4 | pfleura2 | xyz2scan: ../utils/Xyz2Scan.f90 |
375 | 4 | pfleura2 | ${F90} -o ../utils/xyz2scan ../utils/Xyz2Scan.f90 |
376 | 1 | equemene | |
377 | 4 | pfleura2 | xyz2path: ../utils/Xyz2Path.f90 ../utils/Xyz2Path.param |
378 | 4 | pfleura2 | ${F90} -o ../utils/xyz2path ../utils/Xyz2Path.f90 |
379 | 1 | equemene | |
380 | 1 | equemene | tgz: ${SRC0} ${SRC} Makefile ${EXAMPLES} ${MODSRC} ${SRCLAPACKD} ${SRCLAPACKU} ${SRCBLAS} |
381 | 4 | pfleura2 | tar -cvf OpenPath_${Version}.tar ${SRC0} ${SRC} Makefile ${EXAMPLES} ${MODSRC} |
382 | 4 | pfleura2 | gzip OpenPath_${Version}.tar |
383 | 4 | pfleura2 | mv OpenPath_${Version}.tar.gz OpenPath_${Version}.tgz |
384 | 4 | pfleura2 | @echo "OpenPath_${Version}.tgz has been created." |
385 | 1 | equemene | |
386 | 1 | equemene | lapack: ${OBJLAPACK} |
387 | 1 | equemene | ar rcs ./lapack/lapack.a ${OBJLAPACK} |
388 | 1 | equemene | |
389 | 1 | equemene | blas: ${OBJBLAS} |
390 | 1 | equemene | ar rcs ./blas/blas.a ${OBJBLAS} |
391 | 1 | equemene | |
392 | 1 | equemene | clean: |
393 | 7 | pfleura2 | rm -f *~ "#"* *.s ${OBJ} ${MOD} ${MODo} ${OBJLAPACK} ${OBJBLAS} |
394 | 1 | equemene | |
395 | 1 | equemene | veryclean: clean |
396 | 7 | pfleura2 | rm -f Path.exe ./lapack/lapack.a ./blas/blas.a ../utils/xyz2scan ../utils/xyz2path |
397 | 1 | equemene | |
398 | 1 | equemene | %.o : %.mod |
399 | 1 | equemene | |
400 | 1 | equemene | %.o: %.f90 ${MOD} |
401 | 1 | equemene | ${F90} -c $*.f90 |
402 | 1 | equemene | |
403 | 1 | equemene | %.o: %.f |
404 | 1 | equemene | ${F90} -o $@ -c $< |
405 | 1 | equemene | |
406 | 1 | equemene | %.exe: %.f90 |
407 | 1 | equemene | ${F90} -o $*.exe $*.f90 |
408 | 1 | equemene | chmod u+x $*.exe |
409 | 1 | equemene | |
410 | 1 | equemene | %.mod: %.f90 |
411 | 1 | equemene | ${F90} -c $*.f90 |