/[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.70 by edhill, Sat Feb 28 05:01:12 2004 UTC revision 1.72 by edhill, Fri Mar 12 15:50:06 2004 UTC
# Line 37  test_for_string_in_file() { Line 37  test_for_string_in_file() {
37      grep -i "$strng" $file > /dev/null 2>&1      grep -i "$strng" $file > /dev/null 2>&1
38      RETVAL=$?      RETVAL=$?
39      if test "x${RETVAL}" = x0 ; then      if test "x${RETVAL}" = x0 ; then
40          echo -n "Error: In $file there is an illegal line: "          printf "Error: In $file there is an illegal line: "
41          grep -i "$strng" $file          grep -i "$strng" $file
42          return 1          return 1
43      fi      fi
# Line 80  find_possible_configs()  { Line 80  find_possible_configs()  {
80      tmp3=`echo $tmp2 | sed -e 's/power macintosh/ppc/'`      tmp3=`echo $tmp2 | sed -e 's/power macintosh/ppc/'`
81      tmp1=`echo $tmp3 | sed -e 's|x86_64|amd64|'`      tmp1=`echo $tmp3 | sed -e 's|x86_64|amd64|'`
82      tmp2=`echo $tmp1 | sed -e 's/i[3-6]86/ia32/' | sed -e 's/athlon/ia32/'`      tmp2=`echo $tmp1 | sed -e 's/i[3-6]86/ia32/' | sed -e 's/athlon/ia32/'`
83      PLATFORM=$tmp2      tmp3=`echo $tmp2 | sed -e 's/cray sv1/craysv1/'`
84        PLATFORM=$tmp3
85      OFLIST=`(cd $ROOTDIR/tools/build_options; ls | grep "^$PLATFORM")`      OFLIST=`(cd $ROOTDIR/tools/build_options; ls | grep "^$PLATFORM")`
86      echo "  The platform appears to be:  $PLATFORM"      echo "  The platform appears to be:  $PLATFORM"
87            
# Line 119  find_possible_configs()  { Line 120  find_possible_configs()  {
120      #    4) fall back to the buggy local xmakedpend script      #    4) fall back to the buggy local xmakedpend script
121      #      #
122      if test "x${MAKEDEPEND}" = x ; then      if test "x${MAKEDEPEND}" = x ; then
123        which makedepend >& /dev/null        which makedepend > /dev/null 2>&1
124        RETVAL=$?        RETVAL=$?
125        if test ! "x${RETVAL}" = x0 ; then        if test ! "x${RETVAL}" = x0 ; then
126           echo "    a system-default makedepend was not found."           echo "    a system-default makedepend was not found."
# Line 258  get_pdepend_list()  { Line 259  get_pdepend_list()  {
259      . ./.pd_tmp      . ./.pd_tmp
260      rm -f ./.pd_tmp      rm -f ./.pd_tmp
261    
262      echo -n "PNAME = "${}      printf "PNAME = "${}
263  }  }
264    
265    
# Line 348  Usage: "$0" [OPTIONS] Line 349  Usage: "$0" [OPTIONS]
349            set to PATH. i.e. Include files from $PATH/include, link to libraries            set to PATH. i.e. Include files from $PATH/include, link to libraries
350            from $PATH/lib and use binaries from $PATH/bin.            from $PATH/lib and use binaries from $PATH/bin.
351    
352        -bash NAME
353              Explicitly specify the Bourne or BASH shell to use
354    
355    While it is most often a single word, the "NAME" variables specified    While it is most often a single word, the "NAME" variables specified
356    above can in many cases be a space-delimited string such as:    above can in many cases be a space-delimited string such as:
357    
# Line 582  SOURCEDIRS= Line 586  SOURCEDIRS=
586  INCLUDEDIRS=  INCLUDEDIRS=
587  STANDARDDIRS="USE_THE_DEFAULT"  STANDARDDIRS="USE_THE_DEFAULT"
588    
589    BASH=
590  PWD=`pwd`  PWD=`pwd`
591  MAKE=make  MAKE=make
592  AWK=awk  AWK=awk
# Line 650  for i in . $MODS ; do Line 655  for i in . $MODS ; do
655          break          break
656      fi      fi
657  done  done
658  echo -n "  getting local config information:  "  printf "  getting local config information:  "
659  if test -e $gm_local ; then  if test -e $gm_local ; then
660      echo "using $gm_local"      echo "using $gm_local"
661      . $gm_local      . $gm_local
# Line 715  for ac_option ; do Line 720  for ac_option ; do
720          -make=* | --make=* | -m=* | --m=*)          -make=* | --make=* | -m=* | --m=*)
721              MAKE=$ac_optarg ;;              MAKE=$ac_optarg ;;
722                    
723            -bash | --bash)
724                ac_prev=BASH ;;
725            -bash=* | --bash=*)
726                BASH=$ac_optarg ;;
727            
728          -makedepend | --makedepend | -md | --md)          -makedepend | --makedepend | -md | --md)
729              ac_prev=MAKEDEPEND ;;              ac_prev=MAKEDEPEND ;;
730          -makedepend=* | --makedepend=* | -md=* | --md=*)          -makedepend=* | --makedepend=* | -md=* | --md=*)
# Line 829  if test "x${ROOTDIR}" = x ; then Line 839  if test "x${ROOTDIR}" = x ; then
839          for d in . .. ../.. ../../.. ../../../.. ../../../../.. ; do          for d in . .. ../.. ../../.. ../../../.. ../../../../.. ; do
840              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
841                  ROOTDIR=$d                  ROOTDIR=$d
842                  echo -n "Warning:  ROOTDIR was not specified but there appears to be"                  printf "Warning:  ROOTDIR was not specified but there appears to be"
843                  echo " a copy of MITgcm at \"$ROOTDIR\" so we'll try it."                  echo " a copy of MITgcm at \"$ROOTDIR\" so we'll try it."
844                  break                  break
845              fi              fi
# Line 863  if test "x$OPTFILE" != xNONE ; then Line 873  if test "x$OPTFILE" != xNONE ; then
873          . "$OPTFILE"          . "$OPTFILE"
874          RETVAL=$?          RETVAL=$?
875          if test "x$RETVAL" != x0 ; then          if test "x$RETVAL" != x0 ; then
876              echo -n "Error: failed to source OPTFILE \"$OPTFILE\""              printf "Error: failed to source OPTFILE \"$OPTFILE\""
877              echo "--please check that variable syntax is bash-compatible"              echo "--please check that variable syntax is bash-compatible"
878              exit 1              exit 1
879          fi          fi
# Line 890  if test "x${AD_OPTFILE}" != xNONE ; then Line 900  if test "x${AD_OPTFILE}" != xNONE ; then
900          . "$AD_OPTFILE"          . "$AD_OPTFILE"
901          RETVAL=$?          RETVAL=$?
902          if test "x$RETVAL" != x0 ; then          if test "x$RETVAL" != x0 ; then
903              echo -n "Error: failed to source AD_OPTFILE \"$AD_OPTFILE\""              printf "Error: failed to source AD_OPTFILE \"$AD_OPTFILE\""
904              echo "--please check that variable syntax is bash-compatible"              echo "--please check that variable syntax is bash-compatible"
905              exit 1              exit 1
906          fi          fi
# Line 905  fi Line 915  fi
915    
916  #  Check that FC, LINK, CPP, S64, LN, and MAKE are defined.  If not,  #  Check that FC, LINK, CPP, S64, LN, and MAKE are defined.  If not,
917  #  either set defaults or complain and abort!  #  either set defaults or complain and abort!
918    if test ! "x$BASH" = x ; then
919        # add a trailing space so that it works within the Makefile syntax (see below)
920        BASH="$BASH "
921    fi
922  if test "x$FC" = x ; then  if test "x$FC" = x ; then
923      cat <<EOF 1>&2      cat <<EOF 1>&2
924    
# Line 975  if test ! "x$MPI" = x ; then Line 989  if test ! "x$MPI" = x ; then
989  fi  fi
990    
991  printf "\n===  Checking system libraries  ===\n"  printf "\n===  Checking system libraries  ===\n"
992  echo -n "  Do we have the system() command using $FC...  "  printf "  Do we have the system() command using $FC...  "
993  cat > genmake_tcomp.f <<EOF  cat > genmake_tcomp.f <<EOF
994        program hello        program hello
995        call system('echo hi')        call system('echo hi')
# Line 993  else Line 1007  else
1007  fi  fi
1008  rm -f genmake_tcomp*  rm -f genmake_tcomp*
1009    
1010  echo -n "  Do we have the fdate() command using $FC...  "  printf "  Do we have the fdate() command using $FC...  "
1011  cat > genmake_tcomp.f <<EOF  cat > genmake_tcomp.f <<EOF
1012        program hello        program hello
1013        CHARACTER(128) string        CHARACTER(128) string
# Line 1014  else Line 1028  else
1028  fi  fi
1029  rm -f genmake_tcomp*  rm -f genmake_tcomp*
1030    
1031  echo -n "  Can we call simple C routines (here, \"cloc()\") using $FC...  "  printf "  Can we call simple C routines (here, \"cloc()\") using $FC...  "
1032  check_HAVE_CLOC  check_HAVE_CLOC
1033  if test "x$HAVE_CLOC" != x ; then  if test "x$HAVE_CLOC" != x ; then
1034      echo "yes"      echo "yes"
# Line 1023  else Line 1037  else
1037  fi  fi
1038  rm -f genmake_t*  rm -f genmake_t*
1039    
1040  echo -n "  Can we create NetCDF-enabled binaries...  "  printf "  Can we create NetCDF-enabled binaries...  "
1041  check_netcdf_libs  check_netcdf_libs
1042  if test "x$HAVE_NETCDF" != x ; then  if test "x$HAVE_NETCDF" != x ; then
1043      echo "yes"      echo "yes"
# Line 1033  fi Line 1047  fi
1047    
1048    
1049  printf "\n===  Setting defaults  ===\n"  printf "\n===  Setting defaults  ===\n"
1050  echo -n "  Adding MODS directories:  "  printf "  Adding MODS directories:  "
1051  for d in $MODS ; do  for d in $MODS ; do
1052      if test ! -d $d ; then      if test ! -d $d ; then
1053          echo          echo
1054          echo "Error: MODS directory \"$d\" not found!"          echo "Error: MODS directory \"$d\" not found!"
1055          exit 1          exit 1
1056      else      else
1057          echo -n " $d"          printf " $d"
1058          SOURCEDIRS="$SOURCEDIRS $d"          SOURCEDIRS="$SOURCEDIRS $d"
1059          INCLUDEDIRS="$INCLUDEDIRS $d"          INCLUDEDIRS="$INCLUDEDIRS $d"
1060      fi      fi
# Line 1165  else Line 1179  else
1179          def=`cat $PDEFAULT | sed -e 's/#.*$//g' | $AWK '(NF>0){print $0}'`          def=`cat $PDEFAULT | sed -e 's/#.*$//g' | $AWK '(NF>0){print $0}'`
1180          RETVAL=$?          RETVAL=$?
1181          if test "x${RETVAL}" != x0 ; then          if test "x${RETVAL}" != x0 ; then
1182              echo -n "Error: can't parse default package list "              printf "Error: can't parse default package list "
1183              echo "-- please check PDEFAULT=\"$PDEFAULT\""              echo "-- please check PDEFAULT=\"$PDEFAULT\""
1184              exit 1              exit 1
1185          fi          fi
# Line 1448  rm -rf .links.tmp Line 1462  rm -rf .links.tmp
1462  mkdir .links.tmp  mkdir .links.tmp
1463  echo "# This section creates symbolic links" > srclinks.tmp  echo "# This section creates symbolic links" > srclinks.tmp
1464  echo "" >> srclinks.tmp  echo "" >> srclinks.tmp
1465  echo -n 'SRCFILES = '    > srclist.inc  printf 'SRCFILES = '    > srclist.inc
1466  echo -n 'CSRCFILES = '   > csrclist.inc  printf 'CSRCFILES = '   > csrclist.inc
1467  echo -n 'F90SRCFILES = ' > f90srclist.inc  printf 'F90SRCFILES = ' > f90srclist.inc
1468  echo -n 'HEADERFILES = ' > hlist.inc  printf 'HEADERFILES = ' > hlist.inc
1469  echo -n 'AD_FLOW_FILES = ' > ad_flow_files.inc  printf 'AD_FLOW_FILES = ' > ad_flow_files.inc
1470  alldirs="$SOURCEDIRS $INCLUDEDIRS ."  alldirs="$SOURCEDIRS $INCLUDEDIRS ."
1471  for d in $alldirs ; do  for d in $alldirs ; do
1472      deplist=      deplist=
# Line 1477  for d in $alldirs ; do Line 1491  for d in $alldirs ; do
1491                  case $extn in                  case $extn in
1492                      F)                      F)
1493                          echo    " \\"  >> srclist.inc                          echo    " \\"  >> srclist.inc
1494                          echo -n " $sf" >> srclist.inc                          printf " $sf" >> srclist.inc
1495                          ;;                          ;;
1496                      F90)                      F90)
1497                          echo    " \\"  >> f90srclist.inc                          echo    " \\"  >> f90srclist.inc
1498                          echo -n " $sf" >> f90srclist.inc                          printf " $sf" >> f90srclist.inc
1499                          ;;                          ;;
1500                      c)                      c)
1501                          echo    " \\"  >> csrclist.inc                          echo    " \\"  >> csrclist.inc
1502                          echo -n " $sf" >> csrclist.inc                          printf " $sf" >> csrclist.inc
1503                          ;;                          ;;
1504                      h)                      h)
1505                          echo    " \\"  >> hlist.inc                          echo    " \\"  >> hlist.inc
1506                          echo -n " $sf" >> hlist.inc                          printf " $sf" >> hlist.inc
1507                          ;;                          ;;
1508                      flow)                      flow)
1509                          echo    " \\"  >> ad_flow_files.inc                          echo    " \\"  >> ad_flow_files.inc
1510                          echo -n " $sf" >> ad_flow_files.inc                          printf " $sf" >> ad_flow_files.inc
1511                          ;;                          ;;
1512                  esac                  esac
1513              fi              fi
# Line 1643  depend: Line 1657  depend:
1657          @make links          @make links
1658          \$(MAKEDEPEND) -o .f \$(DEFINES) \$(INCLUDES) \$(SRCFILES)          \$(MAKEDEPEND) -o .f \$(DEFINES) \$(INCLUDES) \$(SRCFILES)
1659          \$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE)          \$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE)
1660            -rm -f makedepend.out
1661    
1662  links: \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) \$(SPECIAL_FILES)  links: \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) \$(SPECIAL_FILES)
1663    
# Line 1675  cleanlinks: Line 1690  cleanlinks:
1690  # Special targets ($SPECIAL_FILES) which are create by make  # Special targets ($SPECIAL_FILES) which are create by make
1691  ${PACKAGES_DOT_H}:  ${PACKAGES_DOT_H}:
1692          @echo Creating \$@ ...          @echo Creating \$@ ...
1693          @\$(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) > \$@
1694  AD_CONFIG.h:  AD_CONFIG.h:
1695          @echo Creating \$@ ...          @echo Creating \$@ ...
1696          @\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > \$@          @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > \$@
1697  FC_NAMEMANGLE.h:  FC_NAMEMANGLE.h:
1698          @echo Creating \$@ ...          @echo Creating \$@ ...
1699          echo "$FC_NAMEMANGLE" > \$@          echo "$FC_NAMEMANGLE" > \$@
# Line 1725  done Line 1740  done
1740    
1741  echo "  Add the source list for AD code generation"  echo "  Add the source list for AD code generation"
1742  echo >> $MAKEFILE  echo >> $MAKEFILE
1743  echo -n "AD_FILES = " >> $MAKEFILE  printf "AD_FILES = " >> $MAKEFILE
1744  AD_FILES=`cat ad_files`  AD_FILES=`cat ad_files`
1745  for i in $AD_FILES ; do  for i in $AD_FILES ; do
1746      echo    " \\" >> $MAKEFILE      echo    " \\" >> $MAKEFILE
1747      echo -n " $i" >> $MAKEFILE      printf " $i" >> $MAKEFILE
1748  done  done
1749  echo >> $MAKEFILE  echo >> $MAKEFILE
1750  rm -f ad_files  rm -f ad_files
# Line 1742  adtaf: ad_taf_output.f Line 1757  adtaf: ad_taf_output.f
1757  adtamc: ad_tamc_output.f  adtamc: ad_tamc_output.f
1758    
1759  ad_input_code.f: \$(AD_FILES) \$(HEADERFILES)  ad_input_code.f: \$(AD_FILES) \$(HEADERFILES)
1760          @\$(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
1761          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
1762          -rm -f ad_config.template          -rm -f ad_config.template
1763          @make \$(F77FILES)          @make \$(F77FILES)
# Line 1774  ftltaf: ftl_taf_output.f Line 1789  ftltaf: ftl_taf_output.f
1789  ftltamc: ftl_tamc_output.f  ftltamc: ftl_tamc_output.f
1790    
1791  ftl_input_code.f: \$(AD_FILES) \$(HEADERFILES)  ftl_input_code.f: \$(AD_FILES) \$(HEADERFILES)
1792          @\$(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
1793          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
1794          -rm -f ftl_config.template          -rm -f ftl_config.template
1795          @make \$(F77FILES)          @make \$(F77FILES)
# Line 1847  printf "\n\n# DO NOT DELETE\n" >> $MAKEF Line 1862  printf "\n\n# DO NOT DELETE\n" >> $MAKEF
1862  printf "\n===  Done  ===\n"  printf "\n===  Done  ===\n"
1863    
1864  # Create special header files  # Create special header files
1865  $TOOLSDIR/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bPACKAGES_CONFIG_H "Disabled packages:" $DISABLED_PACKAGES " " "Enabled packages:" $ENABLED_PACKAGES > $PACKAGES_DOT_H".tmp"  $BASH $TOOLSDIR/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bPACKAGES_CONFIG_H "Disabled packages:" $DISABLED_PACKAGES " " "Enabled packages:" $ENABLED_PACKAGES > $PACKAGES_DOT_H".tmp"
1866  if test ! -f $PACKAGES_DOT_H ; then  if test ! -f $PACKAGES_DOT_H ; then
1867      mv -f $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H      mv -f $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H
1868  else  else
# Line 1861  else Line 1876  else
1876      fi      fi
1877  fi  fi
1878  if test ! -f AD_CONFIG.h ; then  if test ! -f AD_CONFIG.h ; then
1879      $TOOLSDIR/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > AD_CONFIG.h      $BASH $TOOLSDIR/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > AD_CONFIG.h
1880  fi  fi
1881    
1882    
1883  #  Write the "state" for future records  #  Write the "state" for future records
1884  if test "x$DUMPSTATE" != xf ; then  if test "x$DUMPSTATE" != xf ; then
1885      echo -n "" > genmake_state      printf "" > genmake_state
1886      for i in $gm_state ; do      for i in $gm_state ; do
1887          t1="t2=\$$i"          t1="t2=\$$i"
1888          eval $t1          eval $t1

Legend:
Removed from v.1.70  
changed lines
  Added in v.1.72

  ViewVC Help
Powered by ViewVC 1.1.22