/[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.54 by edhill, Fri Dec 5 18:09:35 2003 UTC revision 1.61 by edhill, Thu Jan 15 04:27:39 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 960  if test -r $ROOTDIR"/eesupp/src/Makefile Line 999  if test -r $ROOTDIR"/eesupp/src/Makefile
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
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    #  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 -a "x$HAVE_NETCDF" != xt ; then
1203        cat <<EOF
1204    
1205    WARNING: the "mnc" package has been enabled but tests failed to
1206      compile and/or execute NetCDF applications.  Please check that:
1207    
1208      1) NetCDF is installed for your compiler and
1209      2) the LIBS variable (within the 'optfile") specifies the correct
1210           NetCDF library to link against.
1211      
1212    EOF
1213    fi
1214    
1215  # Create a list of #define and #undef to enable/disable packages  # Create a list of #define and #undef to enable/disable packages
1216  PACKAGES_DOT_H=PACKAGES_CONFIG.h  PACKAGES_DOT_H=PACKAGES_CONFIG.h
# Line 1177  for i in $PACKAGES ; do Line 1245  for i in $PACKAGES ; do
1245  #EH3  WARNING :  This is an UGLY HACK that needs to be removed!!!  #EH3  WARNING :  This is an UGLY HACK that needs to be removed!!!
1246      case $i in      case $i in
1247          aim_v23)          aim_v23)
             DEFINES="$DEFINES -DALLOW_AIM"  
1248              ENABLED_PACKAGES="$ENABLED_PACKAGES -DALLOW_AIM"              ENABLED_PACKAGES="$ENABLED_PACKAGES -DALLOW_AIM"
1249              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."
1250              ;;              ;;
1251      esac      esac
1252  #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 1255  done
1255    
1256  echo "  Adding STANDARDDIRS"  echo "  Adding STANDARDDIRS"
1257  BUILDDIR=${BUILDDIR:-.}  BUILDDIR=${BUILDDIR:-.}
1258  if test "x$STANDARDDIRS" = x ; then  if test "x$STANDARDDIRS" = xUSE_THE_DEFAULT ; then
1259      STANDARDDIRS="eesupp model"      STANDARDDIRS="eesupp model"
1260  fi  fi
1261  for d in $STANDARDDIRS ; do  if test "x$STANDARDDIRS" != x ; then
1262      adr="$ROOTDIR/$d/src"      for d in $STANDARDDIRS ; do
1263      if test ! -d $adr ; then          adr="$ROOTDIR/$d/src"
1264          echo "Error:  directory $adr not found -- please check that ROOTDIR=\"$ROOTDIR\""          if test ! -d $adr ; then
1265          echo "  is correct and that you correctly specified the STANDARDDIRS option"              echo "Error:  directory $adr not found -- please check that ROOTDIR=\"$ROOTDIR\""
1266          exit 1              echo "  is correct and that you correctly specified the STANDARDDIRS option"
1267      else              exit 1
1268          SOURCEDIRS="$SOURCEDIRS $adr"          else
1269      fi              SOURCEDIRS="$SOURCEDIRS $adr"
1270      adr="$ROOTDIR/$d/inc"          fi
1271      if test ! -d $adr ; then          adr="$ROOTDIR/$d/inc"
1272          echo "Error:  directory $adr not found -- please check that ROOTDIR=\"$ROOTDIR\""          if test ! -d $adr ; then
1273          echo "  is correct and that you correctly specified the STANDARDDIRS option"              echo "Error:  directory $adr not found -- please check that ROOTDIR=\"$ROOTDIR\""
1274          exit 1              echo "  is correct and that you correctly specified the STANDARDDIRS option"
1275      else              exit 1
1276          INCLUDEDIRS="$INCLUDEDIRS $adr"          else
1277      fi              INCLUDEDIRS="$INCLUDEDIRS $adr"
1278  done          fi
1279        done
1280    fi
1281    
1282  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"
1283  echo "    of \"#define \"-type statements that are no longer allowed:"  echo "    of \"#define \"-type statements that are no longer allowed:"
# Line 1254  for i in $SOURCEDIRS ; do Line 1323  for i in $SOURCEDIRS ; do
1323      done      done
1324  done  done
1325    
1326    
1327  echo  echo
1328  echo "===  Creating the Makefile  ==="  echo "===  Creating the Makefile  ==="
1329  echo "  setting INCLUDES"  echo "  setting INCLUDES"
# Line 1673  $TOOLSDIR/convert_cpp_cmd2defines "Warni Line 1743  $TOOLSDIR/convert_cpp_cmd2defines "Warni
1743  if test ! -f $PACKAGES_DOT_H ; then  if test ! -f $PACKAGES_DOT_H ; then
1744      mv -f $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H      mv -f $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H
1745  else  else
1746      cmp $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H      cmp $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H > /dev/null 2>&1
1747      RETVAL=$?      RETVAL=$?
1748      if test "x$RETVAL" = x0 ; then      if test "x$RETVAL" = x0 ; then
1749          rm -f $PACKAGES_DOT_H".tmp"          rm -f $PACKAGES_DOT_H".tmp"

Legend:
Removed from v.1.54  
changed lines
  Added in v.1.61

  ViewVC Help
Powered by ViewVC 1.1.22