/[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.90 by edhill, Tue Jul 27 20:59:19 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                build_cyrus_makedepend
199                RETVAL=$?
200                if test "x$RETVAL" != x0 ; then
201                    MAKEDEPEND='$(TOOLSDIR)/xmakedepend'
202                fi
203                rm -f ./genmake_cy_md
204            fi
205        else
206            #  echo "MAKEDEPEND=${MAKEDEPEND}"
207            echo "${MAKEDEPEND}" | grep -i cyrus > /dev/null 2>&1
208            RETVAL=$?
209            if test x"$RETVAL" = x0 ; then
210                build_cyrus_makedepend
211            fi
212        fi
213    }
214    
215    
216    build_cyrus_makedepend()  {
217        rm -f ./genmake_cy_md
218        (
219            cd $ROOTDIR/tools/cyrus-imapd-makedepend  \
220                &&  ./configure > /dev/null 2>&1  \
221                &&  make > /dev/null 2>&1
222            if test -x ./makedepend.exe ; then
223                $LN ./makedepend.exe ./makedepend
224            fi
225            ./makedepend ifparser.c > /dev/null 2>&1  \
226                &&  echo "true"
227        ) > ./genmake_cy_md
228        grep true ./genmake_cy_md > /dev/null 2>&1
229        RETVAL=$?
230        rm -f ./genmake_cy_md
231        if test "x$RETVAL" = x0 ; then
232            MAKEDEPEND='$(TOOLSDIR)/cyrus-imapd-makedepend/makedepend'
233            return 0
234        else
235            echo "WARNING: unable to build cyrus-imapd-makedepend"
236            return 1
237        fi
238    }
239    
240  # Guess possible config options for this host  # Guess possible config options for this host
241  find_possible_configs()  {  find_possible_configs()  {
242    
243      tmp1=`uname`"_"`uname -m`      tmp1=`uname`"_"`uname -m`
244      tmp2=`echo $tmp1 | sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`      tmp2=`echo $tmp1 | sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
245      tmp3=`echo $tmp2 | sed -e 's/power macintosh/ppc/'`      tmp3=`echo $tmp2 | sed -e 's/power macintosh/ppc/'`
246      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|'`
247        tmp2=`echo $tmp1 | sed -e 's/i[3-6]86/ia32/' | sed -e 's/athlon/ia32/'`
248        tmp3=`echo $tmp2 | sed -e 's/cray sv1/craysv1/'`
249        PLATFORM=$tmp3
250        echo $PLATFORM | grep cygwin > /dev/null 2>&1  &&  PLATFORM=cygwin_ia32
251      OFLIST=`(cd $ROOTDIR/tools/build_options; ls | grep "^$PLATFORM")`      OFLIST=`(cd $ROOTDIR/tools/build_options; ls | grep "^$PLATFORM")`
252      echo "  The platform appears to be:  $PLATFORM"      echo "  The platform appears to be:  $PLATFORM"
253            
# Line 93  find_possible_configs()  { Line 267  find_possible_configs()  {
267          CPP="cpp -traditional -P"          CPP="cpp -traditional -P"
268      fi      fi
269    
270      # 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  
271    
272      # look for possible fortran compilers      # look for possible fortran compilers
273      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 304  EOF
304          echo "   "$p_FC          echo "   "$p_FC
305          if test "x$FC" = x ; then          if test "x$FC" = x ; then
306              FC=`echo $p_FC | $AWK '{print $1}'`              FC=`echo $p_FC | $AWK '{print $1}'`
307                echo "  Setting FORTRAN compiler to: "$FC
308          fi          fi
309      fi      fi
310    
311      for i in $p_FC ; do      if test "x$OPTFILE" = x ; then
312          p_OF=$ROOTDIR"/tools/build_options/"$PLATFORM"_"$i          OPTFILE=$ROOTDIR"/tools/build_options/"$PLATFORM"_"$FC
313          if test -r $p_OF ; then          if test ! -r $OPTFILE ; then
314              OPTFILE=$p_OF               echo "  I looked for the file "$OPTFILE" but did not find it"
315              echo "  The options file:  $p_OF"          fi
316              echo "    appears to match so we'll use it."      fi
317              break  #    echo "  The options file:  $p_OF"
318          fi  #    echo "    appears to match so we'll use it."
319      done  #   for i in $p_FC ; do
320    #p_OF=$ROOTDIR"/tools/build_options/"$PLATFORM"_"$i
321    #if test -r $p_OF ; then
322    #    OPTFILE=$p_OF
323    #    echo "  The options file:  $p_OF"
324    #    echo "    appears to match so we'll use it."
325    #    break
326    #fi
327    #   done
328      if test "x$OPTFILE" = x ; then      if test "x$OPTFILE" = x ; then
329          cat 1>&2 <<EOF          cat 1>&2 <<EOF
330    
# Line 208  get_pdepend_list()  { Line 383  get_pdepend_list()  {
383      . ./.pd_tmp      . ./.pd_tmp
384      rm -f ./.pd_tmp      rm -f ./.pd_tmp
385    
386      echo -n "PNAME = "${}      printf "PNAME = "${}
387  }  }
388    
389    
# Line 222  Usage: "$0" [OPTIONS] Line 397  Usage: "$0" [OPTIONS]
397      -help | --help | -h | --h      -help | --help | -h | --h
398            Print this help message and exit.            Print this help message and exit.
399    
400        -adoptfile NAME | --adoptfile NAME | -adof NAME | --adof NAME
401          -adoptfile=NAME | --adoptfile=NAME | -adof=NAME | --adof=NAME
402              Use "NAME" as the adoptfile.  By default, the file at
403              "tools/adjoint_options/adjoint_default" will be used.
404    
405      -nooptfile | --nooptfile      -nooptfile | --nooptfile
406        -optfile NAME | --optfile NAME | -of NAME | --of NAME        -optfile NAME | --optfile NAME | -of NAME | --of NAME
407        -optfile=NAME | --optfile=NAME | -of=NAME | --of=NAME        -optfile=NAME | --optfile=NAME | -of=NAME | --of=NAME
# Line 246  Usage: "$0" [OPTIONS] Line 426  Usage: "$0" [OPTIONS]
426        --makefile=NAME | -mf=NAME        --makefile=NAME | -mf=NAME
427            Call the makefile "NAME".  The default is "Makefile".            Call the makefile "NAME".  The default is "Makefile".
428    
429        -makedepend NAME | -md NAME
430          --makedepend=NAME | -md=NAME
431              Use "NAME" for the MAKEDEPEND program.
432    
433      -rootdir NAME | --rootdir NAME | -rd NAME | --rd NAME      -rootdir NAME | --rootdir NAME | -rd NAME | --rd NAME
434        -rootdir=NAME | --rootdir=NAME | -rd=NAME | --rd=NAME        -rootdir=NAME | --rootdir=NAME | -rd=NAME | --rd=NAME
435            Specify the location of the MITgcm ROOTDIR as "NAME".            Specify the location of the MITgcm ROOTDIR as "NAME".
# Line 287  Usage: "$0" [OPTIONS] Line 471  Usage: "$0" [OPTIONS]
471            *only* works if it is supported by the OPTFILE that            *only* works if it is supported by the OPTFILE that
472            is being used.            is being used.
473    
474        -mpi | --mpi
475              Include MPI header files and link to MPI libraries
476        -mpi=PATH | --mpi=PATH
477              Include MPI header files and link to MPI libraries using MPI_ROOT
478              set to PATH. i.e. Include files from $PATH/include, link to libraries
479              from $PATH/lib and use binaries from $PATH/bin.
480    
481        -bash NAME
482              Explicitly specify the Bourne or BASH shell to use
483    
484    While it is most often a single word, the "NAME" variables specified    While it is most often a single word, the "NAME" variables specified
485    above can in many cases be a space-delimited string such as:    above can in many cases be a space-delimited string such as:
486    
# Line 307  EOF Line 501  EOF
501    
502  #  Build a CPP macro to automate calling C routines from FORTRAN  #  Build a CPP macro to automate calling C routines from FORTRAN
503  get_fortran_c_namemangling()  {  get_fortran_c_namemangling()  {
504    
505        #echo "FC_NAMEMANGLE = \"$FC_NAMEMANGLE\""
506        if test ! "x$FC_NAMEMANGLE" = x ; then
507            return 0
508        fi
509    
510      default_nm="#define FC_NAMEMANGLE(X) X ## _"      default_nm="#define FC_NAMEMANGLE(X) X ## _"
511            
512      cat > genmake_test.c <<EOF      cat > genmake_test.c <<EOF
# Line 430  EOF Line 630  EOF
630  }  }
631    
632    
633    check_netcdf_libs()  {
634        cat <<EOF > genmake_tnc.for
635          program fgennc
636    #include "netcdf.inc"
637          integer iret, ncid, xid
638          iret = nf_create('genmake_tnc.nc', NF_CLOBBER, ncid)
639          IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)
640          iret = nf_def_dim(ncid, 'X', 11, xid)
641          IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)
642          iret = nf_close(ncid)
643          IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)
644          end
645    EOF
646        #echo "$CPP $DEFINES $INCLUDES"
647        $CPP $DEFINES $INCLUDES genmake_tnc.for > genmake_tnc.f  \
648            &&  $FC $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.f $LIBS >> genmake_tnc.log 2>&1
649        RET_COMPILE=$?
650        test -x ./genmake_tnc  &&  ./genmake_tnc >> genmake_tnc.log 2>&1
651        RETVAL=$?
652        if test "x$RET_COMPILE" = x0 -a "x$RETVAL" = x0 ; then
653            HAVE_NETCDF=t
654        else
655            # try again with "-lnetcdf" added to the libs
656            $CPP $DEFINES $INCLUDES genmake_tnc.for > genmake_tnc.f  \
657                &&  $FC $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.f \
658                $LIBS -lnetcdf >> genmake_tnc_2.log 2>&1
659            RET_COMPILE=$?
660            test -x ./genmake_tnc  &&  ./genmake_tnc >> genmake_tnc.log 2>&1
661            RETVAL=$?
662            if test "x$RET_COMPILE" = x0 -a "x$RETVAL" = x0 ; then
663                LIBS="$LIBS -lnetcdf"
664                HAVE_NETCDF=t
665            else
666                cat genmake_tnc.log >> genmake_warnings
667            fi
668        fi
669        rm -f genmake_tnc*
670    }
671    
672    
673    
674    ###############################################################################
675    #   Sequential part of script starts here
676    ###############################################################################
677    
678  #  Set defaults here  #  Set defaults here
679  COMMANDL="$0 $@"  COMMANDL="$0 $@"
680    
# Line 438  LN= Line 683  LN=
683  S64=  S64=
684  KPP=  KPP=
685  FC=  FC=
686    CPP=
687  LINK=  LINK=
 # DEFINES="-DWORDLENGTH=4"  
688  DEFINES=  DEFINES=
689  PACKAGES=  PACKAGES=
690  ENABLE=  ENABLE=
691  DISABLE=  DISABLE=
692  MAKEFILE=  MAKEFILE=
693  MAKEDEPEND=  #MAKEDEPEND=
694  PDEPEND=  PDEPEND=
695  DUMPSTATE=t  DUMPSTATE=t
696  PDEFAULT=  PDEFAULT=
# Line 456  FOPTIM= Line 701  FOPTIM=
701  CFLAGS=  CFLAGS=
702  KFLAGS1=  KFLAGS1=
703  KFLAGS2=  KFLAGS2=
704    #LDADD=
705  LIBS=  LIBS=
706  KPPFILES=  KPPFILES=
707  NOOPTFILES=  NOOPTFILES=
708  NOOPTFLAGS=  NOOPTFLAGS=
709    MPI=
710    MPIPATH=
711    
712  # DEFINES checked by test compilation  # DEFINES checked by test compilation
713  HAVE_SYSTEM=  HAVE_SYSTEM=
714  HAVE_FDATE=  HAVE_FDATE=
715  FC_NAMEMANGLE=  FC_NAMEMANGLE=
716  HAVE_CLOC=  HAVE_CLOC=
717    HAVE_NETCDF=
718    HAVE_ETIME=
719    
720  MODS=  MODS=
721  TOOLSDIR=  TOOLSDIR=
722  SOURCEDIRS=  SOURCEDIRS=
723  INCLUDEDIRS=  INCLUDEDIRS=
724  STANDARDDIRS=  STANDARDDIRS="USE_THE_DEFAULT"
725    
726    G2ARGS=
727    BASH=
728  PWD=`pwd`  PWD=`pwd`
729  MAKE=make  MAKE=make
730  AWK=awk  AWK=awk
# Line 488  IEEE= Line 740  IEEE=
740  if test "x$MITGCM_IEEE" != x ; then  if test "x$MITGCM_IEEE" != x ; then
741      IEEE=$MITGCM_IEEE      IEEE=$MITGCM_IEEE
742  fi  fi
743    FS=
744    FS90=
745    
746  AUTODIFF_PKG_USED=f  AUTODIFF_PKG_USED=f
747  AD_OPTFILE=  AD_OPTFILE=
# Line 505  TAMC_EXTRA= Line 759  TAMC_EXTRA=
759    
760  #  The following state can be set directly by command-line switches  #  The following state can be set directly by command-line switches
761  gm_s1="OPTFILE PDEPEND PDEFAULT MAKEFILE PLATFORM ROOTDIR MODS DISABLE ENABLE"  gm_s1="OPTFILE PDEPEND PDEFAULT MAKEFILE PLATFORM ROOTDIR MODS DISABLE ENABLE"
762  gm_s2="FC IEEE MPI JAM DUMPSTATE STANDARDDIRS"  gm_s2="FC CPP IEEE MPI JAM DUMPSTATE STANDARDDIRS"
763    
764  #  The following state is not directly set by command-line switches  #  The following state is not directly set by command-line switches
765  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 "
766  gm_s4="CFLAGS KFLAGS1 KFLAGS2 LIBS KPPFILES NOOPTFILES NOOPTFLAGS"  gm_s4="CFLAGS KFLAGS1 KFLAGS2 LIBS KPPFILES NOOPTFILES NOOPTFLAGS"
767  gm_s5="TOOLSDIR SOURCEDIRS INCLUDEDIRS PWD MAKE THISHOSTNAME THISDATE MACHINE"  gm_s5="TOOLSDIR SOURCEDIRS INCLUDEDIRS PWD MAKE THISHOSTNAME THISDATE MACHINE"
768  gm_s6="EXECUTABLE EXEHOOK EXEDIR PACKAGES_CONF"  gm_s6="EXECUTABLE EXEHOOK EXEDIR PACKAGES_CONF"
769  gm_s7="HAVE_SYSTEM HAVE_FDATE FC_NAMEMANGLE"  gm_s7="HAVE_SYSTEM HAVE_FDATE FC_NAMEMANGLE HAVE_ETIME"
770    
771  #  The following are all related to adjoint/tangent-linear stuff  #  The following are all related to adjoint/tangent-linear stuff
772  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 795  for i in . $MODS ; do
795          break          break
796      fi      fi
797  done  done
798  echo -n "  getting local config information:  "  printf "  getting local config information:  "
799  if test -e $gm_local ; then  if test -f $gm_local ; then
800      echo "using $gm_local"      echo "using $gm_local"
801      . $gm_local      . $gm_local
802      # echo "DISABLE=$DISABLE"      # echo "DISABLE=$DISABLE"
# Line 563  fi Line 817  fi
817  #done  #done
818  #parse_options  #parse_options
819  ac_prev=  ac_prev=
820  for ac_option ; do  for ac_option in $@ ; do
821    
822        G2ARGS="$G2ARGS \"$ac_option\""
823    
824      # If the previous option needs an argument, assign it.      # If the previous option needs an argument, assign it.
825      if test -n "$ac_prev"; then      if test -n "$ac_prev"; then
# Line 606  for ac_option ; do Line 862  for ac_option ; do
862          -make=* | --make=* | -m=* | --m=*)          -make=* | --make=* | -m=* | --m=*)
863              MAKE=$ac_optarg ;;              MAKE=$ac_optarg ;;
864                    
865            -bash | --bash)
866                ac_prev=BASH ;;
867            -bash=* | --bash=*)
868                BASH=$ac_optarg ;;
869            
870            -makedepend | --makedepend | -md | --md)
871                ac_prev=MAKEDEPEND ;;
872            -makedepend=* | --makedepend=* | -md=* | --md=*)
873                MAKEDEPEND=$ac_optarg ;;
874            
875          -makefile | --makefile | -ma | --ma)          -makefile | --makefile | -ma | --ma)
876              ac_prev=MAKEFILE ;;              ac_prev=MAKEFILE ;;
877          -makefile=* | --makefile=* | -ma=* | --ma=*)          -makefile=* | --makefile=* | -ma=* | --ma=*)
# Line 653  for ac_option ; do Line 919  for ac_option ; do
919          -fc=* | --fc=*)          -fc=* | --fc=*)
920              FC=$ac_optarg ;;              FC=$ac_optarg ;;
921                    
922            -fs | --fs)
923                ac_prev=FS ;;
924            -fs=* | --fs=*)
925                FS=$ac_optarg ;;
926            
927            -fs90 | --fs90)
928                ac_prev=FS90 ;;
929            -fs90=* | --fs90=*)
930                FS90=$ac_optarg ;;
931            
932          -ieee | --ieee)          -ieee | --ieee)
933              IEEE=true ;;              IEEE=true ;;
934          -noieee | --noieee)          -noieee | --noieee)
935              IEEE= ;;              IEEE= ;;
936    
937            -mpi | --mpi)
938                MPI=true ;;
939            -mpi=* | --mpi=*)
940                MPIPATH=$ac_optarg
941                MPI=true ;;
942                    
943  #       -jam | --jam)  #       -jam | --jam)
944  #           JAM=1 ;;  #           JAM=1 ;;
# Line 703  if test -f ./.genmakerc ; then Line 985  if test -f ./.genmakerc ; then
985  fi  fi
986    
987  if test "x${ROOTDIR}" = x ; then  if test "x${ROOTDIR}" = x ; then
988      if test "${PWD##/*/}" = "bin" -a -d ../model -a -d ../eesup -a -d ../pkg ; then      tmp=`echo $PWD | sed -e 's/\// /g' | awk '{print $NR}'`
989        if test "x$tmp" = "xbin" -a -d ../model -a -d ../eesup -a -d ../pkg ; then
990          ROOTDIR=".."          ROOTDIR=".."
991      else      else
992          for d in . .. ../.. ../../.. ../../../.. ../../../../.. ; do          for d in . .. ../.. ../../.. ../../../.. ../../../../.. ; do
993              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
994                  ROOTDIR=$d                  ROOTDIR=$d
995                  echo -n "Warning:  ROOTDIR was not specified but there appears to be"                  printf "Warning:  ROOTDIR was not specified but there appears to be"
996                  echo " a copy of MITgcm at \"$ROOTDIR\" so we'll try it."                  echo " a copy of MITgcm at \"$ROOTDIR\" so we'll try it."
997                  break                  break
998              fi              fi
# Line 743  if test "x$OPTFILE" != xNONE ; then Line 1026  if test "x$OPTFILE" != xNONE ; then
1026          . "$OPTFILE"          . "$OPTFILE"
1027          RETVAL=$?          RETVAL=$?
1028          if test "x$RETVAL" != x0 ; then          if test "x$RETVAL" != x0 ; then
1029              echo -n "Error: failed to source OPTFILE \"$OPTFILE\""              printf "Error: failed to source OPTFILE \"$OPTFILE\""
1030              echo "--please check that variable syntax is bash-compatible"              echo "--please check that variable syntax is bash-compatible"
1031              exit 1              exit 1
1032          fi          fi
# Line 756  if test "x$OPTFILE" != xNONE ; then Line 1039  if test "x$OPTFILE" != xNONE ; then
1039      fi      fi
1040  fi  fi
1041    
1042    #  Check for broken systems that cannot correctly distinguish *.F and *.f files
1043    # check_for_broken_Ff
1044    
1045  echo "  getting AD_OPTFILE information:  "  echo "  getting AD_OPTFILE information:  "
1046  if test "x${AD_OPTFILE}" = x ; then  if test "x${AD_OPTFILE}" = x ; then
1047      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 1056  if test "x${AD_OPTFILE}" != xNONE ; then
1056          . "$AD_OPTFILE"          . "$AD_OPTFILE"
1057          RETVAL=$?          RETVAL=$?
1058          if test "x$RETVAL" != x0 ; then          if test "x$RETVAL" != x0 ; then
1059              echo -n "Error: failed to source AD_OPTFILE \"$AD_OPTFILE\""              printf "Error: failed to source AD_OPTFILE \"$AD_OPTFILE\""
1060              echo "--please check that variable syntax is bash-compatible"              echo "--please check that variable syntax is bash-compatible"
1061              exit 1              exit 1
1062          fi          fi
# Line 785  fi Line 1071  fi
1071    
1072  #  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,
1073  #  either set defaults or complain and abort!  #  either set defaults or complain and abort!
1074    if test ! "x$BASH" = x ; then
1075        # add a trailing space so that it works within the Makefile syntax (see below)
1076        BASH="$BASH "
1077    fi
1078  if test "x$FC" = x ; then  if test "x$FC" = x ; then
1079      cat <<EOF 1>&2      cat <<EOF 1>&2
1080    
# Line 798  fi Line 1088  fi
1088  if test "x$LINK" = x ; then  if test "x$LINK" = x ; then
1089      LINK=$FC      LINK=$FC
1090  fi  fi
 if test "x$CPP" = x ; then  
     CPP="cpp"  
 fi  
1091  if test "x$MAKE" = x ; then  if test "x$MAKE" = x ; then
1092      MAKE="make"      MAKE="make"
1093  fi  fi
1094    if test "x$CPP" = x ; then
1095        CPP=cpp
1096    fi
1097    #EH3 === UGLY ===
1098    #  The following is an ugly little hack to check for $CPP in /lib/ and
1099    #  it should eventually be replaced with a more general function that
1100    #  searches a combo of the user's path and a list of "usual suspects"
1101    #  to find the correct location for binaries such as $CPP.
1102    for i in " " "/lib/" ; do
1103        echo "#define A a" | $i$CPP > test_cpp 2>&1 && CPP=$i$CPP
1104    done
1105    #EH3 === UGLY ===
1106  echo "#define A a" | $CPP > test_cpp 2>&1  echo "#define A a" | $CPP > test_cpp 2>&1
1107  RETVAL=$?  RETVAL=$?
1108  if test "x$RETVAL" != x0 ; then  if test "x$RETVAL" != x0 ; then
# Line 820  EOF Line 1119  EOF
1119  else  else
1120      rm -f test_cpp      rm -f test_cpp
1121  fi  fi
1122  if test "x$MAKEDEPEND" = x ; then  look_for_makedepend
     MAKEDEPEND=makedepend  
 fi  
1123  if test "x$LN" = x ; then  if test "x$LN" = x ; then
1124      LN="ln -s"      LN="ln -s"
1125  fi  fi
# Line 840  EOF Line 1137  EOF
1137  fi  fi
1138  rm -f genmake_test_ln genmake_tlink  rm -f genmake_test_ln genmake_tlink
1139    
1140    #  Check for broken *.F/*.f handling and fix if possible
1141    check_for_broken_Ff
1142    
1143    if test ! "x$MPI" = x ; then
1144          echo "  Turning on MPI cpp macros"
1145          DEFINES="$DEFINES -DALLOW_USE_MPI -DALWAYS_USE_MPI"
1146    fi
1147    
1148  printf "\n===  Checking system libraries  ===\n"  printf "\n===  Checking system libraries  ===\n"
1149  echo -n "  Do we have the system() command using $FC...  "  printf "  Do we have the system() command using $FC...  "
1150  cat > genmake_tcomp.f <<EOF  cat > genmake_tcomp.f <<EOF
1151        program hello        program hello
1152        call system('echo hi')        call system('echo hi')
# Line 860  else Line 1164  else
1164  fi  fi
1165  rm -f genmake_tcomp*  rm -f genmake_tcomp*
1166    
1167  echo -n "  Do we have the fdate() command using $FC...  "  printf "  Do we have the fdate() command using $FC...  "
1168  cat > genmake_tcomp.f <<EOF  cat > genmake_tcomp.f <<EOF
1169        program hello        program hello
1170        CHARACTER(128) string        CHARACTER(128) string
# Line 881  else Line 1185  else
1185  fi  fi
1186  rm -f genmake_tcomp*  rm -f genmake_tcomp*
1187    
1188  echo -n "  Can we call simple C routines (here, \"cloc()\") using $FC...  "  printf "  Do we have the etime() command using $FC...  "
1189    cat > genmake_tcomp.f <<EOF
1190          program hello
1191          REAL*4 ACTUAL, TARRAY(2)
1192          EXTERNAL ETIME
1193          REAL*4 ETIME
1194          actual = etime( tarray )
1195          print *, tarray
1196          end
1197    EOF
1198    $FC $FFLAGS $DEFINES -o genmake_tcomp genmake_tcomp.f > genmake_tcomp.log 2>&1
1199    RETVAL=$?
1200    if test "x$RETVAL" = x0 ; then
1201        HAVE_ETIME=t
1202        DEFINES="$DEFINES -DHAVE_ETIME"
1203        echo "yes"
1204    else
1205        HAVE_ETIME=
1206        echo "no"
1207    fi
1208    rm -f genmake_tcomp*
1209    
1210    printf "  Can we call simple C routines (here, \"cloc()\") using $FC...  "
1211  check_HAVE_CLOC  check_HAVE_CLOC
1212  if test "x$HAVE_CLOC" != x ; then  if test "x$HAVE_CLOC" != x ; then
1213      echo "yes"      echo "yes"
1214  else  else
1215      echo "no"      echo "no"
1216  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  
1217  rm -f genmake_t*  rm -f genmake_t*
1218    
1219    printf "  Can we create NetCDF-enabled binaries...  "
1220    check_netcdf_libs
1221    if test "x$HAVE_NETCDF" != x ; then
1222        echo "yes"
1223    else
1224        echo "no"
1225    fi
1226    
1227    
1228  printf "\n===  Setting defaults  ===\n"  printf "\n===  Setting defaults  ===\n"
1229  echo -n "  Adding MODS directories:  "  printf "  Adding MODS directories:  "
1230  for d in $MODS ; do  for d in $MODS ; do
1231      if test ! -d $d ; then      if test ! -d $d ; then
1232          echo          echo
1233          echo "Error: MODS directory \"$d\" not found!"          echo "Error: MODS directory \"$d\" not found!"
1234          exit 1          exit 1
1235      else      else
1236          echo -n " $d"          printf " $d"
1237          SOURCEDIRS="$SOURCEDIRS $d"          SOURCEDIRS="$SOURCEDIRS $d"
1238          INCLUDEDIRS="$INCLUDEDIRS $d"          INCLUDEDIRS="$INCLUDEDIRS $d"
1239      fi      fi
# Line 920  if test "x${PLATFORM}" = x ; then Line 1248  if test "x${PLATFORM}" = x ; then
1248  fi  fi
1249    
1250  if test "x${EXEDIR}" = x ; then  if test "x${EXEDIR}" = x ; then
1251      if test "${PWD##/*/}" = "bin" -a -d ../exe -a $ROOTDIR = .. ; then      tmp=`echo $PWD | sed -e 's/\// /g' | awk '{print $NR}'`
1252        if test "x$tmp" = "xbin" -a -d ../exe -a $ROOTDIR = .. ; then
1253          EXEDIR=../exe          EXEDIR=../exe
1254      else      else
1255          EXEDIR=.          EXEDIR=.
# Line 935  if test "x${TOOLSDIR}" = x ; then Line 1264  if test "x${TOOLSDIR}" = x ; then
1264      TOOLSDIR="$ROOTDIR/tools"      TOOLSDIR="$ROOTDIR/tools"
1265  fi  fi
1266  if test ! -d ${TOOLSDIR} ; then  if test ! -d ${TOOLSDIR} ; then
1267      echo "Error: the specified $TOOLSDIR (\"$TOOLSDIR\") does not exist!"      echo "Error: the specified TOOLSDIR (\"$TOOLSDIR\") does not exist!"
1268      exit 1      exit 1
1269  fi  fi
1270  if test "x$S64" = x ; then  if test "x$S64" = x ; then
# Line 956  if test -r $ROOTDIR"/eesupp/src/Makefile Line 1285  if test -r $ROOTDIR"/eesupp/src/Makefile
1285          rm -f make_eesupp.errors          rm -f make_eesupp.errors
1286      else      else
1287          echo "Error: problem encountered while building source files in eesupp:"          echo "Error: problem encountered while building source files in eesupp:"
1288          cat make_eesupp.errors          cat make_eesupp.errors 1>&2
1289          exit 1          exit 1
1290      fi      fi
1291  fi  fi
1292    
1293    #same for exch2
1294    if test -r $ROOTDIR"/pkg/exch2/Makefile" ; then
1295        echo "  Making source files in exch2 from  templates"
1296        ( cd $ROOTDIR"/pkg/exch2/" && $MAKE ) > make_exch2.errors 2>&1
1297        RETVAL=$?
1298        if test "x${RETVAL}" = x0 ; then
1299            rm -f make_exch2.errors
1300        else
1301            echo "Error: problem encountered while building source files in exch2:"
1302            cat make_exch2.errors 1>&2
1303            exit 1
1304        fi
1305    fi
1306    
1307  printf "\n===  Determining package settings  ===\n"  printf "\n===  Determining package settings  ===\n"
1308  if  test "x${PDEPEND}" = x ; then  if  test "x${PDEPEND}" = x ; then
1309      tmp=$ROOTDIR"/pkg/pkg_depend"      tmp=$ROOTDIR"/pkg/pkg_depend"
# Line 1016  else Line 1359  else
1359          def=`cat $PDEFAULT | sed -e 's/#.*$//g' | $AWK '(NF>0){print $0}'`          def=`cat $PDEFAULT | sed -e 's/#.*$//g' | $AWK '(NF>0){print $0}'`
1360          RETVAL=$?          RETVAL=$?
1361          if test "x${RETVAL}" != x0 ; then          if test "x${RETVAL}" != x0 ; then
1362              echo -n "Error: can't parse default package list "              printf "Error: can't parse default package list "
1363              echo "-- please check PDEFAULT=\"$PDEFAULT\""              echo "-- please check PDEFAULT=\"$PDEFAULT\""
1364              exit 1              exit 1
1365          fi          fi
# Line 1024  else Line 1367  else
1367              PACKAGES="$PACKAGES $i"              PACKAGES="$PACKAGES $i"
1368          done          done
1369          echo "    before group expansion packages are: $PACKAGES"          echo "    before group expansion packages are: $PACKAGES"
1370          expand_pkg_groups          RET=1
1371            while test $RET = 1 ; do expand_pkg_groups; RET=$?; done
1372          echo "    after group expansion packages are:  $PACKAGES"          echo "    after group expansion packages are:  $PACKAGES"
1373      fi      fi
1374  fi  fi
1375    
1376  echo "  applying DISABLE settings"  echo "  applying DISABLE settings"
1377    for i in $PACKAGES ; do
1378        echo $i >> ./.tmp_pack
1379    done
1380    for i in `grep  "-" ./.tmp_pack` ; do
1381        j=`echo $i | sed 's/[-]//'`
1382        DISABLE="$DISABLE $j"
1383    done
1384  pack=  pack=
1385  for p in $PACKAGES ; do  for p in $PACKAGES ; do
1386      addit="t"      addit="t"
# Line 1046  PACKAGES="$pack" Line 1397  PACKAGES="$pack"
1397  echo "  applying ENABLE settings"  echo "  applying ENABLE settings"
1398  echo "" > ./.tmp_pack  echo "" > ./.tmp_pack
1399  PACKAGES="$PACKAGES $ENABLE"  PACKAGES="$PACKAGES $ENABLE"
1400    # Test if each explicitly referenced package exists
1401  for i in $PACKAGES ; do  for i in $PACKAGES ; do
1402      if test ! -d "$ROOTDIR/pkg/$i" ; then      j=`echo $i | sed 's/[-+]//'`
1403        if test ! -d "$ROOTDIR/pkg/$j" ; then
1404          echo "Error: can't find package $i at \"$ROOTDIR/pkg/$i\""          echo "Error: can't find package $i at \"$ROOTDIR/pkg/$i\""
1405          exit 1          exit 1
1406      fi      fi
1407      echo $i >> ./.tmp_pack      echo $i >> ./.tmp_pack
1408  done  done
 pack=`cat ./.tmp_pack | sort | uniq`  
 rm -f ./.tmp_pack  
1409  PACKAGES=  PACKAGES=
1410  for i in $pack ; do  for i in `grep -v "-" ./.tmp_pack | sort | uniq` ; do
1411      PACKAGES="$PACKAGES $i"      PACKAGES="$PACKAGES $i"
1412  done  done
1413    rm -f ./.tmp_pack
1414  echo "    packages are:  $PACKAGES"  echo "    packages are:  $PACKAGES"
1415    
1416  echo "  applying package dependency rules"  echo "  applying package dependency rules"
# Line 1125  while test "x$ck" != xtt ; do Line 1477  while test "x$ck" != xtt ; do
1477              echo "  the dependency rules for \"$dname\""              echo "  the dependency rules for \"$dname\""
1478              exit 1              exit 1
1479          fi          fi
1480          i=$(( $i + 1 ))          i=`echo "$i + 1" | bc -l`
1481            #i=$(( $i + 1 ))
1482      done      done
1483      ck=$ck"t"      ck=$ck"t"
1484  done  done
# Line 1144  for i in $PACKAGES ; do Line 1497  for i in $PACKAGES ; do
1497      fi      fi
1498  done  done
1499    
1500    #  Build MNC templates and check for ability to build and use NetCDF
1501    echo $PACKAGES | grep ' mnc ' > /dev/null 2>&1
1502    RETVAL=$?
1503    if test "x$RETVAL" = x0 ; then
1504        ( cd $ROOTDIR"/pkg/mnc" && $MAKE templates ) > make_mnc.errors 2>&1
1505        RETVAL=$?
1506        if test "x${RETVAL}" = x0 ; then
1507            rm -f make_mnc.errors
1508        else
1509            echo "Error: problem encountered while building source files in pkg/mnc:"
1510            cat make_mnc.errors 1>&2
1511            exit 1
1512        fi
1513        if test "x$HAVE_NETCDF" != xt ; then
1514            cat <<EOF
1515    
1516    WARNING: the "mnc" package has been enabled but tests failed to
1517      compile and/or execute NetCDF applications.  Please check that:
1518    
1519      1) NetCDF is installed for your compiler and
1520      2) the LIBS variable (within the 'optfile") specifies the correct
1521           NetCDF library to link against.
1522      
1523    EOF
1524        fi
1525    fi
1526    
1527  # Create a list of #define and #undef to enable/disable packages  # Create a list of #define and #undef to enable/disable packages
1528  PACKAGES_DOT_H=PACKAGES_CONFIG.h  PACKAGES_DOT_H=PACKAGES_CONFIG.h
# Line 1178  for i in $PACKAGES ; do Line 1557  for i in $PACKAGES ; do
1557  #EH3  WARNING :  This is an UGLY HACK that needs to be removed!!!  #EH3  WARNING :  This is an UGLY HACK that needs to be removed!!!
1558      case $i in      case $i in
1559          aim_v23)          aim_v23)
             DEFINES="$DEFINES -DALLOW_AIM"  
1560              ENABLED_PACKAGES="$ENABLED_PACKAGES -DALLOW_AIM"              ENABLED_PACKAGES="$ENABLED_PACKAGES -DALLOW_AIM"
1561              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."
1562              ;;              ;;
1563      esac      esac
1564  #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 1567  done
1567    
1568  echo "  Adding STANDARDDIRS"  echo "  Adding STANDARDDIRS"
1569  BUILDDIR=${BUILDDIR:-.}  BUILDDIR=${BUILDDIR:-.}
1570  if test "x$STANDARDDIRS" = x ; then  if test "x$STANDARDDIRS" = xUSE_THE_DEFAULT ; then
1571      STANDARDDIRS="eesupp model"      STANDARDDIRS="eesupp model"
1572  fi  fi
1573  for d in $STANDARDDIRS ; do  if test "x$STANDARDDIRS" != x ; then
1574      adr="$ROOTDIR/$d/src"      for d in $STANDARDDIRS ; do
1575      if test ! -d $adr ; then          adr="$ROOTDIR/$d/src"
1576          echo "Error:  directory $adr not found -- please check that ROOTDIR=\"$ROOTDIR\""          if test ! -d $adr ; then
1577          echo "  is correct and that you correctly specified the STANDARDDIRS option"              echo "Error:  directory $adr not found -- please check that ROOTDIR=\"$ROOTDIR\""
1578          exit 1              echo "  is correct and that you correctly specified the STANDARDDIRS option"
1579      else              exit 1
1580          SOURCEDIRS="$SOURCEDIRS $adr"          else
1581      fi              SOURCEDIRS="$SOURCEDIRS $adr"
1582      adr="$ROOTDIR/$d/inc"          fi
1583      if test ! -d $adr ; then          adr="$ROOTDIR/$d/inc"
1584          echo "Error:  directory $adr not found -- please check that ROOTDIR=\"$ROOTDIR\""          if test ! -d $adr ; then
1585          echo "  is correct and that you correctly specified the STANDARDDIRS option"              echo "Error:  directory $adr not found -- please check that ROOTDIR=\"$ROOTDIR\""
1586          exit 1              echo "  is correct and that you correctly specified the STANDARDDIRS option"
1587      else              exit 1
1588          INCLUDEDIRS="$INCLUDEDIRS $adr"          else
1589      fi              INCLUDEDIRS="$INCLUDEDIRS $adr"
1590  done          fi
1591        done
1592    fi
1593    
1594  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"
1595  echo "    of \"#define ALLOW_PKGNAME\"-type statements:"  echo "    of \"#define \"-type statements that are no longer allowed:"
1596  CPP_OPTIONS=  CPP_OPTIONS=
1597    CPP_EEOPTIONS=
1598  spaths=". $INCLUDEDIRS"  spaths=". $INCLUDEDIRS"
1599    names=`ls -1 "$ROOTDIR/pkg"`
1600  for i in $spaths ; do  for i in $spaths ; do
1601      try="$i/CPP_OPTIONS.h"      try="$i/CPP_OPTIONS.h"
1602      #  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  
1603          echo "    found CPP_OPTIONS=\"$try\""          echo "    found CPP_OPTIONS=\"$try\""
1604          CPP_OPTIONS="$try"          CPP_OPTIONS="$try"
1605          break          # New safety test: make sure packages are not mentioned in CPP_OPTIONS.h
1606            for n in $names ; do
1607                test_for_package_in_cpp_options $CPP_OPTIONS $n
1608            done
1609        fi
1610        try="$i/CPP_EEOPTIONS.h"
1611        if test -f $try -a -r $try -a "x$CPP_EEOPTIONS" = x ; then
1612            echo "    found CPP_EEOPTIONS=\"$try\""
1613            # New safety test: make sure MPI is not determined by CPP_EEOPTIONS.h
1614    #**** not yet enabled ****
1615    #        test_for_mpi_in_cpp_eeoptions $try
1616    #**** not yet enabled ****
1617            CPP_EEOPTIONS="$try"
1618      fi      fi
1619  done  done
1620  if test "x$CPP_OPTIONS" = x ; then  if test "x$CPP_OPTIONS" = x ; then
1621      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"
1622      exit 1      exit 1
1623  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  
   
1624    
1625  #  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
1626  #  compiler.  #  compiler.
# Line 1248  for i in $SOURCEDIRS ; do Line 1635  for i in $SOURCEDIRS ; do
1635      done      done
1636  done  done
1637    
1638    
1639  echo  echo
1640  echo "===  Creating the Makefile  ==="  echo "===  Creating the Makefile  ==="
1641  echo "  setting INCLUDES"  echo "  setting INCLUDES"
1642  for i in $INCLUDEDIRS ; do  for i in $INCLUDEDIRS ; do
1643      if ! test -d $i ; then      if test ! -d $i ; then
 #       INCLUDES="$INCLUDES -I$i"  
 #   else  
1644          echo "Warning: can't find INCLUDEDIRS=\"$i\""          echo "Warning: can't find INCLUDEDIRS=\"$i\""
1645      fi      fi
1646  done  done
# Line 1264  rm -rf .links.tmp Line 1650  rm -rf .links.tmp
1650  mkdir .links.tmp  mkdir .links.tmp
1651  echo "# This section creates symbolic links" > srclinks.tmp  echo "# This section creates symbolic links" > srclinks.tmp
1652  echo "" >> srclinks.tmp  echo "" >> srclinks.tmp
1653  echo -n 'SRCFILES = '    > srclist.inc  printf 'SRCFILES = '    > srclist.inc
1654  echo -n 'CSRCFILES = '   > csrclist.inc  printf 'CSRCFILES = '   > csrclist.inc
1655  echo -n 'F90SRCFILES = ' > f90srclist.inc  printf 'F90SRCFILES = ' > f90srclist.inc
1656  echo -n 'HEADERFILES = ' > hlist.inc  printf 'HEADERFILES = ' > hlist.inc
1657  echo -n 'AD_FLOW_FILES = ' > ad_flow_files.inc  printf 'AD_FLOW_FILES = ' > ad_flow_files.inc
1658  alldirs="$SOURCEDIRS $INCLUDEDIRS ."  alldirs="$SOURCEDIRS $INCLUDEDIRS ."
1659  for d in $alldirs ; do  for d in $alldirs ; do
1660      deplist=      deplist=
# Line 1293  for d in $alldirs ; do Line 1679  for d in $alldirs ; do
1679                  case $extn in                  case $extn in
1680                      F)                      F)
1681                          echo    " \\"  >> srclist.inc                          echo    " \\"  >> srclist.inc
1682                          echo -n " $sf" >> srclist.inc                          printf " $sf" >> srclist.inc
1683                          ;;                          ;;
1684                      F90)                      F90)
1685                          echo    " \\"  >> f90srclist.inc                          echo    " \\"  >> f90srclist.inc
1686                          echo -n " $sf" >> f90srclist.inc                          printf " $sf" >> f90srclist.inc
1687                          ;;                          ;;
1688                      c)                      c)
1689                          echo    " \\"  >> csrclist.inc                          echo    " \\"  >> csrclist.inc
1690                          echo -n " $sf" >> csrclist.inc                          printf " $sf" >> csrclist.inc
1691                          ;;                          ;;
1692                      h)                      h)
1693                          echo    " \\"  >> hlist.inc                          echo    " \\"  >> hlist.inc
1694                          echo -n " $sf" >> hlist.inc                          printf " $sf" >> hlist.inc
1695                          ;;                          ;;
1696                      flow)                      flow)
1697                          echo    " \\"  >> ad_flow_files.inc                          echo    " \\"  >> ad_flow_files.inc
1698                          echo -n " $sf" >> ad_flow_files.inc                          printf " $sf" >> ad_flow_files.inc
1699                          ;;                          ;;
1700                  esac                  esac
1701              fi              fi
# Line 1329  echo "" >> f90srclist.inc Line 1715  echo "" >> f90srclist.inc
1715  echo "" >> hlist.inc  echo "" >> hlist.inc
1716  echo "" >> ad_flow_files.inc  echo "" >> ad_flow_files.inc
1717    
1718  if test -e $MAKEFILE ; then  if test -f $MAKEFILE ; then
1719      mv -f $MAKEFILE "$MAKEFILE.bak"      mv -f $MAKEFILE "$MAKEFILE.bak"
1720  fi  fi
1721  echo "  Writing makefile: $MAKEFILE"  echo "  Writing makefile: $MAKEFILE"
# Line 1338  echo "#    $MACHINE" >> $MAKEFILE Line 1724  echo "#    $MACHINE" >> $MAKEFILE
1724  echo "# This makefile was generated automatically on" >> $MAKEFILE  echo "# This makefile was generated automatically on" >> $MAKEFILE
1725  echo "#    $THISDATE" >> $MAKEFILE  echo "#    $THISDATE" >> $MAKEFILE
1726  echo "# by the command:" >> $MAKEFILE  echo "# by the command:" >> $MAKEFILE
1727  echo "#    $0 $@" >> $MAKEFILE  echo "#    $0 $G2ARGS" >> $MAKEFILE
1728  echo "# executed by:" >> $MAKEFILE  echo "# executed by:" >> $MAKEFILE
1729  echo "#    $USER@${THISHOSTNAME}:${THISCWD}" >> $MAKEFILE  echo "#    $USER@${THISHOSTNAME}:${THISCWD}" >> $MAKEFILE
1730    
# Line 1347  EXE_FTL=$EXECUTABLE"_ftl" Line 1733  EXE_FTL=$EXECUTABLE"_ftl"
1733  EXE_SVD=$EXECUTABLE"_svd"  EXE_SVD=$EXECUTABLE"_svd"
1734    
1735  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
1736    #
1737    # OPTFILE="$OPTFILE"
1738  #  #
1739  # BUILDDIR     : Directory where object files are written  # BUILDDIR     : Directory where object files are written
1740  # SOURCEDIRS   : Directories containing the source (.F) files  # SOURCEDIRS   : Directories containing the source (.F) files
# Line 1383  EXE_SVD     = ${EXE_SVD} Line 1771  EXE_SVD     = ${EXE_SVD}
1771  ENABLED_PACKAGES = ${ENABLED_PACKAGES}  ENABLED_PACKAGES = ${ENABLED_PACKAGES}
1772  DISABLED_PACKAGES = ${DISABLED_PACKAGES}  DISABLED_PACKAGES = ${DISABLED_PACKAGES}
1773    
1774    # These files are created by Makefile
1775    SPECIAL_FILES = ${PACKAGES_DOT_H} AD_CONFIG.h FC_NAMEMANGLE.h
1776    
1777  EOF  EOF
1778    
1779  #  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 1792  FC = ${FC}
1792  # Fortran compiler  # Fortran compiler
1793  F90C = ${F90C}  F90C = ${F90C}
1794  # Link editor  # Link editor
1795  LINK = ${LINK}  LINK = ${LINK} ${LDADD}
1796    
1797  # Defines for CPP  # Defines for CPP
1798  DEFINES = ${DEFINES}  DEFINES = ${DEFINES}
# Line 1433  cat csrclist.inc      >> $MAKEFILE Line 1824  cat csrclist.inc      >> $MAKEFILE
1824  cat f90srclist.inc    >> $MAKEFILE  cat f90srclist.inc    >> $MAKEFILE
1825  cat hlist.inc         >> $MAKEFILE  cat hlist.inc         >> $MAKEFILE
1826  cat ad_flow_files.inc >> $MAKEFILE  cat ad_flow_files.inc >> $MAKEFILE
1827  echo               >> $MAKEFILE  echo >> $MAKEFILE
1828  echo 'F77FILES =  $(SRCFILES:.F=.f)'                                           >> $MAKEFILE  echo 'F77FILES =  $(SRCFILES:.F=.'$FS')'      >> $MAKEFILE
1829  echo 'F90FILES =  $(F90SRCFILES:.F90=.f90)'                                    >> $MAKEFILE  echo 'F90FILES =  $(F90SRCFILES:.F=.'$FS90')' >> $MAKEFILE
1830  echo 'OBJFILES =  $(SRCFILES:.F=.o) $(CSRCFILES:.c=.o) $(F90SRCFILES:.F90=.o)' >> $MAKEFILE  echo 'OBJFILES =  $(SRCFILES:.F=.o) $(CSRCFILES:.c=.o) $(F90SRCFILES:.F90=.o)' >> $MAKEFILE
1831    echo >> $MAKEFILE
1832    echo '.SUFFIXES:' >> $MAKEFILE
1833    echo '.SUFFIXES: .o .'$FS' .p .F .c .'$FS90' .F90' >> $MAKEFILE
1834  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
1835  rm -f ad_flow_files.inc  rm -f ad_flow_files.inc
1836    
1837  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
1838    
 .SUFFIXES:  
 .SUFFIXES: .o .f .p .F .c .F90 .f90  
   
1839  all: \$(EXECUTABLE)  all: \$(EXECUTABLE)
1840  \$(EXECUTABLE): ${PACKAGES_DOT_H} AD_CONFIG.h \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) \$(OBJFILES)  \$(EXECUTABLE): \$(SPECIAL_FILES) \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) \$(OBJFILES)
1841          @echo Creating \$@ ...          @echo Creating \$@ ...
1842          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(LIBS)          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(LIBS)
1843  depend:  depend:
1844          @make links          @make links
1845          \$(MAKEDEPEND) -o .f \$(DEFINES) \$(INCLUDES) \$(SRCFILES)          \$(MAKEDEPEND) -o .$FS \$(DEFINES) \$(INCLUDES) \$(SRCFILES)
1846          \$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE)          \$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE)
1847            -rm -f makedepend.out
1848    
1849  links: \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) ${PACKAGES_DOT_H} AD_CONFIG.h  links: \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) \$(SPECIAL_FILES)
1850    
1851  small_f: \$(F77FILES) \$(F90FILES)  small_f: \$(F77FILES) \$(F90FILES)
1852    
# Line 1464  output.txt: \$(EXECUTABLE) Line 1855  output.txt: \$(EXECUTABLE)
1855          @\$(EXECUTABLE) > \$@          @\$(EXECUTABLE) > \$@
1856    
1857  clean:  clean:
1858          -rm -rf *.o *.f *.p *.f90 *.mod ${RMFILES} work.{pc,pcl} *.template          -rm -rf *.o *.$FS *.p *.$FS90 *.mod ${RMFILES} work.{pc,pcl} *.template
1859  Clean:  Clean:
1860          @make clean          @make clean
1861          @make cleanlinks          @make cleanlinks
1862          -rm -f ${PACKAGES_DOT_H} AD_CONFIG.h          -rm -f \$(SPECIAL_FILES)
1863          -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
1864  CLEAN:  CLEAN:
1865          @make Clean          @make Clean
1866          -find \$(EXEDIR) -name "*.meta" -exec rm {} \;          -find \$(EXEDIR) -name "*.meta" -exec rm {} \;
1867          -find \$(EXEDIR) -name "*.data" -exec rm {} \;          -find \$(EXEDIR) -name "*.data" -exec rm {} \;
1868          -find \$(EXEDIR) -name "fort.*" -exec rm {} \;          -find \$(EXEDIR) -name "fort.*" -exec rm {} \;
1869          -rm -f \$(EXECUTABLE) output.txt          -rm -f \$(EXECUTABLE) output.txt STD*
1870    
1871  #eh3 Makefile: makefile  #eh3 Makefile: makefile
1872  makefile:  makefile:
1873          $THIS_SCRIPT $@          $THIS_SCRIPT $G2ARGS
1874  cleanlinks:  cleanlinks:
1875          -find . -type l -exec rm {} \;          -find . -type l -exec rm {} \;
1876    
1877  # Special targets  # Special targets ($SPECIAL_FILES) which are create by make
1878  ${PACKAGES_DOT_H}:  ${PACKAGES_DOT_H}:
1879          @echo Creating \$@ ...          @echo Creating \$@ ...
1880          @\$(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) > \$@
1881  AD_CONFIG.h:  AD_CONFIG.h:
1882          @echo Creating \$@ ...          @echo Creating \$@ ...
1883          @\$(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 > \$@
1884    FC_NAMEMANGLE.h:
1885            @echo Creating \$@ ...
1886            echo "$FC_NAMEMANGLE" > \$@
1887    
1888    # The normal chain of rules is (  .F - .$FS - .o  )
1889    
1890    %.o : %.F
1891    
1892  # The normal chain of rules is (  .F - .f - .o  )  .F.$FS:
 .F.f:  
1893          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@
1894  .f.o:  .$FS.o:
1895          \$(FC) \$(FFLAGS) \$(FOPTIM) -c \$<          \$(FC) \$(FFLAGS) \$(FOPTIM) -c \$<
1896  .F90.f90:  .F90.$FS90:
1897          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@
1898  .f90.o:  .$FS90.o:
1899          \$(F90C) \$(F90FLAGS) \$(F90OPTIM) -c \$<          \$(F90C) \$(F90FLAGS) \$(F90OPTIM) -c \$<
1900  .c.o:  .c.o:
1901          \$(CC) \$(CFLAGS) -c \$<          \$(CC) \$(CFLAGS) -c \$<
1902    
1903  # Special exceptions that use the ( .F - .p - .f - .o ) rule-chain  # Special exceptions that use the ( .F - .p - .$FS - .o ) rule-chain
1904  .F.p:  .F.p:
1905          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@
1906  .p.f:  .p.$FS:
1907          \$(KPP) \$(KFLAGS1)\$@ \$(KFLAGS2) \$<          \$(KPP) \$(KFLAGS1)\$@ \$(KFLAGS2) \$<
1908    
1909  #=========================================  #=========================================
# Line 1533  done Line 1930  done
1930    
1931  echo "  Add the source list for AD code generation"  echo "  Add the source list for AD code generation"
1932  echo >> $MAKEFILE  echo >> $MAKEFILE
1933  echo -n "AD_FILES = " >> $MAKEFILE  printf "AD_FILES = " >> $MAKEFILE
1934  AD_FILES=`cat ad_files`  AD_FILES=`cat ad_files`
1935  for i in $AD_FILES ; do  for i in $AD_FILES ; do
1936      echo    " \\" >> $MAKEFILE      echo    " \\" >> $MAKEFILE
1937      echo -n " $i" >> $MAKEFILE      printf " $i" >> $MAKEFILE
1938  done  done
1939  echo >> $MAKEFILE  echo >> $MAKEFILE
1940  rm -f ad_files  rm -f ad_files
# Line 1550  adtaf: ad_taf_output.f Line 1947  adtaf: ad_taf_output.f
1947  adtamc: ad_tamc_output.f  adtamc: ad_tamc_output.f
1948    
1949  ad_input_code.f: \$(AD_FILES) \$(HEADERFILES)  ad_input_code.f: \$(AD_FILES) \$(HEADERFILES)
1950          @\$(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
1951          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
1952          -rm -f ad_config.template          -rm -f ad_config.template
1953          @make \$(F77FILES)          @make \$(F77FILES)
# Line 1582  ftltaf: ftl_taf_output.f Line 1979  ftltaf: ftl_taf_output.f
1979  ftltamc: ftl_tamc_output.f  ftltamc: ftl_tamc_output.f
1980    
1981  ftl_input_code.f: \$(AD_FILES) \$(HEADERFILES)  ftl_input_code.f: \$(AD_FILES) \$(HEADERFILES)
1982          @\$(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
1983          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
1984          -rm -f ftl_config.template          -rm -f ftl_config.template
1985          @make \$(F77FILES)          @make \$(F77FILES)
# Line 1631  for i in $KPPFILES ; do Line 2028  for i in $KPPFILES ; do
2028      if test "x$RETVAL" != x0 ; then      if test "x$RETVAL" != x0 ; then
2029          echo "Error: unable to add file \"$i\" to the exceptions list"          echo "Error: unable to add file \"$i\" to the exceptions list"
2030      fi      fi
2031      echo "$base.f: $base.p" >> $MAKEFILE      echo "$base.$FS: $base.p" >> $MAKEFILE
2032  done  done
2033    
2034  echo "  Making list of NOOPTFILES"  echo "  Making list of NOOPTFILES"
# Line 1641  for i in $NOOPTFILES ; do Line 2038  for i in $NOOPTFILES ; do
2038      if test "x$RETVAL" != x0 ; then      if test "x$RETVAL" != x0 ; then
2039          echo "Error: unable to add file \"$i\" to the exceptions list"          echo "Error: unable to add file \"$i\" to the exceptions list"
2040      fi      fi
2041      echo "$base.o: $base.f" >> $MAKEFILE      echo "$base.o: $base.$FS" >> $MAKEFILE
2042      printf "\t\$(FC) \$(FFLAGS) \$(NOOPTFLAGS) -c \$<\n" >> $MAKEFILE      printf "\t\$(FC) \$(FFLAGS) \$(NOOPTFLAGS) -c \$<\n" >> $MAKEFILE
2043  done  done
2044    
# Line 1655  printf "\n\n# DO NOT DELETE\n" >> $MAKEF Line 2052  printf "\n\n# DO NOT DELETE\n" >> $MAKEF
2052  printf "\n===  Done  ===\n"  printf "\n===  Done  ===\n"
2053    
2054  # Create special header files  # Create special header files
2055  $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"
2056  if test ! -f $PACKAGES_DOT_H ; then  if test ! -f $PACKAGES_DOT_H ; then
2057      mv -f $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H      mv -f $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H
2058  else  else
2059      cmp $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H      cmp $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H > /dev/null 2>&1
2060      RETVAL=$?      RETVAL=$?
2061      if test "x$RETVAL" = x0 ; then      if test "x$RETVAL" = x0 ; then
2062          rm -f $PACKAGES_DOT_H".tmp"          rm -f $PACKAGES_DOT_H".tmp"
# Line 1669  else Line 2066  else
2066      fi      fi
2067  fi  fi
2068  if test ! -f AD_CONFIG.h ; then  if test ! -f AD_CONFIG.h ; then
2069      $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
2070  fi  fi
2071    
2072    
2073  #  Write the "state" for future records  #  Write the "state" for future records
2074  if test "x$DUMPSTATE" != xf ; then  if test "x$DUMPSTATE" != xf ; then
2075      echo -n "" > genmake_state      printf "" > genmake_state
2076      for i in $gm_state ; do      for i in $gm_state ; do
2077          t1="t2=\$$i"          t1="t2=\$$i"
2078          eval $t1          eval $t1

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

  ViewVC Help
Powered by ViewVC 1.1.22