/[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.150 by edhill, Mon May 22 22:11:11 2006 UTC revision 1.158 by heimbach, Thu Nov 23 05:23:05 2006 UTC
# Line 325  find_possible_configs()  { Line 325  find_possible_configs()  {
325    
326      #================================================================      #================================================================
327      #  look for possible C compilers      #  look for possible C compilers
328      tmp="$MITGCM_CC $CC gcc c89 cc c99 mpicc"      tmp="$MITGCM_CC $CC gcc c89 cc c99 mpicc icc"
329      p_CC=      p_CC=
330      for c in $tmp ; do      for c in $tmp ; do
331          rm -f ./genmake_hello.c  ./genmake_hello          rm -f ./genmake_hello.c  ./genmake_hello
# Line 364  EOF Line 364  EOF
364    
365      #================================================================      #================================================================
366      #  look for possible FORTRAN compilers      #  look for possible FORTRAN compilers
367      tmp="$MITGCM_FC $FC efc g77 f77 pgf77 pgf95 ifc f90 f95 mpif77 mpf77 mpxlf95 gfortran"      tmp="$MITGCM_FC $FC efc g77 f77 pgf77 pgf95 ifc ifort f90 f95 mpif77 mpf77 mpxlf95 gfortran g95"
368      p_FC=      p_FC=
369      for c in $tmp ; do      for c in $tmp ; do
370          rm -f ./hello.f ./hello          rm -f ./hello.f ./hello
# Line 827  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 939  EOF Line 946  EOF
946      RET_CPP=f      RET_CPP=f
947      COMM="cat genmake_tnc.F | $CPP $DEFINES $INCLUDES"      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 947  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 967  EOF Line 974  EOF
974          echo "try again with added '-lnetcdf'" > genmake_tnc.log          echo "try again with added '-lnetcdf'" > genmake_tnc.log
975          echo "cat genmake_tnc.F | $CPP $DEFINES $INCLUDES > 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          cat genmake_tnc.F | $CPP $DEFINES $INCLUDES > 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 1036  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 1345  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 1684  rm -f genmake_t* Line 1691  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 1811  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 2198  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    
# Line 2459  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 2470  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) *.txt STD* *diagnostics.log datetime          -rm -f \$(EXECUTABLE) \$(EXE_AD) *.txt STD* *diagnostics.log datetime
2485          -rm -rf mnc_test_*          -rm -rf mnc_test_*
2486    
2487  #eh3 Makefile: makefile  #eh3 Makefile: makefile
# Line 2558  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 2578  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 2598  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.150  
changed lines
  Added in v.1.158

  ViewVC Help
Powered by ViewVC 1.1.22