/[MITgcm]/MITgcm/tools/genmake
ViewVC logotype

Contents of /MITgcm/tools/genmake

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.22.2.5 - (show annotations) (download)
Fri Jan 26 00:14:32 2001 UTC (23 years, 3 months ago) by cnh
Branch: branch-atmos-merge
Changes since 1.22.2.4: +2 -2 lines
Adding AIM physics code as package along with simple
test.
So far only checked that code still compiles with
#undef ALLOW_AIM
Next step is to test the code in action!
Two things to note
  1. Modified genmake to have pgf77 defaults of
     r8, line longer than 72 and declaration checking off
     for files without IMPLCIT NONE. This is required
     to get Francos code to compile.

  2. Otherwise no changes to main code. Just package +
     verification test.

1 #!/bin/csh -f
2 #
3 # $Header: /u/gcmpack/models/MITgcmUV/tools/genmake,v 1.22.2.4 2001/01/25 18:41:18 adcroft Exp $
4 #
5 # Makefile generator for MITgcm UV codes
6 # created by cnh 03/98
7 # adapted by aja 06/98
8
9 # Process command-line arguments
10 set allargs=( $argv )
11 while ($#allargs)
12 set arg = $allargs[1]
13 switch ($arg)
14 case -makefile:
15 set mfile = ( Makefile )
16 breaksw
17 case -makefile=*:
18 set mfile = ( `echo $arg | sed 's/-makefile=//' `)
19 breaksw
20 case -platform:
21 case -platform=:
22 echo "To change platform you must specify one with -platform="
23 echo "eg. -platform=sparc or -platform=mips"
24 exit
25 breaksw
26 case -platform*:
27 set platform = ( `echo $arg | sed 's/-platform=//' `)
28 breaksw
29 case -rootdir=*:
30 set ROOTDIR = ( `echo $arg | sed 's/-rootdir=//' `)
31 breaksw
32 case -mymods=*:
33 set MYMODS = ( `echo $arg | sed 's/-mymods=//' `)
34 breaksw
35 case -mpi:
36 echo "Enabling MPI options"
37 set USEMPI
38 breaksw
39 case -jam:
40 set include_jam_libs
41 echo "Including paths to JAM libraries"
42 breaksw
43 case -help:
44 echo "usage: $0 [-help] [-makefile[=...]] [-platform=...] [-mpi]"
45 exit
46 breaksw
47 default:
48 echo "Unknown command-line option: " $arg
49 echo $0 "-help to show usage"
50 exit
51 breaksw
52 endsw
53 shift allargs
54 end
55
56 # Default actions/options
57
58 # If platform wasn't specified then determine platform type of the host
59 if ($?platform == 0) then
60 set platform = (`uname`)
61 endif
62 # If name of makefile wasn't specified then use default "Makefile"
63 if ($?mfile == 0) set mfile = ( Makefile )
64
65 set mach = ( `uname -a` )
66 echo Operating system: $mach
67
68
69 # Directories for source, includes, binaries and executables
70 # Note
71 # o If you prefer/need everything under a single directory
72 # copy everything in ../eesupp/src, ../model/src,
73 # ../eesupp/inc and ../model/inc into a directory and then
74 # edit the paths below to ./
75 #
76 # If -rootdir wasn't specified then assume script is being run from bin
77 # but if it was supplied then we should place the executable in the build dir
78 if ($?ROOTDIR == 0) then
79 set ROOTDIR = ( .. )
80 else
81 if ($?EXEDIR == 0) set EXEDIR = ( ./ )
82 endif
83 if ($?MYMODS == 0) then
84 set SOURCEDIRS = ( $ROOTDIR/{eesupp,model,diags}/src/ $ROOTDIR/pkg/[a-z]*/ )
85 set INCLUDEDIRS = ( ./ $ROOTDIR/{eesupp,model,diags}/inc/ $ROOTDIR/pkg/[a-z]*/ )
86 else
87 set SOURCEDIRS = ( $MYMODS/ $ROOTDIR/{eesupp,model,diags}/src/ $ROOTDIR/pkg/[a-z]*/ )
88 set INCLUDEDIRS = ( ./ $MYMODS/ $ROOTDIR/{eesupp,model,diags}/inc/ $ROOTDIR/pkg/[a-z]*/ )
89 endif
90 if ($?BUILDDIR == 0) set BUILDDIR = ( ./ )
91 if ($?EXEDIR == 0) set EXEDIR = ( $ROOTDIR/exe/ )
92 if ($?EXECUTABLE == 0) set EXECUTABLE = ( mitgcmuv )
93 if ($?TOOLSDIR == 0) set TOOLSDIR = ( $ROOTDIR/tools/ )
94
95 # This is the generic configuration.
96 # Platform specific options are chosen below
97 set LN = ( 'ln -s' )
98 set CPP = ( '/lib/cpp -P' )
99 set KPP = ( )
100 set FC = ( 'f77' )
101 set LINK = ( 'f77' )
102 set DEFINES = ( )
103 set INCLUDES = ( )
104 set FFLAGS = ( )
105 set FOPTIM = ( )
106 set KFLAGS1 = ( )
107 set KFLAGS2 = ( )
108 set LIBS = ( )
109 set KPPFILES = ( )
110 set NOOPTFILES = ( )
111 set NOOPTFLAGS = ( )
112 set RMFILES = ( )
113
114 # We often want to use different compile/link options is using MPI
115 if ($?USEMPI) then
116 set USEMPI = ( '+mpi' )
117 set DEFINES = ( ${DEFINES} '-DALLOW_USE_MPI -DALWAYS_USE_MPI' )
118 else
119 set USEMPI
120 # set DEFINES = ( ${DEFINES} '-UALLOW_USE_MPI -UALWAYS_USE_MPI' )
121 endif
122
123 # Platform specific options
124 switch ($platform$USEMPI)
125 case OSF1:
126 case OSF1+mpi:
127 echo "Configuring for DEC Alpha"
128 set CPP = ( '/usr/bin/cpp -P' )
129 set DEFINES = ( ${DEFINES} '-DTARGET_DEC -DWORDLENGTH=1' )
130 set KPP = ( 'kapf' )
131 set KPPFILES = ( 'main.F' )
132 set KFLAGS1 = ( '-scan=132 -noconc -cmp=' )
133 set FC = ( 'f77' )
134 set FFLAGS = ( '-convert big_endian -r8 -extend_source -u -automatic -call_shared -notransform_loops -align dcommons' )
135 set FOPTIM = ( '-O5 -fast -tune host -inline all' )
136 set NOOPTFLAGS = ( '-O0' )
137 set LIBS = ( '-lfmpi -lmpi -lkmp_osfp10 -pthread' )
138 set NOOPTFILES = ( 'barrier.F different_multiple.F external_fields_load.F')
139 set RMFILES = ( '*.p.out' )
140 breaksw
141 case IRIX64+mpi:
142 echo "Configuring for SGI Mips with MPI"
143 set DEFINES = ( ${DEFINES} '-DTARGET_SGI -DWORDLENGTH=4' )
144 set INCLUDES = ( '-I/usr/local/mpi/include' )
145 set FC = ( 'mpif77' )
146 set LINK = ( 'mpif77' )
147 set FFLAGS = ( '-extend_source -bytereclen -r10000 -mips4' )
148 set FOPTIM = ( '-O3' )
149 set RMFILES = ( 'rii_files' )
150 breaksw
151 case IRIX64:
152 echo "Configuring for SGI Mips"
153 set DEFINES = ( ${DEFINES} '-DTARGET_SGI -DWORDLENGTH=4' )
154 set INCLUDES = ( '-I/usr/local/mpi/include' )
155 set FFLAGS = ( '-extend_source -mp -mpio -bytereclen -r10000 -mips4' )
156 set FOPTIM = ( '-O3' )
157 # set NOOPTFLAGS = ( '-O0' )
158 # set NOOPTFILES = ( 'barrier.F different_multiple.F ' \
159 # 'external_fields_load.F' )
160 set RMFILES = ( 'rii_files' )
161 breaksw
162 case o2:
163 case IRIX:
164 echo "Configuring for SGI O2 running IRIX 6.5"
165 set DEFINES = ( ${DEFINES} '-DTARGET_SGI -DWORDLENGTH=4' )
166 set FFLAGS = ( '-extend_source -bytereclen -r10000 -mips4' )
167 set FOPTIM = ( '-O2' )
168 set NOOPTFLAGS = ( '-O0' )
169 breaksw
170 case o2+mpi:
171 case IRIX+mpi:
172 echo "Configuring for SGI O2 running IRIX 6.5 with MPI"
173 set DEFINES = ( ${DEFINES} '-DTARGET_SGI -DWORDLENGTH=4' )
174 set FFLAGS = ( '-extend_source -bytereclen -r10000 -mips4' )
175 set FOPTIM = ( '-O2' )
176 set NOOPTFILES = ( 'barrier.F different_multiple.F external_fields_load.F' )
177 set NOOPTFLAGS = ( '-O0' )
178 set LIBS = ( '-lmpi' )
179 breaksw
180 case o2k+mpi:
181 echo "Configuring for SGI Origin2000 running IRIX 6.5"
182 set DEFINES = ( ${DEFINES} '-DTARGET_SGI -DWORDLENGTH=4' )
183 set INCLUDES = ( '-I/usr/include' )
184 set FFLAGS = ( '-n32 -extend_source -bytereclen' )
185 set FOPTIM = ( '-O2' )
186 set NOOPTFILES = ( 'calc_mom_rhs.F' )
187 set NOOPTFLAGS = ( '-O1' )
188 set LIBS = ( '-lmpi -lscs' )
189 breaksw
190 case onyx:
191 case onyx+mpi:
192 echo "Configuring for SGI ONYX running IRIX64"
193 set DEFINES = ( ${DEFINES} '-DTARGET_SGI -DWORDLENGTH=4' )
194 set FFLAGS = ( '-extend_source -bytereclen -r10000 -64' )
195 set FOPTIM = ( '-O2' )
196 set NOOPTFLAGS = ( '-O0' )
197 set NOOPTFILES = ( 'barrier.F different_multiple.F external_fields_load.F' )
198 set LIBS = ( '-lmpi' )
199 breaksw
200 case SunOS:
201 set LN = ( '/usr/bin/ln -s' )
202 set CPP = ( '/usr/ccs/lib/cpp -P' )
203 set DEFINES = ( ${DEFINES} '-DTARGET_SUN -DWORDLENGTH=4' )
204 set FFLAGS = ( '-stackvar -explicitpar -vpara -e -u -noautopar')
205 set FOPTIM = ( '-fast -O3' )
206 set NOOPTFLAGS = ( '-O0' )
207 set NOOPTFILES = ( 'barrier.F different_multiple.F external_fields_load.F ini_vertical_grid.F')
208 breaksw
209 case SunOS+mpi:
210 set LN = ( '/usr/bin/ln -s' )
211 set CPP = ( '/usr/ccs/lib/cpp -P' )
212 set DEFINES = ( ${DEFINES} '-DTARGET_SUN -DWORDLENGTH=4' )
213 set INCLUDES = ( '-I/usr/local/mpi/include' )
214 set FFLAGS = ( '-stackvar -explicitpar -vpara -e -u -noautopar')
215 set FOPTIM = ( '-fast -O3' )
216 set NOOPTFLAGS = ( '-O0' )
217 set LIBS = ( '-L/usr/local/mpi/lib/solaris/ch_shmem -lmpi -lthread' \
218 '-lsocket -lnsl' )
219 set NOOPTFILES = ( 'barrier.F different_multiple.F external_fields_load.F ini_vertical_grid.F')
220 breaksw
221 case IRIX32:
222 echo "Configuring for SGI ONYX running IRIX64"
223 set DEFINES = ( ${DEFINES} '-DTARGET_SGI -DWORDLENGTH=4' )
224 set INCLUDES = ( '-I/usr/include' )
225 set FFLAGS = ( '-extend_source -bytereclen -r10000 -64' )
226 set FOPTIM = ( '-O2' )
227 set NOOPTFLAGS = ( '-O0' )
228 set NOOPTFILES = ( 'barrier.F different_multiple.F ' \
229 'external_fields_load.F' )
230 set LIBS = ( '-lmpi' )
231 breaksw
232 case HP-UX+mpi:
233 set FC = ( 'mpif77' )
234 set LINK = ( 'mpif77' )
235 set INCLUDES = ( '-I/opt/mpi/include' )
236 case HP-UX:
237 echo "Configuring for HP Exemplar"
238 set CPP = ( '/usr/ccs/lbin/cpp -P' )
239 set DEFINES = ( ${DEFINES} '-DTARGET_HP -DWORDLENGTH=4' )
240 set FFLAGS = ( '+es +U77 +Onoautopar +Oexemplar_model' \
241 '+Okernel_threads' )
242 set FOPTIM = ( '+O2' )
243 set NOOPTFLAGS = ( '+O0' )
244 set NOOPTFILES = ( 'barrier.F different_multiple.F' \
245 'external_fields_load.F' )
246 breaksw
247 case Linux+mpi:
248 set LIBS = ( '-L/usr/local/lib/LINUX/ch_p4/ -lfmpich -lmpich' )
249 set INCLUDES = ( '-I/usr/local/include' )
250 case Linux:
251 set LN = ( '/bin/ln -s' )
252 set CPP = ( '/lib/cpp -traditional -P' )
253 set DEFINES = ( ${DEFINES} '-D_BYTESWAPIO -DWORDLENGTH=4' )
254 set FC = ( 'g77' )
255 set FFLAGS = ( '-Wimplicit -Wunused -Wuninitialized' )
256 set FOPTIM = ( '-O3 -malign-double -funroll-loops ' )
257 set LINK = ( 'g77' )
258 breaksw
259 case Linux+pgi+mpi:
260 if ($?include_jam_libs) then
261 set INCLUDES = ( '-I/usr/local//mpich-cnh-install/include' )
262 set LIBS = ( '-L/usr/local/mpich-cnh-install/lib/LINUX/ch_p4/ -lfmpich -lmpich' )
263 else
264 set INCLUDES = ( '-I/usr/local/include' )
265 set LIBS = ( '-L/usr/local/lib/LINUX/ch_p4/ -lfmpich -lmpich' )
266 endif
267 case Linux+pgi:
268 set LN = ( '/bin/ln -s' )
269 set CPP = ( '/lib/cpp -traditional -P' )
270 set DEFINES = ( ${DEFINES} '-DWORDLENGTH=4' )
271 set FC = ( 'pgf77' )
272 set FFLAGS = ( '-byteswapio -r8 -Mnodclchk -Mextend' )
273 set FOPTIM = ( '-tp p6 -v -O2 -Munroll -Mvect=cachesize:512000,transform -Kieee' )
274 set LINK = ( 'pgf77' )
275 breaksw
276 case T3E:
277 case sn6312:
278 set CPP = ( '/opt/ctl/bin/cpp -P')
279 set DEFINES = ( ${DEFINES} '-DTARGET_T3E -DWORDLENGTH=4' )
280 set FC = ( 'f90' )
281 set LINK = ( 'f90' )
282 set FFLAGS = ( '-O 2,fusion' )
283 breaksw
284 case T90:
285 case sn7113:
286 set FC = ( 'f90' )
287 set LINK = ( 'f90' )
288 set LN = ( '/bin/ln -s' )
289 set CPP = ( '/opt/ctl/bin/cpp -N -P' )
290 set DEFINES = ( ${DEFINES} '-DTARGET_CRAY_VECTOR -DWORDLENGTH=4' )
291 set FFLAGS = ( '-m3 -Rabc -N 132')
292 set FOPTIM = ( '-O0' )
293 set NOOPTFLAGS = ( '-O0' )
294 set NOOPTFILES = ( 'barrier.F different_multiple.F external_fields_load.F')
295 breaksw
296 case SV1:
297 case sn3002:
298 set FC = ( 'f90' )
299 set LINK = ( 'f90' )
300 set LN = ( '/bin/ln -s' )
301 set CPP = ( '/opt/ctl/bin/cpp -N -P' )
302 set DEFINES = ( ${DEFINES} '-DTARGET_CRAY_VECTOR -DWORDLENGTH=4' )
303 set FFLAGS = ( '-m3 -Rabc -ei -eI -s cf77types -N 132')
304 set FOPTIM = ( '-O0' )
305 set NOOPTFLAGS = ( '-O0' )
306 set NOOPTFILES = ( 'barrier.F different_multiple.F external_fields_load.F')
307 breaksw
308 default:
309 echo "Error: platform not recognized: uname -p = " $platform$USEMPI
310 exit
311 breaksw
312 endsw
313
314 ###############################################################################
315 ## ##
316 ## Everything below here should not need to be changed. Platform specific ##
317 ## changes and code specific changes should be configured above this line. ##
318 ## ##
319 ###############################################################################
320
321 # Convert lists of directories into command-line options
322 foreach inc ($INCLUDEDIRS)
323 set INCLUDES = ($INCLUDES -I$inc)
324 end
325
326 # Search for source code
327 rm -rf .links.tmp;mkdir .links.tmp
328 echo "# This section creates symbolic links" > srclinks.tmp
329 echo "" >> srclinks.tmp
330 echo -n 'SRCFILES = ' > srclist.inc
331 echo -n 'CSRCFILES = ' > csrclist.inc
332 #echo -n 'HEADERFILES = ' > hlist.inc
333 foreach dr ($SOURCEDIRS)
334 set deplist=( )
335 foreach srcfile (`cd $dr; ls *.[hcF]`)
336 if (! -r .links.tmp/$srcfile) then
337 if (-f $dr/$srcfile) then
338 switch ($srcfile:e)
339 case F:
340 touch .links.tmp/$srcfile
341 set deplist=($deplist $srcfile)
342 echo ' \' >> srclist.inc
343 echo -n " " $srcfile >> srclist.inc
344 breaksw
345 case c:
346 touch .links.tmp/$srcfile
347 set deplist=($deplist $srcfile)
348 echo ' \' >> csrclist.inc
349 echo -n " " $srcfile >> csrclist.inc
350 breaksw
351 case h:
352 # touch .links.tmp/$srcfile
353 # set deplist=($deplist $srcfile)
354 # echo ' \' >> hlist.inc
355 # echo -n " " $srcfile >> hlist.inc
356 breaksw
357 endsw
358 endif
359 endif
360 end
361 if ($#deplist != 0) then
362 echo "# These files are linked from $dr" >> srclinks.tmp
363 echo $deplist':' >> srclinks.tmp
364 echo '\t$(LN) '$dr'$@ $@' >> srclinks.tmp
365 endif
366 end
367 rm -rf .links.tmp
368 echo "" >> srclist.inc
369 echo "" >> csrclist.inc
370 #echo "" >> hlist.inc
371
372 set THISHOSTNAME = ( `hostname` )
373 set THISCWD = ( `pwd` )
374 set THISDATE = ( `date` )
375
376 ###########################################
377 ## This is the template for the makefile ##
378 ###########################################
379 echo Creating makefile: $mfile
380 echo "# Multithreaded + multi-processing makefile for $mach" > ${mfile}
381 echo "# This makefile was generated automatically on" >> ${mfile}
382 echo "# $THISDATE" >> ${mfile}
383 echo "# by the command:" >> ${mfile}
384 echo "# ${0} $argv" >> ${mfile}
385 echo "# executed by:" >> ${mfile}
386 echo "# $USER@${THISHOSTNAME}:${THISCWD}" >> ${mfile}
387 cat >> ${mfile} <<EOF
388 #
389 # BUILDDIR : Directory where object files are written
390 # SOURCEDIRS : Directories containing the source (.F) files
391 # INCLUDEDIRS : Directories containing the header-source (.h) files
392 # EXEDIR : Directory where executable that is generated is written
393 # EXECUTABLE : Full path of executable binary
394 #
395 # CPP : C-preprocessor command
396 # INCLUDES : Directories searched for header files
397 # DEFINES : Macro definitions for CPP
398 # KPP : Special preprocessor command (specific to platform)
399 # KFLAGS : Flags for KPP
400 # FC : Fortran compiler command
401 # FFLAGS : Configuration/debugging options for FC
402 # FOPTIM : Optimization options for FC
403 # LINK : Command for link editor program
404 # LIBS : Library flags /or/ additional optimization/debugging flags
405
406 ROOTDIR = ${ROOTDIR}
407 BUILDDIR = ${BUILDDIR}
408 SOURCEDIRS = ${SOURCEDIRS}
409 INCLUDEDIRS = ${INCLUDEDIRS}
410 EXEDIR = ${EXEDIR}
411 EXECUTABLE = \$(EXEDIR)${EXECUTABLE}
412 TOOLSDIR = ${TOOLSDIR}
413
414 EOF
415
416
417 # JAM libraries on Hyades
418 if ($?include_jam_libs) then
419 cat >> ${mfile} <<EOF
420 # extra stuff for Hyades ............................................
421 HYADES_DIR = /u/u0/cnh/jam-lib/software
422 HYADES_DIR = /u/u0/cnh/jam-lib-twoproc
423 WORK_DIR = \$(HYADES_DIR)
424 DEPOSIT_DIR = linux_bin
425
426 STARTXOBJDIR = startx_util/\$(DEPOSIT_DIR)
427 STARTXOBJ = \$(WORK_DIR)/startx_util/\$(DEPOSIT_DIR)/startx_timer.o \
428 \$(WORK_DIR)/startx_util/\$(DEPOSIT_DIR)/startx_util.o \
429 \$(WORK_DIR)/startx_util/\$(DEPOSIT_DIR)/client.o \
430 \$(WORK_DIR)/startx_util/\$(DEPOSIT_DIR)/csutil.o
431
432 JAMOBJDIR = jam/\$(DEPOSIT_DIR)
433 JAMOBJ = \$(WORK_DIR)/jam/\$(DEPOSIT_DIR)/jam_init.o \
434 \$(WORK_DIR)/jam/\$(DEPOSIT_DIR)/jam_kernel.o \
435 \$(WORK_DIR)/jam/\$(DEPOSIT_DIR)/jam_malloc.o \
436 \$(WORK_DIR)/jam/\$(DEPOSIT_DIR)/jam_vmalloc.o \
437 \$(WORK_DIR)/jam/\$(DEPOSIT_DIR)/jam_mutex.o
438
439 JAMCOBJDIR = jam_collective/\$(DEPOSIT_DIR)
440 JAMCOBJ = \$(WORK_DIR)/jam_collective/\$(DEPOSIT_DIR)/jam_collective.o
441
442 XLIBS = \$(STARTXOBJ) \$(JAMOBJ) \$(JAMCOBJ)
443
444 # ..................................................................
445
446 EOF
447 endif
448
449
450 cat >> ${mfile} <<EOF
451 # Unix ln (link)
452 LN = ${LN}
453 # C preprocessor
454 CPP = cat \$< | \$(TOOLSDIR)/set64bitConst.sh | ${CPP}
455 # Special preprocessor (KAP on DECs, FPP on Crays)
456 KPP = ${KPP}
457 # Fortran compiler
458 FC = ${FC}
459 # Link editor
460 LINK = ${LINK}
461
462 # Defines for CPP
463 DEFINES = ${DEFINES}
464 # Includes for CPP
465 INCLUDES = ${INCLUDES}
466 # Flags for KPP
467 KFLAGS1 = ${KFLAGS1}
468 KFLAGS2 = ${KFLAGS2}
469 # Optim./debug for FC
470 FFLAGS = ${FFLAGS}
471 FOPTIM = ${FOPTIM}
472 # Files that should not be optimized
473 NOOPTFILES = ${NOOPTFILES}
474 NOOPTFLAGS = ${NOOPTFLAGS}
475 # Flags and libraries needed for linking
476 LIBS = ${LIBS} \$(XLIBS)
477
478 EOF
479
480 cat srclist.inc >> ${mfile}
481 cat csrclist.inc >> ${mfile}
482 echo 'F77FILES = $(SRCFILES:.F=.f)' >> ${mfile}
483 echo 'OBJFILES = $(SRCFILES:.F=.o) $(CSRCFILES:.c=.o)' >> ${mfile}
484
485 rm -f srclist.inc csrclist.inc flist.tmp clist.tmp
486
487 cat >> ${mfile} <<EOF
488
489 .SUFFIXES:
490 .SUFFIXES: .o .f .p .F .c
491
492 all: \$(EXECUTABLE)
493 \$(EXECUTABLE): \$(OBJFILES)
494 \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(LIBS)
495 depend:
496 @make links
497 makedepend -o .f \$(INCLUDES) \$(SRCFILES)
498 links: \$(SRCFILES)
499
500 small_f: \$(F77FILES)
501
502 clean:
503 -rm -rf *.o *.f *.p ${RMFILES}
504 Clean:
505 @make clean
506 -find . -type l -exec rm {} \;
507 -rm Makefile.bak
508 CLEAN:
509 @make Clean
510 -find \$(ROOTDIR)/verification/*/input/ -name "*.meta" -exec rm {} \;
511 -find \$(ROOTDIR)/verification/*/input/ -name "*.data" -exec rm {} \;
512 -rm \$(EXECUTABLE)
513
514 # The normal chain of rules is ( .F - .f - .o )
515 .F.f:
516 \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@
517 .f.o:
518 \$(FC) \$(FFLAGS) \$(FOPTIM) -c \$<
519
520 # Special exceptions that use the ( .F - .p - .f - .o ) rule-chain
521 .F.p:
522 \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@
523 .p.f:
524 \$(KPP) \$(KFLAGS1)\$@ \$(KFLAGS2) \$<
525 EOF
526
527 # Make list of "exceptions" that need ".p" files
528 foreach sf ($KPPFILES)
529 set fname=( ${sf:t} )
530 echo "${fname:r}.f: ${fname:r}.p" >> ${mfile}
531 end
532 foreach sf ($NOOPTFILES)
533 set fname=( ${sf:t} )
534 echo "${fname:r}.o: ${fname:r}.f" >> ${mfile}
535 echo ' $(FC) $(FFLAGS) $(NOOPTFLAGS) -c $<' >> ${mfile}
536 end
537 echo "" >> ${mfile}
538
539 # Add rules for links
540 cat srclinks.tmp >> ${mfile}
541 rm -f srclinks.tmp
542
543 echo "" >> ${mfile}
544 echo "# DO NOT DELETE" >> ${mfile}
545
546 exit

  ViewVC Help
Powered by ViewVC 1.1.22