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

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.8

  ViewVC Help
Powered by ViewVC 1.1.22