/[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.61 by edhill, Thu Jan 15 04:27:39 2004 UTC revision 1.67 by adcroft, Tue Feb 24 19:00:32 2004 UTC
# Line 145  EOF Line 145  EOF
145          echo "   "$p_FC          echo "   "$p_FC
146          if test "x$FC" = x ; then          if test "x$FC" = x ; then
147              FC=`echo $p_FC | $AWK '{print $1}'`              FC=`echo $p_FC | $AWK '{print $1}'`
148                echo "  Setting FORTRAN compiler to: "$FC
149          fi          fi
150      fi      fi
151    
152      for i in $p_FC ; do      if test "x$OPTFILE" = x ; then
153          p_OF=$ROOTDIR"/tools/build_options/"$PLATFORM"_"$i          OPTFILE=$ROOTDIR"/tools/build_options/"$PLATFORM"_"$FC
154          if test -r $p_OF ; then          if test ! -r $OPTFILE ; then
155              OPTFILE=$p_OF               echo "  I looked for the file "$OPTFILE" but did not find it"
156              echo "  The options file:  $p_OF"          fi
157              echo "    appears to match so we'll use it."      fi
158              break  #    echo "  The options file:  $p_OF"
159          fi  #    echo "    appears to match so we'll use it."
160      done  #   for i in $p_FC ; do
161    #p_OF=$ROOTDIR"/tools/build_options/"$PLATFORM"_"$i
162    #if test -r $p_OF ; then
163    #    OPTFILE=$p_OF
164    #    echo "  The options file:  $p_OF"
165    #    echo "    appears to match so we'll use it."
166    #    break
167    #fi
168    #   done
169      if test "x$OPTFILE" = x ; then      if test "x$OPTFILE" = x ; then
170          cat 1>&2 <<EOF          cat 1>&2 <<EOF
171    
# Line 294  Usage: "$0" [OPTIONS] Line 303  Usage: "$0" [OPTIONS]
303            *only* works if it is supported by the OPTFILE that            *only* works if it is supported by the OPTFILE that
304            is being used.            is being used.
305    
306        -mpi | --mpi
307              Include MPI header files and link to MPI libraries
308        -mpi=PATH | --mpi=PATH
309              Include MPI header files and link to MPI libraries using MPI_ROOT
310              set to PATH. i.e. Include files from $PATH/include, link to libraries
311              from $PATH/lib and use binaries from $PATH/bin.
312    
313    While it is most often a single word, the "NAME" variables specified    While it is most often a single word, the "NAME" variables specified
314    above can in many cases be a space-delimited string such as:    above can in many cases be a space-delimited string such as:
315    
# Line 458  EOF Line 474  EOF
474      if test "x$RET_COMPILE" = x0 -a "x$RETVAL" = x0 ; then      if test "x$RET_COMPILE" = x0 -a "x$RETVAL" = x0 ; then
475          HAVE_NETCDF=t          HAVE_NETCDF=t
476      else      else
477          cat genmake_tnc.log >> genmake_warnings          # try again with "-lnetcdf" added to the libs
478            $CPP genmake_tnc.F > genmake_tnc.f  \
479                &&  $FC $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.f \
480                $LIBS -lnetcdf >> genmake_tnc_2.log 2>&1
481            RET_COMPILE=$?
482            test -x ./genmake_tnc  &&  ./genmake_tnc >> genmake_tnc.log 2>&1
483            RETVAL=$?
484            if test "x$RET_COMPILE" = x0 -a "x$RETVAL" = x0 ; then
485                LIBS="$LIBS -lnetcdf"
486                HAVE_NETCDF=t
487            else
488                cat genmake_tnc.log >> genmake_warnings
489            fi
490      fi      fi
491      rm -f genmake_tnc*      rm -f genmake_tnc*
492  }  }
493    
494    
495    
496    ###############################################################################
497    #   Sequential part of script starts here
498    ###############################################################################
499    
500  #  Set defaults here  #  Set defaults here
501  COMMANDL="$0 $@"  COMMANDL="$0 $@"
502    
# Line 474  KPP= Line 507  KPP=
507  FC=  FC=
508  CPP=  CPP=
509  LINK=  LINK=
 # DEFINES="-DWORDLENGTH=4"  
510  DEFINES=  DEFINES=
511  PACKAGES=  PACKAGES=
512  ENABLE=  ENABLE=
# Line 495  LIBS= Line 527  LIBS=
527  KPPFILES=  KPPFILES=
528  NOOPTFILES=  NOOPTFILES=
529  NOOPTFLAGS=  NOOPTFLAGS=
530    MPI=
531    MPIPATH=
532    
533  # DEFINES checked by test compilation  # DEFINES checked by test compilation
534  HAVE_SYSTEM=  HAVE_SYSTEM=
# Line 693  for ac_option ; do Line 727  for ac_option ; do
727              IEEE=true ;;              IEEE=true ;;
728          -noieee | --noieee)          -noieee | --noieee)
729              IEEE= ;;              IEEE= ;;
730    
731            -mpi | --mpi)
732                MPI=true ;;
733            -mpi=* | --mpi=*)
734                MPIPATH=$ac_optarg
735                MPI=true ;;
736                    
737  #       -jam | --jam)  #       -jam | --jam)
738  #           JAM=1 ;;  #           JAM=1 ;;
# Line 834  fi Line 874  fi
874  if test "x$LINK" = x ; then  if test "x$LINK" = x ; then
875      LINK=$FC      LINK=$FC
876  fi  fi
 if test "x$CPP" = x ; then  
     CPP="cpp"  
 fi  
877  if test "x$MAKE" = x ; then  if test "x$MAKE" = x ; then
878      MAKE="make"      MAKE="make"
879  fi  fi
880    if test "x$CPP" = x ; then
881        CPP=cpp
882    fi
883    #EH3 === UGLY ===
884    #  The following an ugly little hack to check for $CPP in /lib/ and it
885    #  should eventually be replaced with a more general function that
886    #  searches a combo of the user's path and a list of "usual suspects"
887    #  to find the correct location for binaries such as $CPP.
888    for i in " " "/lib/" ; do
889        echo "#define A a" | $i$CPP > test_cpp 2>&1 && CPP=$i$CPP
890    done
891    #EH3 === UGLY ===
892  echo "#define A a" | $CPP > test_cpp 2>&1  echo "#define A a" | $CPP > test_cpp 2>&1
893  RETVAL=$?  RETVAL=$?
894  if test "x$RETVAL" != x0 ; then  if test "x$RETVAL" != x0 ; then
# Line 876  EOF Line 925  EOF
925  fi  fi
926  rm -f genmake_test_ln genmake_tlink  rm -f genmake_test_ln genmake_tlink
927    
928    if test ! "x$MPI" = x ; then
929          echo "  Turning on MPI cpp macros"
930          DEFINES="$DEFINS -DALLOW_USE_MPI -DALWAYS_USE_MPI"
931    fi
932    
933  printf "\n===  Checking system libraries  ===\n"  printf "\n===  Checking system libraries  ===\n"
934  echo -n "  Do we have the system() command using $FC...  "  echo -n "  Do we have the system() command using $FC...  "
# Line 973  if test "x${TOOLSDIR}" = x ; then Line 1026  if test "x${TOOLSDIR}" = x ; then
1026      TOOLSDIR="$ROOTDIR/tools"      TOOLSDIR="$ROOTDIR/tools"
1027  fi  fi
1028  if test ! -d ${TOOLSDIR} ; then  if test ! -d ${TOOLSDIR} ; then
1029      echo "Error: the specified $TOOLSDIR (\"$TOOLSDIR\") does not exist!"      echo "Error: the specified TOOLSDIR (\"$TOOLSDIR\") does not exist!"
1030      exit 1      exit 1
1031  fi  fi
1032  if test "x$S64" = x ; then  if test "x$S64" = x ; then
# Line 994  if test -r $ROOTDIR"/eesupp/src/Makefile Line 1047  if test -r $ROOTDIR"/eesupp/src/Makefile
1047          rm -f make_eesupp.errors          rm -f make_eesupp.errors
1048      else      else
1049          echo "Error: problem encountered while building source files in eesupp:"          echo "Error: problem encountered while building source files in eesupp:"
1050          cat make_eesupp.errors          cat make_eesupp.errors 1>&2
1051          exit 1          exit 1
1052      fi      fi
1053  fi  fi
# Line 1008  if test -r $ROOTDIR"/pkg/exch2/Makefile" Line 1061  if test -r $ROOTDIR"/pkg/exch2/Makefile"
1061          rm -f make_exch2.errors          rm -f make_exch2.errors
1062      else      else
1063          echo "Error: problem encountered while building source files in exch2:"          echo "Error: problem encountered while building source files in exch2:"
1064          cat make_exch2.errors          cat make_exch2.errors 1>&2
1065          exit 1          exit 1
1066      fi      fi
1067  fi  fi
# Line 1196  for i in $PACKAGES ; do Line 1249  for i in $PACKAGES ; do
1249      fi      fi
1250  done  done
1251    
1252  #  Check for ability to build and use NetCDF  #  Build MNC templates and check for ability to build and use NetCDF
1253  echo $PACKAGES | grep ' mnc ' > /dev/null 2>&1  echo $PACKAGES | grep ' mnc ' > /dev/null 2>&1
1254  RETVAL=$?  RETVAL=$?
1255  if test "x$RETVAL" = x0 -a "x$HAVE_NETCDF" != xt ; then  if test "x$RETVAL" = x0 ; then
1256      cat <<EOF      ( cd $ROOTDIR"/pkg/mnc" && $MAKE templates ) > make_mnc.errors 2>&1
1257        RETVAL=$?
1258        if test "x${RETVAL}" = x0 ; then
1259            rm -f make_mnc.errors
1260        else
1261            echo "Error: problem encountered while building source files in pkg/mnc:"
1262            cat make_mnc.errors 1>&2
1263            exit 1
1264        fi
1265        if test "x$HAVE_NETCDF" != xt ; then
1266            cat <<EOF
1267    
1268  WARNING: the "mnc" package has been enabled but tests failed to  WARNING: the "mnc" package has been enabled but tests failed to
1269    compile and/or execute NetCDF applications.  Please check that:    compile and/or execute NetCDF applications.  Please check that:
# Line 1210  WARNING: the "mnc" package has been enab Line 1273  WARNING: the "mnc" package has been enab
1273         NetCDF library to link against.         NetCDF library to link against.
1274        
1275  EOF  EOF
1276        fi
1277  fi  fi
1278    
1279  # Create a list of #define and #undef to enable/disable packages  # Create a list of #define and #undef to enable/disable packages

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

  ViewVC Help
Powered by ViewVC 1.1.22