/[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.106 by edhill, Thu Oct 14 03:24:14 2004 UTC revision 1.122 by edhill, Tue Mar 22 20:10:32 2005 UTC
# Line 122  EOF Line 122  EOF
122        stop        stop
123        end        end
124  EOF  EOF
125      test -f Makefile  &&  mv -f Makefile Makefile.bak      test -f $MAKEFILE  &&  mv -f $MAKEFILE $MAKEFILE".tst"
126      cat <<EOF >> Makefile      cat <<EOF >> $MAKEFILE
127  .SUFFIXES:  .SUFFIXES:
128  .SUFFIXES: .$tfs .F  .SUFFIXES: .$tfs .F
129  .F.$tfs:  .F.$tfs:
# Line 148  EOF Line 148  EOF
148              return              return
149          fi          fi
150      fi      fi
151      rm -f genmake_hello.* Makefile      rm -f genmake_hello.* $MAKEFILE
152      test -f Makefile  &&  mv -f Makefile.bak Makefile      test -f $MAKEFILE".tst"  &&  mv -f $MAKEFILE".tst" $MAKEFILE
153    
154      #  If we make it here, use the extensions      #  If we make it here, use the extensions
155      FS=$tfs      FS=$tfs
# Line 181  look_for_makedepend()  { Line 181  look_for_makedepend()  {
181      if test "x${MAKEDEPEND}" = x ; then      if test "x${MAKEDEPEND}" = x ; then
182          which makedepend > /dev/null 2>&1          which makedepend > /dev/null 2>&1
183          RV0=$?          RV0=$?
184            test -f $MAKEFILE  &&  mv -f $MAKEFILE $MAKEFILE".tst"
185            #  echo 'MAKEFILE="'$MAKEFILE'"'
186            cat <<EOF >> $MAKEFILE
187    #   THIS IS A TEST MAKEFILE GENERATED BY "genmake2"
188    #
189    #   Some "makedepend" implementations will die if they cannot
190    #   find a Makefile -- so this file is here to gives them an
191    #   empty one to find and parse.
192    EOF
193          cat <<EOF >> genmake_tc.f          cat <<EOF >> genmake_tc.f
194        program test        program test
195        write(*,*) 'test'        write(*,*) 'test'
# Line 189  look_for_makedepend()  { Line 198  look_for_makedepend()  {
198  EOF  EOF
199          makedepend genmake_tc.f > /dev/null 2>&1          makedepend genmake_tc.f > /dev/null 2>&1
200          RV1=$?          RV1=$?
201            test -f $MAKEFILE  &&  rm -f $MAKEFILE
202            test -f $MAKEFILE".tst"  &&  mv -f $MAKEFILE".tst" $MAKEFILE
203          if test "x${RV0}${RV1}" = x00 ; then          if test "x${RV0}${RV1}" = x00 ; then
204              MAKEDEPEND=makedepend              MAKEDEPEND=makedepend
205          else          else
# Line 581  WARNING: Please contact <MITgcm-support@ Line 592  WARNING: Please contact <MITgcm-support@
592  EOF  EOF
593          return 1          return 1
594      fi      fi
595      cat > genmake_tcomp.f <<EOF      cat > genmake_tcomp.$FS <<EOF
596        subroutine tcall( string )        subroutine tcall( string )
597        character*(*) string        character*(*) string
598        call tsub( string )        call tsub( string )
599        end        end
600  EOF  EOF
601      $FC $FFLAGS $DEFINES -c genmake_tcomp.f >> genmake_warnings 2>&1      $FC $FFLAGS $DEFINES -c genmake_tcomp.$FS >> genmake_warnings 2>&1
602      RETVAL=$?      RETVAL=$?
603      if test "x$RETVAL" != x0 ; then      if test "x$RETVAL" != x0 ; then
604          FC_NAMEMANGLE=$default_nm          FC_NAMEMANGLE=$default_nm
# Line 653  void FC_NAMEMANGLE(cloc) ( double *curti Line 664  void FC_NAMEMANGLE(cloc) ( double *curti
664   *curtim = *curtim/1.E6;   *curtim = *curtim/1.E6;
665  }  }
666  EOF  EOF
667      make genmake_tc_1.o >> genmake_tc.log 2>&1      make genmake_tc_1.o >> genmake_warnings 2>&1
668      RET_C=$?      RET_C=$?
669      cat <<EOF > genmake_tc_2.f      cat <<EOF > genmake_tc_2.$FS
670        program hello        program hello
671        Real*8 wtime        Real*8 wtime
672        external cloc        external cloc
# Line 663  EOF Line 674  EOF
674        print *," HELLO WORLD", wtime        print *," HELLO WORLD", wtime
675        end program hello        end program hello
676  EOF  EOF
677      $FC $FFLAGS -o genmake_tc genmake_tc_2.f genmake_tc_1.o >> genmake_tc.log 2>&1      $FC $FFLAGS -o genmake_tc genmake_tc_2.$FS genmake_tc_1.o >> genmake_warnings 2>&1
678      RET_F=$?      RET_F=$?
679      test -x ./genmake_tc  &&  ./genmake_tc >> genmake_tc.log 2>&1      test -x ./genmake_tc  &&  ./genmake_tc >> genmake_warnings 2>&1
680      RETVAL=$?      RETVAL=$?
681      if test "x$RETVAL" = x0 ; then      if test "x$RETVAL" = x0 ; then
682          HAVE_CLOC=t          HAVE_CLOC=t
# Line 675  EOF Line 686  EOF
686  }  }
687    
688    
689    check_HAVE_STAT()  {
690        get_fortran_c_namemangling
691        cat <<EOF > genmake_tc_1.c
692    $FC_NAMEMANGLE
693    #include <stdio.h>
694    #include <stdlib.h>
695    #include <unistd.h>
696    #include <sys/stat.h>
697    #include <sys/types.h>
698    void FC_NAMEMANGLE(tfsize) ( int *nbyte )
699    {
700        char name[512];
701        struct stat astat;
702    
703        name[0] = 'a'; name[1] = '\0';
704        if (! stat(name, &astat))
705            *nbyte = (int)(astat.st_size);
706        else
707            *nbyte = -1;
708    }
709    EOF
710        make genmake_tc_1.o >> genmake_tc.log 2>&1
711        RET_C=$?
712        cat <<EOF > genmake_tc_2.$FS
713          program hello
714          integer nbyte
715          call tfsize(nbyte)
716          print *," HELLO WORLD", nbyte
717          end program hello
718    EOF
719        $FC $FFLAGS -o genmake_tc genmake_tc_2.$FS genmake_tc_1.o >> genmake_tc.log 2>&1
720        RET_F=$?
721        test -x ./genmake_tc  &&  ./genmake_tc >> genmake_tc.log 2>&1
722        RETVAL=$?
723        if test "x$RETVAL" = x0 ; then
724            HAVE_STAT=t
725            DEFINES="$DEFINES -DHAVE_STAT"
726        fi
727        rm -f genmake_tc*
728    }
729    
730    
731  check_netcdf_libs()  {  check_netcdf_libs()  {
732        if test ! "x$SKIP_NETCDF_CHECK" = x ; then
733            return
734        fi
735      echo "" > genmake_tnc.log      echo "" > genmake_tnc.log
736      cat <<EOF > genmake_tnc.for      cat <<EOF > genmake_tnc.F
737        program fgennc        program fgennc
738  #include "netcdf.inc"  #include "netcdf.inc"
739    EOF
740        if test ! "x$MPI" = x ; then
741            echo '#include "mpif.h"' >> genmake_tnc.F
742        fi
743        cat <<EOF >> genmake_tnc.F
744        integer iret, ncid, xid        integer iret, ncid, xid
745        iret = nf_create('genmake_tnc.nc', NF_CLOBBER, ncid)        iret = nf_create('genmake_tnc.nc', NF_CLOBBER, ncid)
746        IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)        IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)
# Line 689  check_netcdf_libs()  { Line 750  check_netcdf_libs()  {
750        IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)        IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)
751        end        end
752  EOF  EOF
753      #echo "$CPP $DEFINES $INCLUDES genmake_tnc.for > genmake_tnc.f"      echo "Executing:" > genmake_tnc.log
754      #echo "$FC $FFLAGS $FOPTIM -c genmake_tnc.f"      echo "  $CPP $DEFINES $INCLUDES genmake_tnc.F > genmake_tnc.$FS" \
755      #echo "$LINK -o genmake_tnc.o $LIBS"          > genmake_tnc.log
756      $CPP $DEFINES $INCLUDES genmake_tnc.for > genmake_tnc.f 2>/dev/null  \      RET_CPP=f
757          &&  $FC $FFLAGS $FOPTIM -c genmake_tnc.f >> genmake_tnc.log 2>&1  \      $CPP $DEFINES $INCLUDES genmake_tnc.F > genmake_tnc.$FS 2>/dev/null  \
758            &&  RET_CPP=t
759        if test "x$RET_CPP" = xf ; then
760            echo "  WARNING: CPP failed to pre-process the netcdf test." \
761                > genmake_tnc.log
762            echo "    Please check that \$INCLUDES is properly set." \
763                > genmake_tnc.log
764        fi
765        echo "Executing:" > genmake_tnc.log
766        echo "  $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS" > genmake_tnc.log
767        echo "  $LINK -o genmake_tnc.o $LIBS" > genmake_tnc.log
768        $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS >> genmake_tnc.log 2>&1  \
769          &&  $LINK -o genmake_tnc genmake_tnc.o $LIBS >> genmake_tnc.log 2>&1          &&  $LINK -o genmake_tnc genmake_tnc.o $LIBS >> genmake_tnc.log 2>&1
770      RET_COMPILE=$?      RET_COMPILE=$?
771    
# Line 708  EOF Line 780  EOF
780          HAVE_NETCDF=t          HAVE_NETCDF=t
781      else      else
782          # try again with "-lnetcdf" added to the libs          # try again with "-lnetcdf" added to the libs
783          $CPP $DEFINES $INCLUDES genmake_tnc.for > genmake_tnc.f 2>/dev/null  \          $CPP $DEFINES $INCLUDES genmake_tnc.F > genmake_tnc.$FS 2>/dev/null  \
784              &&  $FC $FFLAGS $FOPTIM -c genmake_tnc.f >> genmake_tnc.log 2>&1  \              &&  $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS >> genmake_tnc.log 2>&1  \
785              &&  $LINK -o genmake_tnc genmake_tnc.o $LIBS -lnetcdf >> genmake_tnc.log 2>&1              &&  $LINK -o genmake_tnc genmake_tnc.o $LIBS -lnetcdf >> genmake_tnc.log 2>&1
786          RET_COMPILE=$?          RET_COMPILE=$?
787          if test "x$RET_COMPILE" = x0 ; then          if test "x$RET_COMPILE" = x0 ; then
# Line 735  PLATFORM= Line 807  PLATFORM=
807  LN=  LN=
808  S64=  S64=
809  KPP=  KPP=
810  FC=  #FC=
811  #CC=gcc  #CC=gcc
812  CPP=  #CPP=
813  LINK=  LINK=
814  DEFINES=  DEFINES=
815  PACKAGES=  PACKAGES=
816  ENABLE=  ENABLE=
817  DISABLE=  DISABLE=
818  MAKEFILE=  # MAKEFILE=
819  #MAKEDEPEND=  # MAKEDEPEND=
820  PDEPEND=  PDEPEND=
821  DUMPSTATE=t  DUMPSTATE=t
822  PDEFAULT=  PDEFAULT=
823  OPTFILE=  OPTFILE=
824  INCLUDES="-I."  INCLUDES="-I. $INCLUDES"
825  FFLAGS=  FFLAGS=
826  FOPTIM=  FOPTIM=
827  CFLAGS=  CFLAGS=
# Line 768  HAVE_SYSTEM= Line 840  HAVE_SYSTEM=
840  HAVE_FDATE=  HAVE_FDATE=
841  FC_NAMEMANGLE=  FC_NAMEMANGLE=
842  HAVE_CLOC=  HAVE_CLOC=
843    HAVE_STAT=
844  HAVE_NETCDF=  HAVE_NETCDF=
845  HAVE_ETIME=  HAVE_ETIME=
846    
# Line 780  STANDARDDIRS="USE_THE_DEFAULT" Line 853  STANDARDDIRS="USE_THE_DEFAULT"
853  G2ARGS=  G2ARGS=
854  BASH=  BASH=
855  PWD=`pwd`  PWD=`pwd`
856  MAKE=make  test "x$MAKE" = x  &&  MAKE=make
857  AWK=awk  test "x$AWK" = x   &&  AWK=awk
858  THISHOST=`hostname`  THISHOST=`hostname`
859  THISCWD=`pwd`  THISCWD=`pwd`
860  THISDATE=`date`  THISDATE=`date`
# Line 1033  for ac_option in "$@" ; do Line 1106  for ac_option in "$@" ; do
1106            
1107  done  done
1108    
1109    
1110  if test -f ./.genmakerc ; then  if test -f ./.genmakerc ; then
1111      echo      echo
1112      echo "WARNING: genmake2 has detected a copy of the old-style \"./.genmakerc\""      echo "WARNING: genmake2 has detected a copy of the old-style \"./.genmakerc\""
# Line 1047  fi Line 1121  fi
1121    
1122  #  Find the MITgcm ${ROOTDIR}  #  Find the MITgcm ${ROOTDIR}
1123  if test "x${ROOTDIR}" = x ; then  if test "x${ROOTDIR}" = x ; then
1124      tmp=`echo $PWD | sed -e 's/\// /g' | awk '{print $NR}'`      tmp=`echo $PWD | sed -e 's/\// /g' | $AWK '{print $NR}'`
1125      if test "x$tmp" = "xbin" -a -d ../model -a -d ../eesup -a -d ../pkg ; then      if test "x$tmp" = "xbin" -a -d ../model -a -d ../eesup -a -d ../pkg ; then
1126          ROOTDIR=".."          ROOTDIR=".."
1127      else      else
# Line 1077  if test -f "${ROOTDIR}/doc/tag-index" ; Line 1151  if test -f "${ROOTDIR}/doc/tag-index" ;
1151      THISVER=`grep checkpoint ${ROOTDIR}/doc/tag-index | head -1`      THISVER=`grep checkpoint ${ROOTDIR}/doc/tag-index | head -1`
1152  fi  fi
1153    
1154    if test "x$MAKEFILE" = x ; then
1155        MAKEFILE="Makefile"
1156    fi
1157    
1158  echo "  getting OPTFILE information:  "  echo "  getting OPTFILE information:  "
1159  if test "x${OPTFILE}" = x ; then  if test "x${OPTFILE}" = x ; then
1160      if test "x$MITGCM_OF" = x ; then      if test "x$MITGCM_OF" = x ; then
# Line 1106  if test "x$OPTFILE" != xNONE ; then Line 1184  if test "x$OPTFILE" != xNONE ; then
1184      fi      fi
1185  fi  fi
1186    
 #  Check for broken systems that cannot correctly distinguish *.F and *.f files  
 # check_for_broken_Ff  
   
1187  echo "  getting AD_OPTFILE information:  "  echo "  getting AD_OPTFILE information:  "
1188  if test "x${AD_OPTFILE}" = x ; then  if test "x${AD_OPTFILE}" = x ; then
1189      if test "x$MITGCM_AD_OF" = x ; then      if test "x$MITGCM_AD_OF" = x ; then
# Line 1136  if test "x${AD_OPTFILE}" != xNONE ; then Line 1211  if test "x${AD_OPTFILE}" != xNONE ; then
1211      fi      fi
1212  fi  fi
1213    
1214    #====================================================================
1215    #  Set default values if not set by the optfile
1216    #
1217  #  Check that FC, CC, LINK, CPP, S64, LN, and MAKE are defined.  If not,  #  Check that FC, CC, LINK, CPP, S64, LN, and MAKE are defined.  If not,
1218  #  either set defaults or complain and abort!  #  either set defaults or complain and abort!
1219  if test ! "x$BASH" = x ; then  if test ! "x$BASH" = x ; then
# Line 1224  fi Line 1302  fi
1302    
1303  printf "\n===  Checking system libraries  ===\n"  printf "\n===  Checking system libraries  ===\n"
1304  printf "  Do we have the system() command using $FC...  "  printf "  Do we have the system() command using $FC...  "
1305  cat > genmake_tcomp.f <<EOF  cat > genmake_tcomp.$FS <<EOF
1306        program hello        program hello
1307        call system('echo hi')        call system('echo hi')
1308        end        end
1309  EOF  EOF
1310  $FC $FFLAGS $DEFINES -o genmake_tcomp genmake_tcomp.f > genmake_tcomp.log 2>&1  $FC $FFLAGS $DEFINES -o genmake_tcomp genmake_tcomp.$FS > genmake_tcomp.log 2>&1
1311  RETVAL=$?  RETVAL=$?
1312  if test "x$RETVAL" = x0 ; then  if test "x$RETVAL" = x0 ; then
1313      HAVE_SYSTEM=t      HAVE_SYSTEM=t
# Line 1242  fi Line 1320  fi
1320  rm -f genmake_tcomp*  rm -f genmake_tcomp*
1321    
1322  printf "  Do we have the fdate() command using $FC...  "  printf "  Do we have the fdate() command using $FC...  "
1323  cat > genmake_tcomp.f <<EOF  cat > genmake_tcomp.$FS <<EOF
1324        program hello        program hello
1325        CHARACTER(128) string        CHARACTER(128) string
1326        string = ' '        string = ' '
# Line 1250  cat > genmake_tcomp.f <<EOF Line 1328  cat > genmake_tcomp.f <<EOF
1328        print *, string        print *, string
1329        end        end
1330  EOF  EOF
1331  $FC $FFLAGS $DEFINES -o genmake_tcomp genmake_tcomp.f > genmake_tcomp.log 2>&1  $FC $FFLAGS $DEFINES -o genmake_tcomp genmake_tcomp.$FS > genmake_tcomp.log 2>&1
1332  RETVAL=$?  RETVAL=$?
1333  if test "x$RETVAL" = x0 ; then  if test "x$RETVAL" = x0 ; then
1334      HAVE_FDATE=t      HAVE_FDATE=t
# Line 1263  fi Line 1341  fi
1341  rm -f genmake_tcomp*  rm -f genmake_tcomp*
1342    
1343  printf "  Do we have the etime() command using $FC...  "  printf "  Do we have the etime() command using $FC...  "
1344  cat > genmake_tcomp.f <<EOF  cat > genmake_tcomp.$FS <<EOF
1345        program hello        program hello
1346        REAL*4 ACTUAL, TARRAY(2)        REAL*4 ACTUAL, TARRAY(2)
1347        EXTERNAL ETIME        EXTERNAL ETIME
# Line 1272  cat > genmake_tcomp.f <<EOF Line 1350  cat > genmake_tcomp.f <<EOF
1350        print *, tarray        print *, tarray
1351        end        end
1352  EOF  EOF
1353  $FC $FFLAGS $DEFINES -o genmake_tcomp genmake_tcomp.f > genmake_tcomp.log 2>&1  $FC $FFLAGS $DEFINES -o genmake_tcomp genmake_tcomp.$FS > genmake_tcomp.log 2>&1
1354  RETVAL=$?  RETVAL=$?
1355  if test "x$RETVAL" = x0 ; then  if test "x$RETVAL" = x0 ; then
1356      HAVE_ETIME=t      HAVE_ETIME=t
# Line 1293  else Line 1371  else
1371  fi  fi
1372  rm -f genmake_t*  rm -f genmake_t*
1373    
1374    printf "  Can we use stat() through C calls...  "
1375    check_HAVE_STAT
1376    if test "x$HAVE_STAT" != x ; then
1377        echo "yes"
1378    else
1379        echo "no"
1380    fi
1381    rm -f genmake_t*
1382    
1383  printf "  Can we create NetCDF-enabled binaries...  "  printf "  Can we create NetCDF-enabled binaries...  "
1384  check_netcdf_libs  check_netcdf_libs
1385  if test "x$HAVE_NETCDF" != x ; then  if test "x$HAVE_NETCDF" != x ; then
# Line 1317  for d in $MODS ; do Line 1404  for d in $MODS ; do
1404  done  done
1405  echo  echo
1406    
 if test "x$MAKEFILE" = x ; then  
     MAKEFILE="Makefile"  
 fi  
1407  if test "x${PLATFORM}" = x ; then  if test "x${PLATFORM}" = x ; then
1408      PLATFORM=$p_PLATFORM      PLATFORM=$p_PLATFORM
1409  fi  fi
1410    
1411  if test "x${EXEDIR}" = x ; then  if test "x${EXEDIR}" = x ; then
1412      tmp=`echo $PWD | sed -e 's/\// /g' | awk '{print $NR}'`      tmp=`echo $PWD | sed -e 's/\// /g' | $AWK '{print $NR}'`
1413      if test "x$tmp" = "xbin" -a -d ../exe -a $ROOTDIR = .. ; then      if test "x$tmp" = "xbin" -a -d ../exe -a $ROOTDIR = .. ; then
1414          EXEDIR=../exe          EXEDIR=../exe
1415      else      else
# Line 1536  EOF Line 1620  EOF
1620          PACKAGES=`echo $PACKAGES | sed -e 's/mnc//g'`          PACKAGES=`echo $PACKAGES | sed -e 's/mnc//g'`
1621          DISABLE="$DISABLE mnc"          DISABLE="$DISABLE mnc"
1622      else      else
1623          ( cd $ROOTDIR"/pkg/mnc" && $MAKE templates ) > make_mnc.errors 2>&1          ( cd $ROOTDIR"/pkg/mnc" && $MAKE testclean && $MAKE templates ) > make_mnc.errors 2>&1
1624          RETVAL=$?          RETVAL=$?
1625          if test "x${RETVAL}" = x0 ; then          if test "x${RETVAL}" = x0 ; then
1626              rm -f make_mnc.errors              rm -f make_mnc.errors
# Line 1651  for n in $names ; do Line 1735  for n in $names ; do
1735              fi              fi
1736          done          done
1737          if test "x$has_pack" = xf ; then          if test "x$has_pack" = xf ; then
1738              undef=`echo "ALLOW_$n" | $AWK '{print toupper($0)}'`              undef=`echo "ALLOW_$n" | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
1739              DISABLED_PACKAGES="$DISABLED_PACKAGES -U$undef"              DISABLED_PACKAGES="$DISABLED_PACKAGES -U$undef"
1740          fi          fi
1741      fi      fi
1742  done  done
1743  ENABLED_PACKAGES=  ENABLED_PACKAGES=
1744  for i in $PACKAGES ; do  for i in $PACKAGES ; do
1745      def=`echo "ALLOW_$i" | $AWK '{print toupper($0)}'`      def=`echo "ALLOW_$i" | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
1746      ENABLED_PACKAGES="$ENABLED_PACKAGES -D$def"      ENABLED_PACKAGES="$ENABLED_PACKAGES -D$def"
1747  #eh3 DEFINES="$DEFINES -D$def"  #eh3 DEFINES="$DEFINES -D$def"
1748    
# Line 1742  for i in $SOURCEDIRS ; do Line 1826  for i in $SOURCEDIRS ; do
1826          cat $i/$j >> ad_files          cat $i/$j >> ad_files
1827      done      done
1828  done  done
1829    if test ! "x"$FS = "x.f" ; then
1830        cat ad_files | sed -e "s/\.f/.$FS/g" > ad_files_f
1831        mv -f ad_files_f ad_files
1832    fi
1833    
1834  echo  echo
1835  echo "===  Creating the Makefile  ==="  echo "===  Creating the Makefile  ==="
# Line 1785  for d in $alldirs ; do Line 1872  for d in $alldirs ; do
1872                          deplist="$deplist $sf"                          deplist="$deplist $sf"
1873                          ;;                          ;;
1874                  esac                  esac
1875                  extn=`echo $sf | $AWK -F '.' '{print $NF}'`                  extn=`echo $sf | $AWK -F. '{print $NF}'`
1876                  case $extn in                  case $extn in
1877                      F)                      F)
1878                          echo    " \\"  >> srclist.inc                          echo    " \\"  >> srclist.inc
# Line 1925  CFLAGS = ${CFLAGS} Line 2012  CFLAGS = ${CFLAGS}
2012  NOOPTFILES = ${NOOPTFILES}  NOOPTFILES = ${NOOPTFILES}
2013  NOOPTFLAGS = ${NOOPTFLAGS}  NOOPTFLAGS = ${NOOPTFLAGS}
2014  # Flags and libraries needed for linking  # Flags and libraries needed for linking
2015  LIBS = ${LIBS} \$(XLIBS)  LIBS = ${LIBS}
2016  # Name of the Mekfile  # Name of the Mekfile
2017  MAKEFILE=${MAKEFILE}  MAKEFILE=${MAKEFILE}
2018    
# Line 2067  cat >>$MAKEFILE <<EOF Line 2154  cat >>$MAKEFILE <<EOF
2154    
2155  # ... AD ...  # ... AD ...
2156  adall: ad_taf  adall: ad_taf
2157  adtaf: ad_taf_output.f  adtaf: ad_taf_output.$FS
2158  adtamc: ad_tamc_output.f  adtamc: ad_tamc_output.$FS
2159    
2160  ad_input_code.f: \$(AD_FILES) \$(HEADERFILES)  ad_input_code.$FS: \$(AD_FILES) \$(HEADERFILES)
2161          @$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 -UALLOW_ECCO_OPTIMIZATION > ad_config.template
2162          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
2163          -rm -f ad_config.template          -rm -f ad_config.template
2164          @make \$(F77FILES)          @make \$(F77FILES)
2165          @make \$(AD_FLOW_FILES)          @make \$(AD_FLOW_FILES)
2166          cat \$(AD_FLOW_FILES) \$(AD_FILES) > ad_input_code.f          cat \$(AD_FLOW_FILES) \$(AD_FILES) > ad_input_code.$FS
2167    
2168  ad_taf_output.f: ad_input_code.f  ad_taf_output.$FS: ad_input_code.$FS
2169          \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.f          \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.$FS
2170          cat ad_input_code_ad.f | sed -f \$(TOOLSDIR)/adjoint_sed > ad_taf_output.f          cat ad_input_code_ad.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ad_taf_output.$FS
2171    
2172  adtafonly:  adtafonly:
2173          \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.f          \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.$FS
2174          cat ad_input_code_ad.f | sed -f \$(TOOLSDIR)/adjoint_sed > ad_taf_output.f          cat ad_input_code_ad.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ad_taf_output.$FS
2175    
2176  ad_taf: ad_taf_output.o \$(OBJFILES)  ad_taf: ad_taf_output.o \$(OBJFILES)
2177          \$(LINK) -o ${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_taf_output.o \$(LIBS)          \$(LINK) -o ${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_taf_output.o \$(LIBS)
2178    
2179  ad_tamc_output.f: ad_input_code.f  ad_tamc_output.$FS: ad_input_code.$FS
2180          \$(TAMC) \$(AD_TAMC_FLAGS) \$(TAMC_EXTRA) ad_input_code.f          \$(TAMC) \$(AD_TAMC_FLAGS) \$(TAMC_EXTRA) ad_input_code.$FS
2181          cat ad_input_code_ad.f | sed -f \$(TOOLSDIR)/adjoint_sed > ad_tamc_output.f          cat ad_input_code_ad.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ad_tamc_output.$FS
2182    
2183  ad_tamc: ad_tamc_output.o \$(OBJFILES)  ad_tamc: ad_tamc_output.o \$(OBJFILES)
2184          \$(LINK) -o ${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_tamc_output.o \$(LIBS)          \$(LINK) -o ${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_tamc_output.o \$(LIBS)
# Line 2104  adtrick: Line 2191  adtrick:
2191    
2192  # ... FTL ...  # ... FTL ...
2193  ftlall: ftl_taf  ftlall: ftl_taf
2194  ftltaf: ftl_taf_output.f  ftltaf: ftl_taf_output.$FS
2195  ftltamc: ftl_tamc_output.f  ftltamc: ftl_tamc_output.$FS
2196    
2197  ftl_input_code.f: \$(AD_FILES) \$(HEADERFILES)  ftl_input_code.$FS: \$(AD_FILES) \$(HEADERFILES)
2198          @$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 -UALLOW_ECCO_OPTIMIZATION > ftl_config.template
2199          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
2200          -rm -f ftl_config.template          -rm -f ftl_config.template
2201          @make \$(F77FILES)          @make \$(F77FILES)
2202          @make \$(AD_FLOW_FILES)          @make \$(AD_FLOW_FILES)
2203          cat \$(AD_FLOW_FILES) \$(AD_FILES) > ftl_input_code.f          cat \$(AD_FLOW_FILES) \$(AD_FILES) > ftl_input_code.$FS
2204    
2205  ftl_taf_output.f: ftl_input_code.f  ftl_taf_output.$FS: ftl_input_code.$FS
2206          \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.f          \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.$FS
2207          cat ftl_input_code_ftl.f | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_taf_output.f          cat ftl_input_code_ftl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_taf_output.$FS
2208    
2209  ftltafonly:  ftltafonly:
2210          \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.f          \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.$FS
2211          cat ftl_input_code_ftl.f | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_taf_output.f          cat ftl_input_code_ftl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_taf_output.$FS
2212    
2213  ftl_taf: ftl_taf_output.o \$(OBJFILES)  ftl_taf: ftl_taf_output.o \$(OBJFILES)
2214          \$(LINK) -o ${EXE_FTL} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ftl_taf_output.o \$(LIBS)          \$(LINK) -o ${EXE_FTL} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ftl_taf_output.o \$(LIBS)
2215    
2216  ftl_tamc_output.f: ftl_input_code.f  ftl_tamc_output.$FS: ftl_input_code.$FS
2217          \$(TAMC) \$(FTL_TAMC_FLAGS) \$(TAMC_EXTRA) ftl_input_code.f          \$(TAMC) \$(FTL_TAMC_FLAGS) \$(TAMC_EXTRA) ftl_input_code.$FS
2218          cat ftl_input_code_ftl.f | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_tamc_output.f          cat ftl_input_code_ftl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_tamc_output.$FS
2219    
2220  ftl_tamc: ftl_tamc_output.o \$(OBJFILES)  ftl_tamc: ftl_tamc_output.o \$(OBJFILES)
2221          \$(LINK) -o ${EXE_FTL} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ftl_tamc_output.o \$(LIBS)          \$(LINK) -o ${EXE_FTL} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ftl_tamc_output.o \$(LIBS)
2222    
2223    
2224  # ... SVD ...  # ... SVD ...
2225  svdtaf: ad_taf_output.f ftl_taf_output.f  svdtaf: ad_taf_output.$FS ftl_taf_output.$FS
2226  svdall: svd_taf          @echo "--->>> Only ran TAF to generate SVD code!    <<<---"
2227            @echo "--->>> Do make svdall afterwards to compile. <<<---"
2228    svdall: svd_touch svd_taf
2229    
2230  svd_taf: ad_taf_output.o ftl_taf_output.o \$(OBJFILES)  svd_taf: \$(OBJFILES)
2231          \$(LINK) -o mitgcmuv_svd \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_taf_output.o ftl_taf_output.o \$(LIBS)          \$(LINK) -o mitgcmuv_svd \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_taf_output.o ftl_taf_output.o \$(LIBS)
2232    
2233            @echo "--->>> Only COMPILE svd code! <<<---"
2234            @echo "--->>> Assumes you previously <<<---"
2235            @echo "--->>> did make svdtaf        <<<---"
2236    
2237    svd_touch:
2238            @echo "--->>> Only COMPILE svd code! <<<---"
2239            @echo "--->>> Assumes you previously <<<---"
2240            @echo "--->>> did make svdtaf        <<<---"
2241            touch ad_taf_output.$FS ftl_taf_output.$FS
2242            \$(FC) \$(FFLAGS) \$(FOPTIM) -c ad_taf_output.$FS
2243            \$(FC) \$(FFLAGS) \$(FOPTIM) -c ftl_taf_output.$FS
2244            @$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
2245            cmp ftl_config.template AD_CONFIG.h || cat ftl_config.template > AD_CONFIG.h
2246            -rm -f ftl_config.template
2247    
2248  #=========================================  #=========================================
2249    

Legend:
Removed from v.1.106  
changed lines
  Added in v.1.122

  ViewVC Help
Powered by ViewVC 1.1.22