/[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.108 by edhill, Thu Oct 21 13:38:46 2004 UTC revision 1.118 by edhill, Wed Feb 9 17:34:19 2005 UTC
# Line 581  WARNING: Please contact <MITgcm-support@ Line 581  WARNING: Please contact <MITgcm-support@
581  EOF  EOF
582          return 1          return 1
583      fi      fi
584      cat > genmake_tcomp.f <<EOF      cat > genmake_tcomp.$FS <<EOF
585        subroutine tcall( string )        subroutine tcall( string )
586        character*(*) string        character*(*) string
587        call tsub( string )        call tsub( string )
588        end        end
589  EOF  EOF
590      $FC $FFLAGS $DEFINES -c genmake_tcomp.f >> genmake_warnings 2>&1      $FC $FFLAGS $DEFINES -c genmake_tcomp.$FS >> genmake_warnings 2>&1
591      RETVAL=$?      RETVAL=$?
592      if test "x$RETVAL" != x0 ; then      if test "x$RETVAL" != x0 ; then
593          FC_NAMEMANGLE=$default_nm          FC_NAMEMANGLE=$default_nm
# Line 653  void FC_NAMEMANGLE(cloc) ( double *curti Line 653  void FC_NAMEMANGLE(cloc) ( double *curti
653   *curtim = *curtim/1.E6;   *curtim = *curtim/1.E6;
654  }  }
655  EOF  EOF
656      make genmake_tc_1.o >> genmake_tc.log 2>&1      make genmake_tc_1.o >> genmake_warnings 2>&1
657      RET_C=$?      RET_C=$?
658      cat <<EOF > genmake_tc_2.f      cat <<EOF > genmake_tc_2.$FS
659        program hello        program hello
660        Real*8 wtime        Real*8 wtime
661        external cloc        external cloc
# Line 663  EOF Line 663  EOF
663        print *," HELLO WORLD", wtime        print *," HELLO WORLD", wtime
664        end program hello        end program hello
665  EOF  EOF
666      $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
667      RET_F=$?      RET_F=$?
668      test -x ./genmake_tc  &&  ./genmake_tc >> genmake_tc.log 2>&1      test -x ./genmake_tc  &&  ./genmake_tc >> genmake_warnings 2>&1
669      RETVAL=$?      RETVAL=$?
670      if test "x$RETVAL" = x0 ; then      if test "x$RETVAL" = x0 ; then
671          HAVE_CLOC=t          HAVE_CLOC=t
# Line 698  void FC_NAMEMANGLE(tfsize) ( int *nbyte Line 698  void FC_NAMEMANGLE(tfsize) ( int *nbyte
698  EOF  EOF
699      make genmake_tc_1.o >> genmake_tc.log 2>&1      make genmake_tc_1.o >> genmake_tc.log 2>&1
700      RET_C=$?      RET_C=$?
701      cat <<EOF > genmake_tc_2.f      cat <<EOF > genmake_tc_2.$FS
702        program hello        program hello
703        integer nbyte        integer nbyte
704        call tfsize(nbyte)        call tfsize(nbyte)
705        print *," HELLO WORLD", nbyte        print *," HELLO WORLD", nbyte
706        end program hello        end program hello
707  EOF  EOF
708      $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
709      RET_F=$?      RET_F=$?
710      test -x ./genmake_tc  &&  ./genmake_tc >> genmake_tc.log 2>&1      test -x ./genmake_tc  &&  ./genmake_tc >> genmake_tc.log 2>&1
711      RETVAL=$?      RETVAL=$?
# Line 718  EOF Line 718  EOF
718    
719    
720  check_netcdf_libs()  {  check_netcdf_libs()  {
721        if test ! "x$SKIP_NETCDF_CHECK" = x ; then
722            return
723        fi
724      echo "" > genmake_tnc.log      echo "" > genmake_tnc.log
725      cat <<EOF > genmake_tnc.for      cat <<EOF > genmake_tnc.F
726        program fgennc        program fgennc
727  #include "netcdf.inc"  #include "netcdf.inc"
728    EOF
729        if test ! "x$MPI" = x ; then
730            echo '#include "mpif.h"' >> genmake_tnc.F
731        fi
732        cat <<EOF >> genmake_tnc.F
733        integer iret, ncid, xid        integer iret, ncid, xid
734        iret = nf_create('genmake_tnc.nc', NF_CLOBBER, ncid)        iret = nf_create('genmake_tnc.nc', NF_CLOBBER, ncid)
735        IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)        IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)
# Line 731  check_netcdf_libs()  { Line 739  check_netcdf_libs()  {
739        IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)        IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)
740        end        end
741  EOF  EOF
742      #echo "$CPP $DEFINES $INCLUDES genmake_tnc.for > genmake_tnc.f"      echo "Executing:" > genmake_tnc.log
743      #echo "$FC $FFLAGS $FOPTIM -c genmake_tnc.f"      echo "  $CPP $DEFINES $INCLUDES genmake_tnc.F > genmake_tnc.$FS" \
744      #echo "$LINK -o genmake_tnc.o $LIBS"          > genmake_tnc.log
745      $CPP $DEFINES $INCLUDES genmake_tnc.for > genmake_tnc.f 2>/dev/null  \      RET_CPP=f
746          &&  $FC $FFLAGS $FOPTIM -c genmake_tnc.f >> genmake_tnc.log 2>&1  \      $CPP $DEFINES $INCLUDES genmake_tnc.F > genmake_tnc.$FS 2>/dev/null  \
747            &&  RET_CPP=t
748        if test "x$RET_CPP" = xf ; then
749            echo "  WARNING: CPP failed to pre-process the netcdf test." \
750                > genmake_tnc.log
751            echo "    Please check that \$INCLUDES is properly set." \
752                > genmake_tnc.log
753        fi
754        echo "Executing:" > genmake_tnc.log
755        echo "  $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS" > genmake_tnc.log
756        echo "  $LINK -o genmake_tnc.o $LIBS" > genmake_tnc.log
757        $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS >> genmake_tnc.log 2>&1  \
758          &&  $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
759      RET_COMPILE=$?      RET_COMPILE=$?
760    
# Line 750  EOF Line 769  EOF
769          HAVE_NETCDF=t          HAVE_NETCDF=t
770      else      else
771          # try again with "-lnetcdf" added to the libs          # try again with "-lnetcdf" added to the libs
772          $CPP $DEFINES $INCLUDES genmake_tnc.for > genmake_tnc.f 2>/dev/null  \          $CPP $DEFINES $INCLUDES genmake_tnc.F > genmake_tnc.$FS 2>/dev/null  \
773              &&  $FC $FFLAGS $FOPTIM -c genmake_tnc.f >> genmake_tnc.log 2>&1  \              &&  $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS >> genmake_tnc.log 2>&1  \
774              &&  $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
775          RET_COMPILE=$?          RET_COMPILE=$?
776          if test "x$RET_COMPILE" = x0 ; then          if test "x$RET_COMPILE" = x0 ; then
# Line 777  PLATFORM= Line 796  PLATFORM=
796  LN=  LN=
797  S64=  S64=
798  KPP=  KPP=
799  FC=  #FC=
800  #CC=gcc  #CC=gcc
801  CPP=  #CPP=
802  LINK=  LINK=
803  DEFINES=  DEFINES=
804  PACKAGES=  PACKAGES=
# Line 791  PDEPEND= Line 810  PDEPEND=
810  DUMPSTATE=t  DUMPSTATE=t
811  PDEFAULT=  PDEFAULT=
812  OPTFILE=  OPTFILE=
813  INCLUDES="-I."  INCLUDES="-I. $INCLUDES"
814  FFLAGS=  FFLAGS=
815  FOPTIM=  FOPTIM=
816  CFLAGS=  CFLAGS=
# Line 823  STANDARDDIRS="USE_THE_DEFAULT" Line 842  STANDARDDIRS="USE_THE_DEFAULT"
842  G2ARGS=  G2ARGS=
843  BASH=  BASH=
844  PWD=`pwd`  PWD=`pwd`
845  MAKE=make  test "x$MAKE" = x  &&  MAKE=make
846  AWK=awk  test "x$AWK" = x   &&  AWK=awk
847  THISHOST=`hostname`  THISHOST=`hostname`
848  THISCWD=`pwd`  THISCWD=`pwd`
849  THISDATE=`date`  THISDATE=`date`
# Line 1090  fi Line 1109  fi
1109    
1110  #  Find the MITgcm ${ROOTDIR}  #  Find the MITgcm ${ROOTDIR}
1111  if test "x${ROOTDIR}" = x ; then  if test "x${ROOTDIR}" = x ; then
1112      tmp=`echo $PWD | sed -e 's/\// /g' | awk '{print $NR}'`      tmp=`echo $PWD | sed -e 's/\// /g' | $AWK '{print $NR}'`
1113      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
1114          ROOTDIR=".."          ROOTDIR=".."
1115      else      else
# Line 1267  fi Line 1286  fi
1286    
1287  printf "\n===  Checking system libraries  ===\n"  printf "\n===  Checking system libraries  ===\n"
1288  printf "  Do we have the system() command using $FC...  "  printf "  Do we have the system() command using $FC...  "
1289  cat > genmake_tcomp.f <<EOF  cat > genmake_tcomp.$FS <<EOF
1290        program hello        program hello
1291        call system('echo hi')        call system('echo hi')
1292        end        end
1293  EOF  EOF
1294  $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
1295  RETVAL=$?  RETVAL=$?
1296  if test "x$RETVAL" = x0 ; then  if test "x$RETVAL" = x0 ; then
1297      HAVE_SYSTEM=t      HAVE_SYSTEM=t
# Line 1285  fi Line 1304  fi
1304  rm -f genmake_tcomp*  rm -f genmake_tcomp*
1305    
1306  printf "  Do we have the fdate() command using $FC...  "  printf "  Do we have the fdate() command using $FC...  "
1307  cat > genmake_tcomp.f <<EOF  cat > genmake_tcomp.$FS <<EOF
1308        program hello        program hello
1309        CHARACTER(128) string        CHARACTER(128) string
1310        string = ' '        string = ' '
# Line 1293  cat > genmake_tcomp.f <<EOF Line 1312  cat > genmake_tcomp.f <<EOF
1312        print *, string        print *, string
1313        end        end
1314  EOF  EOF
1315  $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
1316  RETVAL=$?  RETVAL=$?
1317  if test "x$RETVAL" = x0 ; then  if test "x$RETVAL" = x0 ; then
1318      HAVE_FDATE=t      HAVE_FDATE=t
# Line 1306  fi Line 1325  fi
1325  rm -f genmake_tcomp*  rm -f genmake_tcomp*
1326    
1327  printf "  Do we have the etime() command using $FC...  "  printf "  Do we have the etime() command using $FC...  "
1328  cat > genmake_tcomp.f <<EOF  cat > genmake_tcomp.$FS <<EOF
1329        program hello        program hello
1330        REAL*4 ACTUAL, TARRAY(2)        REAL*4 ACTUAL, TARRAY(2)
1331        EXTERNAL ETIME        EXTERNAL ETIME
# Line 1315  cat > genmake_tcomp.f <<EOF Line 1334  cat > genmake_tcomp.f <<EOF
1334        print *, tarray        print *, tarray
1335        end        end
1336  EOF  EOF
1337  $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
1338  RETVAL=$?  RETVAL=$?
1339  if test "x$RETVAL" = x0 ; then  if test "x$RETVAL" = x0 ; then
1340      HAVE_ETIME=t      HAVE_ETIME=t
# Line 1377  if test "x${PLATFORM}" = x ; then Line 1396  if test "x${PLATFORM}" = x ; then
1396  fi  fi
1397    
1398  if test "x${EXEDIR}" = x ; then  if test "x${EXEDIR}" = x ; then
1399      tmp=`echo $PWD | sed -e 's/\// /g' | awk '{print $NR}'`      tmp=`echo $PWD | sed -e 's/\// /g' | $AWK '{print $NR}'`
1400      if test "x$tmp" = "xbin" -a -d ../exe -a $ROOTDIR = .. ; then      if test "x$tmp" = "xbin" -a -d ../exe -a $ROOTDIR = .. ; then
1401          EXEDIR=../exe          EXEDIR=../exe
1402      else      else
# Line 1588  EOF Line 1607  EOF
1607          PACKAGES=`echo $PACKAGES | sed -e 's/mnc//g'`          PACKAGES=`echo $PACKAGES | sed -e 's/mnc//g'`
1608          DISABLE="$DISABLE mnc"          DISABLE="$DISABLE mnc"
1609      else      else
1610          ( cd $ROOTDIR"/pkg/mnc" && $MAKE templates ) > make_mnc.errors 2>&1          ( cd $ROOTDIR"/pkg/mnc" && $MAKE testclean && $MAKE templates ) > make_mnc.errors 2>&1
1611          RETVAL=$?          RETVAL=$?
1612          if test "x${RETVAL}" = x0 ; then          if test "x${RETVAL}" = x0 ; then
1613              rm -f make_mnc.errors              rm -f make_mnc.errors
# Line 1703  for n in $names ; do Line 1722  for n in $names ; do
1722              fi              fi
1723          done          done
1724          if test "x$has_pack" = xf ; then          if test "x$has_pack" = xf ; then
1725              undef=`echo "ALLOW_$n" | $AWK '{print toupper($0)}'`              undef=`echo "ALLOW_$n" | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
1726              DISABLED_PACKAGES="$DISABLED_PACKAGES -U$undef"              DISABLED_PACKAGES="$DISABLED_PACKAGES -U$undef"
1727          fi          fi
1728      fi      fi
1729  done  done
1730  ENABLED_PACKAGES=  ENABLED_PACKAGES=
1731  for i in $PACKAGES ; do  for i in $PACKAGES ; do
1732      def=`echo "ALLOW_$i" | $AWK '{print toupper($0)}'`      def=`echo "ALLOW_$i" | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
1733      ENABLED_PACKAGES="$ENABLED_PACKAGES -D$def"      ENABLED_PACKAGES="$ENABLED_PACKAGES -D$def"
1734  #eh3 DEFINES="$DEFINES -D$def"  #eh3 DEFINES="$DEFINES -D$def"
1735    
# Line 1837  for d in $alldirs ; do Line 1856  for d in $alldirs ; do
1856                          deplist="$deplist $sf"                          deplist="$deplist $sf"
1857                          ;;                          ;;
1858                  esac                  esac
1859                  extn=`echo $sf | $AWK -F '.' '{print $NF}'`                  extn=`echo $sf | $AWK -F. '{print $NF}'`
1860                  case $extn in                  case $extn in
1861                      F)                      F)
1862                          echo    " \\"  >> srclist.inc                          echo    " \\"  >> srclist.inc
# Line 2188  ftl_tamc: ftl_tamc_output.o \$(OBJFILES) Line 2207  ftl_tamc: ftl_tamc_output.o \$(OBJFILES)
2207    
2208  # ... SVD ...  # ... SVD ...
2209  svdtaf: ad_taf_output.f ftl_taf_output.f  svdtaf: ad_taf_output.f ftl_taf_output.f
2210  svdall: svd_taf          @echo "--->>> Only ran TAF to generate SVD code!    <<<---"
2211            @echo "--->>> Do make svdall afterwards to compile. <<<---"
2212    svdall: svd_touch svd_taf
2213    
2214  svd_taf: ad_taf_output.o ftl_taf_output.o \$(OBJFILES)  svd_taf: \$(OBJFILES)
2215          \$(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)
2216    
2217            @echo "--->>> Only COMPILE svd code! <<<---"
2218            @echo "--->>> Assumes you previously <<<---"
2219            @echo "--->>> did make svdtaf        <<<---"
2220    
2221    svd_touch:
2222            @echo "--->>> Only COMPILE svd code! <<<---"
2223            @echo "--->>> Assumes you previously <<<---"
2224            @echo "--->>> did make svdtaf        <<<---"
2225            touch ad_taf_output.f ftl_taf_output.f
2226            \$(FC) \$(FFLAGS) \$(FOPTIM) -c ad_taf_output.f
2227            \$(FC) \$(FFLAGS) \$(FOPTIM) -c ftl_taf_output.f
2228            @$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
2229            cmp ftl_config.template AD_CONFIG.h || cat ftl_config.template > AD_CONFIG.h
2230            -rm -f ftl_config.template
2231    
2232  #=========================================  #=========================================
2233    

Legend:
Removed from v.1.108  
changed lines
  Added in v.1.118

  ViewVC Help
Powered by ViewVC 1.1.22