/[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.237 by jmc, Fri Aug 24 23:41:17 2012 UTC revision 1.238 by jmc, Tue Aug 28 21:11:22 2012 UTC
# Line 411  build_cyrus_makedepend()  { Line 411  build_cyrus_makedepend()  {
411      (      (
412          cd $ROOTDIR/tools/cyrus-imapd-makedepend  \          cd $ROOTDIR/tools/cyrus-imapd-makedepend  \
413              &&  ./configure > /dev/null 2>&1  \              &&  ./configure > /dev/null 2>&1  \
414              &&  make > /dev/null 2>&1              &&  $MAKE > /dev/null 2>&1
415          if test -x ./makedepend.exe ; then          if test -x ./makedepend.exe ; then
416              $LN ./makedepend.exe ./makedepend              $LN ./makedepend.exe ./makedepend
417          fi          fi
# Line 596  Error: No options file was found in:  $R Line 596  Error: No options file was found in:  $R
596  EOF  EOF
597          exit 1          exit 1
598      fi      fi
   
 #     # look for possible MPI libraries  
 #     mpi_libs=  
 #     mpi_fort=`which mpif77 2>/dev/null`  
 #     RETVAL=$?  
 #     if test "x${RETVAL}" = x0 ; then  
 #       cat >>test.f <<EOF  
 #       PROGRAM HELLO  
 #       DO 10, I=1,10  
 #       PRINT *,'Hello World'  
 #    10 CONTINUE  
 #       STOP  
 #       END  
 # EOF  
 #       eval "$mpi_fort -showme test.f > out"  
 #       RETVAL=$?  
 #       if test "x${RETVAL}" = x0 ; then  
 #           a=`cat out`  
 #           for i in $a ; do  
 #               case $i in  
 #                   -*)  
 #                       mpi_libs="$mpi_libs $i" ;;  
 #               esac  
 #           done  
 #           echo "The MPI libs appear to be:"  
 #           echo "  "$mpi_libs  
 #       fi  
 #       rm -f test.f out  
 #     fi  
599  }  }
600    
601  #  Parse the package dependency information  #  Parse the package dependency information
# Line 1245  SVD_TAMC_FLAGS= Line 1216  SVD_TAMC_FLAGS=
1216  TAMC_EXTRA=  TAMC_EXTRA=
1217    
1218  #  The following state can be set directly by command-line switches  #  The following state can be set directly by command-line switches
1219  gm_s1="OPTFILE PKG_DEPEND PKG_GROUPS DISABLE ENABLE MAKEFILE MAKEDEPEND PLATFORM"  gm_s1="ROOTDIR STANDARDDIRS MODS PKG_DEPEND PKG_GROUPS DISABLE ENABLE"
1220  gm_s2="FC CC MPI OMP USE_R4 TS PAPIS PCLS PAPI PCL HPMT IEEE DEVEL GSL FEXTRAFLAGS"  gm_s2="PLATFORM OPTFILE MAKE MAKEFILE MAKEDEPEND FC CC MPI OMP USE_R4"
1221  gm_s3="ROOTDIR STANDARDDIRS MODS DUMPSTATE"  gm_s3="FEXTRAFLAGS IEEE DEVEL GSL TS PAPIS PCLS PAPI PCL HPMT DUMPSTATE"
1222    
1223  #  The following state is not directly set by command-line switches  #  The following state is not directly set by command-line switches
1224  gm_s4="LN S64 LINK MAKE PACKAGES INCLUDES FFLAGS FOPTIM"  gm_s4="LN S64 LINK PACKAGES INCLUDES FFLAGS FOPTIM"
1225  gm_s5="CFLAGS LIBS KPP KFLAGS1 KFLAGS2 KPPFILES NOOPTFILES NOOPTFLAGS"  gm_s5="CFLAGS LIBS KPP KFLAGS1 KFLAGS2 KPPFILES NOOPTFILES NOOPTFLAGS"
1226  gm_s6="TOOLSDIR SOURCEDIRS INCLUDEDIRS EXEDIR EXECUTABLE EXEHOOK"  gm_s6="TOOLSDIR SOURCEDIRS INCLUDEDIRS EXEDIR EXECUTABLE EXEHOOK"
1227  gm_s7="PWD THISHOST THISUSER THISDATE THISVER MACHINE"  gm_s7="PWD THISHOST THISUSER THISDATE THISVER MACHINE"
# Line 2715  cat >>$MAKEFILE <<EOF Line 2686  cat >>$MAKEFILE <<EOF
2686  # INCLUDES     : Directories searched for header files  # INCLUDES     : Directories searched for header files
2687  # DEFINES      : Macro definitions for CPP  # DEFINES      : Macro definitions for CPP
2688  # MAKEDEPEND   : Dependency generator  # MAKEDEPEND   : Dependency generator
 # KPP          : Special preprocessor command (specific to platform)  
 # KFLAGS       : Flags for KPP  
2689  # FC           : Fortran compiler command  # FC           : Fortran compiler command
2690  # FFLAGS       : Configuration/debugging options for FC  # FFLAGS       : Configuration/debugging options for FC
2691  # FOPTIM       : Optimization options for FC  # FOPTIM       : Optimization options for FC
# Line 2790  NOOPTFLAGS = ${NOOPTFLAGS} Line 2759  NOOPTFLAGS = ${NOOPTFLAGS}
2759  # Flags and libraries needed for linking  # Flags and libraries needed for linking
2760  LIBS = ${LIBS}  LIBS = ${LIBS}
2761  # Name of the makefile  # Name of the makefile
2762  MAKEFILE=${MAKEFILE}  MAKEFILE = ${MAKEFILE}
2763    # Name of the make program
2764    MAKE = ${MAKE}
2765    
2766  EOF  EOF
2767    
# Line 2821  echo '.SUFFIXES: .o .'$FS' .p .F .c .f'$ Line 2792  echo '.SUFFIXES: .o .'$FS' .p .F .c .f'$
2792    
2793  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
2794    
2795  all: \$(EXECUTABLE)  all: fwd_exe_target
2796    fwd_exe_target:
2797            @echo Update AD_CONFIG.h and make \$(EXECUTABLE)
2798            @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Forward version" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > ad_config.template
2799            @cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h
2800            @-rm -f ad_config.template
2801            \$(MAKE) -f \$(MAKEFILE) \$(EXECUTABLE)
2802    
2803  \$(EXECUTABLE): \$(SPECIAL_FILES) \$(F77_SRC_FILES) \$(C_SRC_FILES) \$(H_SRC_FILES) \$(F90_SRC_FILES) \$(OBJFILES) \$(EMBEDDED_FILES)  \$(EXECUTABLE): \$(SPECIAL_FILES) \$(F77_SRC_FILES) \$(C_SRC_FILES) \$(H_SRC_FILES) \$(F90_SRC_FILES) \$(OBJFILES) \$(EMBEDDED_FILES)
2804          @echo Creating \$@ ...          @echo Creating \$@ ...
2805          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(LIBS)          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(LIBS)
2806    
2807  depend:  depend:
2808          @make -f \$(MAKEFILE) links          @\$(MAKE) -f \$(MAKEFILE) links
2809          \$(MAKEDEPEND) -f \$(MAKEFILE) -o .$FS \$(DEFINES) \$(INCLUDES) \$(F77_SRC_FILES)          \$(MAKEDEPEND) -f \$(MAKEFILE) -o .$FS \$(DEFINES) \$(INCLUDES) \$(F77_SRC_FILES)
2810          \$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE)          \$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE)
2811          -rm -f makedepend.out          -rm -f makedepend.out
# Line 2857  clean: Line 2835  clean:
2835    
2836  # remove most of the files that "make" and "make depend" generate  # remove most of the files that "make" and "make depend" generate
2837  Clean:  Clean:
2838          @make -f \$(MAKEFILE) clean          @\$(MAKE) -f \$(MAKEFILE) clean
2839          @make -f \$(MAKEFILE) cleanlinks          @\$(MAKE) -f \$(MAKEFILE) cleanlinks
2840          -rm -f \$(SPECIAL_FILES) f90mkdepend.log $MAKEFILE.old          -rm -f \$(SPECIAL_FILES) f90mkdepend.log $MAKEFILE.old
2841          -rm -f taf_command taf_output taf_ad.log taf_ad_flow.log taf_ftl.log          -rm -f taf_command taf_output taf_ad.log taf_ad_flow.log taf_ftl.log
2842          -rm -f genmake_warnings genmake_errors make.log          -rm -f genmake_warnings genmake_errors make.log
# Line 2866  Clean: Line 2844  Clean:
2844  # remove also the executable, files that "genmake2" generates (except Makefile)  # remove also the executable, files that "genmake2" generates (except Makefile)
2845  #         and output from a run (plus log files from testreport)  #         and output from a run (plus log files from testreport)
2846  CLEAN:  CLEAN:
2847          @make -f \$(MAKEFILE) Clean          @\$(MAKE) -f \$(MAKEFILE) Clean
2848          -rm -f \$(EXECUTABLE) \$(EXE_AD) \$(EXE_FTL) *.bak          -rm -f \$(EXECUTABLE) \$(EXE_AD) \$(EXE_FTL) *.bak
2849          -rm -f $LOGFILE genmake_state genmake_*optfile          -rm -f $LOGFILE genmake_state genmake_*optfile
2850          -rm -f SIZE.h.mpi genmake.tr_log make.tr_log          -rm -f SIZE.h.mpi genmake.tr_log make.tr_log
# Line 2885  cleanlinks: Line 2863  cleanlinks:
2863  # Special targets (SPECIAL_FILES) which are created by make  # Special targets (SPECIAL_FILES) which are created by make
2864  ${PACKAGES_DOT_H}:  ${PACKAGES_DOT_H}:
2865          @echo Creating \$@ ...          @echo Creating \$@ ...
2866          @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bPACKAGES_CONFIG_H "Disabled packages:" \$(DISABLED_PACKAGES) " " "Enabled packages:" \$(ENABLED_PACKAGES) > \$@          @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines -bPACKAGES_CONFIG_H "Disabled packages:" \$(DISABLED_PACKAGES) " " "Enabled packages:" \$(ENABLED_PACKAGES) > \$@
2867  AD_CONFIG.h:  AD_CONFIG.h:
2868          @echo Creating \$@ ...          @echo Creating \$@ ...
2869          @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > \$@          @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Default version" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > \$@
2870  FC_NAMEMANGLE.h:  FC_NAMEMANGLE.h:
2871          @echo Creating \$@ ...          @echo Creating \$@ ...
2872          echo "$FC_NAMEMANGLE" > \$@          echo "$FC_NAMEMANGLE" > \$@
# Line 2997  rm -f adSrcFiles.tmp Line 2975  rm -f adSrcFiles.tmp
2975  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
2976    
2977  # ... AD ...  # ... AD ...
2978  adall: \$(EXE_AD)  adall: ad_exe_target
2979  adtaf: ad_taf_output.$FS  adtaf: ad_taf_output.$FS
2980  adtamc: ad_tamc_output.$FS  adtamc: ad_tamc_output.$FS
2981    
2982    ad_exe_target:
2983            @echo Update AD_CONFIG.h and make \$(EXE_AD)
2984            @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Adjoint version" -bAD_CONFIG_H -DALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > ad_config.template
2985            @cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h
2986            @-rm -f ad_config.template
2987            \$(MAKE) -f \$(MAKEFILE) \$(EXE_AD)
2988    
2989  ad_input_code.$FS: \$(AD_FILES) \$(H_SRC_FILES) \$(AD_FLOW_FILES)  ad_input_code.$FS: \$(AD_FILES) \$(H_SRC_FILES) \$(AD_FLOW_FILES)
2990          @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -DALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > ad_config.template          @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Adjoint version" -bAD_CONFIG_H -DALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > ad_config.template
2991          cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h          cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h
2992          -rm -f ad_config.template          @-rm -f ad_config.template
2993          @make -f \$(MAKEFILE) \$(F77_PP_SRC_FILES)          @\$(MAKE) -f \$(MAKEFILE) \$(F77_PP_SRC_FILES)
2994          @make -f \$(MAKEFILE) \$(FLOWFILES)          @\$(MAKE) -f \$(MAKEFILE) \$(FLOWFILES)
2995          cat \$(FLOWFILES) \$(AD_FILES) | sed -f \$(TOOLSDIR)/remove_comments_sed > ad_input_code.$FS          cat \$(FLOWFILES) \$(AD_FILES) | sed -f \$(TOOLSDIR)/remove_comments_sed > ad_input_code.$FS
2996    
2997  ad_taf_output.$FS: ad_input_code.$FS  ad_taf_output.$FS: ad_input_code.$FS
# Line 3038  adtrick: Line 3023  adtrick:
3023  adobj: ad_taf_output.o \$(OBJFILES)  adobj: ad_taf_output.o \$(OBJFILES)
3024    
3025  # ... FTL ...  # ... FTL ...
3026  ftlall: \$(EXE_FTL)  ftlall: ftl_exe_target
3027  ftltaf: ftl_taf_output.$FS  ftltaf: ftl_taf_output.$FS
3028  ftltamc: ftl_tamc_output.$FS  ftltamc: ftl_tamc_output.$FS
3029    
3030    ftl_exe_target:
3031            @echo Update AD_CONFIG.h and make \$(EXE_FTL)
3032            @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "TangLin version" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN > ad_config.template
3033            @cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h
3034            @-rm -f ad_config.template
3035            \$(MAKE) -f \$(MAKEFILE) \$(EXE_FTL)
3036    
3037  ftl_input_code.$FS: \$(AD_FILES) \$(H_SRC_FILES)  ftl_input_code.$FS: \$(AD_FILES) \$(H_SRC_FILES)
3038          @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN > ftl_config.template          @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "TangLin version" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN > ad_config.template
3039          cmp ftl_config.template AD_CONFIG.h || cat ftl_config.template > AD_CONFIG.h          cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h
3040          -rm -f ftl_config.template          @-rm -f ad_config.template
3041          @make -f \$(MAKEFILE) \$(F77_PP_SRC_FILES)          @\$(MAKE) -f \$(MAKEFILE) \$(F77_PP_SRC_FILES)
3042          @make -f \$(MAKEFILE) \$(AD_FLOW_FILES)          @\$(MAKE) -f \$(MAKEFILE) \$(AD_FLOW_FILES)
3043          cat \$(AD_FLOW_FILES) \$(AD_FILES) | sed -f \$(TOOLSDIR)/remove_comments_sed > ftl_input_code.$FS          cat \$(AD_FLOW_FILES) \$(AD_FILES) | sed -f \$(TOOLSDIR)/remove_comments_sed > ftl_input_code.$FS
3044    
3045  ftl_taf_output.$FS: ftl_input_code.$FS  ftl_taf_output.$FS: ftl_input_code.$FS
# Line 3090  svd_touch: Line 3082  svd_touch:
3082          touch ad_taf_output.$FS ftl_taf_output.$FS          touch ad_taf_output.$FS ftl_taf_output.$FS
3083          \$(FC) \$(FFLAGS) \$(FOPTIM) -c ad_taf_output.$FS          \$(FC) \$(FFLAGS) \$(FOPTIM) -c ad_taf_output.$FS
3084          \$(FC) \$(FFLAGS) \$(FOPTIM) -c ftl_taf_output.$FS          \$(FC) \$(FFLAGS) \$(FOPTIM) -c ftl_taf_output.$FS
3085          @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN > ftl_config.template          @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "SVD version" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN > ad_config.template
3086          cmp ftl_config.template AD_CONFIG.h || cat ftl_config.template > AD_CONFIG.h          cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h
3087          -rm -f ftl_config.template          @-rm -f ad_config.template
3088    
3089  EOF  EOF
3090    
# Line 3321  printf "\n\n# DO NOT DELETE\n" >> $MAKEF Line 3313  printf "\n\n# DO NOT DELETE\n" >> $MAKEF
3313  printf "\n===  Done  ===\n"  printf "\n===  Done  ===\n"
3314    
3315  # Create special header files  # Create special header files
3316  $BASH $TOOLSDIR/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bPACKAGES_CONFIG_H "Disabled packages:" $DISABLED_PACKAGES " " "Enabled packages:" $ENABLED_PACKAGES > $PACKAGES_DOT_H".tmp"  $BASH $TOOLSDIR/convert_cpp_cmd2defines -bPACKAGES_CONFIG_H "Disabled packages:" $DISABLED_PACKAGES " " "Enabled packages:" $ENABLED_PACKAGES > $PACKAGES_DOT_H".tmp"
3317  if test ! -f $PACKAGES_DOT_H ; then  if test ! -f $PACKAGES_DOT_H ; then
3318      mv -f $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H      mv -f $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H
3319  else  else
# Line 3335  else Line 3327  else
3327      fi      fi
3328  fi  fi
3329  if test ! -f AD_CONFIG.h ; then  if test ! -f AD_CONFIG.h ; then
3330      $BASH $TOOLSDIR/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > AD_CONFIG.h      $BASH $TOOLSDIR/convert_cpp_cmd2defines "Default version" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > AD_CONFIG.h
3331  fi  fi
3332    
3333  #  Write the "state" for future records  #  Write the "state" for future records

Legend:
Removed from v.1.237  
changed lines
  Added in v.1.238

  ViewVC Help
Powered by ViewVC 1.1.22