/[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.98 by edhill, Tue Sep 7 21:28:47 2004 UTC revision 1.106 by edhill, Thu Oct 14 03:24:14 2004 UTC
# Line 124  EOF Line 124  EOF
124  EOF  EOF
125      test -f Makefile  &&  mv -f Makefile Makefile.bak      test -f Makefile  &&  mv -f Makefile Makefile.bak
126      cat <<EOF >> Makefile      cat <<EOF >> Makefile
 %.$tfs : %.F  
127  .SUFFIXES:  .SUFFIXES:
128  genmake_hello.$tfs: genmake_hello.F  .SUFFIXES: .$tfs .F
129          $LN genmake_hello.F genmake_hello.$tfs  .F.$tfs:
130            $LN \$< \$@
131  EOF  EOF
132      $MAKE "genmake_hello."$tfs > /dev/null 2>&1      $MAKE "genmake_hello."$tfs > /dev/null 2>&1
133      RETVAL=$?      RETVAL=$?
# Line 693  EOF Line 693  EOF
693      #echo "$FC $FFLAGS $FOPTIM -c genmake_tnc.f"      #echo "$FC $FFLAGS $FOPTIM -c genmake_tnc.f"
694      #echo "$LINK -o genmake_tnc.o $LIBS"      #echo "$LINK -o genmake_tnc.o $LIBS"
695      $CPP $DEFINES $INCLUDES genmake_tnc.for > genmake_tnc.f 2>/dev/null  \      $CPP $DEFINES $INCLUDES genmake_tnc.for > genmake_tnc.f 2>/dev/null  \
696          &&  $FC $FFLAGS $FOPTIM -c genmake_tnc.f  \          &&  $FC $FFLAGS $FOPTIM -c genmake_tnc.f >> genmake_tnc.log 2>&1  \
697          &&  $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
698      RET_COMPILE=$?      RET_COMPILE=$?
699      test -x ./genmake_tnc  &&  ./genmake_tnc >> genmake_tnc.log 2>&1  
700      RETVAL=$?      #EH3  Remove test program execution for machines that either disallow
701      if test "x$RET_COMPILE" = x0 -a "x$RETVAL" = x0 ; then      #EH3  execution or cannot support it (eg. cross-compilers)
702        #EH3
703        #EH3 test -x ./genmake_tnc  &&  ./genmake_tnc >> genmake_tnc.log 2>&1
704        #EH3 RETVAL=$?
705        #EH3 if test "x$RET_COMPILE" = x0 -a "x$RETVAL" = x0 ; then
706    
707        if test "x$RET_COMPILE" = x0 ; then
708          HAVE_NETCDF=t          HAVE_NETCDF=t
709      else      else
710          # try again with "-lnetcdf" added to the libs          # try again with "-lnetcdf" added to the libs
711          $CPP $DEFINES $INCLUDES genmake_tnc.for > genmake_tnc.f 2>/dev/null  \          $CPP $DEFINES $INCLUDES genmake_tnc.for > genmake_tnc.f 2>/dev/null  \
712              &&  $FC $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.f \              &&  $FC $FFLAGS $FOPTIM -c genmake_tnc.f >> genmake_tnc.log 2>&1  \
713              $LIBS -lnetcdf >> genmake_tnc_2.log 2>&1              &&  $LINK -o genmake_tnc genmake_tnc.o $LIBS -lnetcdf >> genmake_tnc.log 2>&1
714          RET_COMPILE=$?          RET_COMPILE=$?
715          test -x ./genmake_tnc  &&  ./genmake_tnc >> genmake_tnc.log 2>&1          if test "x$RET_COMPILE" = x0 ; then
         RETVAL=$?  
         if test "x$RET_COMPILE" = x0 -a "x$RETVAL" = x0 ; then  
716              LIBS="$LIBS -lnetcdf"              LIBS="$LIBS -lnetcdf"
717              HAVE_NETCDF=t              HAVE_NETCDF=t
718          else          else
# Line 857  else Line 861  else
861      echo "none found"      echo "none found"
862  fi  fi
863    
864  #  echo "$0::$1:$2:$3:$4:$5:$6:$7:"  #echo "$0::$1:$2:$3:$4:$5:$6:$7:"
865  #OPTIONS=  #OPTIONS=
866  #n=0  #n=0
867  #for i ; do  #for i ; do
# Line 869  fi Line 873  fi
873  #done  #done
874  #parse_options  #parse_options
875  ac_prev=  ac_prev=
876  for ac_option in $@ ; do  for ac_option in "$@" ; do
877    
878      G2ARGS="$G2ARGS \"$ac_option\""      G2ARGS="$G2ARGS \"$ac_option\""
879    
# Line 1341  if test ! -d ${TOOLSDIR} ; then Line 1345  if test ! -d ${TOOLSDIR} ; then
1345      exit 1      exit 1
1346  fi  fi
1347  if test "x$S64" = x ; then  if test "x$S64" = x ; then
1348      S64='$(TOOLSDIR)/set64bitConst.sh'      echo "3.0 _d 3" | ${TOOLSDIR}/set64bitConst.sh > /dev/null 2>&1
1349        RETVAL=$?
1350        if test "x${RETVAL}" = x0 ; then
1351            S64='$(TOOLSDIR)/set64bitConst.sh'
1352        else
1353            echo "3.0 _d 3" | ${TOOLSDIR}/set64bitConst.csh > /dev/null 2>&1
1354            RETVAL=$?
1355            if test "x${RETVAL}" = x0 ; then
1356                S64='$(TOOLSDIR)/set64bitConst.csh'
1357            else
1358                cat <<EOF
1359    
1360    ERROR: neither of the two default scripts:
1361    
1362        ${TOOLSDIR}/set64bitConst.sh
1363        ${TOOLSDIR}/set64bitConst.csh
1364    
1365      are working so please check paths or specify (with \$S64) a
1366      working version of this script.
1367    
1368    EOF
1369                exit 1
1370            fi
1371        fi
1372  fi  fi
1373  THIS_SCRIPT=`echo ${0} | sed 's:'$TOOLSDIR':\$(TOOLSDIR):'`  THIS_SCRIPT=`echo ${0} | sed 's:'$TOOLSDIR':\$(TOOLSDIR):'`
1374    
# Line 1486  done Line 1513  done
1513  rm -f ./.tmp_pack  rm -f ./.tmp_pack
1514  echo "    packages are:  $PACKAGES"  echo "    packages are:  $PACKAGES"
1515    
1516    #  Check availability of NetCDF and then either build the MNC template
1517    #  files or delete mnc from the list of available packages.
1518    echo $PACKAGES | grep ' mnc ' > /dev/null 2>&1
1519    RETVAL=$?
1520    if test "x$RETVAL" = x0 ; then
1521        if test "x$HAVE_NETCDF" != xt ; then
1522            cat <<EOF
1523    
1524    *********************************************************************
1525    WARNING: the "mnc" package was enabled but tests failed to compile
1526      NetCDF applications.  Please check that:
1527    
1528      1) NetCDF is correctly installed for this compiler and
1529      2) the LIBS variable (within the "optfile") specifies the correct
1530           NetCDF library to link against.
1531    
1532      Due to this failure, the "mnc" package is now DISABLED.
1533    *********************************************************************
1534    
1535    EOF
1536            PACKAGES=`echo $PACKAGES | sed -e 's/mnc//g'`
1537            DISABLE="$DISABLE mnc"
1538        else
1539            ( cd $ROOTDIR"/pkg/mnc" && $MAKE templates ) > make_mnc.errors 2>&1
1540            RETVAL=$?
1541            if test "x${RETVAL}" = x0 ; then
1542                rm -f make_mnc.errors
1543            else
1544                echo "Error: problem encountered while building source files in pkg/mnc:"
1545                cat make_mnc.errors 1>&2
1546                exit 1
1547            fi
1548        fi
1549    fi
1550    
1551  echo "  applying package dependency rules"  echo "  applying package dependency rules"
1552  ck=  ck=
1553  while test "x$ck" != xtt ; do  while test "x$ck" != xtt ; do
# Line 1570  for i in $PACKAGES ; do Line 1632  for i in $PACKAGES ; do
1632      fi      fi
1633  done  done
1634    
 #  Build MNC templates and check for ability to build and use NetCDF  
 echo $PACKAGES | grep ' mnc ' > /dev/null 2>&1  
 RETVAL=$?  
 if test "x$RETVAL" = x0 ; then  
     ( cd $ROOTDIR"/pkg/mnc" && $MAKE templates ) > make_mnc.errors 2>&1  
     RETVAL=$?  
     if test "x${RETVAL}" = x0 ; then  
         rm -f make_mnc.errors  
     else  
         echo "Error: problem encountered while building source files in pkg/mnc:"  
         cat make_mnc.errors 1>&2  
         exit 1  
     fi  
     if test "x$HAVE_NETCDF" != xt ; then  
         cat <<EOF  
   
 WARNING: the "mnc" package has been enabled but tests failed to  
   compile and/or execute NetCDF applications.  Please check that:  
   
   1) NetCDF is installed for your compiler and  
   2) the LIBS variable (within the 'optfile") specifies the correct  
        NetCDF library to link against.  
     
 EOF  
     fi  
 fi  
   
1635  # Create a list of #define and #undef to enable/disable packages  # Create a list of #define and #undef to enable/disable packages
1636  PACKAGES_DOT_H=PACKAGES_CONFIG.h  PACKAGES_DOT_H=PACKAGES_CONFIG.h
1637  #  The following UGLY HACK sets multiple "#undef"s and it needs to go  #  The following UGLY HACK sets multiple "#undef"s and it needs to go
# Line 1975  cat >>$MAKEFILE <<EOF Line 2010  cat >>$MAKEFILE <<EOF
2010    
2011  # The normal chain of rules is (  .F - .$FS - .o  )  # The normal chain of rules is (  .F - .$FS - .o  )
2012    
2013  %.o : %.F  ## This nullifies any default implicit rules concerning these two file types:
2014    ## %.o : %.F
2015    
2016  .F.$FS:  .F.$FS:
2017          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@
# Line 2060  ad_tamc_output.f: ad_input_code.f Line 2096  ad_tamc_output.f: ad_input_code.f
2096  ad_tamc: ad_tamc_output.o \$(OBJFILES)  ad_tamc: ad_tamc_output.o \$(OBJFILES)
2097          \$(LINK) -o ${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_tamc_output.o \$(LIBS)          \$(LINK) -o ${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_tamc_output.o \$(LIBS)
2098    
2099    adonlyfwd:
2100            patch < \$(TOOLSDIR)/ad_taf_output.f.onlyfwd.diff
2101    
2102    adtrick:
2103            patch < \$(TOOLSDIR)/ad_taf_output.f.adtrick.diff
2104    
2105  # ... FTL ...  # ... FTL ...
2106  ftlall: ftl_taf  ftlall: ftl_taf

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

  ViewVC Help
Powered by ViewVC 1.1.22