/[MITgcm]/MITgcm/tools/configure
ViewVC logotype

Diff of /MITgcm/tools/configure

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

revision 1.1 by adcroft, Wed Jul 1 14:01:12 1998 UTC revision 1.4 by adcroft, Fri Jul 3 18:45:03 1998 UTC
# Line 8  Line 8 
8    
9  # Process command-line arguments  # Process command-line arguments
10  set allargs=( $argv )  set allargs=( $argv )
11  foreach arg ($allargs)  while ($#allargs)
12     set arg = $allargs[1]
13   switch ($arg)   switch ($arg)
14     case -makefile*:
15       if ($arg == "-makefile") then
16         set mfile = ( Makefile )
17       else
18         set mfile = ( `echo $arg | sed 's/-makefile=//' `)
19       endif
20       breaksw
21     case -platform:
22     case -platform=:
23       echo "To change platform you must specify one with -platform="
24       echo "eg. -platform=sparc  or  -platform=mips"
25       exit
26       breaksw
27     case -platform*:
28       set platform = ( `echo $arg | sed 's/-platform=//' `)
29       breaksw
30   case -mpi:   case -mpi:
31     echo "Enabling MPI options"     echo "Enabling MPI options"
32     set USEMPI     set USEMPI
33     breaksw     breaksw
34     case -help:
35       echo "usage: $0 [-help] [-makefile[=...]] [-platform=...] [-mpi]"
36       exit
37       breaksw
38   default:   default:
39     echo "Unknown command-line option: " $arg     echo "Unknown command-line option: " $arg
40       echo $0 "-help to show usage"
41     exit     exit
42     breaksw     breaksw
43   endsw   endsw
44   shift allargs   shift allargs
45  end  end
46    
47  set platform = (`uname -p`)  if ($?platform == 0) set platform = (`uname -p`)
48  set mfile = ( Makefile.$platform )  if ($?mfile == 0) set mfile = ( Makefile.$platform )
49  set mach  = ( `uname -a` )  set mach  = ( `uname -a` )
50  echo Operating system: $mach  echo Operating system: $mach
51    
# Line 33  echo Operating system: $mach Line 55  echo Operating system: $mach
55  #   copy everything in ../eesupp/src, ../model/src,  #   copy everything in ../eesupp/src, ../model/src,
56  #   ../eesupp/inc and ../model/inc into a directory and then  #   ../eesupp/inc and ../model/inc into a directory and then
57  #   edit the paths below to ./  #   edit the paths below to ./
58  set SOURCEDIRS  = ( ../eesupp/src/ ../model/src/ )  set SOURCEDIRS  = ( ../eesupp/src/ ../model/src/ ../diags/src/)
59  set INCLUDEDIRS = ( ../eesupp/inc/ ../model/inc/ )  set INCLUDEDIRS = ( ../eesupp/inc/ ../model/inc/ ../diags/inc/)
60  set BUILDDIR    = ( ../bin/ )  set BUILDDIR    = ( ../bin/ )
61  set EXEDIR      = ( ../exe/ )  set EXEDIR      = ( ../exe/ )
62  set EXECUTABLE  = ( mitgcmuv )  set EXECUTABLE  = ( mitgcmuv )
63    
64  # This is the generic configuration.  # This is the generic configuration.
65  # Platform specific options are chosen below  # Platform specific options are chosen below
66    set LN         = ( 'ln -sf' )
67  set CPP        = ( '/lib/cpp -P' )  set CPP        = ( '/lib/cpp -P' )
68  set KPP        = (  )  set KPP        = (  )
69  set FC         = ( 'f77' )  set FC         = ( 'f77' )
# Line 78  switch ($platform$USEMPI) Line 101  switch ($platform$USEMPI)
101      set FC         = ( 'f90' )      set FC         = ( 'f90' )
102      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 -p1' )
103      set FOPTIM     = ( '-O5 -fast -tune host -inline all' )      set FOPTIM     = ( '-O5 -fast -tune host -inline all' )
104        set NOOPTFLAGS = ( '-O0' )
105      set LIBS       = ( '-lfmpi -lmpi -lkmp_osfp10 -pthread' )      set LIBS       = ( '-lfmpi -lmpi -lkmp_osfp10 -pthread' )
106      set KPPFILES   = ( 'main.F' )      set KPPFILES   = ( 'main.F' )
107        set NOOPTFILES = ( 'barrier.F different_multiple.F load_external_fields.F')
108      set RMFILES    = ( '*.p.out' )      set RMFILES    = ( '*.p.out' )
109      breaksw      breaksw
110    case mips+mpi:    case mips+mpi:
111      echo "Configuring for SGI Mips with MPI"      echo "Configuring for SGI Mips with MPI"
112      set DEFINES    = ( ${DEFINES} '-DTARGET_SGI' )      set DEFINES    = ( ${DEFINES} '-DTARGET_SGI' )
113      set INCLUDES   = ( ${INCLUDES} '-I/usr/local/mpi/include' )      set INCLUDES   = ( '-I/usr/local/mpi/include' )
114      set FC         = ( 'mpif77' )      set FC         = ( 'mpif77' )
115      set LINK       = ( 'mpif77' )      set LINK       = ( 'mpif77' )
116      set FFLAGS     = ( '-extend_source -bytereclen -r10000' )      set FFLAGS     = ( '-extend_source -bytereclen -r10000' )
# Line 95  switch ($platform$USEMPI) Line 120  switch ($platform$USEMPI)
120    case mips:    case mips:
121      echo "Configuring for SGI Mips"      echo "Configuring for SGI Mips"
122      set DEFINES    = ( ${DEFINES} '-DTARGET_SGI' )      set DEFINES    = ( ${DEFINES} '-DTARGET_SGI' )
123        set INCLUDES   = ( '-I/usr/local/mpi/include' )
124      set FFLAGS     = ( '-extend_source -mp -mpio -bytereclen -r10000 -mips4' )      set FFLAGS     = ( '-extend_source -mp -mpio -bytereclen -r10000 -mips4' )
125      set FOPTIM     = ( '-O3' )      set FOPTIM     = ( '-O2' )
126        set NOOPTFLAGS = ( '-O0' )
127        set NOOPTFILES = ( 'barrier.F different_multiple.F ' \
128                           'load_external_fields.F' )
129      set RMFILES    = ( 'rii_files' )      set RMFILES    = ( 'rii_files' )
130      breaksw      breaksw
131    case sparc:    case sparc:
132        set LN         = ( '/usr/bin/ln -fs' )
133      set CPP        = ( '/usr/ccs/lib/cpp -P' )      set CPP        = ( '/usr/ccs/lib/cpp -P' )
134      set DEFINES    = ( ${DEFINES} '-DTARGET_SUN' )      set DEFINES    = ( ${DEFINES} '-DTARGET_SUN' )
135        set INCLUDES   = ( '-I/usr/local/mpi/include' )
136        set FFLAGS     = ( '-stackvar -explicitpar -vpara -e -u -noautopar')
137        set FOPTIM     = ( '-O5' )
138        set NOOPTFLAGS = ( '-O0' )
139        set LIBS       = ( '-L/usr/local/mpi/lib/solaris/ch_shmem -lmpi -lthread' \
140                           '-lsocket -lnsl -fast' )
141        set NOOPTFILES = ( 'barrier.F different_multiple.F load_external_fields.F')
142      breaksw      breaksw
143    default:    default:
144      echo "Error: platform not recognized: uname -p = " $platform$USEMPI      echo "Error: platform not recognized: uname -p = " $platform$USEMPI
# Line 117  endsw Line 154  endsw
154  ###############################################################################  ###############################################################################
155    
156  # Create list of files  # Create list of files
 set Fsrclist = ( )  
 set fsrclist = ( )  
 set objlist = ( )  
157  set flist = `ls -1 ${SOURCEDIRS} | grep '.*\.F'`  set flist = `ls -1 ${SOURCEDIRS} | grep '.*\.F'`
158  if ( $#flist ) then  if ( $#flist ) then
159     echo -n "SRCFILES = " > srclist.inc
160     echo -n "F77FILES = " > f77list.inc
161     echo -n "OBJFILES = " > objlist.inc
162   foreach ff ( ${flist} )   foreach ff ( ${flist} )
163    set fname = ( ${ff:t}       )    set fname = ( ${ff:t}       )
164    set Fsrclist = ( ${Fsrclist} ${fname:r}.F  )    echo " \\" >> srclist.inc
165    set fsrclist = ( ${fsrclist} ${fname:r}.f  )    echo -n "           " ${fname:r}.F >> srclist.inc
166    set objlist = ( ${objlist} ${fname:r}.o )    echo " \\" >> f77list.inc
167      echo -n "           " ${fname:r}.f >> f77list.inc
168      echo " \\" >> objlist.inc
169      echo -n "           " ${fname:r}.o >> objlist.inc
170   end   end
171     echo >> srclist.inc
172     echo >> f77list.inc
173     echo >> objlist.inc
174  else  else
175   echo No source files found...\!   echo No source files found...\!
176   exit   exit
# Line 182  INCLUDEDIRS = ${INCLUDEDIRS} Line 225  INCLUDEDIRS = ${INCLUDEDIRS}
225  EXEDIR     = ${EXEDIR}  EXEDIR     = ${EXEDIR}
226  EXECUTABLE = \$(EXEDIR)${EXECUTABLE}  EXECUTABLE = \$(EXEDIR)${EXECUTABLE}
227    
228    # Unix ln (link)
229    LN = ${LN}
230  # C preprocessor  # C preprocessor
231  CPP = ${CPP}  CPP = ${CPP}
232  # Special preprocessor (KAP on DECs, FPP on Crays)  # Special preprocessor (KAP on DECs, FPP on Crays)
# Line 207  NOOPTFLAGS = ${NOOPTFLAGS} Line 252  NOOPTFLAGS = ${NOOPTFLAGS}
252  # Flags and libraries needed for linking  # Flags and libraries needed for linking
253  LIBS = ${LIBS}  LIBS = ${LIBS}
254    
255  SRCFILES = ${Fsrclist}  EOF
256    
257  F77FILES = ${fsrclist}  cat srclist.inc f77list.inc objlist.inc >> ${mfile}
258    rm -f srclist.inc f77list.inc objlist.inc
259    
260  OBJFILES = ${objlist}  cat >> ${mfile} <<EOF
261    
262  .SUFFIXES:  .SUFFIXES:
263  .SUFFIXES: .o .f .p .F  .SUFFIXES: .o .f .p .F
264    
265  all: \$(EXECUTABLE)  all: \$(EXECUTABLE)
266  \$(EXECUTABLE): \$(OBJFILES)  \$(EXECUTABLE): \$(OBJFILES)
267          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(LIBS) \$(OBJFILES)          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(LIBS)
268  links:  links:
269          @-ln -sf $SRCSTARS .          @-\$(LN) $SRCSTARS .
270  depend:  depend:
271          @make links          @make links
272          makedepend -o .f \$(INCLUDES) \$(SRCFILES)          makedepend -o .f \$(INCLUDES) \$(SRCFILES)

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

  ViewVC Help
Powered by ViewVC 1.1.22