/[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.22 by adcroft, Thu Nov 30 19:58:13 2000 UTC revision 1.22.2.1 by adcroft, Thu Jan 25 15:08:05 2001 UTC
# Line 26  while ($#allargs) Line 26  while ($#allargs)
26   case -platform*:   case -platform*:
27     set platform = ( `echo $arg | sed 's/-platform=//' `)     set platform = ( `echo $arg | sed 's/-platform=//' `)
28     breaksw     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:   case -mpi:
36     echo "Enabling MPI options"     echo "Enabling MPI options"
37     set USEMPI     set USEMPI
# Line 47  while ($#allargs) Line 53  while ($#allargs)
53   shift allargs   shift allargs
54  end  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  if ($?platform == 0) then
60   set platform = (`uname`)   set platform = (`uname`)
61  endif  endif
62  if ($?mfile == 0) set mfile = ( Makefile.$platform )  # If name of makefile wasn't specified then use default "Makefile"
63    if ($?mfile == 0) set mfile = ( Makefile )
64    
65  set mach  = ( `uname -a` )  set mach  = ( `uname -a` )
66  echo Operating system: $mach  echo Operating system: $mach
67    
68    
69  # Directories for source, includes, binaries and executables  # Directories for source, includes, binaries and executables
70  # Note  # Note
71  # o If you prefer/need everything under a single directory  # o If you prefer/need everything under a single directory
72  #   copy everything in ../eesupp/src, ../model/src,  #   copy everything in ../eesupp/src, ../model/src,
73  #   ../eesupp/inc and ../model/inc into a directory and then  #   ../eesupp/inc and ../model/inc into a directory and then
74  #   edit the paths below to ./  #   edit the paths below to ./
75  set SOURCEDIRS  = ( ../eesupp/src/ ../model/src/ ../diags/src/ ../pkg/*/ )  #
76  set INCLUDEDIRS = ( ./ ../eesupp/inc/ ../model/inc/ ../diags/inc/ ../pkg/*/ )  # If -rootdir wasn't specified then assume script is being run from bin
77  set BUILDDIR    = ( ../bin/ )  # but if it was supplied then we should place the executable in the build dir
78  set EXEDIR      = ( ../exe/ )  if ($?ROOTDIR == 0) then
79  set EXECUTABLE  = ( mitgcmuv )    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  = ( $ROOTDIR/{eesupp,model,diags}/src/ $ROOTDIR/pkg/[a-z]*/ $MYMODS/ )
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.  # This is the generic configuration.
96  # Platform specific options are chosen below  # Platform specific options are chosen below
97  set LN         = ( 'ln -sf' )  set LN         = ( 'ln -s' )
98  set CPP        = ( '/lib/cpp -P' )  set CPP        = ( '/lib/cpp -P' )
99  set KPP        = (  )  set KPP        = (  )
100  set FC         = ( 'f77' )  set FC         = ( 'f77' )
# Line 172  switch ($platform$USEMPI) Line 198  switch ($platform$USEMPI)
198      set LIBS       = ( '-lmpi' )      set LIBS       = ( '-lmpi' )
199      breaksw      breaksw
200    case SunOS:    case SunOS:
201      set LN         = ( '/usr/bin/ln -fs' )      set LN         = ( '/usr/bin/ln -s' )
202      set CPP        = ( '/usr/ccs/lib/cpp -P' )      set CPP        = ( '/usr/ccs/lib/cpp -P' )
203      set DEFINES    = ( ${DEFINES} '-DTARGET_SUN -DWORDLENGTH=4' )      set DEFINES    = ( ${DEFINES} '-DTARGET_SUN -DWORDLENGTH=4' )
204      set FFLAGS     = ( '-stackvar -explicitpar -vpara -e -u -noautopar')      set FFLAGS     = ( '-stackvar -explicitpar -vpara -e -u -noautopar')
# Line 181  switch ($platform$USEMPI) Line 207  switch ($platform$USEMPI)
207      set NOOPTFILES = ( 'barrier.F different_multiple.F external_fields_load.F ini_vertical_grid.F')      set NOOPTFILES = ( 'barrier.F different_multiple.F external_fields_load.F ini_vertical_grid.F')
208      breaksw      breaksw
209    case SunOS+mpi:    case SunOS+mpi:
210      set LN         = ( '/usr/bin/ln -fs' )      set LN         = ( '/usr/bin/ln -s' )
211      set CPP        = ( '/usr/ccs/lib/cpp -P' )      set CPP        = ( '/usr/ccs/lib/cpp -P' )
212      set DEFINES    = ( ${DEFINES} '-DTARGET_SUN -DWORDLENGTH=4' )      set DEFINES    = ( ${DEFINES} '-DTARGET_SUN -DWORDLENGTH=4' )
213      set INCLUDES   = ( '-I/usr/local/mpi/include' )      set INCLUDES   = ( '-I/usr/local/mpi/include' )
# Line 222  switch ($platform$USEMPI) Line 248  switch ($platform$USEMPI)
248      set LIBS       = ( '-L/usr/local/lib/LINUX/ch_p4/ -lfmpich -lmpich' )      set LIBS       = ( '-L/usr/local/lib/LINUX/ch_p4/ -lfmpich -lmpich' )
249      set INCLUDES   = ( '-I/usr/local/include' )      set INCLUDES   = ( '-I/usr/local/include' )
250    case Linux:    case Linux:
251      set LN         = ( '/bin/ln -fs' )      set LN         = ( '/bin/ln -s' )
252      set CPP        = ( '/lib/cpp  -traditional -P' )      set CPP        = ( '/lib/cpp  -traditional -P' )
253      set DEFINES    = ( ${DEFINES} '-D_BYTESWAPIO -DWORDLENGTH=4' )      set DEFINES    = ( ${DEFINES} '-D_BYTESWAPIO -DWORDLENGTH=4' )
254      set FC         = ( 'g77' )      set FC         = ( 'g77' )
# Line 239  switch ($platform$USEMPI) Line 265  switch ($platform$USEMPI)
265       set LIBS       = ( '-L/usr/local/lib/LINUX/ch_p4/ -lfmpich -lmpich' )       set LIBS       = ( '-L/usr/local/lib/LINUX/ch_p4/ -lfmpich -lmpich' )
266      endif      endif
267    case Linux+pgi:    case Linux+pgi:
268      set LN         = ( '/bin/ln -fs' )      set LN         = ( '/bin/ln -s' )
269      set CPP        = ( '/lib/cpp -traditional -P' )      set CPP        = ( '/lib/cpp -traditional -P' )
270      set DEFINES    = ( ${DEFINES} '-DWORDLENGTH=4' )      set DEFINES    = ( ${DEFINES} '-DWORDLENGTH=4' )
271      set FC         = ( 'pgf77' )      set FC         = ( 'pgf77' )
# Line 259  switch ($platform$USEMPI) Line 285  switch ($platform$USEMPI)
285    case sn7113:    case sn7113:
286      set FC         = ( 'f90' )      set FC         = ( 'f90' )
287      set LINK       = ( 'f90' )      set LINK       = ( 'f90' )
288      set LN         = ( '/bin/ln -fs' )      set LN         = ( '/bin/ln -s' )
289      set CPP        = ( '/opt/ctl/bin/cpp -N -P' )      set CPP        = ( '/opt/ctl/bin/cpp -N -P' )
290      set DEFINES    = ( ${DEFINES} '-DTARGET_CRAY_VECTOR -DWORDLENGTH=4' )      set DEFINES    = ( ${DEFINES} '-DTARGET_CRAY_VECTOR -DWORDLENGTH=4' )
291      set FFLAGS     = ( '-m3 -Rabc -N 132')      set FFLAGS     = ( '-m3 -Rabc -N 132')
# Line 271  switch ($platform$USEMPI) Line 297  switch ($platform$USEMPI)
297    case sn3002:    case sn3002:
298      set FC         = ( 'f90' )      set FC         = ( 'f90' )
299      set LINK       = ( 'f90' )      set LINK       = ( 'f90' )
300      set LN         = ( '/bin/ln -fs' )      set LN         = ( '/bin/ln -s' )
301      set CPP        = ( '/opt/ctl/bin/cpp -N -P' )      set CPP        = ( '/opt/ctl/bin/cpp -N -P' )
302      set DEFINES    = ( ${DEFINES} '-DTARGET_CRAY_VECTOR -DWORDLENGTH=4' )      set DEFINES    = ( ${DEFINES} '-DTARGET_CRAY_VECTOR -DWORDLENGTH=4' )
303      set FFLAGS     = ( '-m3 -Rabc -ei -eI -s cf77types -N 132')      set FFLAGS     = ( '-m3 -Rabc -ei -eI -s cf77types -N 132')
# Line 362  cat >> ${mfile} <<EOF Line 388  cat >> ${mfile} <<EOF
388  # LINK         : Command for link editor program  # LINK         : Command for link editor program
389  # LIBS         : Library flags /or/ additional optimization/debugging flags  # LIBS         : Library flags /or/ additional optimization/debugging flags
390    
391  BUILDDIR   = ${BUILDDIR}    ROOTDIR     = ${ROOTDIR}
392  SOURCEDIRS = ${SOURCEDIRS}  BUILDDIR    = ${BUILDDIR}  
393    SOURCEDIRS  = ${SOURCEDIRS}
394  INCLUDEDIRS = ${INCLUDEDIRS}  INCLUDEDIRS = ${INCLUDEDIRS}
395  EXEDIR     = ${EXEDIR}  EXEDIR      = ${EXEDIR}
396  EXECUTABLE = \$(EXEDIR)${EXECUTABLE}  EXECUTABLE  = \$(EXEDIR)${EXECUTABLE}
397    TOOLSDIR    = ${TOOLSDIR}
398    
399  EOF  EOF
400    
# Line 408  cat >> ${mfile} <<EOF Line 436  cat >> ${mfile} <<EOF
436  # Unix ln (link)  # Unix ln (link)
437  LN = ${LN}  LN = ${LN}
438  # C preprocessor  # C preprocessor
439  CPP = cat \$< | ../tools/set64bitConst.sh | ${CPP}  CPP = cat \$< | \$(TOOLSDIR)/set64bitConst.sh | ${CPP}
440  # Special preprocessor (KAP on DECs, FPP on Crays)  # Special preprocessor (KAP on DECs, FPP on Crays)
441  KPP = ${KPP}  KPP = ${KPP}
442  # Fortran compiler  # Fortran compiler
# Line 449  cat >> ${mfile} <<EOF Line 477  cat >> ${mfile} <<EOF
477  all: \$(EXECUTABLE)  all: \$(EXECUTABLE)
478  \$(EXECUTABLE): \$(OBJFILES)  \$(EXECUTABLE): \$(OBJFILES)
479          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(LIBS)          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(LIBS)
480  links:  links: \$(SRCFILES)
481          @-\$(LN) $SRCSTARS .  #       @-\$(LN) $SRCSTARS .
482  depend:  depend:
483          @make links          @make links
484          makedepend -o .f \$(INCLUDES) \$(SRCFILES)          makedepend -o .f \$(INCLUDES) \$(SRCFILES)
# Line 465  Clean: Line 493  Clean:
493          -rm Makefile.bak          -rm Makefile.bak
494  CLEAN:  CLEAN:
495          @make Clean          @make Clean
496          -find ../verification/*/input/ -name "*.meta" -exec rm {} \;          -find \$(ROOTDIR)/verification/*/input/ -name "*.meta" -exec rm {} \;
497          -find ../verification/*/input/ -name "*.data" -exec rm {} \;          -find \$(ROOTDIR)/verification/*/input/ -name "*.data" -exec rm {} \;
498          -rm \$(EXECUTABLE)          -rm \$(EXECUTABLE)
499    
500  # The normal chain of rules is (  .F - .f - .o  )  # The normal chain of rules is (  .F - .f - .o  )
# Line 492  foreach sf ($NOOPTFILES) Line 520  foreach sf ($NOOPTFILES)
520   echo "${fname:r}.o: ${fname:r}.f" >> ${mfile}   echo "${fname:r}.o: ${fname:r}.f" >> ${mfile}
521   echo ' $(FC) $(FFLAGS) $(NOOPTFLAGS) -c $<' >> ${mfile}   echo ' $(FC) $(FFLAGS) $(NOOPTFLAGS) -c $<' >> ${mfile}
522  end  end
523  echo >> ${mfile}  echo "" >> ${mfile}
524    
525    foreach dr ($SOURCEDIRS)
526    set srcfiles=(`cd $dr; ls *.[cF]`:)
527    echo "# These are the rules for creating the links from $dr" >> ${mfile}
528    echo $srcfiles >> ${mfile}
529    echo '\t$(LN) '$dr'$@ $@' >> ${mfile}
530    end
531    
532    echo "" >> ${mfile}
533  echo "# DO NOT DELETE" >> ${mfile}  echo "# DO NOT DELETE" >> ${mfile}
534    
535  exit  exit

Legend:
Removed from v.1.22  
changed lines
  Added in v.1.22.2.1

  ViewVC Help
Powered by ViewVC 1.1.22