/[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.4 - (show annotations) (download)
Thu Jan 25 18:41:18 2001 UTC (23 years, 4 months ago) by adcroft
Branch: branch-atmos-merge
Changes since 1.22.2.3: +2 -2 lines
Spelling correctino (pn -> on)

1 #!/bin/csh -f
2 #
3 # $Header: /u/gcmpack/models/MITgcmUV/tools/genmake,v 1.22.2.3 2001/01/25 17:56:33 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' )
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