/[MITgcm]/MITgcm/tools/genmake2
ViewVC logotype

Diff of /MITgcm/tools/genmake2

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

revision 1.51 by adcroft, Wed Dec 3 19:46:10 2003 UTC revision 1.89 by edhill, Wed Jul 21 16:34:46 2004 UTC
# Line 13  Line 13 
13  test_for_package_in_cpp_options() {  test_for_package_in_cpp_options() {
14      cpp_options=$1      cpp_options=$1
15      pkg=$2      pkg=$2
16      grep -i "#define.*ALLOW_$pkg" $cpp_options > /dev/null 2>&1      test_for_string_in_file $cpp_options "^[ ]*#define.*ALLOW_$pkg" || exit 99
17      RETVAL=$?      test_for_string_in_file $cpp_options "^[ ]*#undef.*ALLOW_$pkg" || exit 99
18      if test "x${RETVAL}" = x0 ; then      test_for_string_in_file $cpp_options "^[ ]*#define.*DISABLE_$pkg" || exit 99
19          echo "Error: In $cpp_options there is an illegal line: #define ALLOW_$pkg"      test_for_string_in_file $cpp_options "^[ ]*#undef.*DISABLE_$pkg" || exit 99
20          exit 99  }
21      fi  
22      grep -i "#undef.*ALLOW_$pkg" $cpp_options > /dev/null 2>&1  # Search for particular CPP #cmds associated with MPI
23      RETVAL=$?  # usage: test_for_mpi_in_cpp_eeoptions CPP_file
24      if test "x${RETVAL}" = x0 ; then  test_for_mpi_in_cpp_eeoptions() {
25          echo "Error: In $cpp_options there is an illegal line: #undef ALLOW_$pkg"      cpp_options=$1
26          exit 99      test_for_string_in_file $cpp_options "^[ ]*#define.*ALLOW_USE_MPI" || exit 99
27      fi      test_for_string_in_file $cpp_options "^[ ]*#undef.*ALLOW_USE_MPI" || exit 99
28      grep -i "#define.*DISABLE_$pkg" $cpp_options > /dev/null 2>&1      test_for_string_in_file $cpp_options "^[ ]*#define.*ALWAYS_USE_MPI" || exit 99
29        test_for_string_in_file $cpp_options "^[ ]*#undef.*ALWAYS_USE_MPI" || exit 99
30    }
31    
32    # Search for particular string in a file. Return 1 if detected, 0 if not
33    # usage: test_for_string_in_file file string
34    test_for_string_in_file() {
35        file=$1
36        strng=$2
37        grep -i "$strng" $file > /dev/null 2>&1
38      RETVAL=$?      RETVAL=$?
39      if test "x${RETVAL}" = x0 ; then      if test "x${RETVAL}" = x0 ; then
40          echo "Error: In $cpp_options there is an illegal line: #define DISABLE_$pkg"          printf "Error: In $file there is an illegal line: "
41          exit 99          grep -i "$strng" $file
42            return 1
43      fi      fi
44      grep -i "#undef.*DISABLE_$pkg" $cpp_options > /dev/null 2>&1      return 0
     RETVAL=$?  
     if test "x${RETVAL}" = x0 ; then  
         echo "Error: In $cpp_options there is an illegal line: #undef DISABLE_$pkg"  
         exit 99  
    fi  
45  }  }
46    
47  # Read the $ROOTDIR/pkg/pkg_groups file and expand any references to  # Read the $ROOTDIR/pkg/pkg_groups file and expand any references to
# Line 62  expand_pkg_groups() { Line 67  expand_pkg_groups() {
67          done          done
68          PACKAGES=$new_packages          PACKAGES=$new_packages
69          rm -f ./p[1,2].tmp          rm -f ./p[1,2].tmp
70            return $matched
71      else      else
72          echo "Warning: can't read package groups definition file: $PKG_GROUPS"          echo "Warning: can't read package groups definition file: $PKG_GROUPS"
73      fi      fi
74  }  }
75    
76    #  Check for broken environments (eg. cygwin, MacOSX w/HFS+) that
77    #  cannot distinguish [*.F/*.F90] from [*.f/*.f90] files.
78    check_for_broken_Ff()  {
79        #  Do we have defaults for $FS and/or $FS90 ?
80        tfs=f
81        tfs9=f90
82        if test "x$FS" != x ; then
83            tfs="$FS"
84        fi
85        if test "x$FS90" != x ; then
86            tfs9="$FS90"
87        fi
88    
89        #  First check the ability to create a *.F/.f pair.
90        cat <<EOF >> genmake_hello.F
91          program hello
92          write(*,*) 'hi'
93          stop
94          end
95    EOF
96        cp genmake_hello.F "genmake_hello."$tfs > /dev/null 2>&1
97        RETVAL=$?
98        if test "x$RETVAL" != x0 ; then
99            if test "x$FS" = x ; then
100                FS='for'
101                FS90='fr9'
102                check_for_broken_Ff
103            else
104                cat <<EOF 2>&1
105    ERROR: Your file system cannot distinguish between *.F and *.f files
106      (fails the "cp" test) and this program cannot find a suitable
107      replacement extension.  Please try a different build environment or
108      contact the <MITgcm-support@mitgcm.org> list for help.
109    
110    EOF
111                exit -1
112            fi
113            return
114        fi
115        rm -f genmake_hello.*
116    
117        #  Check the ability of ${MAKE} and ${LN} to use the current set
118        #  of extensions.
119        cat <<EOF >> genmake_hello.F
120          program hello
121          write(*,*) 'hi'
122          stop
123          end
124    EOF
125        test -f Makefile  &&  mv -f Makefile Makefile.bak
126        cat <<EOF >> Makefile
127    %.$tfs : %.F
128    .SUFFIXES:
129    genmake_hello.$tfs: genmake_hello.F
130            $LN genmake_hello.F genmake_hello.$tfs
131    EOF
132        $MAKE "genmake_hello."$tfs > /dev/null 2>&1
133        RETVAL=$?
134        if test "x$RETVAL" != x0 -o ! -f "genmake_hello."$tfs ; then
135            if test "x$FS" = x ; then
136                FS='for'
137                FS90='fr9'
138                check_for_broken_Ff
139            else
140                cat <<EOF 2>&1
141    ERROR: Your file system cannot distinguish between *.F and *.f files
142      (fails the "make/ln" test) and this program cannot find a suitable
143      replacement extension.  Please try a different build environment or
144      contact the <MITgcm-support@mitgcm.org> list for help.
145    
146    EOF
147                exit -1
148                return
149            fi
150        fi
151        rm -f genmake_hello.* Makefile
152        test -f Makefile  &&  mv -f Makefile.bak Makefile
153    
154        #  If we make it here, use the extensions
155        FS=$tfs
156        FS90=$tfs9
157        return
158    }
159    
160    
161    look_for_makedepend()  {
162    
163        #  The "original" makedepend is part of the Imake system that is
164        #  most often distributed with XFree86 or with an XFree86 source
165        #  package.  As a result, many machines (eg. generic Linux) do not
166        #  have a system-default "makedepend" available.  For those
167        #  systems, we have two fall-back options:
168        #
169        #    1) a makedepend implementation shipped with the cyrus-imapd
170        #       package:  ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/
171        #
172        #    2) a known-buggy xmakedpend shell script
173        #
174        #  So the choices are, in order:
175        #
176        #    1) use the user-specified program
177        #    2) use a system-wide default
178        #    3) locally build and use the cyrus implementation
179        #    4) fall back to the buggy local xmakedpend script
180        #
181        if test "x${MAKEDEPEND}" = x ; then
182            which makedepend > /dev/null 2>&1
183            RV0=$?
184            cat <<EOF >> genmake_tc.f
185          program test
186          write(*,*) 'test'
187          stop
188          end
189    EOF
190            makedepend genmake_tc.f > /dev/null 2>&1
191            RV1=$?
192            if test "x${RV0}${RV1}" = x00 ; then
193                MAKEDEPEND=makedepend
194            else
195                echo "    a system-default makedepend was not found."
196                
197                #  Try to build the cyrus implementation
198                rm -f ./genmake_cy_md
199                (
200                    cd $ROOTDIR/tools/cyrus-imapd-makedepend  \
201                        &&  ./configure > /dev/null 2>&1  \
202                        &&  make > /dev/null 2>&1
203                    if test -x ./makedepend.exe ; then
204                        $LN ./makedepend.exe ./makedepend
205                    fi
206                    ./makedepend ifparser.c > /dev/null 2>&1  \
207                        &&  echo "true"
208                ) > ./genmake_cy_md
209                grep true ./genmake_cy_md > /dev/null 2>&1
210                RETVAL=$?
211                if test "x$RETVAL" = x0 ; then
212                    MAKEDEPEND='$(TOOLSDIR)/cyrus-imapd-makedepend/makedepend'
213                else
214                    MAKEDEPEND='$(TOOLSDIR)/xmakedepend'
215                fi
216                rm -f ./genmake_cy_md
217            fi
218        fi
219    }
220    
221    
222  # Guess possible config options for this host  # Guess possible config options for this host
223  find_possible_configs()  {  find_possible_configs()  {
224    
225      tmp1=`uname`"_"`uname -m`      tmp1=`uname`"_"`uname -m`
226      tmp2=`echo $tmp1 | sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`      tmp2=`echo $tmp1 | sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
227      tmp3=`echo $tmp2 | sed -e 's/power macintosh/ppc/'`      tmp3=`echo $tmp2 | sed -e 's/power macintosh/ppc/'`
228      PLATFORM=`echo $tmp3 | sed -e 's/i[3-6]86/ia32/' | sed -e 's/athlon/ia32/'`      tmp1=`echo $tmp3 | sed -e 's|x86_64|amd64|'`
229        tmp2=`echo $tmp1 | sed -e 's/i[3-6]86/ia32/' | sed -e 's/athlon/ia32/'`
230        tmp3=`echo $tmp2 | sed -e 's/cray sv1/craysv1/'`
231        PLATFORM=$tmp3
232        echo $PLATFORM | grep cygwin > /dev/null 2>&1  &&  PLATFORM=cygwin_ia32
233      OFLIST=`(cd $ROOTDIR/tools/build_options; ls | grep "^$PLATFORM")`      OFLIST=`(cd $ROOTDIR/tools/build_options; ls | grep "^$PLATFORM")`
234      echo "  The platform appears to be:  $PLATFORM"      echo "  The platform appears to be:  $PLATFORM"
235            
# Line 93  find_possible_configs()  { Line 249  find_possible_configs()  {
249          CPP="cpp -traditional -P"          CPP="cpp -traditional -P"
250      fi      fi
251    
252      # makedepend is not always available      look_for_makedepend
     if test "x${MAKEDEPEND}" = x ; then  
       which makedepend >& /dev/null  
       RETVAL=$?  
       if test "x${RETVAL}" = x1 ; then  
          echo "    makedepend was not found. Using xmakedpend instead."  
          MAKEDEPEND='$(TOOLSDIR)/xmakedepend'  
       fi  
     fi  
253    
254      # look for possible fortran compilers      # look for possible fortran compilers
255      tmp="$MITGCM_FC $FC efc g77 f77 pgf77 pgf95 ifc f90 f95 mpif77 mpf77 mpxlf95"      tmp="$MITGCM_FC $FC efc g77 f77 pgf77 pgf95 ifc f90 f95 mpif77 mpf77 mpxlf95"
# Line 138  EOF Line 286  EOF
286          echo "   "$p_FC          echo "   "$p_FC
287          if test "x$FC" = x ; then          if test "x$FC" = x ; then
288              FC=`echo $p_FC | $AWK '{print $1}'`              FC=`echo $p_FC | $AWK '{print $1}'`
289                echo "  Setting FORTRAN compiler to: "$FC
290          fi          fi
291      fi      fi
292    
293      for i in $p_FC ; do      if test "x$OPTFILE" = x ; then
294          p_OF=$ROOTDIR"/tools/build_options/"$PLATFORM"_"$i          OPTFILE=$ROOTDIR"/tools/build_options/"$PLATFORM"_"$FC
295          if test -r $p_OF ; then          if test ! -r $OPTFILE ; then
296              OPTFILE=$p_OF               echo "  I looked for the file "$OPTFILE" but did not find it"
297              echo "  The options file:  $p_OF"          fi
298              echo "    appears to match so we'll use it."      fi
299              break  #    echo "  The options file:  $p_OF"
300          fi  #    echo "    appears to match so we'll use it."
301      done  #   for i in $p_FC ; do
302    #p_OF=$ROOTDIR"/tools/build_options/"$PLATFORM"_"$i
303    #if test -r $p_OF ; then
304    #    OPTFILE=$p_OF
305    #    echo "  The options file:  $p_OF"
306    #    echo "    appears to match so we'll use it."
307    #    break
308    #fi
309    #   done
310      if test "x$OPTFILE" = x ; then      if test "x$OPTFILE" = x ; then
311          cat 1>&2 <<EOF          cat 1>&2 <<EOF
312    
# Line 208  get_pdepend_list()  { Line 365  get_pdepend_list()  {
365      . ./.pd_tmp      . ./.pd_tmp
366      rm -f ./.pd_tmp      rm -f ./.pd_tmp
367    
368      echo -n "PNAME = "${}      printf "PNAME = "${}
369  }  }
370    
371    
# Line 222  Usage: "$0" [OPTIONS] Line 379  Usage: "$0" [OPTIONS]
379      -help | --help | -h | --h      -help | --help | -h | --h
380            Print this help message and exit.            Print this help message and exit.
381    
382        -adoptfile NAME | --adoptfile NAME | -adof NAME | --adof NAME
383          -adoptfile=NAME | --adoptfile=NAME | -adof=NAME | --adof=NAME
384              Use "NAME" as the adoptfile.  By default, the file at
385              "tools/adjoint_options/adjoint_default" will be used.
386    
387      -nooptfile | --nooptfile      -nooptfile | --nooptfile
388        -optfile NAME | --optfile NAME | -of NAME | --of NAME        -optfile NAME | --optfile NAME | -of NAME | --of NAME
389        -optfile=NAME | --optfile=NAME | -of=NAME | --of=NAME        -optfile=NAME | --optfile=NAME | -of=NAME | --of=NAME
# Line 246  Usage: "$0" [OPTIONS] Line 408  Usage: "$0" [OPTIONS]
408        --makefile=NAME | -mf=NAME        --makefile=NAME | -mf=NAME
409            Call the makefile "NAME".  The default is "Makefile".            Call the makefile "NAME".  The default is "Makefile".
410    
411        -makedepend NAME | -md NAME
412          --makedepend=NAME | -md=NAME
413              Use "NAME" for the MAKEDEPEND program.
414    
415      -rootdir NAME | --rootdir NAME | -rd NAME | --rd NAME      -rootdir NAME | --rootdir NAME | -rd NAME | --rd NAME
416        -rootdir=NAME | --rootdir=NAME | -rd=NAME | --rd=NAME        -rootdir=NAME | --rootdir=NAME | -rd=NAME | --rd=NAME
417            Specify the location of the MITgcm ROOTDIR as "NAME".            Specify the location of the MITgcm ROOTDIR as "NAME".
# Line 287  Usage: "$0" [OPTIONS] Line 453  Usage: "$0" [OPTIONS]
453            *only* works if it is supported by the OPTFILE that            *only* works if it is supported by the OPTFILE that
454            is being used.            is being used.
455    
456        -mpi | --mpi
457              Include MPI header files and link to MPI libraries
458        -mpi=PATH | --mpi=PATH
459              Include MPI header files and link to MPI libraries using MPI_ROOT
460              set to PATH. i.e. Include files from $PATH/include, link to libraries
461              from $PATH/lib and use binaries from $PATH/bin.
462    
463        -bash NAME
464              Explicitly specify the Bourne or BASH shell to use
465    
466    While it is most often a single word, the "NAME" variables specified    While it is most often a single word, the "NAME" variables specified
467    above can in many cases be a space-delimited string such as:    above can in many cases be a space-delimited string such as:
468    
# Line 307  EOF Line 483  EOF
483    
484  #  Build a CPP macro to automate calling C routines from FORTRAN  #  Build a CPP macro to automate calling C routines from FORTRAN
485  get_fortran_c_namemangling()  {  get_fortran_c_namemangling()  {
486    
487        #echo "FC_NAMEMANGLE = \"$FC_NAMEMANGLE\""
488        if test ! "x$FC_NAMEMANGLE" = x ; then
489            return 0
490        fi
491    
492      default_nm="#define FC_NAMEMANGLE(X) X ## _"      default_nm="#define FC_NAMEMANGLE(X) X ## _"
493            
494      cat > genmake_test.c <<EOF      cat > genmake_test.c <<EOF
# Line 430  EOF Line 612  EOF
612  }  }
613    
614    
615    check_netcdf_libs()  {
616        cat <<EOF > genmake_tnc.for
617          program fgennc
618    #include "netcdf.inc"
619          integer iret, ncid, xid
620          iret = nf_create('genmake_tnc.nc', NF_CLOBBER, ncid)
621          IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)
622          iret = nf_def_dim(ncid, 'X', 11, xid)
623          IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)
624          iret = nf_close(ncid)
625          IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)
626          end
627    EOF
628        #echo "$CPP $DEFINES $INCLUDES"
629        $CPP $DEFINES $INCLUDES genmake_tnc.for > genmake_tnc.f  \
630            &&  $FC $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.f $LIBS >> genmake_tnc.log 2>&1
631        RET_COMPILE=$?
632        test -x ./genmake_tnc  &&  ./genmake_tnc >> genmake_tnc.log 2>&1
633        RETVAL=$?
634        if test "x$RET_COMPILE" = x0 -a "x$RETVAL" = x0 ; then
635            HAVE_NETCDF=t
636        else
637            # try again with "-lnetcdf" added to the libs
638            $CPP $DEFINES $INCLUDES genmake_tnc.for > genmake_tnc.f  \
639                &&  $FC $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.f \
640                $LIBS -lnetcdf >> genmake_tnc_2.log 2>&1
641            RET_COMPILE=$?
642            test -x ./genmake_tnc  &&  ./genmake_tnc >> genmake_tnc.log 2>&1
643            RETVAL=$?
644            if test "x$RET_COMPILE" = x0 -a "x$RETVAL" = x0 ; then
645                LIBS="$LIBS -lnetcdf"
646                HAVE_NETCDF=t
647            else
648                cat genmake_tnc.log >> genmake_warnings
649            fi
650        fi
651        rm -f genmake_tnc*
652    }
653    
654    
655    
656    ###############################################################################
657    #   Sequential part of script starts here
658    ###############################################################################
659    
660  #  Set defaults here  #  Set defaults here
661  COMMANDL="$0 $@"  COMMANDL="$0 $@"
662    
# Line 438  LN= Line 665  LN=
665  S64=  S64=
666  KPP=  KPP=
667  FC=  FC=
668    CPP=
669  LINK=  LINK=
 # DEFINES="-DWORDLENGTH=4"  
670  DEFINES=  DEFINES=
671  PACKAGES=  PACKAGES=
672  ENABLE=  ENABLE=
# Line 456  FOPTIM= Line 683  FOPTIM=
683  CFLAGS=  CFLAGS=
684  KFLAGS1=  KFLAGS1=
685  KFLAGS2=  KFLAGS2=
686    #LDADD=
687  LIBS=  LIBS=
688  KPPFILES=  KPPFILES=
689  NOOPTFILES=  NOOPTFILES=
690  NOOPTFLAGS=  NOOPTFLAGS=
691    MPI=
692    MPIPATH=
693    
694  # DEFINES checked by test compilation  # DEFINES checked by test compilation
695  HAVE_SYSTEM=  HAVE_SYSTEM=
696  HAVE_FDATE=  HAVE_FDATE=
697  FC_NAMEMANGLE=  FC_NAMEMANGLE=
698  HAVE_CLOC=  HAVE_CLOC=
699    HAVE_NETCDF=
700    HAVE_ETIME=
701    
702  MODS=  MODS=
703  TOOLSDIR=  TOOLSDIR=
704  SOURCEDIRS=  SOURCEDIRS=
705  INCLUDEDIRS=  INCLUDEDIRS=
706  STANDARDDIRS=  STANDARDDIRS="USE_THE_DEFAULT"
707    
708    G2ARGS=
709    BASH=
710  PWD=`pwd`  PWD=`pwd`
711  MAKE=make  MAKE=make
712  AWK=awk  AWK=awk
# Line 488  IEEE= Line 722  IEEE=
722  if test "x$MITGCM_IEEE" != x ; then  if test "x$MITGCM_IEEE" != x ; then
723      IEEE=$MITGCM_IEEE      IEEE=$MITGCM_IEEE
724  fi  fi
725    FS=
726    FS90=
727    
728  AUTODIFF_PKG_USED=f  AUTODIFF_PKG_USED=f
729  AD_OPTFILE=  AD_OPTFILE=
# Line 505  TAMC_EXTRA= Line 741  TAMC_EXTRA=
741    
742  #  The following state can be set directly by command-line switches  #  The following state can be set directly by command-line switches
743  gm_s1="OPTFILE PDEPEND PDEFAULT MAKEFILE PLATFORM ROOTDIR MODS DISABLE ENABLE"  gm_s1="OPTFILE PDEPEND PDEFAULT MAKEFILE PLATFORM ROOTDIR MODS DISABLE ENABLE"
744  gm_s2="FC IEEE MPI JAM DUMPSTATE STANDARDDIRS"  gm_s2="FC CPP IEEE MPI JAM DUMPSTATE STANDARDDIRS"
745    
746  #  The following state is not directly set by command-line switches  #  The following state is not directly set by command-line switches
747  gm_s3="LN S64 KPP LINK PACKAGES MAKEDEPEND PDEPEND PDEFAULT INCLUDES FFLAGS FOPTIM "  gm_s3="LN S64 KPP LINK PACKAGES MAKEDEPEND PDEPEND PDEFAULT INCLUDES FFLAGS FOPTIM "
748  gm_s4="CFLAGS KFLAGS1 KFLAGS2 LIBS KPPFILES NOOPTFILES NOOPTFLAGS"  gm_s4="CFLAGS KFLAGS1 KFLAGS2 LIBS KPPFILES NOOPTFILES NOOPTFLAGS"
749  gm_s5="TOOLSDIR SOURCEDIRS INCLUDEDIRS PWD MAKE THISHOSTNAME THISDATE MACHINE"  gm_s5="TOOLSDIR SOURCEDIRS INCLUDEDIRS PWD MAKE THISHOSTNAME THISDATE MACHINE"
750  gm_s6="EXECUTABLE EXEHOOK EXEDIR PACKAGES_CONF"  gm_s6="EXECUTABLE EXEHOOK EXEDIR PACKAGES_CONF"
751  gm_s7="HAVE_SYSTEM HAVE_FDATE FC_NAMEMANGLE"  gm_s7="HAVE_SYSTEM HAVE_FDATE FC_NAMEMANGLE HAVE_ETIME"
752    
753  #  The following are all related to adjoint/tangent-linear stuff  #  The following are all related to adjoint/tangent-linear stuff
754  gm_s10="AUTODIFF_PKG_USED AD_OPTFILE TAMC TAF AD_TAMC_FLAGS AD_TAF_FLAGS"  gm_s10="AUTODIFF_PKG_USED AD_OPTFILE TAMC TAF AD_TAMC_FLAGS AD_TAF_FLAGS"
# Line 541  for i in . $MODS ; do Line 777  for i in . $MODS ; do
777          break          break
778      fi      fi
779  done  done
780  echo -n "  getting local config information:  "  printf "  getting local config information:  "
781  if test -e $gm_local ; then  if test -f $gm_local ; then
782      echo "using $gm_local"      echo "using $gm_local"
783      . $gm_local      . $gm_local
784      # echo "DISABLE=$DISABLE"      # echo "DISABLE=$DISABLE"
# Line 563  fi Line 799  fi
799  #done  #done
800  #parse_options  #parse_options
801  ac_prev=  ac_prev=
802  for ac_option ; do  for ac_option in $@ ; do
803    
804        G2ARGS="$G2ARGS \"$ac_option\""
805    
806      # If the previous option needs an argument, assign it.      # If the previous option needs an argument, assign it.
807      if test -n "$ac_prev"; then      if test -n "$ac_prev"; then
# Line 606  for ac_option ; do Line 844  for ac_option ; do
844          -make=* | --make=* | -m=* | --m=*)          -make=* | --make=* | -m=* | --m=*)
845              MAKE=$ac_optarg ;;              MAKE=$ac_optarg ;;
846                    
847            -bash | --bash)
848                ac_prev=BASH ;;
849            -bash=* | --bash=*)
850                BASH=$ac_optarg ;;
851            
852            -makedepend | --makedepend | -md | --md)
853                ac_prev=MAKEDEPEND ;;
854            -makedepend=* | --makedepend=* | -md=* | --md=*)
855                MAKEDEPEND=$ac_optarg ;;
856            
857          -makefile | --makefile | -ma | --ma)          -makefile | --makefile | -ma | --ma)
858              ac_prev=MAKEFILE ;;              ac_prev=MAKEFILE ;;
859          -makefile=* | --makefile=* | -ma=* | --ma=*)          -makefile=* | --makefile=* | -ma=* | --ma=*)
# Line 653  for ac_option ; do Line 901  for ac_option ; do
901          -fc=* | --fc=*)          -fc=* | --fc=*)
902              FC=$ac_optarg ;;              FC=$ac_optarg ;;
903                    
904            -fs | --fs)
905                ac_prev=FS ;;
906            -fs=* | --fs=*)
907                FS=$ac_optarg ;;
908            
909            -fs90 | --fs90)
910                ac_prev=FS90 ;;
911            -fs90=* | --fs90=*)
912                FS90=$ac_optarg ;;
913            
914          -ieee | --ieee)          -ieee | --ieee)
915              IEEE=true ;;              IEEE=true ;;
916          -noieee | --noieee)          -noieee | --noieee)
917              IEEE= ;;              IEEE= ;;
918    
919            -mpi | --mpi)
920                MPI=true ;;
921            -mpi=* | --mpi=*)
922                MPIPATH=$ac_optarg
923                MPI=true ;;
924                    
925  #       -jam | --jam)  #       -jam | --jam)
926  #           JAM=1 ;;  #           JAM=1 ;;
# Line 703  if test -f ./.genmakerc ; then Line 967  if test -f ./.genmakerc ; then
967  fi  fi
968    
969  if test "x${ROOTDIR}" = x ; then  if test "x${ROOTDIR}" = x ; then
970      if test "${PWD##/*/}" = "bin" -a -d ../model -a -d ../eesup -a -d ../pkg ; then      tmp=`echo $PWD | sed -e 's/\// /g' | awk '{print $NR}'`
971        if test "x$tmp" = "xbin" -a -d ../model -a -d ../eesup -a -d ../pkg ; then
972          ROOTDIR=".."          ROOTDIR=".."
973      else      else
974          for d in . .. ../.. ../../.. ../../../.. ../../../../.. ; do          for d in . .. ../.. ../../.. ../../../.. ../../../../.. ; do
975              if [ -d "$d/model" -a -d "$d/eesupp" -a -d "$d/pkg" ]; then              if [ -d "$d/model" -a -d "$d/eesupp" -a -d "$d/pkg" ]; then
976                  ROOTDIR=$d                  ROOTDIR=$d
977                  echo -n "Warning:  ROOTDIR was not specified but there appears to be"                  printf "Warning:  ROOTDIR was not specified but there appears to be"
978                  echo " a copy of MITgcm at \"$ROOTDIR\" so we'll try it."                  echo " a copy of MITgcm at \"$ROOTDIR\" so we'll try it."
979                  break                  break
980              fi              fi
# Line 743  if test "x$OPTFILE" != xNONE ; then Line 1008  if test "x$OPTFILE" != xNONE ; then
1008          . "$OPTFILE"          . "$OPTFILE"
1009          RETVAL=$?          RETVAL=$?
1010          if test "x$RETVAL" != x0 ; then          if test "x$RETVAL" != x0 ; then
1011              echo -n "Error: failed to source OPTFILE \"$OPTFILE\""              printf "Error: failed to source OPTFILE \"$OPTFILE\""
1012              echo "--please check that variable syntax is bash-compatible"              echo "--please check that variable syntax is bash-compatible"
1013              exit 1              exit 1
1014          fi          fi
# Line 756  if test "x$OPTFILE" != xNONE ; then Line 1021  if test "x$OPTFILE" != xNONE ; then
1021      fi      fi
1022  fi  fi
1023    
1024    #  Check for broken systems that cannot correctly distinguish *.F and *.f files
1025    # check_for_broken_Ff
1026    
1027  echo "  getting AD_OPTFILE information:  "  echo "  getting AD_OPTFILE information:  "
1028  if test "x${AD_OPTFILE}" = x ; then  if test "x${AD_OPTFILE}" = x ; then
1029      if test "x$MITGCM_AD_OF" = x ; then      if test "x$MITGCM_AD_OF" = x ; then
# Line 770  if test "x${AD_OPTFILE}" != xNONE ; then Line 1038  if test "x${AD_OPTFILE}" != xNONE ; then
1038          . "$AD_OPTFILE"          . "$AD_OPTFILE"
1039          RETVAL=$?          RETVAL=$?
1040          if test "x$RETVAL" != x0 ; then          if test "x$RETVAL" != x0 ; then
1041              echo -n "Error: failed to source AD_OPTFILE \"$AD_OPTFILE\""              printf "Error: failed to source AD_OPTFILE \"$AD_OPTFILE\""
1042              echo "--please check that variable syntax is bash-compatible"              echo "--please check that variable syntax is bash-compatible"
1043              exit 1              exit 1
1044          fi          fi
# Line 785  fi Line 1053  fi
1053    
1054  #  Check that FC, LINK, CPP, S64, LN, and MAKE are defined.  If not,  #  Check that FC, LINK, CPP, S64, LN, and MAKE are defined.  If not,
1055  #  either set defaults or complain and abort!  #  either set defaults or complain and abort!
1056    if test ! "x$BASH" = x ; then
1057        # add a trailing space so that it works within the Makefile syntax (see below)
1058        BASH="$BASH "
1059    fi
1060  if test "x$FC" = x ; then  if test "x$FC" = x ; then
1061      cat <<EOF 1>&2      cat <<EOF 1>&2
1062    
# Line 798  fi Line 1070  fi
1070  if test "x$LINK" = x ; then  if test "x$LINK" = x ; then
1071      LINK=$FC      LINK=$FC
1072  fi  fi
 if test "x$CPP" = x ; then  
     CPP="cpp"  
 fi  
1073  if test "x$MAKE" = x ; then  if test "x$MAKE" = x ; then
1074      MAKE="make"      MAKE="make"
1075  fi  fi
1076    if test "x$CPP" = x ; then
1077        CPP=cpp
1078    fi
1079    #EH3 === UGLY ===
1080    #  The following is an ugly little hack to check for $CPP in /lib/ and
1081    #  it should eventually be replaced with a more general function that
1082    #  searches a combo of the user's path and a list of "usual suspects"
1083    #  to find the correct location for binaries such as $CPP.
1084    for i in " " "/lib/" ; do
1085        echo "#define A a" | $i$CPP > test_cpp 2>&1 && CPP=$i$CPP
1086    done
1087    #EH3 === UGLY ===
1088  echo "#define A a" | $CPP > test_cpp 2>&1  echo "#define A a" | $CPP > test_cpp 2>&1
1089  RETVAL=$?  RETVAL=$?
1090  if test "x$RETVAL" != x0 ; then  if test "x$RETVAL" != x0 ; then
# Line 820  EOF Line 1101  EOF
1101  else  else
1102      rm -f test_cpp      rm -f test_cpp
1103  fi  fi
1104  if test "x$MAKEDEPEND" = x ; then  look_for_makedepend
     MAKEDEPEND=makedepend  
 fi  
1105  if test "x$LN" = x ; then  if test "x$LN" = x ; then
1106      LN="ln -s"      LN="ln -s"
1107  fi  fi
# Line 840  EOF Line 1119  EOF
1119  fi  fi
1120  rm -f genmake_test_ln genmake_tlink  rm -f genmake_test_ln genmake_tlink
1121    
1122    #  Check for broken *.F/*.f handling and fix if possible
1123    check_for_broken_Ff
1124    
1125    if test ! "x$MPI" = x ; then
1126          echo "  Turning on MPI cpp macros"
1127          DEFINES="$DEFINES -DALLOW_USE_MPI -DALWAYS_USE_MPI"
1128    fi
1129    
1130  printf "\n===  Checking system libraries  ===\n"  printf "\n===  Checking system libraries  ===\n"
1131  echo -n "  Do we have the system() command using $FC...  "  printf "  Do we have the system() command using $FC...  "
1132  cat > genmake_tcomp.f <<EOF  cat > genmake_tcomp.f <<EOF
1133        program hello        program hello
1134        call system('echo hi')        call system('echo hi')
# Line 860  else Line 1146  else
1146  fi  fi
1147  rm -f genmake_tcomp*  rm -f genmake_tcomp*
1148    
1149  echo -n "  Do we have the fdate() command using $FC...  "  printf "  Do we have the fdate() command using $FC...  "
1150  cat > genmake_tcomp.f <<EOF  cat > genmake_tcomp.f <<EOF
1151        program hello        program hello
1152        CHARACTER(128) string        CHARACTER(128) string
# Line 881  else Line 1167  else
1167  fi  fi
1168  rm -f genmake_tcomp*  rm -f genmake_tcomp*
1169    
1170  echo -n "  Can we call simple C routines (here, \"cloc()\") using $FC...  "  printf "  Do we have the etime() command using $FC...  "
1171    cat > genmake_tcomp.f <<EOF
1172          program hello
1173          REAL*4 ACTUAL, TARRAY(2)
1174          EXTERNAL ETIME
1175          REAL*4 ETIME
1176          actual = etime( tarray )
1177          print *, tarray
1178          end
1179    EOF
1180    $FC $FFLAGS $DEFINES -o genmake_tcomp genmake_tcomp.f > genmake_tcomp.log 2>&1
1181    RETVAL=$?
1182    if test "x$RETVAL" = x0 ; then
1183        HAVE_ETIME=t
1184        DEFINES="$DEFINES -DHAVE_ETIME"
1185        echo "yes"
1186    else
1187        HAVE_ETIME=
1188        echo "no"
1189    fi
1190    rm -f genmake_tcomp*
1191    
1192    printf "  Can we call simple C routines (here, \"cloc()\") using $FC...  "
1193  check_HAVE_CLOC  check_HAVE_CLOC
1194  if test "x$HAVE_CLOC" != x ; then  if test "x$HAVE_CLOC" != x ; then
1195      echo "yes"      echo "yes"
1196  else  else
1197      echo "no"      echo "no"
1198  fi  fi
 echo "$FC_NAMEMANGLE" > FC_NAMEMANGLE.h.template  
 cmp FC_NAMEMANGLE.h FC_NAMEMANGLE.h.template > /dev/null 2>&1  
 RETVAL=$?  
 if test "x$RETVAL" != x0 ; then  
     mv -f FC_NAMEMANGLE.h.template FC_NAMEMANGLE.h  
 fi  
1199  rm -f genmake_t*  rm -f genmake_t*
1200    
1201    printf "  Can we create NetCDF-enabled binaries...  "
1202    check_netcdf_libs
1203    if test "x$HAVE_NETCDF" != x ; then
1204        echo "yes"
1205    else
1206        echo "no"
1207    fi
1208    
1209    
1210  printf "\n===  Setting defaults  ===\n"  printf "\n===  Setting defaults  ===\n"
1211  echo -n "  Adding MODS directories:  "  printf "  Adding MODS directories:  "
1212  for d in $MODS ; do  for d in $MODS ; do
1213      if test ! -d $d ; then      if test ! -d $d ; then
1214          echo          echo
1215          echo "Error: MODS directory \"$d\" not found!"          echo "Error: MODS directory \"$d\" not found!"
1216          exit 1          exit 1
1217      else      else
1218          echo -n " $d"          printf " $d"
1219          SOURCEDIRS="$SOURCEDIRS $d"          SOURCEDIRS="$SOURCEDIRS $d"
1220          INCLUDEDIRS="$INCLUDEDIRS $d"          INCLUDEDIRS="$INCLUDEDIRS $d"
1221      fi      fi
# Line 920  if test "x${PLATFORM}" = x ; then Line 1230  if test "x${PLATFORM}" = x ; then
1230  fi  fi
1231    
1232  if test "x${EXEDIR}" = x ; then  if test "x${EXEDIR}" = x ; then
1233      if test "${PWD##/*/}" = "bin" -a -d ../exe -a $ROOTDIR = .. ; then      tmp=`echo $PWD | sed -e 's/\// /g' | awk '{print $NR}'`
1234        if test "x$tmp" = "xbin" -a -d ../exe -a $ROOTDIR = .. ; then
1235          EXEDIR=../exe          EXEDIR=../exe
1236      else      else
1237          EXEDIR=.          EXEDIR=.
# Line 935  if test "x${TOOLSDIR}" = x ; then Line 1246  if test "x${TOOLSDIR}" = x ; then
1246      TOOLSDIR="$ROOTDIR/tools"      TOOLSDIR="$ROOTDIR/tools"
1247  fi  fi
1248  if test ! -d ${TOOLSDIR} ; then  if test ! -d ${TOOLSDIR} ; then
1249      echo "Error: the specified $TOOLSDIR (\"$TOOLSDIR\") does not exist!"      echo "Error: the specified TOOLSDIR (\"$TOOLSDIR\") does not exist!"
1250      exit 1      exit 1
1251  fi  fi
1252  if test "x$S64" = x ; then  if test "x$S64" = x ; then
# Line 956  if test -r $ROOTDIR"/eesupp/src/Makefile Line 1267  if test -r $ROOTDIR"/eesupp/src/Makefile
1267          rm -f make_eesupp.errors          rm -f make_eesupp.errors
1268      else      else
1269          echo "Error: problem encountered while building source files in eesupp:"          echo "Error: problem encountered while building source files in eesupp:"
1270          cat make_eesupp.errors          cat make_eesupp.errors 1>&2
1271          exit 1          exit 1
1272      fi      fi
1273  fi  fi
1274    
1275    #same for exch2
1276    if test -r $ROOTDIR"/pkg/exch2/Makefile" ; then
1277        echo "  Making source files in exch2 from  templates"
1278        ( cd $ROOTDIR"/pkg/exch2/" && $MAKE ) > make_exch2.errors 2>&1
1279        RETVAL=$?
1280        if test "x${RETVAL}" = x0 ; then
1281            rm -f make_exch2.errors
1282        else
1283            echo "Error: problem encountered while building source files in exch2:"
1284            cat make_exch2.errors 1>&2
1285            exit 1
1286        fi
1287    fi
1288    
1289  printf "\n===  Determining package settings  ===\n"  printf "\n===  Determining package settings  ===\n"
1290  if  test "x${PDEPEND}" = x ; then  if  test "x${PDEPEND}" = x ; then
1291      tmp=$ROOTDIR"/pkg/pkg_depend"      tmp=$ROOTDIR"/pkg/pkg_depend"
# Line 1016  else Line 1341  else
1341          def=`cat $PDEFAULT | sed -e 's/#.*$//g' | $AWK '(NF>0){print $0}'`          def=`cat $PDEFAULT | sed -e 's/#.*$//g' | $AWK '(NF>0){print $0}'`
1342          RETVAL=$?          RETVAL=$?
1343          if test "x${RETVAL}" != x0 ; then          if test "x${RETVAL}" != x0 ; then
1344              echo -n "Error: can't parse default package list "              printf "Error: can't parse default package list "
1345              echo "-- please check PDEFAULT=\"$PDEFAULT\""              echo "-- please check PDEFAULT=\"$PDEFAULT\""
1346              exit 1              exit 1
1347          fi          fi
# Line 1024  else Line 1349  else
1349              PACKAGES="$PACKAGES $i"              PACKAGES="$PACKAGES $i"
1350          done          done
1351          echo "    before group expansion packages are: $PACKAGES"          echo "    before group expansion packages are: $PACKAGES"
1352          expand_pkg_groups          RET=1
1353            while test $RET = 1 ; do expand_pkg_groups; RET=$?; done
1354          echo "    after group expansion packages are:  $PACKAGES"          echo "    after group expansion packages are:  $PACKAGES"
1355      fi      fi
1356  fi  fi
1357    
1358  echo "  applying DISABLE settings"  echo "  applying DISABLE settings"
1359    for i in $PACKAGES ; do
1360        echo $i >> ./.tmp_pack
1361    done
1362    for i in `grep  "-" ./.tmp_pack` ; do
1363        j=`echo $i | sed 's/[-]//'`
1364        DISABLE="$DISABLE $j"
1365    done
1366  pack=  pack=
1367  for p in $PACKAGES ; do  for p in $PACKAGES ; do
1368      addit="t"      addit="t"
# Line 1046  PACKAGES="$pack" Line 1379  PACKAGES="$pack"
1379  echo "  applying ENABLE settings"  echo "  applying ENABLE settings"
1380  echo "" > ./.tmp_pack  echo "" > ./.tmp_pack
1381  PACKAGES="$PACKAGES $ENABLE"  PACKAGES="$PACKAGES $ENABLE"
1382    # Test if each explicitly referenced package exists
1383  for i in $PACKAGES ; do  for i in $PACKAGES ; do
1384      if test ! -d "$ROOTDIR/pkg/$i" ; then      j=`echo $i | sed 's/[-+]//'`
1385        if test ! -d "$ROOTDIR/pkg/$j" ; then
1386          echo "Error: can't find package $i at \"$ROOTDIR/pkg/$i\""          echo "Error: can't find package $i at \"$ROOTDIR/pkg/$i\""
1387          exit 1          exit 1
1388      fi      fi
1389      echo $i >> ./.tmp_pack      echo $i >> ./.tmp_pack
1390  done  done
 pack=`cat ./.tmp_pack | sort | uniq`  
 rm -f ./.tmp_pack  
1391  PACKAGES=  PACKAGES=
1392  for i in $pack ; do  for i in `grep -v "-" ./.tmp_pack | sort | uniq` ; do
1393      PACKAGES="$PACKAGES $i"      PACKAGES="$PACKAGES $i"
1394  done  done
1395    rm -f ./.tmp_pack
1396  echo "    packages are:  $PACKAGES"  echo "    packages are:  $PACKAGES"
1397    
1398  echo "  applying package dependency rules"  echo "  applying package dependency rules"
# Line 1125  while test "x$ck" != xtt ; do Line 1459  while test "x$ck" != xtt ; do
1459              echo "  the dependency rules for \"$dname\""              echo "  the dependency rules for \"$dname\""
1460              exit 1              exit 1
1461          fi          fi
1462          i=$(( $i + 1 ))          i=`echo "$i + 1" | bc -l`
1463            #i=$(( $i + 1 ))
1464      done      done
1465      ck=$ck"t"      ck=$ck"t"
1466  done  done
# Line 1144  for i in $PACKAGES ; do Line 1479  for i in $PACKAGES ; do
1479      fi      fi
1480  done  done
1481    
1482    #  Build MNC templates and check for ability to build and use NetCDF
1483    echo $PACKAGES | grep ' mnc ' > /dev/null 2>&1
1484    RETVAL=$?
1485    if test "x$RETVAL" = x0 ; then
1486        ( cd $ROOTDIR"/pkg/mnc" && $MAKE templates ) > make_mnc.errors 2>&1
1487        RETVAL=$?
1488        if test "x${RETVAL}" = x0 ; then
1489            rm -f make_mnc.errors
1490        else
1491            echo "Error: problem encountered while building source files in pkg/mnc:"
1492            cat make_mnc.errors 1>&2
1493            exit 1
1494        fi
1495        if test "x$HAVE_NETCDF" != xt ; then
1496            cat <<EOF
1497    
1498    WARNING: the "mnc" package has been enabled but tests failed to
1499      compile and/or execute NetCDF applications.  Please check that:
1500    
1501      1) NetCDF is installed for your compiler and
1502      2) the LIBS variable (within the 'optfile") specifies the correct
1503           NetCDF library to link against.
1504      
1505    EOF
1506        fi
1507    fi
1508    
1509  # Create a list of #define and #undef to enable/disable packages  # Create a list of #define and #undef to enable/disable packages
1510  PACKAGES_DOT_H=PACKAGES_CONFIG.h  PACKAGES_DOT_H=PACKAGES_CONFIG.h
# Line 1178  for i in $PACKAGES ; do Line 1539  for i in $PACKAGES ; do
1539  #EH3  WARNING :  This is an UGLY HACK that needs to be removed!!!  #EH3  WARNING :  This is an UGLY HACK that needs to be removed!!!
1540      case $i in      case $i in
1541          aim_v23)          aim_v23)
             DEFINES="$DEFINES -DALLOW_AIM"  
1542              ENABLED_PACKAGES="$ENABLED_PACKAGES -DALLOW_AIM"              ENABLED_PACKAGES="$ENABLED_PACKAGES -DALLOW_AIM"
1543              echo "Warning: ALLOW_AIM is set to enable aim_v23. This is REALLY ugly Jean-Michel :-)"              echo "Warning: ALLOW_AIM is set to enable aim_v23."
1544              ;;              ;;
1545      esac      esac
1546  #EH3  WARNING :  This is an UGLY HACK that needs to be removed!!!  #EH3  WARNING :  This is an UGLY HACK that needs to be removed!!!
# Line 1189  done Line 1549  done
1549    
1550  echo "  Adding STANDARDDIRS"  echo "  Adding STANDARDDIRS"
1551  BUILDDIR=${BUILDDIR:-.}  BUILDDIR=${BUILDDIR:-.}
1552  if test "x$STANDARDDIRS" = x ; then  if test "x$STANDARDDIRS" = xUSE_THE_DEFAULT ; then
1553      STANDARDDIRS="eesupp model"      STANDARDDIRS="eesupp model"
1554  fi  fi
1555  for d in $STANDARDDIRS ; do  if test "x$STANDARDDIRS" != x ; then
1556      adr="$ROOTDIR/$d/src"      for d in $STANDARDDIRS ; do
1557      if test ! -d $adr ; then          adr="$ROOTDIR/$d/src"
1558          echo "Error:  directory $adr not found -- please check that ROOTDIR=\"$ROOTDIR\""          if test ! -d $adr ; then
1559          echo "  is correct and that you correctly specified the STANDARDDIRS option"              echo "Error:  directory $adr not found -- please check that ROOTDIR=\"$ROOTDIR\""
1560          exit 1              echo "  is correct and that you correctly specified the STANDARDDIRS option"
1561      else              exit 1
1562          SOURCEDIRS="$SOURCEDIRS $adr"          else
1563      fi              SOURCEDIRS="$SOURCEDIRS $adr"
1564      adr="$ROOTDIR/$d/inc"          fi
1565      if test ! -d $adr ; then          adr="$ROOTDIR/$d/inc"
1566          echo "Error:  directory $adr not found -- please check that ROOTDIR=\"$ROOTDIR\""          if test ! -d $adr ; then
1567          echo "  is correct and that you correctly specified the STANDARDDIRS option"              echo "Error:  directory $adr not found -- please check that ROOTDIR=\"$ROOTDIR\""
1568          exit 1              echo "  is correct and that you correctly specified the STANDARDDIRS option"
1569      else              exit 1
1570          INCLUDEDIRS="$INCLUDEDIRS $adr"          else
1571      fi              INCLUDEDIRS="$INCLUDEDIRS $adr"
1572  done          fi
1573        done
1574    fi
1575    
1576  echo "  Searching for CPP_OPTIONS.h in order to warn about the presence"  echo "  Searching for *OPTIONS.h files in order to warn about the presence"
1577  echo "    of \"#define ALLOW_PKGNAME\"-type statements:"  echo "    of \"#define \"-type statements that are no longer allowed:"
1578  CPP_OPTIONS=  CPP_OPTIONS=
1579    CPP_EEOPTIONS=
1580  spaths=". $INCLUDEDIRS"  spaths=". $INCLUDEDIRS"
1581    names=`ls -1 "$ROOTDIR/pkg"`
1582  for i in $spaths ; do  for i in $spaths ; do
1583      try="$i/CPP_OPTIONS.h"      try="$i/CPP_OPTIONS.h"
1584      #  echo -n "    trying $try : "      if test -f $try -a -r $try -a "x$CPP_OPTIONS" = x ; then
     if test -f $try -a -r $try ; then  
1585          echo "    found CPP_OPTIONS=\"$try\""          echo "    found CPP_OPTIONS=\"$try\""
1586          CPP_OPTIONS="$try"          CPP_OPTIONS="$try"
1587          break          # New safety test: make sure packages are not mentioned in CPP_OPTIONS.h
1588            for n in $names ; do
1589                test_for_package_in_cpp_options $CPP_OPTIONS $n
1590            done
1591        fi
1592        try="$i/CPP_EEOPTIONS.h"
1593        if test -f $try -a -r $try -a "x$CPP_EEOPTIONS" = x ; then
1594            echo "    found CPP_EEOPTIONS=\"$try\""
1595            # New safety test: make sure MPI is not determined by CPP_EEOPTIONS.h
1596    #**** not yet enabled ****
1597    #        test_for_mpi_in_cpp_eeoptions $try
1598    #**** not yet enabled ****
1599            CPP_EEOPTIONS="$try"
1600      fi      fi
1601  done  done
1602  if test "x$CPP_OPTIONS" = x ; then  if test "x$CPP_OPTIONS" = x ; then
1603      echo "Error: can't find \"CPP_OPTIONS.h\" in the path list: $spaths"      echo "Error: can't find \"CPP_OPTIONS.h\" in the path list: $spaths"
1604      exit 1      exit 1
1605  fi  fi
 # New safety test: make sure packages are not mentioned in CPP_OPTIONS.h  
 names=`ls -1 "$ROOTDIR/pkg"`  
 for n in $names ; do  
     test_for_package_in_cpp_options $CPP_OPTIONS $n  
 done  
   
1606    
1607  #  Here, we build the list of files to be "run through" the adjoint  #  Here, we build the list of files to be "run through" the adjoint
1608  #  compiler.  #  compiler.
# Line 1248  for i in $SOURCEDIRS ; do Line 1617  for i in $SOURCEDIRS ; do
1617      done      done
1618  done  done
1619    
1620    
1621  echo  echo
1622  echo "===  Creating the Makefile  ==="  echo "===  Creating the Makefile  ==="
1623  echo "  setting INCLUDES"  echo "  setting INCLUDES"
1624  for i in $INCLUDEDIRS ; do  for i in $INCLUDEDIRS ; do
1625      if ! test -d $i ; then      if test ! -d $i ; then
 #       INCLUDES="$INCLUDES -I$i"  
 #   else  
1626          echo "Warning: can't find INCLUDEDIRS=\"$i\""          echo "Warning: can't find INCLUDEDIRS=\"$i\""
1627      fi      fi
1628  done  done
# Line 1264  rm -rf .links.tmp Line 1632  rm -rf .links.tmp
1632  mkdir .links.tmp  mkdir .links.tmp
1633  echo "# This section creates symbolic links" > srclinks.tmp  echo "# This section creates symbolic links" > srclinks.tmp
1634  echo "" >> srclinks.tmp  echo "" >> srclinks.tmp
1635  echo -n 'SRCFILES = '    > srclist.inc  printf 'SRCFILES = '    > srclist.inc
1636  echo -n 'CSRCFILES = '   > csrclist.inc  printf 'CSRCFILES = '   > csrclist.inc
1637  echo -n 'F90SRCFILES = ' > f90srclist.inc  printf 'F90SRCFILES = ' > f90srclist.inc
1638  echo -n 'HEADERFILES = ' > hlist.inc  printf 'HEADERFILES = ' > hlist.inc
1639  echo -n 'AD_FLOW_FILES = ' > ad_flow_files.inc  printf 'AD_FLOW_FILES = ' > ad_flow_files.inc
1640  alldirs="$SOURCEDIRS $INCLUDEDIRS ."  alldirs="$SOURCEDIRS $INCLUDEDIRS ."
1641  for d in $alldirs ; do  for d in $alldirs ; do
1642      deplist=      deplist=
# Line 1293  for d in $alldirs ; do Line 1661  for d in $alldirs ; do
1661                  case $extn in                  case $extn in
1662                      F)                      F)
1663                          echo    " \\"  >> srclist.inc                          echo    " \\"  >> srclist.inc
1664                          echo -n " $sf" >> srclist.inc                          printf " $sf" >> srclist.inc
1665                          ;;                          ;;
1666                      F90)                      F90)
1667                          echo    " \\"  >> f90srclist.inc                          echo    " \\"  >> f90srclist.inc
1668                          echo -n " $sf" >> f90srclist.inc                          printf " $sf" >> f90srclist.inc
1669                          ;;                          ;;
1670                      c)                      c)
1671                          echo    " \\"  >> csrclist.inc                          echo    " \\"  >> csrclist.inc
1672                          echo -n " $sf" >> csrclist.inc                          printf " $sf" >> csrclist.inc
1673                          ;;                          ;;
1674                      h)                      h)
1675                          echo    " \\"  >> hlist.inc                          echo    " \\"  >> hlist.inc
1676                          echo -n " $sf" >> hlist.inc                          printf " $sf" >> hlist.inc
1677                          ;;                          ;;
1678                      flow)                      flow)
1679                          echo    " \\"  >> ad_flow_files.inc                          echo    " \\"  >> ad_flow_files.inc
1680                          echo -n " $sf" >> ad_flow_files.inc                          printf " $sf" >> ad_flow_files.inc
1681                          ;;                          ;;
1682                  esac                  esac
1683              fi              fi
# Line 1329  echo "" >> f90srclist.inc Line 1697  echo "" >> f90srclist.inc
1697  echo "" >> hlist.inc  echo "" >> hlist.inc
1698  echo "" >> ad_flow_files.inc  echo "" >> ad_flow_files.inc
1699    
1700  if test -e $MAKEFILE ; then  if test -f $MAKEFILE ; then
1701      mv -f $MAKEFILE "$MAKEFILE.bak"      mv -f $MAKEFILE "$MAKEFILE.bak"
1702  fi  fi
1703  echo "  Writing makefile: $MAKEFILE"  echo "  Writing makefile: $MAKEFILE"
# Line 1338  echo "#    $MACHINE" >> $MAKEFILE Line 1706  echo "#    $MACHINE" >> $MAKEFILE
1706  echo "# This makefile was generated automatically on" >> $MAKEFILE  echo "# This makefile was generated automatically on" >> $MAKEFILE
1707  echo "#    $THISDATE" >> $MAKEFILE  echo "#    $THISDATE" >> $MAKEFILE
1708  echo "# by the command:" >> $MAKEFILE  echo "# by the command:" >> $MAKEFILE
1709  echo "#    $0 $@" >> $MAKEFILE  echo "#    $0 $G2ARGS" >> $MAKEFILE
1710  echo "# executed by:" >> $MAKEFILE  echo "# executed by:" >> $MAKEFILE
1711  echo "#    $USER@${THISHOSTNAME}:${THISCWD}" >> $MAKEFILE  echo "#    $USER@${THISHOSTNAME}:${THISCWD}" >> $MAKEFILE
1712    
# Line 1347  EXE_FTL=$EXECUTABLE"_ftl" Line 1715  EXE_FTL=$EXECUTABLE"_ftl"
1715  EXE_SVD=$EXECUTABLE"_svd"  EXE_SVD=$EXECUTABLE"_svd"
1716    
1717  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
1718    #
1719    # OPTFILE="$OPTFILE"
1720  #  #
1721  # BUILDDIR     : Directory where object files are written  # BUILDDIR     : Directory where object files are written
1722  # SOURCEDIRS   : Directories containing the source (.F) files  # SOURCEDIRS   : Directories containing the source (.F) files
# Line 1383  EXE_SVD     = ${EXE_SVD} Line 1753  EXE_SVD     = ${EXE_SVD}
1753  ENABLED_PACKAGES = ${ENABLED_PACKAGES}  ENABLED_PACKAGES = ${ENABLED_PACKAGES}
1754  DISABLED_PACKAGES = ${DISABLED_PACKAGES}  DISABLED_PACKAGES = ${DISABLED_PACKAGES}
1755    
1756    # These files are created by Makefile
1757    SPECIAL_FILES = ${PACKAGES_DOT_H} AD_CONFIG.h FC_NAMEMANGLE.h
1758    
1759  EOF  EOF
1760    
1761  #  Note: figure out some way to add Hyades JAM libraries here  #  Note: figure out some way to add Hyades JAM libraries here
# Line 1401  FC = ${FC} Line 1774  FC = ${FC}
1774  # Fortran compiler  # Fortran compiler
1775  F90C = ${F90C}  F90C = ${F90C}
1776  # Link editor  # Link editor
1777  LINK = ${LINK}  LINK = ${LINK} ${LDADD}
1778    
1779  # Defines for CPP  # Defines for CPP
1780  DEFINES = ${DEFINES}  DEFINES = ${DEFINES}
# Line 1433  cat csrclist.inc      >> $MAKEFILE Line 1806  cat csrclist.inc      >> $MAKEFILE
1806  cat f90srclist.inc    >> $MAKEFILE  cat f90srclist.inc    >> $MAKEFILE
1807  cat hlist.inc         >> $MAKEFILE  cat hlist.inc         >> $MAKEFILE
1808  cat ad_flow_files.inc >> $MAKEFILE  cat ad_flow_files.inc >> $MAKEFILE
1809  echo               >> $MAKEFILE  echo >> $MAKEFILE
1810  echo 'F77FILES =  $(SRCFILES:.F=.f)'                                           >> $MAKEFILE  echo 'F77FILES =  $(SRCFILES:.F=.'$FS')'      >> $MAKEFILE
1811  echo 'F90FILES =  $(F90SRCFILES:.F90=.f90)'                                    >> $MAKEFILE  echo 'F90FILES =  $(F90SRCFILES:.F=.'$FS90')' >> $MAKEFILE
1812  echo 'OBJFILES =  $(SRCFILES:.F=.o) $(CSRCFILES:.c=.o) $(F90SRCFILES:.F90=.o)' >> $MAKEFILE  echo 'OBJFILES =  $(SRCFILES:.F=.o) $(CSRCFILES:.c=.o) $(F90SRCFILES:.F90=.o)' >> $MAKEFILE
1813    echo >> $MAKEFILE
1814    echo '.SUFFIXES:' >> $MAKEFILE
1815    echo '.SUFFIXES: .o .'$FS' .p .F .c .'$FS90' .F90' >> $MAKEFILE
1816  rm -f srclist.inc csrclist.inc hlist.inc flist.tmp clist.tmp f90srclist.inc  rm -f srclist.inc csrclist.inc hlist.inc flist.tmp clist.tmp f90srclist.inc
1817  rm -f ad_flow_files.inc  rm -f ad_flow_files.inc
1818    
1819  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
1820    
 .SUFFIXES:  
 .SUFFIXES: .o .f .p .F .c .F90 .f90  
   
1821  all: \$(EXECUTABLE)  all: \$(EXECUTABLE)
1822  \$(EXECUTABLE): ${PACKAGES_DOT_H} AD_CONFIG.h \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) \$(OBJFILES)  \$(EXECUTABLE): \$(SPECIAL_FILES) \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) \$(OBJFILES)
1823          @echo Creating \$@ ...          @echo Creating \$@ ...
1824          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(LIBS)          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(LIBS)
1825  depend:  depend:
1826          @make links          @make links
1827          \$(MAKEDEPEND) -o .f \$(DEFINES) \$(INCLUDES) \$(SRCFILES)          \$(MAKEDEPEND) -o .$FS \$(DEFINES) \$(INCLUDES) \$(SRCFILES)
1828          \$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE)          \$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE)
1829            -rm -f makedepend.out
1830    
1831  links: \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) ${PACKAGES_DOT_H} AD_CONFIG.h  links: \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) \$(SPECIAL_FILES)
1832    
1833  small_f: \$(F77FILES) \$(F90FILES)  small_f: \$(F77FILES) \$(F90FILES)
1834    
# Line 1464  output.txt: \$(EXECUTABLE) Line 1837  output.txt: \$(EXECUTABLE)
1837          @\$(EXECUTABLE) > \$@          @\$(EXECUTABLE) > \$@
1838    
1839  clean:  clean:
1840          -rm -rf *.o *.f *.p *.f90 *.mod ${RMFILES} work.{pc,pcl} *.template          -rm -rf *.o *.$FS *.p *.$FS90 *.mod ${RMFILES} work.{pc,pcl} *.template
1841  Clean:  Clean:
1842          @make clean          @make clean
1843          @make cleanlinks          @make cleanlinks
1844          -rm -f ${PACKAGES_DOT_H} AD_CONFIG.h          -rm -f \$(SPECIAL_FILES)
1845          -rm -f genmake_state genmake_*optfile genmake_warnings make.log run.log *.bak          -rm -f genmake_state genmake_*optfile genmake_warnings make.log run.log *.bak
1846  CLEAN:  CLEAN:
1847          @make Clean          @make Clean
1848          -find \$(EXEDIR) -name "*.meta" -exec rm {} \;          -find \$(EXEDIR) -name "*.meta" -exec rm {} \;
1849          -find \$(EXEDIR) -name "*.data" -exec rm {} \;          -find \$(EXEDIR) -name "*.data" -exec rm {} \;
1850          -find \$(EXEDIR) -name "fort.*" -exec rm {} \;          -find \$(EXEDIR) -name "fort.*" -exec rm {} \;
1851          -rm -f \$(EXECUTABLE) output.txt          -rm -f \$(EXECUTABLE) output.txt STD*
1852    
1853  #eh3 Makefile: makefile  #eh3 Makefile: makefile
1854  makefile:  makefile:
1855          $THIS_SCRIPT $@          $THIS_SCRIPT $G2ARGS
1856  cleanlinks:  cleanlinks:
1857          -find . -type l -exec rm {} \;          -find . -type l -exec rm {} \;
1858    
1859  # Special targets  # Special targets ($SPECIAL_FILES) which are create by make
1860  ${PACKAGES_DOT_H}:  ${PACKAGES_DOT_H}:
1861          @echo Creating \$@ ...          @echo Creating \$@ ...
1862          @\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bPACKAGES_CONFIG_H "Disabled packages:" \$(DISABLED_PACKAGES) " " "Enabled packages:" \$(ENABLED_PACKAGES) > \$@          @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bPACKAGES_CONFIG_H "Disabled packages:" \$(DISABLED_PACKAGES) " " "Enabled packages:" \$(ENABLED_PACKAGES) > \$@
1863  AD_CONFIG.h:  AD_CONFIG.h:
1864          @echo Creating \$@ ...          @echo Creating \$@ ...
1865          @\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > \$@          @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > \$@
1866    FC_NAMEMANGLE.h:
1867            @echo Creating \$@ ...
1868            echo "$FC_NAMEMANGLE" > \$@
1869    
1870    # The normal chain of rules is (  .F - .$FS - .o  )
1871    
1872    %.o : %.F
1873    
1874  # The normal chain of rules is (  .F - .f - .o  )  .F.$FS:
 .F.f:  
1875          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@
1876  .f.o:  .$FS.o:
1877          \$(FC) \$(FFLAGS) \$(FOPTIM) -c \$<          \$(FC) \$(FFLAGS) \$(FOPTIM) -c \$<
1878  .F90.f90:  .F90.$FS90:
1879          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@
1880  .f90.o:  .$FS90.o:
1881          \$(F90C) \$(F90FLAGS) \$(F90OPTIM) -c \$<          \$(F90C) \$(F90FLAGS) \$(F90OPTIM) -c \$<
1882  .c.o:  .c.o:
1883          \$(CC) \$(CFLAGS) -c \$<          \$(CC) \$(CFLAGS) -c \$<
1884    
1885  # Special exceptions that use the ( .F - .p - .f - .o ) rule-chain  # Special exceptions that use the ( .F - .p - .$FS - .o ) rule-chain
1886  .F.p:  .F.p:
1887          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@
1888  .p.f:  .p.$FS:
1889          \$(KPP) \$(KFLAGS1)\$@ \$(KFLAGS2) \$<          \$(KPP) \$(KFLAGS1)\$@ \$(KFLAGS2) \$<
1890    
1891  #=========================================  #=========================================
# Line 1533  done Line 1912  done
1912    
1913  echo "  Add the source list for AD code generation"  echo "  Add the source list for AD code generation"
1914  echo >> $MAKEFILE  echo >> $MAKEFILE
1915  echo -n "AD_FILES = " >> $MAKEFILE  printf "AD_FILES = " >> $MAKEFILE
1916  AD_FILES=`cat ad_files`  AD_FILES=`cat ad_files`
1917  for i in $AD_FILES ; do  for i in $AD_FILES ; do
1918      echo    " \\" >> $MAKEFILE      echo    " \\" >> $MAKEFILE
1919      echo -n " $i" >> $MAKEFILE      printf " $i" >> $MAKEFILE
1920  done  done
1921  echo >> $MAKEFILE  echo >> $MAKEFILE
1922  rm -f ad_files  rm -f ad_files
# Line 1550  adtaf: ad_taf_output.f Line 1929  adtaf: ad_taf_output.f
1929  adtamc: ad_tamc_output.f  adtamc: ad_tamc_output.f
1930    
1931  ad_input_code.f: \$(AD_FILES) \$(HEADERFILES)  ad_input_code.f: \$(AD_FILES) \$(HEADERFILES)
1932          @\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -DALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > ad_config.template          @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -DALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > ad_config.template
1933          cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h          cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h
1934          -rm -f ad_config.template          -rm -f ad_config.template
1935          @make \$(F77FILES)          @make \$(F77FILES)
# Line 1582  ftltaf: ftl_taf_output.f Line 1961  ftltaf: ftl_taf_output.f
1961  ftltamc: ftl_tamc_output.f  ftltamc: ftl_tamc_output.f
1962    
1963  ftl_input_code.f: \$(AD_FILES) \$(HEADERFILES)  ftl_input_code.f: \$(AD_FILES) \$(HEADERFILES)
1964          @\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > ftl_config.template          @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > ftl_config.template
1965          cmp ftl_config.template AD_CONFIG.h || cat ftl_config.template > AD_CONFIG.h          cmp ftl_config.template AD_CONFIG.h || cat ftl_config.template > AD_CONFIG.h
1966          -rm -f ftl_config.template          -rm -f ftl_config.template
1967          @make \$(F77FILES)          @make \$(F77FILES)
# Line 1631  for i in $KPPFILES ; do Line 2010  for i in $KPPFILES ; do
2010      if test "x$RETVAL" != x0 ; then      if test "x$RETVAL" != x0 ; then
2011          echo "Error: unable to add file \"$i\" to the exceptions list"          echo "Error: unable to add file \"$i\" to the exceptions list"
2012      fi      fi
2013      echo "$base.f: $base.p" >> $MAKEFILE      echo "$base.$FS: $base.p" >> $MAKEFILE
2014  done  done
2015    
2016  echo "  Making list of NOOPTFILES"  echo "  Making list of NOOPTFILES"
# Line 1641  for i in $NOOPTFILES ; do Line 2020  for i in $NOOPTFILES ; do
2020      if test "x$RETVAL" != x0 ; then      if test "x$RETVAL" != x0 ; then
2021          echo "Error: unable to add file \"$i\" to the exceptions list"          echo "Error: unable to add file \"$i\" to the exceptions list"
2022      fi      fi
2023      echo "$base.o: $base.f" >> $MAKEFILE      echo "$base.o: $base.$FS" >> $MAKEFILE
2024      printf "\t\$(FC) \$(FFLAGS) \$(NOOPTFLAGS) -c \$<\n" >> $MAKEFILE      printf "\t\$(FC) \$(FFLAGS) \$(NOOPTFLAGS) -c \$<\n" >> $MAKEFILE
2025  done  done
2026    
# Line 1655  printf "\n\n# DO NOT DELETE\n" >> $MAKEF Line 2034  printf "\n\n# DO NOT DELETE\n" >> $MAKEF
2034  printf "\n===  Done  ===\n"  printf "\n===  Done  ===\n"
2035    
2036  # Create special header files  # Create special header files
2037  $TOOLSDIR/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bPACKAGES_CONFIG_H "Disabled packages:" $DISABLED_PACKAGES " " "Enabled packages:" $ENABLED_PACKAGES > $PACKAGES_DOT_H".tmp"  $BASH $TOOLSDIR/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bPACKAGES_CONFIG_H "Disabled packages:" $DISABLED_PACKAGES " " "Enabled packages:" $ENABLED_PACKAGES > $PACKAGES_DOT_H".tmp"
2038  if test ! -f $PACKAGES_DOT_H ; then  if test ! -f $PACKAGES_DOT_H ; then
2039      mv -f $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H      mv -f $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H
2040  else  else
2041      cmp $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H      cmp $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H > /dev/null 2>&1
2042      RETVAL=$?      RETVAL=$?
2043      if test "x$RETVAL" = x0 ; then      if test "x$RETVAL" = x0 ; then
2044          rm -f $PACKAGES_DOT_H".tmp"          rm -f $PACKAGES_DOT_H".tmp"
# Line 1669  else Line 2048  else
2048      fi      fi
2049  fi  fi
2050  if test ! -f AD_CONFIG.h ; then  if test ! -f AD_CONFIG.h ; then
2051      $TOOLSDIR/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > AD_CONFIG.h      $BASH $TOOLSDIR/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > AD_CONFIG.h
2052  fi  fi
2053    
2054    
2055  #  Write the "state" for future records  #  Write the "state" for future records
2056  if test "x$DUMPSTATE" != xf ; then  if test "x$DUMPSTATE" != xf ; then
2057      echo -n "" > genmake_state      printf "" > genmake_state
2058      for i in $gm_state ; do      for i in $gm_state ; do
2059          t1="t2=\$$i"          t1="t2=\$$i"
2060          eval $t1          eval $t1

Legend:
Removed from v.1.51  
changed lines
  Added in v.1.89

  ViewVC Help
Powered by ViewVC 1.1.22