/[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.215 by jmc, Mon Dec 6 17:16:06 2010 UTC revision 1.231 by jmc, Fri Jul 6 18:55:13 2012 UTC
# Line 96  Usage: "$0" [OPTIONS] Line 96  Usage: "$0" [OPTIONS]
96            will search for a working compiler by trying a list of            will search for a working compiler by trying a list of
97            "usual suspects" such as gcc, c89, cc, etc.            "usual suspects" such as gcc, c89, cc, etc.
98    
     -[no]ieee | --[no]ieee  
           Do or don't use IEEE numerics.  Note that this option  
           *only* works if it is supported by the OPTFILE that  
           is being used.  
   
99      -use_real4 | -use_r4 | -ur4 | --use_real4 | --use_r4 | --ur4      -use_real4 | -use_r4 | -ur4 | --use_real4 | --use_r4 | --ur4
100            Use "real*4" type for _RS variable (#undef REAL4_IS_SLOW)            Use "real*4" type for _RS variable (#undef REAL4_IS_SLOW)
101            *only* works if CPP_EEOPTIONS.h allows this.            *only* works if CPP_EEOPTIONS.h allows this.
# Line 126  Usage: "$0" [OPTIONS] Line 121  Usage: "$0" [OPTIONS]
121      -hpmt | --hpmt      -hpmt | --hpmt
122            Performance analysis with the HPM Toolkit            Performance analysis with the HPM Toolkit
123    
124      -gsl | --gsl      -ieee | --ieee
125            Use GSL to control floating point rounding and precision            use IEEE numerics.  Note that this option *only* works
126              if it is supported by the OPTFILE that is being used.
127      -devel | --devel      -devel | --devel
128            Add additional warning and debugging flags for development            Add additional warning and debugging flags for development
129              (if supported by the OPTFILE); also switch to IEEE numerics.
130        -gsl | --gsl
131              Use GSL to control floating point rounding and precision
132    
133      -mpi | --mpi      -mpi | --mpi
134            Include MPI header files and link to MPI libraries            Include MPI header files and link to MPI libraries
# Line 298  EOF Line 297  EOF
297  .F.$tfs:  .F.$tfs:
298          $LN \$< \$@          $LN \$< \$@
299  EOF  EOF
300      $MAKE "genmake_hello."$tfs > /dev/null 2>&1      $MAKE -f $MAKEFILE "genmake_hello."$tfs > /dev/null 2>&1
301      RETVAL=$?      RETVAL=$?
302      if test "x$RETVAL" != x0 -o ! -f "genmake_hello."$tfs ; then      if test "x$RETVAL" != x0 -o ! -f "genmake_hello."$tfs ; then
303          if test "x$FS" = x ; then          if test "x$FS" = x ; then
# Line 346  look_for_makedepend()  { Line 345  look_for_makedepend()  {
345      #    3) locally build and use the cyrus implementation      #    3) locally build and use the cyrus implementation
346      #    4) fall back to the buggy local xmakedpend script      #    4) fall back to the buggy local xmakedpend script
347      #      #
348        echo >> $LOGFILE
349        echo "running: look_for_makedepend()" >> $LOGFILE
350        if test "x${MAKEDEPEND}" != x ; then
351            echo "${MAKEDEPEND}" | grep -i cyrus > /dev/null 2>&1
352            RETVAL=$?
353            if test x"$RETVAL" = x0 ; then
354                build_cyrus_makedepend
355                RETVAL=$?
356                if test "x$RETVAL" != x0 ; then
357                    echo "WARNING: unable to build cyrus-makedepend. Try 'makedepend'"
358                    MAKEDEPEND=
359                fi
360            else
361                echo "${MAKEDEPEND}" | grep 'tools.xmakedepend' > /dev/null 2>&1
362                RETVAL=$?
363                if test "x$RETVAL" = x0 ; then
364                    MAKEDEPEND='$(TOOLSDIR)/xmakedepend'
365                fi
366                echo " -->     MAKEDEPEND=${MAKEDEPEND}" >> $LOGFILE
367            fi
368        fi
369      if test "x${MAKEDEPEND}" = x ; then      if test "x${MAKEDEPEND}" = x ; then
370          which makedepend > /dev/null 2>&1          which makedepend > /dev/null 2>&1
371          RV0=$?          RV0=$?
# Line 364  EOF Line 384  EOF
384        stop        stop
385        end        end
386  EOF  EOF
387          makedepend genmake_tc.f > /dev/null 2>&1          makedepend -f $MAKEFILE genmake_tc.f > /dev/null 2>&1
388          RV1=$?          RV1=$?
389          test -f $MAKEFILE  &&  rm -f $MAKEFILE          test -f $MAKEFILE  &&  rm -f $MAKEFILE
390          test -f $MAKEFILE".tst"  &&  mv -f $MAKEFILE".tst" $MAKEFILE          test -f $MAKEFILE".tst"  &&  mv -f $MAKEFILE".tst" $MAKEFILE
391          if test "x${RV0}${RV1}" = x00 ; then          if test "x${RV0}${RV1}" = x00 ; then
392              MAKEDEPEND=makedepend              MAKEDEPEND=makedepend
393                echo " --> set MAKEDEPEND=${MAKEDEPEND}" >> $LOGFILE
394          else          else
395              echo "    a system-default makedepend was not found."              echo "    system-default makedepend not found. Try to build cyrus-makedepend"
396              #  Try to build the cyrus implementation              #  Try to build the cyrus implementation
397              build_cyrus_makedepend              build_cyrus_makedepend
398              RETVAL=$?              RETVAL=$?
399              if test "x$RETVAL" != x0 ; then              if test "x$RETVAL" != x0 ; then
400                    echo "WARNING: unable to build cyrus-makedepend. Use local xmakedepend"
401                  MAKEDEPEND='$(TOOLSDIR)/xmakedepend'                  MAKEDEPEND='$(TOOLSDIR)/xmakedepend'
402                    echo " --> set MAKEDEPEND=${MAKEDEPEND}" >> $LOGFILE
403              fi              fi
             rm -f ./genmake_cy_md  
         fi  
     else  
         #  echo "MAKEDEPEND=${MAKEDEPEND}"  
         echo "${MAKEDEPEND}" | grep -i cyrus > /dev/null 2>&1  
         RETVAL=$?  
         if test x"$RETVAL" = x0 ; then  
             build_cyrus_makedepend  
404          fi          fi
405      fi      fi
406  }  }
407    
408  build_cyrus_makedepend()  {  build_cyrus_makedepend()  {
409        echo >> $LOGFILE
410        echo "running: build_cyrus_makedepend()" >> $LOGFILE
411      rm -f ./genmake_cy_md      rm -f ./genmake_cy_md
412      (      (
413          cd $ROOTDIR/tools/cyrus-imapd-makedepend  \          cd $ROOTDIR/tools/cyrus-imapd-makedepend  \
# Line 407  build_cyrus_makedepend()  { Line 424  build_cyrus_makedepend()  {
424      rm -f ./genmake_cy_md      rm -f ./genmake_cy_md
425      if test "x$RETVAL" = x0 ; then      if test "x$RETVAL" = x0 ; then
426          MAKEDEPEND='$(TOOLSDIR)/cyrus-imapd-makedepend/makedepend'          MAKEDEPEND='$(TOOLSDIR)/cyrus-imapd-makedepend/makedepend'
427            echo " --> set MAKEDEPEND=${MAKEDEPEND}" >> $LOGFILE
428          return 0          return 0
429      else      else
430          echo "WARNING: unable to build cyrus-imapd-makedepend"          echo "WARNING: fail to build cyrus-imapd-makedepend" >> $LOGFILE
431          return 1          return 1
432      fi      fi
433  }  }
# Line 432  build_embed_encode() Line 450  build_embed_encode()
450              RETVAL=$?              RETVAL=$?
451              if test "x$RETVAL" = x0 ; then              if test "x$RETVAL" = x0 ; then
452                  echo "OK"                  echo "OK"
                 DEFINES="$DEFINES -DHAVE_EMBED_SRC"  
453                  return 0                  return 0
454              fi              fi
455          done          done
# Line 444  build_embed_encode() Line 461  build_embed_encode()
461          return 1          return 1
462      fi      fi
463      echo "OK"      echo "OK"
     DEFINES="$DEFINES -DHAVE_EMBED_SRC"  
464  }  }
465    
466  #  look for possible C compilers  #  look for possible C compilers
# Line 766  EOF Line 782  EOF
782      RETVAL=$?      RETVAL=$?
783      if test "x$RETVAL" = x0 ; then      if test "x$RETVAL" = x0 ; then
784          HAVE_CLOC=t          HAVE_CLOC=t
         DEFINES="$DEFINES -DHAVE_CLOC"  
785      fi      fi
786      rm -f genmake_tc*      rm -f genmake_tc*
787      echo " --> set HAVE_CLOC='$HAVE_CLOC'" >> $LOGFILE      echo " --> set HAVE_CLOC='$HAVE_CLOC'" >> $LOGFILE
# Line 828  EOF Line 843  EOF
843      RETVAL=$?      RETVAL=$?
844      if test "x$RETVAL" = x0 ; then      if test "x$RETVAL" = x0 ; then
845          HAVE_SIGREG=t          HAVE_SIGREG=t
         DEFINES="$DEFINES -DHAVE_SIGREG"  
846      fi      fi
847      rm -f genmake_tc*      rm -f genmake_tc*
848      echo " --> set HAVE_SIGREG='$HAVE_SIGREG'" >> $LOGFILE      echo " --> set HAVE_SIGREG='$HAVE_SIGREG'" >> $LOGFILE
849  }  }
850    
851  check_HAVE_SETRLSTK()  {  check_HAVE_SETRLSTK()  {
     if test "x$HAVE_SETRLSTK" = xt ; then  
         DEFINES="$DEFINES -DHAVE_SETRLSTK"  
         return  
     fi    
852      if test ! "x$HAVE_SETRLSTK" = x ; then      if test ! "x$HAVE_SETRLSTK" = x ; then
853          return          return
854      fi      fi
# Line 876  EOF Line 886  EOF
886      RETVAL=$?      RETVAL=$?
887      if test "x$RETVAL" = x0 ; then      if test "x$RETVAL" = x0 ; then
888          HAVE_SETRLSTK=t          HAVE_SETRLSTK=t
         DEFINES="$DEFINES -DHAVE_SETRLSTK"  
889      fi      fi
890      rm -f genmake_tc*      rm -f genmake_tc*
891      echo " --> set HAVE_SETRLSTK='$HAVE_SETRLSTK'" >> $LOGFILE      echo " --> set HAVE_SETRLSTK='$HAVE_SETRLSTK'" >> $LOGFILE
# Line 923  EOF Line 932  EOF
932      RETVAL=$?      RETVAL=$?
933      if test "x$RETVAL" = x0 ; then      if test "x$RETVAL" = x0 ; then
934          HAVE_STAT=t          HAVE_STAT=t
         DEFINES="$DEFINES -DHAVE_STAT"  
935      fi      fi
936      rm -f genmake_tc*      rm -f genmake_tc*
937      echo " --> set HAVE_STAT='$HAVE_STAT'" >> $LOGFILE      echo " --> set HAVE_STAT='$HAVE_STAT'" >> $LOGFILE
# Line 1053  FOPTIM= Line 1061  FOPTIM=
1061  FEXTRAFLAGS=  FEXTRAFLAGS=
1062  USE_EXTENDED_SRC=  USE_EXTENDED_SRC=
1063  EXTENDED_SRC_FLAG=  EXTENDED_SRC_FLAG=
1064    GET_FC_VERSION=
1065  CFLAGS=  CFLAGS=
1066  KFLAGS1=  KFLAGS1=
1067  KFLAGS2=  KFLAGS2=
# Line 1109  MACHINE=`uname -a` Line 1118  MACHINE=`uname -a`
1118  EXECUTABLE=  EXECUTABLE=
1119  EXEHOOK=  EXEHOOK=
1120  EXEDIR=  EXEDIR=
 PACKAGES_CONF=  
1121  IEEE=  IEEE=
1122  if test "x$MITGCM_IEEE" != x ; then  if test "x$MITGCM_IEEE" != x ; then
1123      IEEE=$MITGCM_IEEE      IEEE=$MITGCM_IEEE
# Line 1131  SVD_TAMC_FLAGS= Line 1139  SVD_TAMC_FLAGS=
1139  TAMC_EXTRA=  TAMC_EXTRA=
1140    
1141  #  The following state can be set directly by command-line switches  #  The following state can be set directly by command-line switches
1142  gm_s1="OPTFILE PKG_DEPEND PKG_GROUPS MAKEFILE MAKEDEPEND PLATFORM ROOTDIR MODS DISABLE ENABLE"  gm_s1="OPTFILE PKG_DEPEND PKG_GROUPS DISABLE ENABLE MAKEFILE MAKEDEPEND PLATFORM"
1143  gm_s2="FC CC IEEE USE_R4 TS PAPIS PCLS PAPI PCL HPMT GSL DEVEL MPI OMP DUMPSTATE STANDARDDIRS"  gm_s2="FC CC MPI OMP USE_R4 TS PAPIS PCLS PAPI PCL HPMT IEEE DEVEL GSL FEXTRAFLAGS"
1144    gm_s3="ROOTDIR STANDARDDIRS MODS DUMPSTATE"
1145    
1146  #  The following state is not directly set by command-line switches  #  The following state is not directly set by command-line switches
1147  gm_s3="LN S64 LINK MAKE PACKAGES INCLUDES FFLAGS FOPTIM FEXTRAFLAGS"  gm_s4="LN S64 LINK MAKE PACKAGES INCLUDES FFLAGS FOPTIM"
1148  gm_s4="CFLAGS LIBS KPP KFLAGS1 KFLAGS2 KPPFILES NOOPTFILES NOOPTFLAGS"  gm_s5="CFLAGS LIBS KPP KFLAGS1 KFLAGS2 KPPFILES NOOPTFILES NOOPTFLAGS"
1149  gm_s5="TOOLSDIR SOURCEDIRS INCLUDEDIRS PWD THISHOST THISUSER THISDATE THISVER MACHINE"  gm_s6="TOOLSDIR SOURCEDIRS INCLUDEDIRS EXEDIR EXECUTABLE EXEHOOK"
1150  gm_s6="EXECUTABLE EXEHOOK EXEDIR PACKAGES_CONF"  gm_s7="PWD THISHOST THISUSER THISDATE THISVER MACHINE"
1151  gm_s7="FC_NAMEMANGLE HAVE_NETCDF HAVE_SYSTEM HAVE_FDATE HAVE_ETIME"  gm_s8="FC_NAMEMANGLE HAVE_NETCDF HAVE_SYSTEM HAVE_FDATE HAVE_ETIME"
1152    
1153  #  The following are all related to adjoint/tangent-linear stuff  #  The following are all related to adjoint/tangent-linear stuff
1154  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"
1155  gm_s11="FTL_TAMC_FLAGS FTL_TAF_FLAGS SVD_TAMC_FLAGS SVD_TAF_FLAGS"  gm_s11="FTL_TAMC_FLAGS FTL_TAF_FLAGS SVD_TAMC_FLAGS SVD_TAF_FLAGS"
1156  gm_s12="TAF_EXTRA TAMC_EXTRA"  gm_s12="TAF_EXTRA TAMC_EXTRA"
1157    
1158  gm_state="COMMANDL $gm_s1 $gm_s2 $gm_s3 $gm_s4 $gm_s5 $gm_s6 $gm_s7"  gm_state="COMMANDL $gm_s1 $gm_s2 $gm_s3 $gm_s4 $gm_s5 $gm_s6 $gm_s7 $gm_s8"
1159  gm_state="$gm_state $gm_s10 $gm_s11 $gm_s12"  gm_state="$gm_state $gm_s10 $gm_s11 $gm_s12"
1160    
1161  cat <<EOF  cat <<EOF
# Line 1296  for ac_option in "$@" ; do Line 1305  for ac_option in "$@" ; do
1305          -fs90=* | --fs90=*)          -fs90=* | --fs90=*)
1306              FS90=$ac_optarg ;;              FS90=$ac_optarg ;;
1307                    
1308            -use_real4 | -use_r4 | -ur4 | --use_real4 | --use_r4 | --ur4 )
1309                USE_R4=true ;;
1310    
1311          -ieee | --ieee)          -ieee | --ieee)
1312              IEEE=true ;;              IEEE=true ;;
1313          -noieee | --noieee)          -noieee | --noieee)
1314              IEEE= ;;              echo "Warning: ignore option '$ac_option' (default is already without '-ieee')" ;;
1315            -devel | --devel)
1316          -use_real4 | -use_r4 | -ur4 | --use_real4 | --use_r4 | --ur4 )              IEEE=true ; DEVEL=true ;;
1317              USE_R4=true ;;          -gsl | --gsl)
1318                GSL=true ;;
1319    
1320          -ts | --ts)          -ts | --ts)
1321              TS=true ;;              TS=true ;;
# Line 1319  for ac_option in "$@" ; do Line 1332  for ac_option in "$@" ; do
1332          -hpmt | --hpmt)          -hpmt | --hpmt)
1333              HPMT=true ;;              HPMT=true ;;
1334    
         -gsl | --gsl)  
             GSL=true ;;  
   
         -devel | --devel)  
             DEVEL=true ;;  
   
1335          -mpi | --mpi)          -mpi | --mpi)
1336              MPI=true ;;              MPI=true ;;
1337          -mpi=* | --mpi=*)          -mpi=* | --mpi=*)
# Line 1340  for ac_option in "$@" ; do Line 1347  for ac_option in "$@" ; do
1347          -ds | --ds)          -ds | --ds)
1348              DUMPSTATE=t ;;              DUMPSTATE=t ;;
1349                    
1350            -extra_flag | --extra_flag)
1351                ac_prev=FEXTRAFLAGS ;;
1352            -extra_flag=* | --extra_flag=*)
1353                FEXTRAFLAGS=$ac_optarg ;;
1354            
1355          -taf_extra | --taf_extra)          -taf_extra | --taf_extra)
1356              ac_prev=TAF_EXTRA ;;              ac_prev=TAF_EXTRA ;;
1357          -taf_extra=* | --taf_extra=*)          -taf_extra=* | --taf_extra=*)
# Line 1375  if test -f ./.genmakerc ; then Line 1387  if test -f ./.genmakerc ; then
1387      echo "WARNING: genmake2 has detected a copy of the old-style \"./.genmakerc\""      echo "WARNING: genmake2 has detected a copy of the old-style \"./.genmakerc\""
1388      echo "  file.  This file format is no longer supported.  For directions on"      echo "  file.  This file format is no longer supported.  For directions on"
1389      echo "  how to setup and use the new \"genmake2\" script, please see:"      echo "  how to setup and use the new \"genmake2\" script, please see:"
1390      echo "    http://mitgcm.org/devel_HOWTO/"      echo "    http://mitgcm.org/public/devel_HOWTO/"
1391      echo "  and send an email to MITgcm-support@mitgcm.org if you need help."      echo "  and send an email to MITgcm-support@mitgcm.org if you need help."
1392      echo "WARNING: ignore \"./.genmakerc\" and continue."      echo "WARNING: ignore \"./.genmakerc\" and continue."
1393      echo      echo
# Line 1390  if test "x${ROOTDIR}" = x ; then Line 1402  if test "x${ROOTDIR}" = x ; then
1402          for d in . .. ../.. ../../.. ../../../.. ../../../../.. ; do          for d in . .. ../.. ../../.. ../../../.. ../../../../.. ; do
1403              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
1404                  ROOTDIR=$d                  ROOTDIR=$d
1405                  printf "Warning:  ROOTDIR was not specified but there appears to be"                  printf "Warning: ROOTDIR was not specified ;"
1406                  echo " a copy of MITgcm at \"$ROOTDIR\" so we'll try it."                  echo " try using a local copy of MITgcm found at \"$ROOTDIR\""
1407                  break                  break
1408              fi              fi
1409          done          done
# Line 1423  if test "x$MAKEFILE" = x ; then Line 1435  if test "x$MAKEFILE" = x ; then
1435      MAKEFILE="Makefile"      MAKEFILE="Makefile"
1436  fi  fi
1437    
1438  echo "  getting OPTFILE information:  "  echo "  getting OPTFILE information:"
1439  if test "x${OPTFILE}" = x ; then  if test "x${OPTFILE}" = x ; then
1440      if test "x$MITGCM_OF" = x ; then      if test "x$MITGCM_OF" = x ; then
1441          echo "Warning: no OPTFILE specified so we'll look for possible settings"          echo "Warning: no OPTFILE specified so we'll look for possible settings"
# Line 1452  if test "x$OPTFILE" != xNONE ; then Line 1464  if test "x$OPTFILE" != xNONE ; then
1464      fi      fi
1465  fi  fi
1466    
1467  echo "  getting AD_OPTFILE information:  "  echo "  getting AD_OPTFILE information:"
1468  if test "x${AD_OPTFILE}" = x ; then  if test "x${AD_OPTFILE}" = x ; then
1469      if test "x$MITGCM_AD_OF" = x ; then      if test "x$MITGCM_AD_OF" = x ; then
1470          AD_OPTFILE=$ROOTDIR/tools/adjoint_options/adjoint_default          AD_OPTFILE=$ROOTDIR/tools/adjoint_options/adjoint_default
# Line 1498  Error: no Fortran compiler: please speci Line 1510  Error: no Fortran compiler: please speci
1510  EOF  EOF
1511      exit 1      exit 1
1512  fi  fi
1513    if test "x$GET_FC_VERSION" != x ; then
1514      echo "Get compiler version using: $FC $GET_FC_VERSION" >> $LOGFILE
1515      ff=`echo $FC | sed 's/ .*//'` ; xx=`echo $ff | sed 's/^./& /' | sed 's/ .*//'`
1516      if test $xx != '/' ; then which $ff >> $LOGFILE ; fi
1517      $FC $GET_FC_VERSION > genmake_fc_vers1 2> genmake_fc_vers2
1518      if test -s genmake_fc_vers1 ; then
1519        cat genmake_fc_vers1 >> $LOGFILE
1520      else
1521        cat genmake_fc_vers2 >> $LOGFILE
1522      fi
1523      echo "<-- compiler version ----" >> $LOGFILE
1524      rm -f genmake_fc_vers1 genmake_fc_vers2
1525    fi
1526    
1527  if test "x$CC" = x ; then  if test "x$CC" = x ; then
1528      look_for_C_compilers      look_for_C_compilers
# Line 1733  rm -f genmake_tcomp* Line 1758  rm -f genmake_tcomp*
1758  printf "  Can we call simple C routines (here, \"cloc()\") using $FC...  "  printf "  Can we call simple C routines (here, \"cloc()\") using $FC...  "
1759  check_HAVE_CLOC  check_HAVE_CLOC
1760  if test "x$HAVE_CLOC" != x ; then  if test "x$HAVE_CLOC" != x ; then
1761        DEFINES="$DEFINES -DHAVE_CLOC"
1762      echo "yes"      echo "yes"
1763  else  else
1764      echo "no"      echo "no"
# Line 1747  rm -f genmake_t* Line 1773  rm -f genmake_t*
1773  printf "  Can we unlimit the stack size using $FC...  "  printf "  Can we unlimit the stack size using $FC...  "
1774  check_HAVE_SETRLSTK  check_HAVE_SETRLSTK
1775  if test "x$HAVE_SETRLSTK" = xt ; then  if test "x$HAVE_SETRLSTK" = xt ; then
1776        DEFINES="$DEFINES -DHAVE_SETRLSTK"
1777      echo "yes"      echo "yes"
1778  else  else
1779      echo "no"      echo "no"
# Line 1756  rm -f genmake_t* Line 1783  rm -f genmake_t*
1783  printf "  Can we register a signal handler using $FC...  "  printf "  Can we register a signal handler using $FC...  "
1784  check_HAVE_SIGREG  check_HAVE_SIGREG
1785  if test "x$HAVE_SIGREG" = xt ; then  if test "x$HAVE_SIGREG" = xt ; then
1786        DEFINES="$DEFINES -DHAVE_SIGREG"
1787      echo "yes"      echo "yes"
1788  else  else
1789      echo "no"      echo "no"
# Line 1765  rm -f genmake_t* Line 1793  rm -f genmake_t*
1793  printf "  Can we use stat() through C calls...  "  printf "  Can we use stat() through C calls...  "
1794  check_HAVE_STAT  check_HAVE_STAT
1795  if test "x$HAVE_STAT" != x ; then  if test "x$HAVE_STAT" != x ; then
1796        DEFINES="$DEFINES -DHAVE_STAT"
1797      echo "yes"      echo "yes"
1798  else  else
1799      echo "no"      echo "no"
# Line 1774  rm -f genmake_t* Line 1803  rm -f genmake_t*
1803  printf "  Can we create NetCDF-enabled binaries...  "  printf "  Can we create NetCDF-enabled binaries...  "
1804  check_netcdf_libs  check_netcdf_libs
1805  if test "x$HAVE_NETCDF" != x ; then  if test "x$HAVE_NETCDF" != x ; then
1806        DEFINES="$DEFINES -DHAVE_NETCDF"
1807      echo "yes"      echo "yes"
1808  else  else
1809      echo "no"      echo "no"
# Line 1785  if test "x$EMBED_SRC" = xt ; then Line 1815  if test "x$EMBED_SRC" = xt ; then
1815  fi  fi
1816  if test "x$EMBED_SRC" = xt ; then  if test "x$EMBED_SRC" = xt ; then
1817      ENABLE="$ENABLE embed_files"      ENABLE="$ENABLE embed_files"
1818    #   DEFINES="$DEFINES -DHAVE_EMBED_SRC"
1819  fi  fi
1820    
1821  printf "\n===  Setting defaults  ===\n"  printf "\n===  Setting defaults  ===\n"
# Line 2623  NOOPTFILES = ${NOOPTFILES} Line 2654  NOOPTFILES = ${NOOPTFILES}
2654  NOOPTFLAGS = ${NOOPTFLAGS}  NOOPTFLAGS = ${NOOPTFLAGS}
2655  # Flags and libraries needed for linking  # Flags and libraries needed for linking
2656  LIBS = ${LIBS}  LIBS = ${LIBS}
2657  # Name of the Mekfile  # Name of the makefile
2658  MAKEFILE=${MAKEFILE}  MAKEFILE=${MAKEFILE}
2659    
2660  EOF  EOF
# Line 2659  all: \$(EXECUTABLE) Line 2690  all: \$(EXECUTABLE)
2690  \$(EXECUTABLE): \$(SPECIAL_FILES) \$(F77_SRC_FILES) \$(C_SRC_FILES) \$(H_SRC_FILES) \$(F90_SRC_FILES) \$(OBJFILES) \$(EMBEDDED_FILES)  \$(EXECUTABLE): \$(SPECIAL_FILES) \$(F77_SRC_FILES) \$(C_SRC_FILES) \$(H_SRC_FILES) \$(F90_SRC_FILES) \$(OBJFILES) \$(EMBEDDED_FILES)
2691          @echo Creating \$@ ...          @echo Creating \$@ ...
2692          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(LIBS)          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(LIBS)
2693    
2694  depend:  depend:
2695          @make links          @make -f \$(MAKEFILE) links
2696          \$(MAKEDEPEND) -o .$FS \$(DEFINES) \$(INCLUDES) \$(F77_SRC_FILES)          \$(MAKEDEPEND) -f \$(MAKEFILE) -o .$FS \$(DEFINES) \$(INCLUDES) \$(F77_SRC_FILES)
2697          \$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE)          \$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE)
2698          -rm -f makedepend.out          -rm -f makedepend.out
2699    
# Line 2671  libmitgcmuv.a: \$(OBJFILES) Line 2703  libmitgcmuv.a: \$(OBJFILES)
2703          ar rcv libmitgcmuv.a \$(OBJFILES)          ar rcv libmitgcmuv.a \$(OBJFILES)
2704          ar d   libmitgcmuv.a main.o          ar d   libmitgcmuv.a main.o
2705    
2706    obj: \$(OBJFILES)
2707    
2708  links: \$(F77_SRC_FILES) \$(C_SRC_FILES) \$(H_SRC_FILES) \$(F90_SRC_FILES) \$(SPECIAL_FILES)  links: \$(F77_SRC_FILES) \$(C_SRC_FILES) \$(H_SRC_FILES) \$(F90_SRC_FILES) \$(SPECIAL_FILES)
2709    
2710  small_f: \$(F77_PP_SRC_FILES) \$(F90_PP_SRC_FILES)  small_f: \$(F77_PP_SRC_FILES) \$(F90_PP_SRC_FILES)
# Line 2688  clean: Line 2722  clean:
2722    
2723  # remove most of the files that "make" and "make depend" generate  # remove most of the files that "make" and "make depend" generate
2724  Clean:  Clean:
2725          @make clean          @make -f \$(MAKEFILE) clean
2726          @make cleanlinks          @make -f \$(MAKEFILE) cleanlinks
2727          -rm -f \$(SPECIAL_FILES) f90mkdepend.log $MAKEFILE.old          -rm -f \$(SPECIAL_FILES) f90mkdepend.log $MAKEFILE.old
2728          -rm -f taf_command taf_output taf_ad.log taf_ad_flow.log          -rm -f taf_command taf_output taf_ad.log taf_ad_flow.log
2729          -rm -f genmake_warnings genmake_errors make.log          -rm -f genmake_warnings genmake_errors make.log
# Line 2697  Clean: Line 2731  Clean:
2731  # remove also the executable, files that "genmake2" generates (except Makefile)  # remove also the executable, files that "genmake2" generates (except Makefile)
2732  #         and output from a run (plus log files from testreport)  #         and output from a run (plus log files from testreport)
2733  CLEAN:  CLEAN:
2734          @make Clean          @make -f \$(MAKEFILE) Clean
2735          -rm -f \$(EXECUTABLE) \$(EXE_AD) *.bak          -rm -f \$(EXECUTABLE) \$(EXE_AD) *.bak
2736          -rm -f $LOGFILE genmake_state genmake_*optfile genmake.tr_log make.tr_log          -rm -f $LOGFILE genmake_state genmake_*optfile
2737            -rm -f SIZE.h.mpi genmake.tr_log make.tr_log
2738          -find \$(EXEDIR) -name "*.meta" -exec rm {} \;          -find \$(EXEDIR) -name "*.meta" -exec rm {} \;
2739          -find \$(EXEDIR) -name "*.data" -exec rm {} \;          -find \$(EXEDIR) -name "*.data" -exec rm {} \;
2740          -find \$(EXEDIR) -name "fort.*" -exec rm {} \;          -find \$(EXEDIR) -name "fort.*" -exec rm {} \;
# Line 2718  ${PACKAGES_DOT_H}: Line 2753  ${PACKAGES_DOT_H}:
2753          @$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) > \$@          @$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) > \$@
2754  AD_CONFIG.h:  AD_CONFIG.h:
2755          @echo Creating \$@ ...          @echo Creating \$@ ...
2756          @$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 > \$@          @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > \$@
2757  FC_NAMEMANGLE.h:  FC_NAMEMANGLE.h:
2758          @echo Creating \$@ ...          @echo Creating \$@ ...
2759          echo "$FC_NAMEMANGLE" > \$@          echo "$FC_NAMEMANGLE" > \$@
# Line 2832  adtaf: ad_taf_output.$FS Line 2867  adtaf: ad_taf_output.$FS
2867  adtamc: ad_tamc_output.$FS  adtamc: ad_tamc_output.$FS
2868    
2869  ad_input_code.$FS: \$(AD_FILES) \$(H_SRC_FILES) \$(AD_FLOW_FILES)  ad_input_code.$FS: \$(AD_FILES) \$(H_SRC_FILES) \$(AD_FLOW_FILES)
2870          @$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          @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -DALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > ad_config.template
2871          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
2872          -rm -f ad_config.template          -rm -f ad_config.template
2873          @make \$(F77_PP_SRC_FILES)          @make -f \$(MAKEFILE) \$(F77_PP_SRC_FILES)
2874          @make \$(FLOFILES)          @make -f \$(MAKEFILE) \$(FLOFILES)
2875          cat \$(FLOFILES) \$(AD_FILES) | sed -f \$(TOOLSDIR)/remove_comments_sed > ad_input_code.$FS          cat \$(FLOFILES) \$(AD_FILES) | sed -f \$(TOOLSDIR)/remove_comments_sed > ad_input_code.$FS
2876    
2877  ad_taf_output.$FS: ad_input_code.$FS  ad_taf_output.$FS: ad_input_code.$FS
# Line 2865  adonlyfwd: Line 2900  adonlyfwd:
2900  adtrick:  adtrick:
2901          patch < \$(TOOLSDIR)/ad_taf_output.f.adtrick.diff          patch < \$(TOOLSDIR)/ad_taf_output.f.adtrick.diff
2902    
2903    adobj: ad_taf_output.o \$(OBJFILES)
2904    
2905  # ... FTL ...  # ... FTL ...
2906  ftlall: ftl_taf  ftlall: ftl_taf
2907  ftltaf: ftl_taf_output.$FS  ftltaf: ftl_taf_output.$FS
2908  ftltamc: ftl_tamc_output.$FS  ftltamc: ftl_tamc_output.$FS
2909    
2910  ftl_input_code.$FS: \$(AD_FILES) \$(H_SRC_FILES)  ftl_input_code.$FS: \$(AD_FILES) \$(H_SRC_FILES)
2911          @$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          @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN > ftl_config.template
2912          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
2913          -rm -f ftl_config.template          -rm -f ftl_config.template
2914          @make \$(F77_PP_SRC_FILES)          @make -f \$(MAKEFILE) \$(F77_PP_SRC_FILES)
2915          @make \$(AD_FLOW_FILES)          @make -f \$(MAKEFILE) \$(AD_FLOW_FILES)
2916          cat \$(AD_FLOW_FILES) \$(AD_FILES) > ftl_input_code.$FS          cat \$(AD_FLOW_FILES) \$(AD_FILES) > ftl_input_code.$FS
2917    
2918  ftl_taf_output.$FS: ftl_input_code.$FS  ftl_taf_output.$FS: ftl_input_code.$FS
# Line 2918  svd_touch: Line 2955  svd_touch:
2955          touch ad_taf_output.$FS ftl_taf_output.$FS          touch ad_taf_output.$FS ftl_taf_output.$FS
2956          \$(FC) \$(FFLAGS) \$(FOPTIM) -c ad_taf_output.$FS          \$(FC) \$(FFLAGS) \$(FOPTIM) -c ad_taf_output.$FS
2957          \$(FC) \$(FFLAGS) \$(FOPTIM) -c ftl_taf_output.$FS          \$(FC) \$(FFLAGS) \$(FOPTIM) -c ftl_taf_output.$FS
2958          @$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          @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN > ftl_config.template
2959          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
2960          -rm -f ftl_config.template          -rm -f ftl_config.template
2961    
# Line 2995  CB2M_F90_PP_SRC_FILES=\$(addsuffix _mod. Line 3032  CB2M_F90_PP_SRC_FILES=\$(addsuffix _mod.
3032    
3033  .PHONY: adDepend  .PHONY: adDepend
3034  adDepend: \$(ALL_LINKED_FILES) \$(addsuffix _mod.h, \$(CB2M_F90_SRC_NAMES)) \$(addsuffix _mod.FF90, \$(CB2M_F90_SRC_NAMES)) \$(F77_SRC_FILES:.F=_cb2m.FF90)  adDepend: \$(ALL_LINKED_FILES) \$(addsuffix _mod.h, \$(CB2M_F90_SRC_NAMES)) \$(addsuffix _mod.FF90, \$(CB2M_F90_SRC_NAMES)) \$(F77_SRC_FILES:.F=_cb2m.FF90)
3035          \$(MAKEDEPEND) -o .$FS \$(DEFINES) \$(INCLUDES) \$(F77_SRC_FILES)          \$(MAKEDEPEND) -f \$(MAKEFILE) -o .$FS \$(DEFINES) \$(INCLUDES) \$(F77_SRC_FILES)
3036          \$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE)          \$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE)
3037          -rm -f makedepend.out          -rm -f makedepend.out
3038    
# Line 3134  postProcess.tag: ad_input_code_sf.w2f.pr Line 3171  postProcess.tag: ad_input_code_sf.w2f.pr
3171          # this step also creates the file postProcess.make but we cannot          # this step also creates the file postProcess.make but we cannot
3172          # name it as the target or else make will try to remake it for          # name it as the target or else make will try to remake it for
3173          # the include directive above for any rule, e.g. make clean          # the include directive above for any rule, e.g. make clean
3174          ./postProcess.py --progress --timing --outputFormat=fixed -m r -i ../OAD_support/ad_inline.f --width 4 \$<          ./postProcess.py --progress --timing --infoUnitFile w2f__types.f90 --outputFormat=fixed -m r -i ../OAD_support/ad_inline.f --width 4 \$<
3175    
3176  # setup some links  # setup some links
3177  %.xsd:  %.xsd:
# Line 3218  else Line 3255  else
3255      fi      fi
3256  fi  fi
3257  if test ! -f AD_CONFIG.h ; then  if test ! -f AD_CONFIG.h ; then
3258      $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      $BASH $TOOLSDIR/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > AD_CONFIG.h
3259  fi  fi
3260    
3261  #  Write the "state" for future records  #  Write the "state" for future records
# Line 3227  if test "x$DUMPSTATE" = xt ; then Line 3264  if test "x$DUMPSTATE" = xt ; then
3264      for i in $gm_state ; do      for i in $gm_state ; do
3265          t1="t2=\$$i"          t1="t2=\$$i"
3266          eval $t1          eval $t1
3267          echo "$i='$t2'" >> genmake_state          echo "$i='$t2'" | sed -e 's/  */ /g' >> genmake_state
3268      done      done
3269  fi  fi

Legend:
Removed from v.1.215  
changed lines
  Added in v.1.231

  ViewVC Help
Powered by ViewVC 1.1.22