/[MITgcm]/MITgcm/verification/OpenAD/code_ad/genmake2
ViewVC logotype

Diff of /MITgcm/verification/OpenAD/code_ad/genmake2

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.14 by utke, Wed Nov 2 22:13:36 2005 UTC revision 1.15 by utke, Thu Nov 3 16:30:27 2005 UTC
# Line 2017  KFLAGS2 = ${KFLAGS2} Line 2017  KFLAGS2 = ${KFLAGS2}
2017  # Optim./debug for FC  # Optim./debug for FC
2018  FFLAGS = ${FFLAGS}  FFLAGS = ${FFLAGS}
2019  FOPTIM = ${FOPTIM}  FOPTIM = ${FOPTIM}
2020  # Optim./debug for FC  # Optim./debug/format for FC
2021  F90FLAGS = ${F90FLAGS}  F90FLAGS = ${F90FLAGS}
2022  F90OPTIM = ${F90OPTIM}  F90OPTIM = ${F90OPTIM}
2023    F90FIXEDFORMAT = ${F90FIXEDFORMAT}
2024  # Flags for CC  # Flags for CC
2025  CFLAGS = ${CFLAGS}  CFLAGS = ${CFLAGS}
2026  # Files that should not be optimized  # Files that should not be optimized
# Line 2044  echo >> $MAKEFILE Line 2045  echo >> $MAKEFILE
2045  # add definitions for preprocessed sources  # add definitions for preprocessed sources
2046  # and note that not all systems allow case sensitive extensions  # and note that not all systems allow case sensitive extensions
2047  # hence the $FS and $FS90 here.  # hence the $FS and $FS90 here.
2048    # for fixed format f90 files we use ff90 or FF90 resp
2049    # but these are not expected to be the original source files
2050    
2051  echo 'F77_PP_SRC_FILES = $(F77_SRC_FILES:.F=.'$FS')'      >> $MAKEFILE  echo 'F77_PP_SRC_FILES = $(F77_SRC_FILES:.F=.'$FS')'      >> $MAKEFILE
2052  echo 'F90_PP_SRC_FILES = $(F90_SRC_FILES:.F90=.'$FS90')' >> $MAKEFILE  echo 'F90_PP_SRC_FILES = $(F90_SRC_FILES:.F90=.'$FS90')' >> $MAKEFILE
2053  echo >> $MAKEFILE  echo >> $MAKEFILE
2054  echo '.SUFFIXES:' >> $MAKEFILE  echo '.SUFFIXES:' >> $MAKEFILE
2055  echo '.SUFFIXES: .o .'$FS' .p .F .c .'$FS90' .F90' >> $MAKEFILE  echo '.SUFFIXES: .o .'$FS' .p .F .c .f'$FS90' .'$FS90' .FF90 .F90' >> $MAKEFILE
2056    
2057  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
2058    
# Line 2113  cat >>$MAKEFILE <<EOF Line 2116  cat >>$MAKEFILE <<EOF
2116          \$(FC) \$(FFLAGS) \$(FOPTIM) -c \$<          \$(FC) \$(FFLAGS) \$(FOPTIM) -c \$<
2117  .F90.$FS90:  .F90.$FS90:
2118          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@
2119    .FF90.f$FS90:
2120            \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@
2121  .$FS90.o:  .$FS90.o:
2122          \$(F90C) \$(F90FLAGS) \$(F90OPTIM) -c \$<          \$(F90C) \$(F90FLAGS) \$(F90OPTIM) -c \$<
2123    .f$FS90.o:
2124            \$(F90C) \$(F90FIXEDFORMAT) \$(F90FLAGS) \$(F90OPTIM) -c \$<
2125  .c.o:  .c.o:
2126          \$(CC) \$(CFLAGS) -c \$<          \$(CC) \$(CFLAGS) -c \$<
2127    
# Line 2139  Clean: clean cleanlinks Line 2146  Clean: clean cleanlinks
2146          -rm -f genmake_state genmake_*optfile genmake_warnings make.log run.log *.bak          -rm -f genmake_state genmake_*optfile genmake_warnings make.log run.log *.bak
2147    
2148  clean:  clean:
2149          -rm -rf *.o *.$FS *.p *.$FS90 *.mod ${RMFILES} work.{pc,pcl} *.template *_mod.h *_mod.F90 *.mod-whirl ad_input*          -rm -rf *.o *.$FS *.p *.f$FS90 *.$FS90 *.mod ${RMFILES} work.{pc,pcl} *.template *_mod.h *_mod.F90 *.mod-whirl ad_input*
2150            -rm -rf script.sed reslice.dat
2151    
2152  cleanlinks:  cleanlinks:
2153          -find . -type l -exec rm {} \;          -find . -type l -exec rm {} \;
# Line 2197  cat >>$MAKEFILE <<EOF Line 2205  cat >>$MAKEFILE <<EOF
2205  # to pick these out automatically  # to pick these out automatically
2206  # but we will be using the  # but we will be using the
2207  # canonicalizer anyway  # canonicalizer anyway
2208  CANON_F90_SRC_NAMES = \  CB2M_F90_SRC_NAMES = \
2209  SIZE \  SIZE \
2210  EEPARAMS \  EEPARAMS \
2211  PARAMS \  PARAMS \
# Line 2237  grdchk Line 2245  grdchk
2245  .PHONY: adAll  .PHONY: adAll
2246  adAll: adDepend \$(EXE_AD)  adAll: adDepend \$(EXE_AD)
2247    
2248  CANON_F90_SRC_FILES= \  # these are all fixed format:
2249  \$(addsuffix _mod.F90, \$(CANON_F90_SRC_NAMES))  CB2M_F77_TO_FF90_SRC_FILES=\$(F77_SRC_FILES:.F=_cb2m.FF90)
2250  CANON_F77_SRC_FILES= \  CB2M_F90_SRC_FILES=\$(addsuffix _mod.FF90, \$(CB2M_F90_SRC_NAMES))
2251  \$(F77_SRC_FILES:.F=_cb2m.F)  CB2M_F90_PP_SRC_FILES=\$(addsuffix _mod.f'$FS90', \$(CB2M_F90_SRC_NAMES))
2252    
2253  .PHONY: adDepend  .PHONY: adDepend
2254  adDepend: \$(ALL_LINKED_FILES) \$(CANON_F77_SRC_FILES) \$(CANON_F90_SRC_FILES)  adDepend: \$(ALL_LINKED_FILES) \$(CB2M_F90_SRC_FILES) \$(CB2M_F77_TO_FF90_SRC_FILES)
2255          \$(MAKEDEPEND) -o .$FS \$(DEFINES) \$(INCLUDES) \$(CANON_F77_SRC_FILES)          \$(MAKEDEPEND) -o .$FS \$(DEFINES) \$(INCLUDES) \$(CB2M_F77_TO_FF90_SRC_FILES)
2256          \$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE)          \$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE)
2257          -rm -f makedepend.out          -rm -f makedepend.out
2258    
# Line 2259  OpenAD_tape.f90 Line 2267  OpenAD_tape.f90
2267  OPENAD_SUPPORT_C_SRC_FILES = \  OPENAD_SUPPORT_C_SRC_FILES = \
2268  iaddr.c  iaddr.c
2269    
2270  AD_OBJ_FILES=ad_input_code.w2f.canon.xb.x2w.w2f.rs.pp.o  AD_OBJ_FILES=\$(OPENAD_SUPPORT_F90_SRC_FILES:.f90=.o) \$(OPENAD_SUPPORT_C_SRC_FILES:.c=.o) ad_input_code.w2f.canon.xb.x2w.w2f.rs.pp.o
2271    
2272  \$(EXE_AD): \$(OPENAD_SUPPORT_F90_SRC_FILES:.f90=.o) \$(OPENAD_SUPPORT_C_SRC_FILES:.c=.o) \$(AD_OBJ_FILES)  \$(EXE_AD): \$(AD_OBJ_FILES)
2273          @echo Creating \$@ ...          @echo Creating \$@ ...
2274          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$* \$(LIBS)          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$* \$(LIBS)
2275    
# Line 2271  openad: ad_input_code.w2f.canon.xb.x2w.w Line 2279  openad: ad_input_code.w2f.canon.xb.x2w.w
2279    
2280  CB2MFILES= cb2m1.csh cb2m1.awk cb2m2.bash  CB2MFILES= cb2m1.csh cb2m1.awk cb2m2.bash
2281  # create the module files:  # create the module files:
2282  \$(CANON_F90_SRC_FILES) : \$(ALL_LINKED_FILES) \$(CB2MFILES)  \$(CB2M_F90_SRC_FILES) : \$(ALL_LINKED_FILES) \$(CB2MFILES)
2283          ./cb2m1.csh \$(CANON_F90_SRC_NAMES)          ./cb2m1.csh \$(CB2M_F90_SRC_NAMES)
2284    
2285  # change everybody else to use the module files:  # change everybody else to use the module files:
2286  \$(CANON_F77_SRC_FILES): \$(CANON_F90_SRC_FILES)  \$(CB2M_F77_TO_FF90_SRC_FILES): \$(CB2M_F90_SRC_FILES)
2287          ./cb2m2.bash          ./cb2m2.bash
2288    
 # there is no extra extension for now  
 CANON_F90_PP_SRC_FILES=\$(addsuffix _mod.'$FS90', \$(CANON_F90_SRC_NAMES))  
   
 ## special preprocessor rule:  
 #\$(CANON_F90_PP_SRC_FILES): \$(CANON_F90_SRC_FILES)  
 #       \$(FC) -c -fixed \$^  
   
2289  # makefile debug rule  # makefile debug rule
2290  small_f: \$(CANON_F77_PP_SRC_FILES) \$(CANON_F90_PP_SRC_FILES)  small_f: \$(CB2M_F77_PP_SRC_FILES) \$(CB2M_F90_PP_SRC_FILES)
2291  .PHONY: small_f  .PHONY: small_f
2292    
2293  ad_output.txt: \$(AD_EXE)  ad_output.txt: \$(AD_EXE)
2294          @printf 'running ... '          @printf 'running ... '
2295          @\$(AD_EXE) > \$@          @\$(AD_EXE) > \$@
2296    
2297  CANON_AD_FILES=\$(AD_FILES:.f=_cb2m.f)  CB2M_AD_FILES=\$(AD_FILES:.f=_cb2m.ff90)
2298  ad_input_code.$FS: \$(CANON_AD_FILES)  ad_input_code.$FS: \$(CB2M_AD_FILES)
2299  #       @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -DALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > ad_config.template  #       @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -DALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > ad_config.template
2300  #       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
2301  #       -rm -f ad_config.template  #       -rm -f ad_config.template
2302          cat \$(CANON_AD_FILES) > ad_input_code.$FS          cat \$(CB2M_AD_FILES) > ad_input_code.$FS
2303    
2304  \$(CB2MFILES):  \$(CB2MFILES):
2305          \$(LN) \$(addprefix ../code_ad/, \$(CB2MFILES)) .          \$(LN) \$(addprefix ../code_ad/, \$(CB2MFILES)) .

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.15

  ViewVC Help
Powered by ViewVC 1.1.22