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

Diff of /MITgcm/tools/genmake

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

revision 1.1 by cnh, Wed Jul 8 15:24:05 1998 UTC revision 1.11 by adcroft, Fri May 7 18:12:29 1999 UTC
# Line 11  set allargs=( $argv ) Line 11  set allargs=( $argv )
11  while ($#allargs)  while ($#allargs)
12   set arg = $allargs[1]   set arg = $allargs[1]
13   switch ($arg)   switch ($arg)
14   case -makefile*:   case -makefile:
15     if ($arg == "-makefile") then     set mfile = ( Makefile )
16       set mfile = ( Makefile )     breaksw
17     else   case -makefile=*:
18       set mfile = ( `echo $arg | sed 's/-makefile=//' `)     set mfile = ( `echo $arg | sed 's/-makefile=//' `)
    endif  
19     breaksw     breaksw
20   case -platform:   case -platform:
21   case -platform=:   case -platform=:
# Line 43  while ($#allargs) Line 42  while ($#allargs)
42   endsw   endsw
43   shift allargs   shift allargs
44  end  end
45    
46  if ($?platform == 0) set platform = (`uname -p`)  if ($?platform == 0) then
47     set platform = (`uname`)
48    endif
49  if ($?mfile == 0) set mfile = ( Makefile.$platform )  if ($?mfile == 0) set mfile = ( Makefile.$platform )
50  set mach  = ( `uname -a` )  set mach  = ( `uname -a` )
51  echo Operating system: $mach  echo Operating system: $mach
# Line 91  endif Line 92  endif
92    
93  # Platform specific options  # Platform specific options
94  switch ($platform$USEMPI)  switch ($platform$USEMPI)
95    case alpha:    case OSF1:
96    case alpha+mpi:    case OSF1+mpi:
97      echo "Configuring for DEC Alpha"      echo "Configuring for DEC Alpha"
98      set CPP        = ( '/usr/bin/cpp -P' )      set CPP        = ( '/usr/bin/cpp -P' )
99      set DEFINES    = ( ${DEFINES}  '-DTARGET_DEC' )      set DEFINES    = ( ${DEFINES}  '-DTARGET_DEC -DWORDLENGTH=1' )
100      set KPP        = ( 'kapf' )      set KPP        = ( 'kapf' )
101        set KPPFILES   = ( 'main.F' )
102      set KFLAGS1    = ( '-scan=132 -noconc -cmp=' )      set KFLAGS1    = ( '-scan=132 -noconc -cmp=' )
103      set FC         = ( 'f77' )      set FC         = ( 'f77' )
104      set FFLAGS     = ( '-convert big_endian -r8 -extend_source -u -automatic -call_shared -notransform_loops -align dcommons -p1' )      set FFLAGS     = ( '-convert big_endian -r8 -extend_source -u -automatic -call_shared -notransform_loops -align dcommons' )
105      set FOPTIM     = ( '-O5 -fast -tune host -inline all' )      set FOPTIM     = ( '-O5 -fast -tune host -inline all' )
106      set NOOPTFLAGS = ( '-O0' )      set NOOPTFLAGS = ( '-O0' )
107      set LIBS       = ( '-lfmpi -lmpi -lkmp_osfp10 -pthread' )      set LIBS       = ( '-lfmpi -lmpi -lkmp_osfp10 -pthread' )
     set KPPFILES   = ( 'main.F' )  
108      set NOOPTFILES = ( 'barrier.F different_multiple.F load_external_fields.F')      set NOOPTFILES = ( 'barrier.F different_multiple.F load_external_fields.F')
109      set RMFILES    = ( '*.p.out' )      set RMFILES    = ( '*.p.out' )
110      breaksw      breaksw
111    case mips+mpi:    case IRIX64+mpi:
112      echo "Configuring for SGI Mips with MPI"      echo "Configuring for SGI Mips with MPI"
113      set DEFINES    = ( ${DEFINES} '-DTARGET_SGI' )      set DEFINES    = ( ${DEFINES} '-DTARGET_SGI -DWORDLENGTH=4' )
114      set INCLUDES   = ( '-I/usr/local/mpi/include' )      set INCLUDES   = ( '-I/usr/local/mpi/include' )
115      set FC         = ( 'mpif77' )      set FC         = ( 'mpif77' )
116      set LINK       = ( 'mpif77' )      set LINK       = ( 'mpif77' )
117      set FFLAGS     = ( '-extend_source -bytereclen -r10000' )      set FFLAGS     = ( '-extend_source -bytereclen -r10000 -mips4' )
118      set FOPTIM     = ( '-O3' )      set FOPTIM     = ( '-O3' )
119      set RMFILES    = ( 'rii_files' )      set RMFILES    = ( 'rii_files' )
120      breaksw      breaksw
121    case mips:    case IRIX64:
122      echo "Configuring for SGI Mips"      echo "Configuring for SGI Mips"
123      set DEFINES    = ( ${DEFINES} '-DTARGET_SGI' )      set DEFINES    = ( ${DEFINES} '-DTARGET_SGI -DWORDLENGTH=4' )
124      set INCLUDES   = ( '-I/usr/local/mpi/include' )      set INCLUDES   = ( '-I/usr/local/mpi/include' )
125      set FFLAGS     = ( '-extend_source -mp -mpio -bytereclen -r10000 -mips4' )      set FFLAGS     = ( '-extend_source -mp -mpio -bytereclen -r10000 -mips4' )
126      set FOPTIM     = ( '-O2' )      set FOPTIM     = ( '-O3' )
127      set NOOPTFLAGS = ( '-O0' )  #   set NOOPTFLAGS = ( '-O0' )
128      set NOOPTFILES = ( 'barrier.F different_multiple.F ' \  #   set NOOPTFILES = ( 'barrier.F different_multiple.F ' \
129                         'load_external_fields.F' )  #                      'load_external_fields.F' )
130      set RMFILES    = ( 'rii_files' )      set RMFILES    = ( 'rii_files' )
131      breaksw      breaksw
132    case sparc:    case SunOS:
133        set LN         = ( '/usr/bin/ln -fs' )
134        set CPP        = ( '/usr/ccs/lib/cpp -P' )
135        set DEFINES    = ( ${DEFINES} '-DTARGET_SUN -DWORDLENGTH=4' )
136        set FFLAGS     = ( '-stackvar -explicitpar -vpara -e -u -noautopar')
137        set FOPTIM     = ( '-fast -O4' )
138        set NOOPTFLAGS = ( '-O0' )
139        set NOOPTFILES = ( 'barrier.F different_multiple.F load_external_fields.F ini_vertical_grid.F')
140        breaksw
141      case SunOS+mpi:
142      set LN         = ( '/usr/bin/ln -fs' )      set LN         = ( '/usr/bin/ln -fs' )
143      set CPP        = ( '/usr/ccs/lib/cpp -P' )      set CPP        = ( '/usr/ccs/lib/cpp -P' )
144      set DEFINES    = ( ${DEFINES} '-DTARGET_SUN' )      set DEFINES    = ( ${DEFINES} '-DTARGET_SUN -DWORDLENGTH=4' )
145      set INCLUDES   = ( '-I/usr/local/mpi/include' )      set INCLUDES   = ( '-I/usr/local/mpi/include' )
146      set FFLAGS     = ( '-stackvar -explicitpar -vpara -e -u -noautopar')      set FFLAGS     = ( '-stackvar -explicitpar -vpara -e -u -noautopar')
147      set FOPTIM     = ( '-O5' )      set FOPTIM     = ( '-fast -O4' )
148      set NOOPTFLAGS = ( '-O0' )      set NOOPTFLAGS = ( '-O0' )
149      set LIBS       = ( '-L/usr/local/mpi/lib/solaris/ch_shmem -lmpi -lthread' \      set LIBS       = ( '-L/usr/local/mpi/lib/solaris/ch_shmem -lmpi -lthread' \
150                         '-lsocket -lnsl -fast' )                         '-lsocket -lnsl' )
151      set NOOPTFILES = ( 'barrier.F different_multiple.F load_external_fields.F')      set NOOPTFILES = ( 'barrier.F different_multiple.F load_external_fields.F ini_vertical_grid.F')
152        breaksw
153      case IRIX32:
154        echo "Configuring for SGI ONYX running IRIX64"
155        set DEFINES    = ( ${DEFINES} '-DTARGET_SGI -DWORDLENGTH=4' )
156        set INCLUDES   = ( '-I/usr/include' )
157        set FFLAGS     = ( '-extend_source -bytereclen -r10000 -64' )
158        set FOPTIM     = ( '-O2' )
159        set NOOPTFLAGS = ( '-O0' )
160        set NOOPTFILES = ( 'barrier.F different_multiple.F ' \
161                           'load_external_fields.F' )
162        set LIBS       = ( '-lmpi' )
163        breaksw
164      case HP-UX+mpi:
165        set FC         = ( 'mpif77' )
166        set LINK       = ( 'mpif77' )
167        set INCLUDES   = ( '-I/opt/mpi/include' )
168      case HP-UX:
169        echo "Configuring for HP Exemplar"
170        set CPP        = ( '/usr/ccs/lbin/cpp -P' )
171        set DEFINES    = ( ${DEFINES}  '-DTARGET_HP -DWORDLENGTH=4' )
172        set FFLAGS     = ( '+es +U77 +Onoautopar +Oexemplar_model' \
173                           '+Okernel_threads' )
174        set FOPTIM     = ( '+O2' )
175        set NOOPTFLAGS = ( '+O0' )
176        set NOOPTFILES = ( 'barrier.F different_multiple.F' \
177                           'load_external_fields.F' )
178        breaksw
179      case Linux+mpi:
180        set LIBS       = ( '-L/usr/local/lib/LINUX/ch_p4/ -lfmpich -lmpich' )
181      case Linux:
182        set LN         = ( '/bin/ln -fs' )
183        set CPP        = ( '/usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/cpp  -traditional -P' )
184        set DEFINES    = ( ${DEFINES} '-D_BYTESWAPIO -DWORDLENGTH=4' )
185        set INCLUDES   = ( '-I/usr/local/include' )
186        set FC         = ( 'g77' )
187        set FFLAGS     = ( ' ' )
188        set FOPTIM     = ( '-O3 -funroll-loops ' )
189        set LINK       = ( 'g77' )
190        breaksw
191      case Linux+pgi:
192        set LN         = ( '/bin/ln -fs' )
193        set CPP        = ( '/usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/cpp -P' )
194        set DEFINES    = ( ${DEFINES} '-DWORDLENGTH=4' )
195        set INCLUDES   = ( '-I/usr/local/include' )
196        set FC         = ( 'pgf77' )
197        set FFLAGS     = ( '-byteswapio' )
198        set FOPTIM     = ( '-tp p6 -v -O2 -Munroll -Mvect=cachesize:512000,transform -Kieee' )
199        set LINK       = ( 'pgf77' )
200        set LIBS       = ( '-L/usr/local/lib/LINUX/ch_p4/ -lfmpich -lmpich -Kieee' )
201      breaksw      breaksw
202    default:    default:
203      echo "Error: platform not recognized: uname -p = " $platform$USEMPI      echo "Error: platform not recognized: uname -p = " $platform$USEMPI
# Line 154  endsw Line 213  endsw
213  ###############################################################################  ###############################################################################
214    
215  # Create list of files  # Create list of files
216  set flist = `ls -1 ${SOURCEDIRS} | grep '.*\.F'`  set flist = `ls -1 ${SOURCEDIRS} | grep '.*\.[F]$'`
217  if ( $#flist ) then  if ( $#flist ) then
218   echo -n "SRCFILES = " > srclist.inc   echo -n "SRCFILES = " > srclist.inc
219   echo -n "F77FILES = " > f77list.inc   echo -n "F77FILES = " > f77list.inc
# Line 168  if ( $#flist ) then Line 227  if ( $#flist ) then
227    echo ' \' >> objlist.inc    echo ' \' >> objlist.inc
228    echo -n "           " ${fname:r}.o >> objlist.inc    echo -n "           " ${fname:r}.o >> objlist.inc
229   end   end
  echo " " >> srclist.inc  
  echo " " >> f77list.inc  
  echo " " >> objlist.inc  
230  else  else
231   echo No source files found...\!   echo No source files found...\!
232   exit   exit
233  endif  endif
234    set flist = `ls -1 ${SOURCEDIRS} | grep '.*\.[c]$'`
235    if ( $#flist ) then
236     foreach ff ( ${flist} )
237      set fname = ( ${ff:t}       )
238      echo ' \' >> objlist.inc
239      echo -n "           " ${fname:r}.o >> objlist.inc
240    endif
241    echo " " >> srclist.inc
242    echo " " >> f77list.inc
243    echo " " >> objlist.inc
244    
245  # Convert lists of directories into command-line options  # Convert lists of directories into command-line options
246  foreach inc ($INCLUDEDIRS)  foreach inc ($INCLUDEDIRS)
# Line 182  foreach inc ($INCLUDEDIRS) Line 248  foreach inc ($INCLUDEDIRS)
248  end  end
249  set SRCSTARS = ( )  set SRCSTARS = ( )
250  foreach dr ($SOURCEDIRS)  foreach dr ($SOURCEDIRS)
251   set SRCSTARS = ("${SRCSTARS}" $dr/\*.F)   set SRCSTARS = ("${SRCSTARS}" $dr\*.\[Fc\] )
252  end  end
253    
254  set THISHOSTNAME = ( `hostname` )  set THISHOSTNAME = ( `hostname` )
# Line 228  EXECUTABLE = \$(EXEDIR)${EXECUTABLE} Line 294  EXECUTABLE = \$(EXEDIR)${EXECUTABLE}
294  # Unix ln (link)  # Unix ln (link)
295  LN = ${LN}  LN = ${LN}
296  # C preprocessor  # C preprocessor
297  CPP = ${CPP}  CPP = cat \$< | ../tools/set64bitConst.sh | ${CPP}
298  # Special preprocessor (KAP on DECs, FPP on Crays)  # Special preprocessor (KAP on DECs, FPP on Crays)
299  KPP = ${KPP}  KPP = ${KPP}
300  # Fortran compiler  # Fortran compiler
# Line 262  rm -f srclist.inc f77list.inc objlist.in Line 328  rm -f srclist.inc f77list.inc objlist.in
328  cat >> ${mfile} <<EOF  cat >> ${mfile} <<EOF
329    
330  .SUFFIXES:  .SUFFIXES:
331  .SUFFIXES: .o .f .p .F  .SUFFIXES: .o .f .p .F .c
332    
333  all: \$(EXECUTABLE)  all: \$(EXECUTABLE)
334  \$(EXECUTABLE): \$(OBJFILES)  \$(EXECUTABLE): \$(OBJFILES)
# Line 274  depend: Line 340  depend:
340          makedepend -o .f \$(INCLUDES) \$(SRCFILES)          makedepend -o .f \$(INCLUDES) \$(SRCFILES)
341  clean:  clean:
342          -rm -rf *.o *.f *.p ${RMFILES}          -rm -rf *.o *.f *.p ${RMFILES}
343    Clean:
344            @make clean
345            -find . -type l -exec rm {} \;
346            -rm Makefile.bak
347    
348  # The normal chain of rules is (  .F - .f - .o  )  # The normal chain of rules is (  .F - .f - .o  )
349  .F.f:  .F.f:
350          \$(CPP) \$(DEFINES) \$(INCLUDES) \$< > \$@          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@
351  .f.o:  .f.o:
352          \$(FC) \$(FFLAGS) \$(FOPTIM) -c \$<          \$(FC) \$(FFLAGS) \$(FOPTIM) -c \$<
353    
354  # Special exceptions that use the ( .F - .p - .f - .o ) rule-chain  # Special exceptions that use the ( .F - .p - .f - .o ) rule-chain
355  .F.p:  .F.p:
356          \$(CPP) \$(DEFINES) \$(INCLUDES) \$< > \$@          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@
357  .p.f:  .p.f:
358          \$(KPP) \$(KFLAGS1)\$@ \$(KFLAGS2) \$<          \$(KPP) \$(KFLAGS1)\$@ \$(KFLAGS2) \$<
359  EOF  EOF

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.11

  ViewVC Help
Powered by ViewVC 1.1.22