/[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.115 by edhill, Thu Jan 6 15:09:54 2005 UTC revision 1.130 by edhill, Sun Sep 11 18:52:26 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 310  EOF Line 321  EOF
321    
322      #================================================================      #================================================================
323      #  look for possible FORTRAN compilers      #  look for possible FORTRAN compilers
324      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 gfortran"
325      p_FC=      p_FC=
326      for c in $tmp ; do      for c in $tmp ; do
327          rm -f ./hello.f ./hello          rm -f ./hello.f ./hello
# Line 516  Usage: "$0" [OPTIONS] Line 527  Usage: "$0" [OPTIONS]
527            *only* works if it is supported by the OPTFILE that            *only* works if it is supported by the OPTFILE that
528            is being used.            is being used.
529    
530        -ts | --ts
531              Produce timing information per timestep
532    
533      -mpi | --mpi      -mpi | --mpi
534            Include MPI header files and link to MPI libraries            Include MPI header files and link to MPI libraries
535      -mpi=PATH | --mpi=PATH      -mpi=PATH | --mpi=PATH
# Line 581  WARNING: Please contact <MITgcm-support@ Line 595  WARNING: Please contact <MITgcm-support@
595  EOF  EOF
596          return 1          return 1
597      fi      fi
598      cat > genmake_tcomp.f <<EOF      cat > genmake_tcomp.$FS <<EOF
599        subroutine tcall( string )        subroutine tcall( string )
600        character*(*) string        character*(*) string
601        call tsub( string )        call tsub( string )
602        end        end
603  EOF  EOF
604      $FC $FFLAGS $DEFINES -c genmake_tcomp.f >> genmake_warnings 2>&1      $FC $FFLAGS $DEFINES -c genmake_tcomp.$FS >> genmake_warnings 2>&1
605      RETVAL=$?      RETVAL=$?
606      if test "x$RETVAL" != x0 ; then      if test "x$RETVAL" != x0 ; then
607          FC_NAMEMANGLE=$default_nm          FC_NAMEMANGLE=$default_nm
# Line 653  void FC_NAMEMANGLE(cloc) ( double *curti Line 667  void FC_NAMEMANGLE(cloc) ( double *curti
667   *curtim = *curtim/1.E6;   *curtim = *curtim/1.E6;
668  }  }
669  EOF  EOF
670      make genmake_tc_1.o >> genmake_tc.log 2>&1      make genmake_tc_1.o >> genmake_warnings 2>&1
671      RET_C=$?      RET_C=$?
672      cat <<EOF > genmake_tc_2.f      cat <<EOF > genmake_tc_2.$FS
673        program hello        program hello
674        Real*8 wtime        REAL*8 wtime
675        external cloc        external cloc
676        call cloc(wtime)        call cloc(wtime)
677        print *," HELLO WORLD", wtime        print *," HELLO WORLD", wtime
678        end program hello        end
679  EOF  EOF
680      $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
681      RET_F=$?      RET_F=$?
682      test -x ./genmake_tc  &&  ./genmake_tc >> genmake_tc.log 2>&1      test -x ./genmake_tc  &&  ./genmake_tc >> genmake_warnings 2>&1
683      RETVAL=$?      RETVAL=$?
684      if test "x$RETVAL" = x0 ; then      if test "x$RETVAL" = x0 ; then
685          HAVE_CLOC=t          HAVE_CLOC=t
# Line 675  EOF Line 689  EOF
689  }  }
690    
691    
692    check_HAVE_SETRLSTK()  {
693        get_fortran_c_namemangling
694        cat <<EOF > genmake_tc_1.c
695    $FC_NAMEMANGLE
696    #include <sys/time.h>
697    #include <sys/resource.h>
698    #include <unistd.h>
699    void FC_NAMEMANGLE(setrlstk) ()
700    {
701        struct rlimit rls;
702        rls.rlim_cur = RLIM_INFINITY;
703        rls.rlim_max = RLIM_INFINITY;
704        setrlimit(RLIMIT_STACK, &rls);
705        return;
706    }
707    EOF
708        make genmake_tc_1.o >> genmake_warnings 2>&1
709        RET_C=$?
710        cat <<EOF > genmake_tc_2.$FS
711          program hello
712          external setrlstk
713          call setrlstk()
714          end
715    EOF
716        $FC $FFLAGS -o genmake_tc genmake_tc_2.$FS genmake_tc_1.o >> genmake_warnings 2>&1
717        RET_F=$?
718        test -x ./genmake_tc  &&  ./genmake_tc >> genmake_warnings 2>&1
719        RETVAL=$?
720        if test "x$RETVAL" = x0 ; then
721            HAVE_SETRLSTK=t
722            DEFINES="$DEFINES -DHAVE_SETRLSTK"
723        fi
724        rm -f genmake_tc*
725    }
726    
727    
728  check_HAVE_STAT()  {  check_HAVE_STAT()  {
729      get_fortran_c_namemangling      get_fortran_c_namemangling
730      cat <<EOF > genmake_tc_1.c      cat <<EOF > genmake_tc_1.c
# Line 698  void FC_NAMEMANGLE(tfsize) ( int *nbyte Line 748  void FC_NAMEMANGLE(tfsize) ( int *nbyte
748  EOF  EOF
749      make genmake_tc_1.o >> genmake_tc.log 2>&1      make genmake_tc_1.o >> genmake_tc.log 2>&1
750      RET_C=$?      RET_C=$?
751      cat <<EOF > genmake_tc_2.f      cat <<EOF > genmake_tc_2.$FS
752        program hello        program hello
753        integer nbyte        integer nbyte
754        call tfsize(nbyte)        call tfsize(nbyte)
755        print *," HELLO WORLD", nbyte        print *," HELLO WORLD", nbyte
756        end program hello        end
757  EOF  EOF
758      $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_tc.log 2>&1
759      RET_F=$?      RET_F=$?
760      test -x ./genmake_tc  &&  ./genmake_tc >> genmake_tc.log 2>&1      test -x ./genmake_tc  &&  ./genmake_tc >> genmake_tc.log 2>&1
761      RETVAL=$?      RETVAL=$?
# Line 722  check_netcdf_libs()  { Line 772  check_netcdf_libs()  {
772          return          return
773      fi      fi
774      echo "" > genmake_tnc.log      echo "" > genmake_tnc.log
775      cat <<EOF > genmake_tnc.for      cat <<EOF > genmake_tnc.F
776        program fgennc        program fgennc
777  #include "netcdf.inc"  #include "netcdf.inc"
778  EOF  EOF
779      if test ! "x$MPI" = x ; then      if test ! "x$MPI" = x ; then
780          echo '#include "mpif.h"' >> genmake_tnc.for          echo '#include "mpif.h"' >> genmake_tnc.F
781      fi      fi
782      cat <<EOF >> genmake_tnc.for      cat <<EOF >> genmake_tnc.F
783        integer iret, ncid, xid        integer iret, ncid, xid
784        iret = nf_create('genmake_tnc.nc', NF_CLOBBER, ncid)        iret = nf_create('genmake_tnc.nc', NF_CLOBBER, ncid)
785        IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)        IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)
# Line 740  EOF Line 790  EOF
790        end        end
791  EOF  EOF
792      echo "Executing:" > genmake_tnc.log      echo "Executing:" > genmake_tnc.log
793      echo "  $CPP $DEFINES $INCLUDES genmake_tnc.for > genmake_tnc.f" \      echo "  $CPP $DEFINES $INCLUDES genmake_tnc.F > genmake_tnc.$FS" \
794          > genmake_tnc.log          > genmake_tnc.log
795      RET_CPP=f      RET_CPP=f
796      $CPP $DEFINES $INCLUDES genmake_tnc.for > genmake_tnc.f 2>/dev/null  \      $CPP $DEFINES $INCLUDES genmake_tnc.F > genmake_tnc.$FS 2>/dev/null  \
797          &&  RET_CPP=t          &&  RET_CPP=t
798      if test "x$RET_CPP" = xf ; then      if test "x$RET_CPP" = xf ; then
799          echo "  WARNING: CPP failed to pre-process the netcdf test." \          echo "  WARNING: CPP failed to pre-process the netcdf test." \
# Line 752  EOF Line 802  EOF
802              > genmake_tnc.log              > genmake_tnc.log
803      fi      fi
804      echo "Executing:" > genmake_tnc.log      echo "Executing:" > genmake_tnc.log
805      echo "  $FC $FFLAGS $FOPTIM -c genmake_tnc.f" > genmake_tnc.log      echo "  $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS" > genmake_tnc.log
806      echo "  $LINK -o genmake_tnc.o $LIBS" > genmake_tnc.log      echo "  $LINK -o genmake_tnc.o $LIBS" > genmake_tnc.log
807      $FC $FFLAGS $FOPTIM -c genmake_tnc.f >> genmake_tnc.log 2>&1  \      $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS >> genmake_tnc.log 2>&1  \
808          &&  $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
809      RET_COMPILE=$?      RET_COMPILE=$?
810    
# Line 769  EOF Line 819  EOF
819          HAVE_NETCDF=t          HAVE_NETCDF=t
820      else      else
821          # try again with "-lnetcdf" added to the libs          # try again with "-lnetcdf" added to the libs
822          $CPP $DEFINES $INCLUDES genmake_tnc.for > genmake_tnc.f 2>/dev/null  \          $CPP $DEFINES $INCLUDES genmake_tnc.F > genmake_tnc.$FS 2>/dev/null  \
823              &&  $FC $FFLAGS $FOPTIM -c genmake_tnc.f >> genmake_tnc.log 2>&1  \              &&  $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS >> genmake_tnc.log 2>&1  \
824              &&  $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
825          RET_COMPILE=$?          RET_COMPILE=$?
826          if test "x$RET_COMPILE" = x0 ; then          if test "x$RET_COMPILE" = x0 ; then
# Line 804  DEFINES= Line 854  DEFINES=
854  PACKAGES=  PACKAGES=
855  ENABLE=  ENABLE=
856  DISABLE=  DISABLE=
857  MAKEFILE=  # MAKEFILE=
858  #MAKEDEPEND=  # MAKEDEPEND=
859  PDEPEND=  PDEPEND=
860  DUMPSTATE=t  DUMPSTATE=t
861  PDEFAULT=  PDEFAULT=
# Line 823  NOOPTFILES= Line 873  NOOPTFILES=
873  NOOPTFLAGS=  NOOPTFLAGS=
874  MPI=  MPI=
875  MPIPATH=  MPIPATH=
876    TS=
877    
878  # DEFINES checked by test compilation  # DEFINES checked by test compilation or command-line
879  HAVE_SYSTEM=  HAVE_SYSTEM=
880  HAVE_FDATE=  HAVE_FDATE=
881  FC_NAMEMANGLE=  FC_NAMEMANGLE=
882  HAVE_CLOC=  HAVE_CLOC=
883    HAVE_SETRLSTK=
884  HAVE_STAT=  HAVE_STAT=
885  HAVE_NETCDF=  HAVE_NETCDF=
886  HAVE_ETIME=  HAVE_ETIME=
887    IGNORE_TIME=
888    
889  MODS=  MODS=
890  TOOLSDIR=  TOOLSDIR=
# Line 877  TAMC_EXTRA= Line 930  TAMC_EXTRA=
930    
931  #  The following state can be set directly by command-line switches  #  The following state can be set directly by command-line switches
932  gm_s1="OPTFILE PDEPEND PDEFAULT MAKEFILE PLATFORM ROOTDIR MODS DISABLE ENABLE"  gm_s1="OPTFILE PDEPEND PDEFAULT MAKEFILE PLATFORM ROOTDIR MODS DISABLE ENABLE"
933  gm_s2="FC CPP IEEE MPI JAM DUMPSTATE STANDARDDIRS"  gm_s2="FC CPP IEEE TS MPI JAM DUMPSTATE STANDARDDIRS"
934    
935  #  The following state is not directly set by command-line switches  #  The following state is not directly set by command-line switches
936  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 "
# Line 1057  for ac_option in "$@" ; do Line 1110  for ac_option in "$@" ; do
1110          -noieee | --noieee)          -noieee | --noieee)
1111              IEEE= ;;              IEEE= ;;
1112    
1113            -ts | --ts)
1114                TS=true ;;
1115    
1116          -mpi | --mpi)          -mpi | --mpi)
1117              MPI=true ;;              MPI=true ;;
1118          -mpi=* | --mpi=*)          -mpi=* | --mpi=*)
# Line 1080  for ac_option in "$@" ; do Line 1136  for ac_option in "$@" ; do
1136              ac_prev=TAMC_EXTRA ;;              ac_prev=TAMC_EXTRA ;;
1137          -tamc_extra=* | --tamc_extra=*)          -tamc_extra=* | --tamc_extra=*)
1138              TAMC_EXTRA=$ac_optarg ;;              TAMC_EXTRA=$ac_optarg ;;
1139            
1140            -ignoretime | -ignore_time | --ignoretime | --ignore_time)
1141                IGNORE_TIME="-DIGNORE_TIME" ;;
1142    
1143          -*)          -*)
1144              echo "Error: unrecognized option: "$ac_option              echo "Error: unrecognized option: "$ac_option
# Line 1095  for ac_option in "$@" ; do Line 1154  for ac_option in "$@" ; do
1154            
1155  done  done
1156    
1157    
1158  if test -f ./.genmakerc ; then  if test -f ./.genmakerc ; then
1159      echo      echo
1160      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 1136  fi Line 1196  fi
1196    
1197  #  Find the MITgcm ${THISVER}  #  Find the MITgcm ${THISVER}
1198  if test -f "${ROOTDIR}/doc/tag-index" ; then  if test -f "${ROOTDIR}/doc/tag-index" ; then
1199      THISVER=`grep checkpoint ${ROOTDIR}/doc/tag-index | head -1`      THISVER=`grep '^checkpoint' ${ROOTDIR}/doc/tag-index | head -1`
1200    fi
1201    
1202    if test "x$MAKEFILE" = x ; then
1203        MAKEFILE="Makefile"
1204  fi  fi
1205    
1206  echo "  getting OPTFILE information:  "  echo "  getting OPTFILE information:  "
# Line 1168  if test "x$OPTFILE" != xNONE ; then Line 1232  if test "x$OPTFILE" != xNONE ; then
1232      fi      fi
1233  fi  fi
1234    
 #  Check for broken systems that cannot correctly distinguish *.F and *.f files  
 # check_for_broken_Ff  
   
1235  echo "  getting AD_OPTFILE information:  "  echo "  getting AD_OPTFILE information:  "
1236  if test "x${AD_OPTFILE}" = x ; then  if test "x${AD_OPTFILE}" = x ; then
1237      if test "x$MITGCM_AD_OF" = x ; then      if test "x$MITGCM_AD_OF" = x ; then
# Line 1198  if test "x${AD_OPTFILE}" != xNONE ; then Line 1259  if test "x${AD_OPTFILE}" != xNONE ; then
1259      fi      fi
1260  fi  fi
1261    
1262    #====================================================================
1263    #  Set default values if not set by the optfile
1264    #
1265  #  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,
1266  #  either set defaults or complain and abort!  #  either set defaults or complain and abort!
1267  if test ! "x$BASH" = x ; then  if test ! "x$BASH" = x ; then
# Line 1284  if test ! "x$MPI" = x ; then Line 1348  if test ! "x$MPI" = x ; then
1348        DEFINES="$DEFINES -DALLOW_USE_MPI -DALWAYS_USE_MPI"        DEFINES="$DEFINES -DALLOW_USE_MPI -DALWAYS_USE_MPI"
1349  fi  fi
1350    
1351    if test ! "x$TS" = x ; then
1352          echo "  Turning on timing per timestep"
1353          DEFINES="$DEFINES -DTIME_PER_TIMESTEP"
1354    fi
1355    
1356  printf "\n===  Checking system libraries  ===\n"  printf "\n===  Checking system libraries  ===\n"
1357  printf "  Do we have the system() command using $FC...  "  printf "  Do we have the system() command using $FC...  "
1358  cat > genmake_tcomp.f <<EOF  cat > genmake_tcomp.$FS <<EOF
1359        program hello        program hello
1360        call system('echo hi')        call system('echo hi')
1361        end        end
1362  EOF  EOF
1363  $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
1364  RETVAL=$?  RETVAL=$?
1365  if test "x$RETVAL" = x0 ; then  if test "x$RETVAL" = x0 ; then
1366      HAVE_SYSTEM=t      HAVE_SYSTEM=t
# Line 1304  fi Line 1373  fi
1373  rm -f genmake_tcomp*  rm -f genmake_tcomp*
1374    
1375  printf "  Do we have the fdate() command using $FC...  "  printf "  Do we have the fdate() command using $FC...  "
1376  cat > genmake_tcomp.f <<EOF  cat > genmake_tcomp.$FS <<EOF
1377        program hello        program hello
1378        CHARACTER(128) string        CHARACTER*(128) string
1379        string = ' '        string = ' '
1380        call fdate( string )        call fdate( string )
1381        print *, string        print *, string
1382        end        end
1383  EOF  EOF
1384  $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
1385  RETVAL=$?  RETVAL=$?
1386  if test "x$RETVAL" = x0 ; then  if test "x$RETVAL" = x0 ; then
1387      HAVE_FDATE=t      HAVE_FDATE=t
# Line 1325  fi Line 1394  fi
1394  rm -f genmake_tcomp*  rm -f genmake_tcomp*
1395    
1396  printf "  Do we have the etime() command using $FC...  "  printf "  Do we have the etime() command using $FC...  "
1397  cat > genmake_tcomp.f <<EOF  cat > genmake_tcomp.$FS <<EOF
1398        program hello        program hello
1399        REAL*4 ACTUAL, TARRAY(2)        REAL*4 ACTUAL, TARRAY(2)
1400        EXTERNAL ETIME        EXTERNAL ETIME
# Line 1334  cat > genmake_tcomp.f <<EOF Line 1403  cat > genmake_tcomp.f <<EOF
1403        print *, tarray        print *, tarray
1404        end        end
1405  EOF  EOF
1406  $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
1407  RETVAL=$?  RETVAL=$?
1408  if test "x$RETVAL" = x0 ; then  if test "x$RETVAL" = x0 ; then
1409      HAVE_ETIME=t      HAVE_ETIME=t
# Line 1355  else Line 1424  else
1424  fi  fi
1425  rm -f genmake_t*  rm -f genmake_t*
1426    
1427    printf "  Can we unlimit the stack size using $FC...  "
1428    check_HAVE_SETRLSTK
1429    if test "x$HAVE_SETRLSTK" != x ; then
1430        echo "yes"
1431    else
1432        echo "no"
1433    fi
1434    rm -f genmake_t*
1435    
1436  printf "  Can we use stat() through C calls...  "  printf "  Can we use stat() through C calls...  "
1437  check_HAVE_STAT  check_HAVE_STAT
1438  if test "x$HAVE_STAT" != x ; then  if test "x$HAVE_STAT" != x ; then
# Line 1371  if test "x$HAVE_NETCDF" != x ; then Line 1449  if test "x$HAVE_NETCDF" != x ; then
1449  else  else
1450      echo "no"      echo "no"
1451  fi  fi
1452    DEFINES="$DEFINES $IGNORE_TIME"
1453    
1454  printf "\n===  Setting defaults  ===\n"  printf "\n===  Setting defaults  ===\n"
1455  printf "  Adding MODS directories:  "  printf "  Adding MODS directories:  "
# Line 1388  for d in $MODS ; do Line 1466  for d in $MODS ; do
1466  done  done
1467  echo  echo
1468    
 if test "x$MAKEFILE" = x ; then  
     MAKEFILE="Makefile"  
 fi  
1469  if test "x${PLATFORM}" = x ; then  if test "x${PLATFORM}" = x ; then
1470      PLATFORM=$p_PLATFORM      PLATFORM=$p_PLATFORM
1471  fi  fi
# Line 1722  for n in $names ; do Line 1797  for n in $names ; do
1797              fi              fi
1798          done          done
1799          if test "x$has_pack" = xf ; then          if test "x$has_pack" = xf ; then
1800              undef=`echo "ALLOW_$n" | $AWK '{print toupper($0)}'`              undef=`echo "ALLOW_$n" | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
1801              DISABLED_PACKAGES="$DISABLED_PACKAGES -U$undef"              DISABLED_PACKAGES="$DISABLED_PACKAGES -U$undef"
1802          fi          fi
1803      fi      fi
1804  done  done
1805  ENABLED_PACKAGES=  ENABLED_PACKAGES=
1806  for i in $PACKAGES ; do  for i in $PACKAGES ; do
1807      def=`echo "ALLOW_$i" | $AWK '{print toupper($0)}'`      def=`echo "ALLOW_$i" | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
1808      ENABLED_PACKAGES="$ENABLED_PACKAGES -D$def"      ENABLED_PACKAGES="$ENABLED_PACKAGES -D$def"
1809  #eh3 DEFINES="$DEFINES -D$def"  #eh3 DEFINES="$DEFINES -D$def"
1810    
# Line 1813  for i in $SOURCEDIRS ; do Line 1888  for i in $SOURCEDIRS ; do
1888          cat $i/$j >> ad_files          cat $i/$j >> ad_files
1889      done      done
1890  done  done
1891    if test ! "x"$FS = "x.f" ; then
1892        cat ad_files | sed -e "s/\.f/.$FS/g" > ad_files_f
1893        mv -f ad_files_f ad_files
1894    fi
1895    
1896  echo  echo
1897  echo "===  Creating the Makefile  ==="  echo "===  Creating the Makefile  ==="
# Line 2009  cat hlist.inc         >> $MAKEFILE Line 2087  cat hlist.inc         >> $MAKEFILE
2087  cat ad_flow_files.inc >> $MAKEFILE  cat ad_flow_files.inc >> $MAKEFILE
2088  echo >> $MAKEFILE  echo >> $MAKEFILE
2089  echo 'F77FILES =  $(SRCFILES:.F=.'$FS')'      >> $MAKEFILE  echo 'F77FILES =  $(SRCFILES:.F=.'$FS')'      >> $MAKEFILE
2090  echo 'F90FILES =  $(F90SRCFILES:.F=.'$FS90')' >> $MAKEFILE  echo 'F90FILES =  $(F90SRCFILES:.F90=.'$FS90')' >> $MAKEFILE
2091  echo 'OBJFILES =  $(SRCFILES:.F=.o) $(CSRCFILES:.c=.o) $(F90SRCFILES:.F90=.o)' >> $MAKEFILE  echo 'OBJFILES =  $(SRCFILES:.F=.o) $(CSRCFILES:.c=.o) $(F90SRCFILES:.F90=.o)' >> $MAKEFILE
2092  echo >> $MAKEFILE  echo >> $MAKEFILE
2093  echo '.SUFFIXES:' >> $MAKEFILE  echo '.SUFFIXES:' >> $MAKEFILE
# Line 2138  cat >>$MAKEFILE <<EOF Line 2216  cat >>$MAKEFILE <<EOF
2216    
2217  # ... AD ...  # ... AD ...
2218  adall: ad_taf  adall: ad_taf
2219  adtaf: ad_taf_output.f  adtaf: ad_taf_output.$FS
2220  adtamc: ad_tamc_output.f  adtamc: ad_tamc_output.$FS
2221    
2222  ad_input_code.f: \$(AD_FILES) \$(HEADERFILES)  ad_input_code.$FS: \$(AD_FILES) \$(HEADERFILES)
2223          @$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
2224          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
2225          -rm -f ad_config.template          -rm -f ad_config.template
2226          @make \$(F77FILES)          @make \$(F77FILES)
2227          @make \$(AD_FLOW_FILES)          @make \$(AD_FLOW_FILES)
2228          cat \$(AD_FLOW_FILES) \$(AD_FILES) > ad_input_code.f          cat \$(AD_FLOW_FILES) \$(AD_FILES) > ad_input_code.$FS
2229    
2230  ad_taf_output.f: ad_input_code.f  ad_taf_output.$FS: ad_input_code.$FS
2231          \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.f          \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.$FS
2232          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
2233    
2234  adtafonly:  adtafonly:
2235          \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.f          \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.$FS
2236          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
2237    
2238  ad_taf: ad_taf_output.o \$(OBJFILES)  ad_taf: ad_taf_output.o \$(OBJFILES)
2239          \$(LINK) -o ${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_taf_output.o \$(LIBS)          \$(LINK) -o ${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_taf_output.o \$(LIBS)
2240    
2241  ad_tamc_output.f: ad_input_code.f  ad_tamc_output.$FS: ad_input_code.$FS
2242          \$(TAMC) \$(AD_TAMC_FLAGS) \$(TAMC_EXTRA) ad_input_code.f          \$(TAMC) \$(AD_TAMC_FLAGS) \$(TAMC_EXTRA) ad_input_code.$FS
2243          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
2244    
2245  ad_tamc: ad_tamc_output.o \$(OBJFILES)  ad_tamc: ad_tamc_output.o \$(OBJFILES)
2246          \$(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 2175  adtrick: Line 2253  adtrick:
2253    
2254  # ... FTL ...  # ... FTL ...
2255  ftlall: ftl_taf  ftlall: ftl_taf
2256  ftltaf: ftl_taf_output.f  ftltaf: ftl_taf_output.$FS
2257  ftltamc: ftl_tamc_output.f  ftltamc: ftl_tamc_output.$FS
2258    
2259  ftl_input_code.f: \$(AD_FILES) \$(HEADERFILES)  ftl_input_code.$FS: \$(AD_FILES) \$(HEADERFILES)
2260          @$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
2261          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
2262          -rm -f ftl_config.template          -rm -f ftl_config.template
2263          @make \$(F77FILES)          @make \$(F77FILES)
2264          @make \$(AD_FLOW_FILES)          @make \$(AD_FLOW_FILES)
2265          cat \$(AD_FLOW_FILES) \$(AD_FILES) > ftl_input_code.f          cat \$(AD_FLOW_FILES) \$(AD_FILES) > ftl_input_code.$FS
2266    
2267  ftl_taf_output.f: ftl_input_code.f  ftl_taf_output.$FS: ftl_input_code.$FS
2268          \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.f          \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.$FS
2269          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
2270    
2271  ftltafonly:  ftltafonly:
2272          \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.f          \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.$FS
2273          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
2274    
2275  ftl_taf: ftl_taf_output.o \$(OBJFILES)  ftl_taf: ftl_taf_output.o \$(OBJFILES)
2276          \$(LINK) -o ${EXE_FTL} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ftl_taf_output.o \$(LIBS)          \$(LINK) -o ${EXE_FTL} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ftl_taf_output.o \$(LIBS)
2277    
2278  ftl_tamc_output.f: ftl_input_code.f  ftl_tamc_output.$FS: ftl_input_code.$FS
2279          \$(TAMC) \$(FTL_TAMC_FLAGS) \$(TAMC_EXTRA) ftl_input_code.f          \$(TAMC) \$(FTL_TAMC_FLAGS) \$(TAMC_EXTRA) ftl_input_code.$FS
2280          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
2281    
2282  ftl_tamc: ftl_tamc_output.o \$(OBJFILES)  ftl_tamc: ftl_tamc_output.o \$(OBJFILES)
2283          \$(LINK) -o ${EXE_FTL} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ftl_tamc_output.o \$(LIBS)          \$(LINK) -o ${EXE_FTL} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ftl_tamc_output.o \$(LIBS)
2284    
2285    
2286  # ... SVD ...  # ... SVD ...
2287  svdtaf: ad_taf_output.f ftl_taf_output.f  svdtaf: ad_taf_output.$FS ftl_taf_output.$FS
2288          @echo "--->>> Only ran TAF to generate SVD code!    <<<---"          @echo "--->>> Only ran TAF to generate SVD code!    <<<---"
2289          @echo "--->>> Do make svdall afterwards to compile. <<<---"          @echo "--->>> Do make svdall afterwards to compile. <<<---"
2290  svdall: svd_touch svd_taf  svdall: svd_touch svd_taf
# Line 2222  svd_touch: Line 2300  svd_touch:
2300          @echo "--->>> Only COMPILE svd code! <<<---"          @echo "--->>> Only COMPILE svd code! <<<---"
2301          @echo "--->>> Assumes you previously <<<---"          @echo "--->>> Assumes you previously <<<---"
2302          @echo "--->>> did make svdtaf        <<<---"          @echo "--->>> did make svdtaf        <<<---"
2303          touch ad_taf_output.f ftl_taf_output.f          touch ad_taf_output.$FS ftl_taf_output.$FS
2304          \$(FC) \$(FFLAGS) \$(FOPTIM) -c ad_taf_output.f          \$(FC) \$(FFLAGS) \$(FOPTIM) -c ad_taf_output.$FS
2305          \$(FC) \$(FFLAGS) \$(FOPTIM) -c ftl_taf_output.f          \$(FC) \$(FFLAGS) \$(FOPTIM) -c ftl_taf_output.$FS
2306          @$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
2307          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
2308          -rm -f ftl_config.template          -rm -f ftl_config.template

Legend:
Removed from v.1.115  
changed lines
  Added in v.1.130

  ViewVC Help
Powered by ViewVC 1.1.22