/[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.53 by edhill, Fri Dec 5 15:08:33 2003 UTC revision 1.62 by edhill, Thu Jan 15 19:19:59 2004 UTC
# Line 78  find_possible_configs()  { Line 78  find_possible_configs()  {
78      tmp1=`uname`"_"`uname -m`      tmp1=`uname`"_"`uname -m`
79      tmp2=`echo $tmp1 | sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`      tmp2=`echo $tmp1 | sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
80      tmp3=`echo $tmp2 | sed -e 's/power macintosh/ppc/'`      tmp3=`echo $tmp2 | sed -e 's/power macintosh/ppc/'`
81      PLATFORM=`echo $tmp3 | sed -e 's/i[3-6]86/ia32/' | sed -e 's/athlon/ia32/'`      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/'`
83        PLATFORM=$tmp2
84      OFLIST=`(cd $ROOTDIR/tools/build_options; ls | grep "^$PLATFORM")`      OFLIST=`(cd $ROOTDIR/tools/build_options; ls | grep "^$PLATFORM")`
85      echo "  The platform appears to be:  $PLATFORM"      echo "  The platform appears to be:  $PLATFORM"
86            
# Line 435  EOF Line 437  EOF
437  }  }
438    
439    
440    check_netcdf_libs()  {
441        cat <<EOF > genmake_tnc.F
442          program fgennc
443    #include "netcdf.inc"
444          integer iret, ncid, xid
445          iret = nf_create('genmake_tnc.nc', NF_CLOBBER, ncid)
446          IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)
447          iret = nf_def_dim(ncid, 'X', 11, xid)
448          IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)
449          iret = nf_close(ncid)
450          IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)
451          end
452    EOF
453        $CPP genmake_tnc.F > genmake_tnc.f  \
454            &&  $FC $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.f $LIBS >> genmake_tnc.log 2>&1
455        RET_COMPILE=$?
456        test -x ./genmake_tnc  &&  ./genmake_tnc >> genmake_tnc.log 2>&1
457        RETVAL=$?
458        if test "x$RET_COMPILE" = x0 -a "x$RETVAL" = x0 ; then
459            HAVE_NETCDF=t
460        else
461            cat genmake_tnc.log >> genmake_warnings
462        fi
463        rm -f genmake_tnc*
464    }
465    
466    
467  #  Set defaults here  #  Set defaults here
468  COMMANDL="$0 $@"  COMMANDL="$0 $@"
469    
# Line 443  LN= Line 472  LN=
472  S64=  S64=
473  KPP=  KPP=
474  FC=  FC=
475    CPP=
476  LINK=  LINK=
477  # DEFINES="-DWORDLENGTH=4"  # DEFINES="-DWORDLENGTH=4"
478  DEFINES=  DEFINES=
# Line 471  HAVE_SYSTEM= Line 501  HAVE_SYSTEM=
501  HAVE_FDATE=  HAVE_FDATE=
502  FC_NAMEMANGLE=  FC_NAMEMANGLE=
503  HAVE_CLOC=  HAVE_CLOC=
504    HAVE_NETCDF=
505    
506  MODS=  MODS=
507  TOOLSDIR=  TOOLSDIR=
508  SOURCEDIRS=  SOURCEDIRS=
509  INCLUDEDIRS=  INCLUDEDIRS=
510  STANDARDDIRS=  STANDARDDIRS="USE_THE_DEFAULT"
511    
512  PWD=`pwd`  PWD=`pwd`
513  MAKE=make  MAKE=make
# Line 510  TAMC_EXTRA= Line 541  TAMC_EXTRA=
541    
542  #  The following state can be set directly by command-line switches  #  The following state can be set directly by command-line switches
543  gm_s1="OPTFILE PDEPEND PDEFAULT MAKEFILE PLATFORM ROOTDIR MODS DISABLE ENABLE"  gm_s1="OPTFILE PDEPEND PDEFAULT MAKEFILE PLATFORM ROOTDIR MODS DISABLE ENABLE"
544  gm_s2="FC IEEE MPI JAM DUMPSTATE STANDARDDIRS"  gm_s2="FC CPP IEEE MPI JAM DUMPSTATE STANDARDDIRS"
545    
546  #  The following state is not directly set by command-line switches  #  The following state is not directly set by command-line switches
547  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 895  else Line 926  else
926  fi  fi
927  rm -f genmake_t*  rm -f genmake_t*
928    
929    echo -n "  Can we create NetCDF-enabled binaries...  "
930    check_netcdf_libs
931    if test "x$HAVE_NETCDF" != x ; then
932        echo "yes"
933    else
934        echo "no"
935    fi
936    
937    
938  printf "\n===  Setting defaults  ===\n"  printf "\n===  Setting defaults  ===\n"
939  echo -n "  Adding MODS directories:  "  echo -n "  Adding MODS directories:  "
# Line 955  if test -r $ROOTDIR"/eesupp/src/Makefile Line 994  if test -r $ROOTDIR"/eesupp/src/Makefile
994          rm -f make_eesupp.errors          rm -f make_eesupp.errors
995      else      else
996          echo "Error: problem encountered while building source files in eesupp:"          echo "Error: problem encountered while building source files in eesupp:"
997          cat make_eesupp.errors          cat make_eesupp.errors 1>&2
998          exit 1          exit 1
999      fi      fi
1000  fi  fi
1001    
1002    #same for exch2
1003    if test -r $ROOTDIR"/pkg/exch2/Makefile" ; then
1004        echo "  Making source files in exch2 from  templates"
1005        ( cd $ROOTDIR"/pkg/exch2/" && $MAKE ) > make_exch2.errors 2>&1
1006        RETVAL=$?
1007        if test "x${RETVAL}" = x0 ; then
1008            rm -f make_exch2.errors
1009        else
1010            echo "Error: problem encountered while building source files in exch2:"
1011            cat make_exch2.errors 1>&2
1012            exit 1
1013        fi
1014    fi
1015    
1016  printf "\n===  Determining package settings  ===\n"  printf "\n===  Determining package settings  ===\n"
1017  if  test "x${PDEPEND}" = x ; then  if  test "x${PDEPEND}" = x ; then
1018      tmp=$ROOTDIR"/pkg/pkg_depend"      tmp=$ROOTDIR"/pkg/pkg_depend"
# Line 1143  for i in $PACKAGES ; do Line 1196  for i in $PACKAGES ; do
1196      fi      fi
1197  done  done
1198    
1199    #  Build MNC templates and check for ability to build and use NetCDF
1200    echo $PACKAGES | grep ' mnc ' > /dev/null 2>&1
1201    RETVAL=$?
1202    if test "x$RETVAL" = x0 ; then
1203        ( cd $ROOTDIR"/pkg/mnc" && $MAKE templates ) > make_mnc.errors 2>&1
1204        RETVAL=$?
1205        if test "x${RETVAL}" = x0 ; then
1206            rm -f make_mnc.errors
1207        else
1208            echo "Error: problem encountered while building source files in pkg/mnc:"
1209            cat make_mnc.errors 1>&2
1210            exit 1
1211        fi
1212        if test -a "x$HAVE_NETCDF" != xt ; then
1213            cat <<EOF
1214    
1215    WARNING: the "mnc" package has been enabled but tests failed to
1216      compile and/or execute NetCDF applications.  Please check that:
1217    
1218      1) NetCDF is installed for your compiler and
1219      2) the LIBS variable (within the 'optfile") specifies the correct
1220           NetCDF library to link against.
1221      
1222    EOF
1223        fi
1224    fi
1225    
1226  # Create a list of #define and #undef to enable/disable packages  # Create a list of #define and #undef to enable/disable packages
1227  PACKAGES_DOT_H=PACKAGES_CONFIG.h  PACKAGES_DOT_H=PACKAGES_CONFIG.h
# Line 1177  for i in $PACKAGES ; do Line 1256  for i in $PACKAGES ; do
1256  #EH3  WARNING :  This is an UGLY HACK that needs to be removed!!!  #EH3  WARNING :  This is an UGLY HACK that needs to be removed!!!
1257      case $i in      case $i in
1258          aim_v23)          aim_v23)
             DEFINES="$DEFINES -DALLOW_AIM"  
1259              ENABLED_PACKAGES="$ENABLED_PACKAGES -DALLOW_AIM"              ENABLED_PACKAGES="$ENABLED_PACKAGES -DALLOW_AIM"
1260              echo "Warning: ALLOW_AIM is set to enable aim_v23. This is REALLY ugly Jean-Michel :-)"              echo "Warning: ALLOW_AIM is set to enable aim_v23."
1261              ;;              ;;
1262      esac      esac
1263  #EH3  WARNING :  This is an UGLY HACK that needs to be removed!!!  #EH3  WARNING :  This is an UGLY HACK that needs to be removed!!!
# Line 1188  done Line 1266  done
1266    
1267  echo "  Adding STANDARDDIRS"  echo "  Adding STANDARDDIRS"
1268  BUILDDIR=${BUILDDIR:-.}  BUILDDIR=${BUILDDIR:-.}
1269  if test "x$STANDARDDIRS" = x ; then  if test "x$STANDARDDIRS" = xUSE_THE_DEFAULT ; then
1270      STANDARDDIRS="eesupp model"      STANDARDDIRS="eesupp model"
1271  fi  fi
1272  for d in $STANDARDDIRS ; do  if test "x$STANDARDDIRS" != x ; then
1273      adr="$ROOTDIR/$d/src"      for d in $STANDARDDIRS ; do
1274      if test ! -d $adr ; then          adr="$ROOTDIR/$d/src"
1275          echo "Error:  directory $adr not found -- please check that ROOTDIR=\"$ROOTDIR\""          if test ! -d $adr ; then
1276          echo "  is correct and that you correctly specified the STANDARDDIRS option"              echo "Error:  directory $adr not found -- please check that ROOTDIR=\"$ROOTDIR\""
1277          exit 1              echo "  is correct and that you correctly specified the STANDARDDIRS option"
1278      else              exit 1
1279          SOURCEDIRS="$SOURCEDIRS $adr"          else
1280      fi              SOURCEDIRS="$SOURCEDIRS $adr"
1281      adr="$ROOTDIR/$d/inc"          fi
1282      if test ! -d $adr ; then          adr="$ROOTDIR/$d/inc"
1283          echo "Error:  directory $adr not found -- please check that ROOTDIR=\"$ROOTDIR\""          if test ! -d $adr ; then
1284          echo "  is correct and that you correctly specified the STANDARDDIRS option"              echo "Error:  directory $adr not found -- please check that ROOTDIR=\"$ROOTDIR\""
1285          exit 1              echo "  is correct and that you correctly specified the STANDARDDIRS option"
1286      else              exit 1
1287          INCLUDEDIRS="$INCLUDEDIRS $adr"          else
1288      fi              INCLUDEDIRS="$INCLUDEDIRS $adr"
1289  done          fi
1290        done
1291    fi
1292    
1293  echo "  Searching for *OPTIONS.h files in order to warn about the presence"  echo "  Searching for *OPTIONS.h files in order to warn about the presence"
1294  echo "    of \"#define \"-type statements that are no longer allowed:"  echo "    of \"#define \"-type statements that are no longer allowed:"
# Line 1218  spaths=". $INCLUDEDIRS" Line 1298  spaths=". $INCLUDEDIRS"
1298  names=`ls -1 "$ROOTDIR/pkg"`  names=`ls -1 "$ROOTDIR/pkg"`
1299  for i in $spaths ; do  for i in $spaths ; do
1300      try="$i/CPP_OPTIONS.h"      try="$i/CPP_OPTIONS.h"
1301      if test -f $try -a -r $try -a "x$CPP_OPTIONS" == x ; then      if test -f $try -a -r $try -a "x$CPP_OPTIONS" = x ; then
1302          echo "    found CPP_OPTIONS=\"$try\""          echo "    found CPP_OPTIONS=\"$try\""
1303          CPP_OPTIONS="$try"          CPP_OPTIONS="$try"
1304          # New safety test: make sure packages are not mentioned in CPP_OPTIONS.h          # New safety test: make sure packages are not mentioned in CPP_OPTIONS.h
# Line 1227  for i in $spaths ; do Line 1307  for i in $spaths ; do
1307          done          done
1308      fi      fi
1309      try="$i/CPP_EEOPTIONS.h"      try="$i/CPP_EEOPTIONS.h"
1310      if test -f $try -a -r $try -a "x$CPP_EEOPTIONS" == x ; then      if test -f $try -a -r $try -a "x$CPP_EEOPTIONS" = x ; then
1311          echo "    found CPP_EEOPTIONS=\"$try\""          echo "    found CPP_EEOPTIONS=\"$try\""
1312          # New safety test: make sure MPI is not determined by CPP_EEOPTIONS.h          # New safety test: make sure MPI is not determined by CPP_EEOPTIONS.h
1313  #**** not yet enabled ****  #**** not yet enabled ****
# Line 1254  for i in $SOURCEDIRS ; do Line 1334  for i in $SOURCEDIRS ; do
1334      done      done
1335  done  done
1336    
1337    
1338  echo  echo
1339  echo "===  Creating the Makefile  ==="  echo "===  Creating the Makefile  ==="
1340  echo "  setting INCLUDES"  echo "  setting INCLUDES"
# Line 1673  $TOOLSDIR/convert_cpp_cmd2defines "Warni Line 1754  $TOOLSDIR/convert_cpp_cmd2defines "Warni
1754  if test ! -f $PACKAGES_DOT_H ; then  if test ! -f $PACKAGES_DOT_H ; then
1755      mv -f $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H      mv -f $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H
1756  else  else
1757      cmp $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H      cmp $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H > /dev/null 2>&1
1758      RETVAL=$?      RETVAL=$?
1759      if test "x$RETVAL" = x0 ; then      if test "x$RETVAL" = x0 ; then
1760          rm -f $PACKAGES_DOT_H".tmp"          rm -f $PACKAGES_DOT_H".tmp"

Legend:
Removed from v.1.53  
changed lines
  Added in v.1.62

  ViewVC Help
Powered by ViewVC 1.1.22