/[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.240 by jmc, Sat Sep 8 20:16:23 2012 UTC revision 1.242 by heimbach, Thu Sep 20 23:12:47 2012 UTC
# Line 2482  if test "x$OPENAD" != x ; then Line 2482  if test "x$OPENAD" != x ; then
2482      OAD_DONT_TRANSFORM="/dev/null"      OAD_DONT_TRANSFORM="/dev/null"
2483      OAD_KEEP_ORIGINAL="/dev/null"      OAD_KEEP_ORIGINAL="/dev/null"
2484      OAD_CB2M_FILES="/dev/null"      OAD_CB2M_FILES="/dev/null"
2485        OADTOOLS="$TOOLSDIR/OAD_support"
2486        test -f "oadtempflile"  &&  \rm -f "oadtempflile"
2487    cat >> "oadtempflile" <<EOF
2488    $OADTOOLS
2489    EOF
2490      echo "  looking for dontCompile file:  "      echo "  looking for dontCompile file:  "
2491      for i in "." $MODS ; do      for i in "." $MODS ; do
2492          if test -r $i"/dontCompile" ; then          if test -r $i"/dontCompile" ; then
# Line 2689  INCLUDEDIRS = ${INCLUDEDIRS} Line 2694  INCLUDEDIRS = ${INCLUDEDIRS}
2694  EXEDIR      = ${EXEDIR}  EXEDIR      = ${EXEDIR}
2695  EXECUTABLE  = \$(EXEDIR)/${EXECUTABLE}  EXECUTABLE  = \$(EXEDIR)/${EXECUTABLE}
2696  TOOLSDIR    = ${TOOLSDIR}  TOOLSDIR    = ${TOOLSDIR}
2697    OADTOOLS    = ${OADTOOLS}
2698    
2699  #eh3  new defines for the adjoint work  #eh3  new defines for the adjoint work
2700  AUTODIFF    = ${ROOTDIR}/pkg/autodiff  AUTODIFF    = ${ROOTDIR}/pkg/autodiff
# Line 2712  fi Line 2718  fi
2718  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
2719  # Unix ln (link)  # Unix ln (link)
2720  LN = ${LN}  LN = ${LN}
 # C preprocessor  
 CPP = cat \$< | ${S64} | ${CPP}  
2721  # Dependency generator  # Dependency generator
2722  MAKEDEPEND = ${MAKEDEPEND}  MAKEDEPEND = ${MAKEDEPEND}
2723  # Special preprocessor (KAP on DECs, FPP on Crays)  # Special preprocessor (KAP on DECs, FPP on Crays)
# Line 2896  cat >>$MAKEFILE <<EOF Line 2900  cat >>$MAKEFILE <<EOF
2900  ## This nullifies any default implicit rules concerning these two file types:  ## This nullifies any default implicit rules concerning these two file types:
2901  ## %.o : %.F  ## %.o : %.F
2902    
2903    # C preprocessing and replacing the _d in constants:
2904    CPPCMD = cat \$< | ${CPP} \$(DEFINES) \$(INCLUDES) | ${S64}
2905    
2906  .F.$FS:  .F.$FS:
2907          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@          \$(CPPCMD)  > \$@
2908  .$FS.o:  .$FS.o:
2909          \$(FC) \$(FFLAGS) \$(FOPTIM) -c \$<          \$(FC) \$(FFLAGS) \$(FOPTIM) -c \$<
2910  .F.o:  .F.o:
2911          \$(FC) \$(FFLAGS) \$(FOPTIM) -c \$<          \$(FC) \$(FFLAGS) \$(FOPTIM) -c \$<
2912  .F90.$FS90:  .F90.$FS90:
2913          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@          \$(CPPCMD)  > \$@
2914  .FF90.f$FS90:  .FF90.f$FS90:
2915          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@          \$(CPPCMD)  > \$@
2916  .$FS90.o:  .$FS90.o:
2917          \$(F90C) \$(F90FLAGS) \$(F90OPTIM) -c \$<          \$(F90C) \$(F90FLAGS) \$(F90OPTIM) -c \$<
2918  .f$FS90.o:  .f$FS90.o:
# Line 2914  cat >>$MAKEFILE <<EOF Line 2921  cat >>$MAKEFILE <<EOF
2921  .c.o:  .c.o:
2922          \$(CC) \$(CFLAGS) \$(DEFINES) \$(INCLUDES) -c \$<          \$(CC) \$(CFLAGS) \$(DEFINES) \$(INCLUDES) -c \$<
2923  .flow.flowdir:  .flow.flowdir:
2924          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@          \$(CPPCMD) > \$@
2925    
2926  # Special exceptions that use the ( .F - .p - .$FS - .o ) rule-chain  # Special exceptions that use the ( .F - .p - .$FS - .o ) rule-chain
2927  .F.p:  .F.p:
2928          \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@          \$(CPPCMD) > \$@
2929  .p.$FS:  .p.$FS:
2930          \$(KPP) \$(KFLAGS1)\$@ \$(KFLAGS2) \$<          \$(KPP) \$(KFLAGS1)\$@ \$(KFLAGS2) \$<
2931    
# Line 3184  AD_OBJ_FILES_S2=\$(AD_OBJ_FILES_S1) \$(N Line 3191  AD_OBJ_FILES_S2=\$(AD_OBJ_FILES_S1) \$(N
3191          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(AD_OBJ_FILES_S2) \$(LIBS)          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(AD_OBJ_FILES_S2) \$(LIBS)
3192    
3193  # create sources files modules from header files containing common blocks  # create sources files modules from header files containing common blocks
3194  %_mod.FF90 : %.h ../OAD_support/cb2mGetModules.csh ../OAD_support/cb2mGetModules.awk  %_mod.FF90 : %.h \${OADTOOLS}/cb2mGetModules.csh \${OADTOOLS}/cb2mGetModules.awk
3195          ../OAD_support/cb2mGetModules.csh $< ../OAD_support/cb2mGetModules.awk          \${OADTOOLS}/cb2mGetModules.csh $< \${OADTOOLS}/cb2mGetModules.awk
3196    
3197  # create new header files with USE statements for the new modules made above  # create new header files with USE statements for the new modules made above
3198  %_mod.h : %.h ../OAD_support/cb2mGetHeaders.csh ../OAD_support/cb2mGetHeaders.awk  %_mod.h : %.h \${OADTOOLS}/cb2mGetHeaders.csh \${OADTOOLS}/cb2mGetHeaders.awk
3199          ../OAD_support/cb2mGetHeaders.csh $< ../OAD_support/cb2mGetHeaders.awk \$(CB2M_F90_SRC_NAMES)          \${OADTOOLS}/cb2mGetHeaders.csh $< \${OADTOOLS}/cb2mGetHeaders.awk \$(CB2M_F90_SRC_NAMES)
3200    
3201  # change the include directives of everybody to refer to  the new header files with the USE statements  # change the include directives of everybody to refer to  the new header files with the USE statements
3202  %_cb2m.FF90 : %.F ../OAD_support/cb2mUseModules.bash  %_cb2m.FF90 : %.F \${OADTOOLS}/cb2mUseModules.bash
3203          ../OAD_support/cb2mUseModules.bash $< ${MPI}          \${OADTOOLS}/cb2mUseModules.bash $< ${MPI}
3204    
3205  # makefile debug rule  # makefile debug rule
3206  small_f: \$(CB2M_F90_PP_SRC_FILES)  small_f: \$(CB2M_F90_PP_SRC_FILES)
# Line 3215  ad_input_code_sf.pre.f90 : \$(CB2M_AD_FI Line 3222  ad_input_code_sf.pre.f90 : \$(CB2M_AD_FI
3222    
3223  # replace stop statements (to avoid the implied unstructured control flow)  with print statements  # replace stop statements (to avoid the implied unstructured control flow)  with print statements
3224  ad_input_code_sf.pre.s2p.f90 : ad_input_code_sf.pre.f90  ad_input_code_sf.pre.s2p.f90 : ad_input_code_sf.pre.f90
3225          cat \$< | sed -f ../OAD_support/stop2print.sed > ad_input_code_sf.pre.s2p.f90          cat \$< | sed -f \${OADTOOLS}/stop2print.sed > ad_input_code_sf.pre.s2p.f90
3226    
3227  # F -> WHIRL  # F -> WHIRL
3228  ad_input_code_sf.pre.s2p.B: ad_input_code_sf.pre.s2p.f90  ad_input_code_sf.pre.s2p.B: ad_input_code_sf.pre.s2p.f90
# Line 3238  ad_input_code_sf.pre.s2p.xb.x2w.w2f.f$FS Line 3245  ad_input_code_sf.pre.s2p.xb.x2w.w2f.f$FS
3245          \${OPEN64ROOT}/whirl2f/whirl2f -FLIST:ftn_file=\$@ -openad \$<          \${OPEN64ROOT}/whirl2f/whirl2f -FLIST:ftn_file=\$@ -openad \$<
3246    
3247  # insert template directives  # insert template directives
3248  ad_input_code_sf.pre.s2p.xb.x2w.w2f.td.f$FS90: ad_input_code_sf.pre.s2p.xb.x2w.w2f.f$FS90 ../OAD_support/insertTemplateDir.bash  ad_input_code_sf.pre.s2p.xb.x2w.w2f.td.f$FS90: ad_input_code_sf.pre.s2p.xb.x2w.w2f.f$FS90 \${OADTOOLS}/insertTemplateDir.bash
3249          ../OAD_support/insertTemplateDir.bash \$< \$@          \${OADTOOLS}/insertTemplateDir.bash \$< \$@
3250    
3251  PPEXTRAS=\$(wildcard ../OAD_support/ad_template.*.F) ../OAD_support/ad_inline.F  PPEXTRAS=\$(wildcard \${OADTOOLS}/ad_template.*.F) \${OADTOOLS}/ad_inline.F
3252  # postprocess F'  # postprocess F'
3253  postProcess.tag: ad_input_code_sf.pre.s2p.xb.x2w.w2f.td.f$FS90 \$(PPEXTRAS:.F=.f) | w2f__types.f90  postProcess.tag: ad_input_code_sf.pre.s2p.xb.x2w.w2f.td.f$FS90 \$(PPEXTRAS:.F=.f) | w2f__types.f90
3254          \${OPENADFORTTK_BASE}/tools/SourceProcessing/postProcess.py --progress --timing --infoUnitFile w2f__types.f90 --outputFormat=fixed --separateOutput --pathSuffix "" --filenameSuffix "_oad" -m r -i ../OAD_support/ad_inline.f \$<          \${OPENADFORTTK_BASE}/tools/SourceProcessing/postProcess.py --progress --timing --infoUnitFile w2f__types.f90 --outputFormat=fixed --separateOutput --pathSuffix "" --filenameSuffix "_oad" -m r -i \${OADTOOLS}/ad_inline.f \$<
3255          # the target is a placeholder to trigger a single execution of the rule          # the target is a placeholder to trigger a single execution of the rule
3256          touch \$@          touch \$@
3257  # put this so make knows about the postprocessing output  # put this so make knows about the postprocessing output
# Line 3256  OAD_intrinsics_oad.f \$(CB2M_AD_FILES:.f Line 3263  OAD_intrinsics_oad.f \$(CB2M_AD_FILES:.f
3263    
3264  # link the support files:  # link the support files:
3265  \$(OPENAD_SUPPORT_F90_SRC_FILES) \$(OPENAD_SUPPORT_C_SRC_FILES):  \$(OPENAD_SUPPORT_F90_SRC_FILES) \$(OPENAD_SUPPORT_C_SRC_FILES):
3266          \$(LN) ../OAD_support/\$@ .          \$(LN) \${OADTOOLS}/\$@ .
3267    
3268  AD_CLEAN += *_mod.h *_mod.F90 *.FF90 *.mod-whirl temp.sed oad_cp.* postProcess.tag \$(PPEXTRAS:.F=.f)  AD_CLEAN += *_mod.h *_mod.F90 *.FF90 *.mod-whirl temp.sed oad_cp.* postProcess.tag oadtempflile \$(PPEXTRAS:.F=.f)
3269    
3270  # ============ end OpenAD specific section ==============  # ============ end OpenAD specific section ==============
3271    

Legend:
Removed from v.1.240  
changed lines
  Added in v.1.242

  ViewVC Help
Powered by ViewVC 1.1.22