/[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.140 by ce107, Thu Dec 22 01:36:24 2005 UTC revision 1.157 by heimbach, Sat Nov 4 21:01:37 2006 UTC
# Line 13  Line 13 
13  test_for_package_in_cpp_options() {  test_for_package_in_cpp_options() {
14      cpp_options=$1      cpp_options=$1
15      pkg=$2      pkg=$2
16      test_for_string_in_file $cpp_options "^[ ]*#define.*ALLOW_$pkg" || exit 99      test_for_string_in_file $cpp_options "^[ ]*#define.*ALLOW_$pkg[ ]"
17      test_for_string_in_file $cpp_options "^[ ]*#undef.*ALLOW_$pkg" || exit 99      test_for_string_in_file $cpp_options "^[ ]*#undef.*ALLOW_$pkg[ ]"
18      test_for_string_in_file $cpp_options "^[ ]*#define.*DISABLE_$pkg" || exit 99      test_for_string_in_file $cpp_options "^[ ]*#define.*DISABLE_$pkg[ ]"
19      test_for_string_in_file $cpp_options "^[ ]*#undef.*DISABLE_$pkg" || exit 99      test_for_string_in_file $cpp_options "^[ ]*#undef.*DISABLE_$pkg[ ]"
20        test_for_string_in_file $cpp_options "^[ ]*#define.*ALLOW_$pkg$"
21        test_for_string_in_file $cpp_options "^[ ]*#undef.*ALLOW_$pkg$"
22        test_for_string_in_file $cpp_options "^[ ]*#define.*DISABLE_$pkg$"
23        test_for_string_in_file $cpp_options "^[ ]*#undef.*DISABLE_$pkg$"
24  }  }
25    
26  # Search for particular CPP #cmds associated with MPI  # Search for particular CPP #cmds associated with MPI
27  # usage: test_for_mpi_in_cpp_eeoptions CPP_file  # usage: test_for_mpi_in_cpp_eeoptions CPP_file
28  test_for_mpi_in_cpp_eeoptions() {  test_for_mpi_in_cpp_eeoptions() {
29      cpp_options=$1      cpp_options=$1
30      test_for_string_in_file $cpp_options "^[ ]*#define.*ALLOW_USE_MPI" || exit 99      test_for_string_in_file $cpp_options "^[ ]*#define.*ALLOW_USE_MPI[ ]"
31      test_for_string_in_file $cpp_options "^[ ]*#undef.*ALLOW_USE_MPI" || exit 99      test_for_string_in_file $cpp_options "^[ ]*#undef.*ALLOW_USE_MPI[ ]"
32      test_for_string_in_file $cpp_options "^[ ]*#define.*ALWAYS_USE_MPI" || exit 99      test_for_string_in_file $cpp_options "^[ ]*#define.*ALWAYS_USE_MPI[ ]"
33      test_for_string_in_file $cpp_options "^[ ]*#undef.*ALWAYS_USE_MPI" || exit 99      test_for_string_in_file $cpp_options "^[ ]*#undef.*ALWAYS_USE_MPI[ ]"
34        test_for_string_in_file $cpp_options "^[ ]*#define.*ALLOW_USE_MPI$"
35        test_for_string_in_file $cpp_options "^[ ]*#undef.*ALLOW_USE_MPI$"
36        test_for_string_in_file $cpp_options "^[ ]*#define.*ALWAYS_USE_MPI$"
37        test_for_string_in_file $cpp_options "^[ ]*#undef.*ALWAYS_USE_MPI$"
38  }  }
39    
40  # Search for particular string in a file. Return 1 if detected, 0 if not  # Search for particular string in a file. Return 1 if detected, 0 if not
# Line 39  test_for_string_in_file() { Line 47  test_for_string_in_file() {
47      if test "x${RETVAL}" = x0 ; then      if test "x${RETVAL}" = x0 ; then
48          printf "Error: In $file there is an illegal line: "          printf "Error: In $file there is an illegal line: "
49          grep -i "$strng" $file          grep -i "$strng" $file
50          return 1          exit 99
51      fi      fi
52      return 0      return 0
53  }  }
# Line 248  build_cyrus_makedepend()  { Line 256  build_cyrus_makedepend()  {
256      fi      fi
257  }  }
258    
259    
260    build_embed_encode()
261    {
262        printf "  building the embed-encode utility...  "
263        if test ! -e "$ROOTDIR/tools/embed_encode/encode_files" ; then
264            if test ! -d "$ROOTDIR/tools/embed_encode" ; then
265                echo
266                echo "    Error: can't locate \"$ROOTDIR/tools/embed_encode\""
267                echo
268                EMBED_SRC=f
269                return 1
270            fi
271            clist="cc gcc c89 $CC"
272            for ic in $clist ; do
273                comm="$ic -o encode_files encode_files.c"
274                ( cd $ROOTDIR/tools/embed_encode && $comm ) > /dev/null 2>&1
275                RETVAL=$?
276                if test "x$RETVAL" = x0 ; then
277                    echo "OK"
278                    DEFINES="$DEFINES -DHAVE_EMBED_SRC"
279                    return 0
280                fi
281            done
282            echo
283            echo "    Error: unable to build $ROOTDIR/embed_encode/encode_files"
284            echo "      so it has been disabled"
285            echo
286            EMBED_SRC=f
287            return 1
288        fi
289        echo "OK"
290        DEFINES="$DEFINES -DHAVE_EMBED_SRC"
291    }
292    
293    
294  # Guess possible config options for this host  # Guess possible config options for this host
295  find_possible_configs()  {  find_possible_configs()  {
296    
# Line 535  Usage: "$0" [OPTIONS] Line 578  Usage: "$0" [OPTIONS]
578            *only* works if it is supported by the OPTFILE that            *only* works if it is supported by the OPTFILE that
579            is being used.            is being used.
580    
581        -ignoretime | -ignore_time | --ignoretime | --ignore_time
582              Ignore all the "wall clock" routines entirely.  This will
583              not in any way hurt the model results -- it simply means
584              that the code that checks how long the model spends in
585              various routines will give junk values.
586    
587      -ts | --ts      -ts | --ts
588            Produce timing information per timestep            Produce timing information per timestep
589      -papis | --papis      -papis | --papis
590            Produce summary MFlop/s with PAPI per timestep            Produce summary MFlop/s (and IPC) with PAPI per timestep
591        -pcls | --pcls
592              Produce summary MFlop/s etc. with PCL per timestep
593      -foolad | --foolad      -foolad | --foolad
594            Fool the AD code generator            Fool the AD code generator
595      -papi | --papi      -papi | --papi
596            Performance analysis with PAPI            Performance analysis with PAPI
597        -pcl | --pcl
598              Performance analysis with PCL
599      -hpmt | --hpmt      -hpmt | --hpmt
600            Performance analysis with the HPM Toolkit            Performance analysis with the HPM Toolkit
601    
# Line 556  Usage: "$0" [OPTIONS] Line 609  Usage: "$0" [OPTIONS]
609            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
610            from \$PATH/lib and use binaries from \$PATH/bin.            from \$PATH/lib and use binaries from \$PATH/bin.
611    
612        -es | --es | -embed-source | --embed-source
613              Embed a tarball containing the full source code
614              (including the Makefile, etc.) used to build the
615              executable [off by default]
616    
617      -bash NAME      -bash NAME
618            Explicitly specify the Bourne or BASH shell to use            Explicitly specify the Bourne or BASH shell to use
619    
# Line 709  EOF Line 767  EOF
767    
768    
769  check_HAVE_SIGREG()  {  check_HAVE_SIGREG()  {
770        if test ! "x$HAVE_SIGREG" = x ; then
771            return
772        fi
773      get_fortran_c_namemangling      get_fortran_c_namemangling
774      cat <<EOF > genmake_tc_1.c      cat <<EOF > genmake_tc_1.c
775  $FC_NAMEMANGLE  $FC_NAMEMANGLE
# Line 766  EOF Line 827  EOF
827    
828    
829  check_HAVE_SETRLSTK()  {  check_HAVE_SETRLSTK()  {
830        if test "x$HAVE_SETRLSTK" = xt ; then
831            DEFINES="$DEFINES -DHAVE_SETRLSTK"
832            return
833        fi  
834        if test ! "x$HAVE_SETRLSTK" = x ; then
835            return
836        fi
837      get_fortran_c_namemangling      get_fortran_c_namemangling
838      cat <<EOF > genmake_tc_1.c      cat <<EOF > genmake_tc_1.c
839  $FC_NAMEMANGLE  $FC_NAMEMANGLE
# Line 876  EOF Line 944  EOF
944      cat genmake_tnc.F >> genmake_tnc.log      cat genmake_tnc.F >> genmake_tnc.log
945      echo "===  genmake_tnc.F  ===" >> genmake_tnc.log      echo "===  genmake_tnc.F  ===" >> genmake_tnc.log
946      RET_CPP=f      RET_CPP=f
947      COMM="$CPP $DEFINES $INCLUDES genmake_tnc.F"      COMM="cat genmake_tnc.F | $CPP $DEFINES $INCLUDES"
948      echo "$COMM" >> genmake_tnc.log      echo "$COMM" >> genmake_tnc.log
949      $COMM > genmake_tnc.$FS 2>/dev/null  &&  RET_CPP=t      eval $COMM > genmake_tnc.$FS 2>/dev/null  &&  RET_CPP=t
950      if test "x$RET_CPP" = xf ; then      if test "x$RET_CPP" = xf ; then
951          echo "  WARNING: CPP failed to pre-process the netcdf test." \          echo "  WARNING: CPP failed to pre-process the netcdf test." \
952              >> genmake_tnc.log              >> genmake_tnc.log
# Line 886  EOF Line 954  EOF
954              >> genmake_tnc.log              >> genmake_tnc.log
955      fi      fi
956      echo "$FC $FFLAGS $FOPTIM -c genmake_tnc.$FS  \ " >> genmake_tnc.log      echo "$FC $FFLAGS $FOPTIM -c genmake_tnc.$FS  \ " >> genmake_tnc.log
957      echo "  &&  $LINK -o genmake_tnc.o $LIBS" >> genmake_tnc.log      echo "  &&  $LINK $FFLAGS $FOPTIM -o genmake_tnc.o $LIBS" >> genmake_tnc.log
958      $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS >> genmake_tnc.log 2>&1  \      $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS >> genmake_tnc.log 2>&1  \
959          &&  $LINK -o genmake_tnc genmake_tnc.o $LIBS >> genmake_tnc.log 2>&1          &&  $LINK $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.o $LIBS >> genmake_tnc.log 2>&1
960      RET_COMPILE=$?      RET_COMPILE=$?
961      cat genmake_tnc.log >> genmake_warnings      cat genmake_tnc.log >> genmake_warnings
962    
# Line 904  EOF Line 972  EOF
972      else      else
973          # try again with "-lnetcdf" added to the libs          # try again with "-lnetcdf" added to the libs
974          echo "try again with added '-lnetcdf'" > genmake_tnc.log          echo "try again with added '-lnetcdf'" > genmake_tnc.log
975          echo "$CPP $DEFINES $INCLUDES genmake_tnc.F > genmake_tnc.$FS \ " >> genmake_tnc.log          echo "cat genmake_tnc.F | $CPP $DEFINES $INCLUDES > genmake_tnc.$FS \ " >> genmake_tnc.log
976          echo " &&  $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS \ " >> genmake_tnc.log          echo " &&  $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS \ " >> genmake_tnc.log
977          echo " &&  $LINK -o genmake_tnc genmake_tnc.o $LIBS -lnetcdf" >> genmake_tnc.log          echo " &&  $LINK $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.o $LIBS -lnetcdf" >> genmake_tnc.log
978          $CPP $DEFINES $INCLUDES genmake_tnc.F > genmake_tnc.$FS 2>/dev/null  \          cat genmake_tnc.F | $CPP $DEFINES $INCLUDES > genmake_tnc.$FS 2>/dev/null  \
979              &&  $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS >> genmake_tnc.log 2>&1  \              &&  $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS >> genmake_tnc.log 2>&1  \
980              &&  $LINK -o genmake_tnc genmake_tnc.o $LIBS -lnetcdf >> genmake_tnc.log 2>&1              &&  $LINK $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.o $LIBS -lnetcdf >> genmake_tnc.log 2>&1
981          RET_COMPILE=$?          RET_COMPILE=$?
982          cat genmake_tnc.log >> genmake_warnings          cat genmake_tnc.log >> genmake_warnings
983          if test "x$RET_COMPILE" = x0 ; then          if test "x$RET_COMPILE" = x0 ; then
# Line 962  MPI= Line 1030  MPI=
1030  MPIPATH=  MPIPATH=
1031  TS=  TS=
1032  PAPIS=  PAPIS=
1033    PCLS=
1034  FOOLAD=  FOOLAD=
1035  PAPI=  PAPI=
1036    PCL=
1037  HPMT=  HPMT=
1038  GSL=  GSL=
1039  HAVE_TEST_L=  HAVE_TEST_L=
# Line 973  HAVE_SYSTEM= Line 1043  HAVE_SYSTEM=
1043  HAVE_FDATE=  HAVE_FDATE=
1044  FC_NAMEMANGLE=  FC_NAMEMANGLE=
1045  HAVE_CLOC=  HAVE_CLOC=
1046  HAVE_SETRLSTK=  # HAVE_SETRLSTK=
1047  HAVE_STAT=  HAVE_STAT=
1048  HAVE_NETCDF=  HAVE_NETCDF=
1049  HAVE_ETIME=  HAVE_ETIME=
# Line 990  BASH= Line 1060  BASH=
1060  PWD=`pwd`  PWD=`pwd`
1061  test "x$MAKE" = x  &&  MAKE=make  test "x$MAKE" = x  &&  MAKE=make
1062  test "x$AWK" = x   &&  AWK=awk  test "x$AWK" = x   &&  AWK=awk
1063    EMBED_SRC=
1064  THISHOST=`hostname`  THISHOST=`hostname`
1065  THISCWD=`pwd`  THISCWD=`pwd`
1066  THISDATE=`date`  THISDATE=`date`
# Line 1023  TAMC_EXTRA= Line 1094  TAMC_EXTRA=
1094    
1095  #  The following state can be set directly by command-line switches  #  The following state can be set directly by command-line switches
1096  gm_s1="OPTFILE PDEPEND PDEFAULT MAKEFILE PLATFORM ROOTDIR MODS DISABLE ENABLE"  gm_s1="OPTFILE PDEPEND PDEFAULT MAKEFILE PLATFORM ROOTDIR MODS DISABLE ENABLE"
1097  gm_s2="FC CPP IEEE TS PAPIS PAPI HPMT GSL MPI JAM DUMPSTATE STANDARDDIRS"  gm_s2="FC CPP IEEE TS PAPIS PCLS PAPI PCL HPMT GSL MPI JAM DUMPSTATE STANDARDDIRS"
1098    
1099  #  The following state is not directly set by command-line switches  #  The following state is not directly set by command-line switches
1100  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 1207  for ac_option in "$@" ; do Line 1278  for ac_option in "$@" ; do
1278              TS=true ;;              TS=true ;;
1279          -papis | --papis)          -papis | --papis)
1280              PAPIS=true ;;              PAPIS=true ;;
1281            -pcls | --pcls)
1282                PCLS=true ;;
1283          -foolad | --foolad)          -foolad | --foolad)
1284              FOOLAD=true ;;              FOOLAD=true ;;
1285          -papi | --papi)          -papi | --papi)
1286              PAPI=true ;;              PAPI=true ;;
1287            -pcl | --pcl)
1288                PCL=true ;;
1289          -hpmt | --hpmt)          -hpmt | --hpmt)
1290              HPMT=true ;;              HPMT=true ;;
1291    
# Line 1244  for ac_option in "$@" ; do Line 1319  for ac_option in "$@" ; do
1319          -ignoretime | -ignore_time | --ignoretime | --ignore_time)          -ignoretime | -ignore_time | --ignoretime | --ignore_time)
1320              IGNORE_TIME="-DIGNORE_TIME" ;;              IGNORE_TIME="-DIGNORE_TIME" ;;
1321    
1322            -es | --es | -embed-source | --embed-source)
1323                EMBED_SRC=t ;;
1324    
1325          -*)          -*)
1326              echo "Error: unrecognized option: "$ac_option              echo "Error: unrecognized option: "$ac_option
1327              usage              usage
# Line 1274  fi Line 1352  fi
1352  #  Find the MITgcm ${ROOTDIR}  #  Find the MITgcm ${ROOTDIR}
1353  if test "x${ROOTDIR}" = x ; then  if test "x${ROOTDIR}" = x ; then
1354      tmp=`echo $PWD | sed -e 's/\// /g' | $AWK '{print $NR}'`      tmp=`echo $PWD | sed -e 's/\// /g' | $AWK '{print $NR}'`
1355      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 ../eesupp -a -d ../pkg ; then
1356          ROOTDIR=".."          ROOTDIR=".."
1357      else      else
1358          for d in . .. ../.. ../../.. ../../../.. ../../../../.. ; do          for d in . .. ../.. ../../.. ../../../.. ../../../../.. ; do
# Line 1476  if test ! "x$PAPIS" = x ; then Line 1554  if test ! "x$PAPIS" = x ; then
1554        INCLUDES="$INCLUDES $PAPIINC"        INCLUDES="$INCLUDES $PAPIINC"
1555        LIBS="$LIBS $PAPILIB"        LIBS="$LIBS $PAPILIB"
1556  fi  fi
1557    if test ! "x$PCLS" = x ; then
1558          echo "  Turning on PCL counter summary per timestep"
1559          echo "  Please make sure PCLINC, PCLLIB are defined"
1560          if test ! "x$FOOLAD" = x ; then
1561                DEFINES="$DEFINES -DUSE_PCL_FLOPS_SFP"
1562          else
1563                DEFINES="$DEFINES -DUSE_PCL_FLOPS"
1564          fi
1565          INCLUDES="$INCLUDES $PCLINC"
1566          LIBS="$LIBS $PCLLIB"
1567    fi
1568  if test ! "x$PAPI" = x ; then  if test ! "x$PAPI" = x ; then
1569        if test ! "x$PAPIS" = x ; then        if test ! "x$PAPIS" = x ; then
1570            echo "  PAPI performance analysis and flop summary per timestep cannot co-exist!"            echo "  PAPI performance analysis and flop summary per timestep cannot co-exist!"
# Line 1488  if test ! "x$PAPI" = x ; then Line 1577  if test ! "x$PAPI" = x ; then
1577            LIBS="$LIBS $PAPILIB"            LIBS="$LIBS $PAPILIB"
1578        fi        fi
1579  fi  fi
1580    if test ! "x$PCL" = x ; then
1581          if test ! "x$PCLS" = x ; then
1582              echo "  PCL performance analysis and flop summary per timestep cannot co-exist!"
1583              echo "  Sticking with PCL flop summary per timestep!"
1584          else
1585              echo "  Turning on performance analysis with PCL"
1586              echo "  Please make sure PCLINC, PCLLIB are defined"
1587              DEFINES="$DEFINES -DUSE_PCL"
1588              INCLUDES="$INCLUDES $PCLINC"
1589              LIBS="$LIBS $PCLLIB"
1590          fi
1591    fi
1592  if test ! "x$HPMT" = x ; then  if test ! "x$HPMT" = x ; then
1593        if test ! "x$PAPI" = x ; then        if test ! "x$PAPI" = x ; then
1594            echo "  PAPI and the HPM Toolkit cannot co-exist!"            echo "  PAPI and the HPM Toolkit cannot co-exist!"
1595            echo "  Sticking with PAPI!"            echo "  Sticking with PAPI!"
1596          else if test ! "x$PCL" = x ; then
1597              echo "  PCL and the HPM Toolkit cannot co-exist!"
1598              echo "  Sticking with PCL!"
1599        else        else
1600            echo "  Turning on performance analysis with the HPM Toolkit"            echo "  Turning on performance analysis with the HPM Toolkit"
1601            echo "  Please make sure HPMTINC, HPMTLIB are defined"            echo "  Please make sure HPMTINC, HPMTLIB are defined"
# Line 1499  if test ! "x$HPMT" = x ; then Line 1603  if test ! "x$HPMT" = x ; then
1603            INCLUDES="$INCLUDES $HPMTINC"            INCLUDES="$INCLUDES $HPMTINC"
1604            LIBS="$LIBS $HPMTLIB"            LIBS="$LIBS $HPMTLIB"
1605        fi        fi
1606          fi
1607  fi  fi
1608  if test ! "x$GSL" = x ; then  if test ! "x$GSL" = x ; then
1609        echo "  Turning on use of GSL to control floating point calculations"        echo "  Turning on use of GSL to control floating point calculations"
# Line 1576  if test "x$HAVE_CLOC" != x ; then Line 1681  if test "x$HAVE_CLOC" != x ; then
1681      echo "yes"      echo "yes"
1682  else  else
1683      echo "no"      echo "no"
1684        if test "x$EMBED_SRC" = xt ; then
1685            echo "    WARNING: you requested file embedding but it has"
1686            echo "      been disabled since C code cannot be called"
1687            EMBED_SRC=
1688        fi
1689  fi  fi
1690  rm -f genmake_t*  rm -f genmake_t*
1691    
1692  printf "  Can we unlimit the stack size using $FC...  "  printf "  Can we unlimit the stack size using $FC...  "
1693  check_HAVE_SETRLSTK  check_HAVE_SETRLSTK
1694  if test "x$HAVE_SETRLSTK" != x ; then  if test "x$HAVE_SETRLSTK" = xt ; then
1695      echo "yes"      echo "yes"
1696  else  else
1697      echo "no"      echo "no"
# Line 1590  rm -f genmake_t* Line 1700  rm -f genmake_t*
1700    
1701  printf "  Can we register a signal handler using $FC...  "  printf "  Can we register a signal handler using $FC...  "
1702  check_HAVE_SIGREG  check_HAVE_SIGREG
1703  if test "x$HAVE_SIGREG" != x ; then  if test "x$HAVE_SIGREG" = xt ; then
1704      echo "yes"      echo "yes"
1705  else  else
1706      echo "no"      echo "no"
# Line 1615  else Line 1725  else
1725  fi  fi
1726  DEFINES="$DEFINES $IGNORE_TIME"  DEFINES="$DEFINES $IGNORE_TIME"
1727    
1728    if test "x$EMBED_SRC" = xt ; then
1729        build_embed_encode
1730    fi
1731    if test "x$EMBED_SRC" = xt ; then
1732        ENABLE="$ENABLE embed_files"
1733    fi
1734    
1735    
1736  printf "\n===  Setting defaults  ===\n"  printf "\n===  Setting defaults  ===\n"
1737  printf "  Adding MODS directories:  "  printf "  Adding MODS directories:  "
1738  for d in $MODS ; do  for d in $MODS ; do
# Line 1700  if test -r $ROOTDIR"/eesupp/src/Makefile Line 1818  if test -r $ROOTDIR"/eesupp/src/Makefile
1818      fi      fi
1819  fi  fi
1820    
1821  #same for exch2  #same for pkg/exch2 and pkg/regrid
1822  if test -r $ROOTDIR"/pkg/exch2/Makefile" ; then  for pdir in exch2 regrid ; do
1823      echo "  Making source files in exch2 from  templates"      if test -r $ROOTDIR"/pkg/${pdir}/Makefile" ; then
1824      ( cd $ROOTDIR"/pkg/exch2/" && $MAKE ) > make_exch2.errors 2>&1          echo "  Making source files in pkg/${pdir} from templates"
1825      RETVAL=$?          ( cd $ROOTDIR"/pkg/"${pdir} && $MAKE ) > make_${pdir}.errors 2>&1
1826      if test "x${RETVAL}" = x0 ; then          RETVAL=$?
1827          rm -f make_exch2.errors          if test "x${RETVAL}" = x0 ; then
1828      else              rm -f make_${pdir}.errors
1829          echo "Error: problem encountered while building source files in exch2:"          else
1830          cat make_exch2.errors 1>&2              echo "Error: problem encountered while building source files in pkg/${pdir}:"
1831          exit 1              cat make_${pdir}.errors 1>&2
1832                exit 1
1833            fi
1834      fi      fi
1835  fi  done
1836    
1837  printf "\n===  Determining package settings  ===\n"  printf "\n===  Determining package settings  ===\n"
1838  if  test "x${PDEPEND}" = x ; then  if  test "x${PDEPEND}" = x ; then
# Line 2087  if test ! "x$DIVA" = x ; then Line 2207  if test ! "x$DIVA" = x ; then
2207          perl -i -pe 's/MPI_DISPLACEMENT_CURRENT=-1_8/MPI_DISPLACEMENT_CURRENT=-1/g' mpi_headers/mpif.h          perl -i -pe 's/MPI_DISPLACEMENT_CURRENT=-1_8/MPI_DISPLACEMENT_CURRENT=-1/g' mpi_headers/mpif.h
2208      else      else
2209          echo " We cannot create a copy of mpif.h!"          echo " We cannot create a copy of mpif.h!"
2210          exit -1  #       exit -1
2211      fi      fi
2212  fi  fi
2213    
2214  echo "  Determining the list of source and include files"  echo "  Determining the list of source and include files"
2215  rm -rf .links.tmp  rm -rf .links.tmp
2216  mkdir .links.tmp  mkdir .links.tmp
2217    touch .links.tmp/foo
2218    if test ! -r ".links.tmp/foo" ; then
2219        echo
2220        echo "ERROR : something is wrong with your directory permissions or"
2221        echo "   your user file-creation mask (\"umask\") since creating a"
2222        echo "   sub-dir, touch-ing a file within it, and then reading it is"
2223        echo "   not working.  Please try setting your umask to something"
2224        echo "   sane such as:"
2225        echo
2226        echo "      umask 0002"
2227        echo
2228        echo "   and please verify that you have the proper permissions for"
2229        echo "   creating sub-directories and then reading files created"
2230        echo "   within them."
2231        echo
2232        exit 1
2233    fi
2234    rm -f .links.tmp/foo
2235  echo "# This section creates symbolic links" > srclinks.tmp  echo "# This section creates symbolic links" > srclinks.tmp
2236  echo "" >> srclinks.tmp  echo "" >> srclinks.tmp
2237  printf 'SRCFILES = '    > srclist.inc  printf 'SRCFILES = '    > srclist.inc
# Line 2112  for d in $alldirs ; do Line 2250  for d in $alldirs ; do
2250                  ignore_f=f                  ignore_f=f
2251                  case $d/$sf in                  case $d/$sf in
2252                    ./$PACKAGES_DOT_H)                    ./$PACKAGES_DOT_H)
2253                            ignore_f=t
2254                          ;;                          ;;
2255                    ./AD_CONFIG.h)                    ./AD_CONFIG.h)
2256                            ignore_f=t
2257                          ;;                          ;;
2258                    ./FC_NAMEMANGLE.h)                    ./FC_NAMEMANGLE.h)
2259                            ignore_f=t
2260                          ;;                          ;;
2261                    ./BUILD_INFO.h)                    ./BUILD_INFO.h)
2262                            ignore_f=t
2263                            ;;
2264                      ./EMBEDDED_FILES.h)
2265                            ignore_f=t
2266                          ;;                          ;;
2267                    *)                    *)
2268                          #  For the local directory *ONLY*,                          #  For the local directory *ONLY*,
# Line 2230  DISABLED_PACKAGES = ${DISABLED_PACKAGES} Line 2375  DISABLED_PACKAGES = ${DISABLED_PACKAGES}
2375    
2376  # These files are created by Makefile  # These files are created by Makefile
2377  SPECIAL_FILES = ${PACKAGES_DOT_H} AD_CONFIG.h FC_NAMEMANGLE.h BUILD_INFO.h  SPECIAL_FILES = ${PACKAGES_DOT_H} AD_CONFIG.h FC_NAMEMANGLE.h BUILD_INFO.h
   
2378  EOF  EOF
2379    
2380  #  Note: figure out some way to add Hyades JAM libraries here  if test "x$EMBED_SRC" = xt ; then
2381        echo "EMBEDDED_FILES = EMBEDDED_FILES.h" >>$MAKEFILE
2382    else
2383        echo "EMBEDDED_FILES = " >>$MAKEFILE
2384    fi
2385    
2386    #  Note: figure out some way to add Hyades JAM libraries here
2387  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
2388  # Unix ln (link)  # Unix ln (link)
2389  LN = ${LN}  LN = ${LN}
# Line 2296  rm -f ad_flow_files.inc Line 2445  rm -f ad_flow_files.inc
2445  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
2446    
2447  all: \$(EXECUTABLE)  all: \$(EXECUTABLE)
2448  \$(EXECUTABLE): \$(SPECIAL_FILES) \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) \$(OBJFILES)  \$(EXECUTABLE): \$(SPECIAL_FILES) \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) \$(OBJFILES) \$(EMBEDDED_FILES)
2449          @echo Creating \$@ ...          @echo Creating \$@ ...
2450          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(LIBS)          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(LIBS)
2451  depend:  depend:
# Line 2319  output.txt: \$(EXECUTABLE) Line 2468  output.txt: \$(EXECUTABLE)
2468          @\$(EXECUTABLE) > \$@          @\$(EXECUTABLE) > \$@
2469    
2470  clean:  clean:
2471          -rm -rf *.o *.$FS *.p *.$FS90 *.mod ${RMFILES} work.{pc,pcl} *.template          -rm -rf *.p *.$FS90 *.mod ${RMFILES} work.{pc,pcl} *.template
2472            -rm -rf *.o
2473            -rm -rf *.$FS
2474  Clean:  Clean:
2475          @make clean          @make clean
2476          @make cleanlinks          @make cleanlinks
# Line 2330  CLEAN: Line 2481  CLEAN:
2481          -find \$(EXEDIR) -name "*.meta" -exec rm {} \;          -find \$(EXEDIR) -name "*.meta" -exec rm {} \;
2482          -find \$(EXEDIR) -name "*.data" -exec rm {} \;          -find \$(EXEDIR) -name "*.data" -exec rm {} \;
2483          -find \$(EXEDIR) -name "fort.*" -exec rm {} \;          -find \$(EXEDIR) -name "fort.*" -exec rm {} \;
2484          -rm -f \$(EXECUTABLE) output.txt STD*          -rm -f \$(EXECUTABLE) \$(EXE_AD) *.txt STD* *diagnostics.log datetime
2485            -rm -rf mnc_test_*
2486    
2487  #eh3 Makefile: makefile  #eh3 Makefile: makefile
2488  makefile:  makefile:
# Line 2358  test ! "x$THISUSER" = x && echo "      -echo Line 2510  test ! "x$THISUSER" = x && echo "      -echo
2510  test ! "x$THISDATE" = x && echo "       -echo \"#define THISDATE '$THISDATE'\" >> \$@" >> $MAKEFILE  test ! "x$THISDATE" = x && echo "       -echo \"#define THISDATE '$THISDATE'\" >> \$@" >> $MAKEFILE
2511  test ! "x$THISHOST" = x && echo "       -echo \"#define THISHOST '$THISHOST'\" >> \$@" >> $MAKEFILE  test ! "x$THISHOST" = x && echo "       -echo \"#define THISHOST '$THISHOST'\" >> \$@" >> $MAKEFILE
2512    
2513    if test "x$EMBED_SRC" = xt ; then
2514        cat >>$MAKEFILE <<EOF
2515    
2516    decode_files.o : EMBEDDED_FILES.h
2517    
2518    ##  \$(F77FILES)
2519    all_fF.tar.gz : \$(SPECIAL_FILES) \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) \$(F77FILES) Makefile
2520            @echo Creating \$@ ...
2521            -tar -hcf all_fF.tar \$(SPECIAL_FILES) \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) \$(F77FILES) Makefile
2522            -rm -f all_fF.tar.gz
2523            -gzip all_fF.tar
2524    
2525    EMBEDDED_FILES.h : all_fF.tar.gz
2526            @echo Creating \$@ ...
2527            -\${ROOTDIR}/tools/embed_encode/encode_files EMBEDDED_FILES.h all_fF.tar.gz
2528    
2529    EOF
2530    fi
2531    
2532  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
2533    
2534  # The normal chain of rules is (  .F - .$FS - .o  )  # The normal chain of rules is (  .F - .$FS - .o  )
# Line 2398  ad_vars="$ad_vars FTL_TAMC_FLAGS FTL_TAF Line 2569  ad_vars="$ad_vars FTL_TAMC_FLAGS FTL_TAF
2569  ad_vars="$ad_vars SVD_TAMC_FLAGS SVD_TAF_FLAGS"  ad_vars="$ad_vars SVD_TAMC_FLAGS SVD_TAF_FLAGS"
2570  for i in $ad_vars ; do  for i in $ad_vars ; do
2571      name=$i      name=$i
2572      t1="t2=\$"`echo $i`      t1="t2=\$"`echo "$i"`
2573      eval $t1      eval $t1
2574      printf "%-20s = " $name >> $MAKEFILE      printf "%-20s = " $name >> $MAKEFILE
2575      echo $t2 >> $MAKEFILE      echo "$t2" | sed -e 's| \+| |g' >> $MAKEFILE
2576  done  done
2577    
2578  echo "  Add the source list for AD code generation"  echo "  Add the source list for AD code generation"
# Line 2418  rm -f ad_files Line 2589  rm -f ad_files
2589  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
2590    
2591  # ... AD ...  # ... AD ...
2592  adall: ad_taf  adall: \$(EXE_AD)
2593  adtaf: ad_taf_output.$FS  adtaf: ad_taf_output.$FS
2594  adtamc: ad_tamc_output.$FS  adtamc: ad_tamc_output.$FS
2595    
# Line 2438  adtafonly: Line 2609  adtafonly:
2609          \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.$FS          \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.$FS
2610          cat ad_input_code_ad.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ad_taf_output.$FS          cat ad_input_code_ad.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ad_taf_output.$FS
2611    
2612  ad_taf: ad_taf_output.o \$(OBJFILES)  \${EXE_AD}: ad_taf_output.o \$(OBJFILES)
2613          \$(LINK) -o ${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_taf_output.o \$(LIBS)          \$(LINK) -o \${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_taf_output.o \$(LIBS)
2614    
2615  ad_tamc_output.$FS: ad_input_code.$FS  ad_tamc_output.$FS: ad_input_code.$FS
2616          \$(TAMC) \$(AD_TAMC_FLAGS) \$(TAMC_EXTRA) ad_input_code.$FS          \$(TAMC) \$(AD_TAMC_FLAGS) \$(TAMC_EXTRA) ad_input_code.$FS

Legend:
Removed from v.1.140  
changed lines
  Added in v.1.157

  ViewVC Help
Powered by ViewVC 1.1.22