/[MITgcm]/MITgcm_contrib/heimbach/OpenAD/code_regress/genmake2
ViewVC logotype

Diff of /MITgcm_contrib/heimbach/OpenAD/code_regress/genmake2

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

revision 1.8 by utke, Tue Jun 24 03:26:08 2008 UTC revision 1.14 by utke, Fri Aug 29 14:58:22 2008 UTC
# Line 2293  printf 'NON_AD_F77_SRC_FILES = ' > nonAD Line 2293  printf 'NON_AD_F77_SRC_FILES = ' > nonAD
2293  printf 'C_SRC_FILES = '   > csrclist.tmp  printf 'C_SRC_FILES = '   > csrclist.tmp
2294  printf 'F90_SRC_FILES = ' > F90srclist.tmp  printf 'F90_SRC_FILES = ' > F90srclist.tmp
2295  printf 'H_SRC_FILES = '   > hsrclist.tmp  printf 'H_SRC_FILES = '   > hsrclist.tmp
2296    printf 'AD_FLOW_FILES = ' > ad_flow_files.tmp
2297  alldirs="$SOURCEDIRS $INCLUDEDIRS ."  alldirs="$SOURCEDIRS $INCLUDEDIRS ."
2298  for d in $alldirs ; do  for d in $alldirs ; do
2299      deplist=      deplist=
# Line 2368  for d in $alldirs ; do Line 2369  for d in $alldirs ; do
2369                          echo    " \\"  >> hsrclist.tmp                          echo    " \\"  >> hsrclist.tmp
2370                          printf " $sf" >> hsrclist.tmp                          printf " $sf" >> hsrclist.tmp
2371                          ;;                          ;;
2372                        flow)
2373                            echo    " \\"  >> ad_flow_files.tmp
2374                            printf " $sf" >> ad_flow_files.tmp
2375                            ;;
2376                     esac                     esac
2377                  fi                  fi
2378              fi              fi
# Line 2378  for d in $alldirs ; do Line 2383  for d in $alldirs ; do
2383          echo "" >> srclinks.tmp          echo "" >> srclinks.tmp
2384          echo "#  These files are linked from $d" >> srclinks.tmp          echo "#  These files are linked from $d" >> srclinks.tmp
2385          echo "$deplist :" >> srclinks.tmp          echo "$deplist :" >> srclinks.tmp
2386          printf "\t\$(LN) %s/\$@ \$@\n" $d >> srclinks.tmp  # We need to make sure that the link isn't already there.
2387    # This may happen when make thinks that a header file has to be "remade"
2388    # because a module it depends on has changed.  In this case we do nothing.
2389            printf "\tif [ ! -L \$@ ]; then \$(LN) %s/\$@ \$@; fi\n" $d >> srclinks.tmp
2390        fi        fi
2391      fi      fi
2392  done  done
# Line 2393  echo "" >> nonADF77srclist.tmp Line 2401  echo "" >> nonADF77srclist.tmp
2401  echo "" >> csrclist.tmp  echo "" >> csrclist.tmp
2402  echo "" >> F90srclist.tmp  echo "" >> F90srclist.tmp
2403  echo "" >> hsrclist.tmp  echo "" >> hsrclist.tmp
2404    echo "" >> ad_flow_files.tmp
2405    
2406  if test -f $MAKEFILE ; then  if test -f $MAKEFILE ; then
2407      mv -f $MAKEFILE "$MAKEFILE.bak"      mv -f $MAKEFILE "$MAKEFILE.bak"
# Line 2510  cat nonADF77srclist.tmp >> $MAKEFILE Line 2519  cat nonADF77srclist.tmp >> $MAKEFILE
2519  cat csrclist.tmp        >> $MAKEFILE  cat csrclist.tmp        >> $MAKEFILE
2520  cat F90srclist.tmp      >> $MAKEFILE  cat F90srclist.tmp      >> $MAKEFILE
2521  cat hsrclist.tmp        >> $MAKEFILE  cat hsrclist.tmp        >> $MAKEFILE
2522    cat ad_flow_files.tmp   >> $MAKEFILE
2523    
2524  rm -f F77srclist.tmp nonADF77srclist.tmp csrclist.tmp hsrclist.tmp flist.tmp clist.tmp F90srclist.tmp  rm -f F77srclist.tmp nonADF77srclist.tmp csrclist.tmp F90srclist.tmp hsrclist.tmp ad_flow_files.tmp
2525    
2526  echo >> $MAKEFILE  echo >> $MAKEFILE
2527    
# Line 2523  echo >> $MAKEFILE Line 2533  echo >> $MAKEFILE
2533    
2534  echo 'F77_PP_SRC_FILES = $(F77_SRC_FILES:.F=.'$FS')'      >> $MAKEFILE  echo 'F77_PP_SRC_FILES = $(F77_SRC_FILES:.F=.'$FS')'      >> $MAKEFILE
2535  echo 'F90_PP_SRC_FILES = $(F90_SRC_FILES:.F90=.'$FS90')' >> $MAKEFILE  echo 'F90_PP_SRC_FILES = $(F90_SRC_FILES:.F90=.'$FS90')' >> $MAKEFILE
2536    echo 'OBJFILES= $(F77_SRC_FILES:.F=.o) $(C_SRC_FILES:.c=.o) $(F90_SRC_FILES:.F90=.o)' >> $MAKEFILE
2537    echo 'FLOFILES =  $(AD_FLOW_FILES:.flow=.flowdir)' >> $MAKEFILE
2538  echo >> $MAKEFILE  echo >> $MAKEFILE
2539  echo '.SUFFIXES:' >> $MAKEFILE  echo '.SUFFIXES:' >> $MAKEFILE
2540  echo '.SUFFIXES: .o .'$FS' .p .F .c .f'$FS90' .'$FS90' .FF90 .F90' >> $MAKEFILE  echo '.SUFFIXES: .o .'$FS' .p .F .c .f'$FS90' .'$FS90' .FF90 .F90 .flowdir .flow' >> $MAKEFILE
2541    
2542  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
2543    
2544  # all the source files linked from the various locations:  all: \$(EXECUTABLE)
2545  ALL_LINKED_FILES= \  \$(EXECUTABLE): \$(SPECIAL_FILES) \$(F77_SRC_FILES) \$(C_SRC_FILES) \$(H_SRC_FILES) \$(F90_SRC_FILES) \$(OBJFILES) \$(EMBEDDED_FILES)
2546  \$(F77_SRC_FILES) \          @echo Creating \$@ ...
2547  \$(C_SRC_FILES) \          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(LIBS)
2548  \$(H_SRC_FILES) \  depend:
2549  \$(F90_SRC_FILES) \          @make links
 \$(SPECIAL_FILES)  
   
 all: depend \$(EXECUTABLE)  
   
 depend: \$(ALL_LINKED_FILES)  
2550          \$(MAKEDEPEND) -o .$FS \$(DEFINES) \$(INCLUDES) \$(F77_SRC_FILES)          \$(MAKEDEPEND) -o .$FS \$(DEFINES) \$(INCLUDES) \$(F77_SRC_FILES)
2551          \$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE)          \$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE)
2552          -rm -f makedepend.out          -rm -f makedepend.out
2553    
2554  .PHONY: depend  lib: libmitgcmuv.a
2555    
2556  OBJFILES= \$(F77_SRC_FILES:.F=.o) \$(C_SRC_FILES:.c=.o) \$(F90_SRC_FILES:.F90=.o)  libmitgcmuv.a: \$(OBJFILES)
2557            ar rcv libmitgcmuv.a \$(OBJFILES)
2558            ar d   libmitgcmuv.a main.o
2559    
2560  \$(EXECUTABLE): \$(OBJFILES)  links: \$(F77_SRC_FILES) \$(C_SRC_FILES) \$(H_SRC_FILES) \$(F90_SRC_FILES) \$(SPECIAL_FILES)
2561          @echo Creating \$@ ...  
2562          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(LIBS)  small_f: \$(F77_PP_SRC_FILES) \$(F90_PP_SRC_FILES)
2563    
2564  output.txt: \$(EXECUTABLE)  output.txt: \$(EXECUTABLE)
2565          @printf 'running ... '          @printf 'running ... '
2566          @\$(EXECUTABLE) > \$@          @\$(EXECUTABLE) > \$@
2567    
2568    clean:
2569            -rm -rf *.p *.$FS90 *.mod ${RMFILES} work.{pc,pcl} *.template
2570            -rm -rf *.o
2571            -rm -rf *.$FS *.flowdir
2572            -rm -rf *.f$FS90 *_mod.h *_mod.F90 *.FF90 *.mod-whirl ad_input*
2573            -rm -rf temp.sed reslice.dat
2574    Clean:
2575            @make clean
2576            @make cleanlinks
2577            -rm -f \$(SPECIAL_FILES)
2578            -rm -f genmake_state genmake_*optfile genmake_warnings make.log run.log f90mkdepend.log *.bak
2579            -rm -f taf_command taf_output taf_ad.log taf_ad_flow.log
2580    CLEAN:
2581            @make Clean
2582            -find \$(EXEDIR) -name "*.meta" -exec rm {} \;
2583            -find \$(EXEDIR) -name "*.data" -exec rm {} \;
2584            -find \$(EXEDIR) -name "fort.*" -exec rm {} \;
2585            -rm -f \$(EXECUTABLE) \$(EXE_AD) *.txt STD* *diagnostics.log datetime
2586            -rm -f *_MIT_CE_000.opt0000 costfunction*0000
2587            -rm -rf mnc_test_*
2588    
2589    #eh3 Makefile: makefile
2590    makefile:
2591            $THIS_SCRIPT $G2ARGS
2592    cleanlinks:
2593            -find . -type l -exec rm {} \;
2594    
2595  # Special targets (SPECIAL_FILES) which are created by make  # Special targets (SPECIAL_FILES) which are created by make
2596  ${PACKAGES_DOT_H}:  ${PACKAGES_DOT_H}:
2597          @echo Creating \$@ ...          @echo Creating \$@ ...
# Line 2576  test ! "x$THISUSER" = x && echo "      -echo Line 2612  test ! "x$THISUSER" = x && echo "      -echo
2612  test ! "x$THISDATE" = x && echo "       -echo \"#define THISDATE '$THISDATE'\" >> \$@" >> $MAKEFILE  test ! "x$THISDATE" = x && echo "       -echo \"#define THISDATE '$THISDATE'\" >> \$@" >> $MAKEFILE
2613  test ! "x$THISHOST" = x && echo "       -echo \"#define THISHOST '$THISHOST'\" >> \$@" >> $MAKEFILE  test ! "x$THISHOST" = x && echo "       -echo \"#define THISHOST '$THISHOST'\" >> \$@" >> $MAKEFILE
2614    
2615    if test "x$EMBED_SRC" = xt ; then
2616        cat >>$MAKEFILE <<EOF
2617    
2618    decode_files.o : EMBEDDED_FILES.h
2619    
2620    ##  \$(F77_PP_SRC_FILES)
2621    all_fF.tar.gz : \$(SPECIAL_FILES) \$(F77_SRC_FILES) \$(C_SRC_FILES) \$(H_SRC_FILES) \$(F90_SRC_FILES) \$(F77_PP_SRC_FILES) Makefile
2622            @echo Creating \$@ ...
2623            -tar -hcf all_fF.tar \$(SPECIAL_FILES) \$(F77_SRC_FILES) \$(C_SRC_FILES) \$(H_SRC_FILES) \$(F90_SRC_FILES) \$(F77_PP_SRC_FILES) Makefile
2624            -rm -f all_fF.tar.gz
2625            -gzip all_fF.tar
2626    
2627    EMBEDDED_FILES.h : all_fF.tar.gz
2628            @echo Creating \$@ ...
2629            -\${ROOTDIR}/tools/embed_encode/encode_files EMBEDDED_FILES.h all_fF.tar.gz
2630    
2631    EOF
2632    fi
2633    
2634  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
2635    
2636  # The normal chain of rules is (  .F - .$FS - .o  )  # The normal chain of rules is (  .F - .$FS - .o  )
# Line 2594  cat >>$MAKEFILE <<EOF Line 2649  cat >>$MAKEFILE <<EOF
2649  .$FS90.o:  .$FS90.o:
2650          \$(F90C) \$(F90FLAGS) \$(F90OPTIM) -c \$<          \$(F90C) \$(F90FLAGS) \$(F90OPTIM) -c \$<
2651  .f$FS90.o:  .f$FS90.o:
2652          \$(F90C) \$(F90FLAGS) \$(F90OPTIM) -c \$(F90FIXEDFORMAT) \$<          cp \$< \$(basename  \$<).f90
2653            \$(F90C) \$(F90FLAGS) \$(F90OPTIM) -c \$(F90FIXEDFORMAT) \$(basename  \$<).f90
2654  .c.o:  .c.o:
2655          \$(CC) \$(CFLAGS) \$(DEFINES) \$(INCLUDES) -c \$<          \$(CC) \$(CFLAGS) \$(DEFINES) \$(INCLUDES) -c \$<
2656    .flow.flowdir:
2657            \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@
2658    
2659  # Special exceptions that use the ( .F - .p - .$FS - .o ) rule-chain  # Special exceptions that use the ( .F - .p - .$FS - .o ) rule-chain
2660  .F.p:  .F.p:
# Line 2604  cat >>$MAKEFILE <<EOF Line 2662  cat >>$MAKEFILE <<EOF
2662  .p.$FS:  .p.$FS:
2663          \$(KPP) \$(KFLAGS1)\$@ \$(KFLAGS2) \$<          \$(KPP) \$(KFLAGS1)\$@ \$(KFLAGS2) \$<
2664    
2665    EOF
2666    
2667  #=========================================  #=========================================
2668  #===  Cleanup Rules  ===  #===  Automatic Differentiation Rules  ===
2669    #===  for TAMC/TAF  ======================
2670    
2671  CLEAN: Clean  if test "x$OPENAD" == x ; then
         -find \$(EXEDIR) -name "*.meta" -exec rm {} \;  
         -find \$(EXEDIR) -name "*.data" -exec rm {} \;  
         -find \$(EXEDIR) -name "fort.*" -exec rm {} \;  
         -rm -f \$(EXECUTABLE) output.txt ad_output.txt STD*  
2672    
2673  Clean: clean cleanlinks  cat >>$MAKEFILE <<EOF
         -rm -f *.F  
         -rm -f \$(SPECIAL_FILES)  
         -rm -f genmake_state genmake_*optfile genmake_warnings make.log run.log *.bak  
2674    
2675  clean:  TAMC           = ${TAMC}
2676          -rm -rf *.o *.$FS *.p *.f$FS90 *.$FS90 *.mod ${RMFILES} work.{pc,pcl} *.template *_mod.h *_mod.F90 *.FF90 *.mod-whirl ad_input*  TAF            = ${TAF}
         -rm -rf temp.sed reslice.dat  
2677    
2678  cleanlinks:  TAF_EXTRA      = ${TAF_EXTRA}
2679          -find . -type l -exec rm {} \;  TAMC_EXTRA     = ${TAMC_EXTRA}
2680    
2681  .PHONY: clean Clean CLEAN  EOF
2682    
2683    ad_vars="AD_TAMC_FLAGS AD_TAF_FLAGS"
2684    ad_vars="$ad_vars FTL_TAMC_FLAGS FTL_TAF_FLAGS"
2685    ad_vars="$ad_vars SVD_TAMC_FLAGS SVD_TAF_FLAGS"
2686    for i in $ad_vars ; do
2687        name=$i
2688        t1="t2=\$"`echo "$i"`
2689        eval $t1
2690        printf "%-20s = " $name >> $MAKEFILE
2691        echo "$t2" | sed -e 's| \+| |g' >> $MAKEFILE
2692    done
2693    
2694  #=========================================  echo "  Add the source list for AD code generation"
2695  #===  self regeneration  ===  echo >> $MAKEFILE
2696  # can't call this target  "Makefile"  printf "AD_FILES = " >> $MAKEFILE
2697  # because unfortunately the genmake script  AD_FILES=`cat ad_files`
2698  # invoked here uses  for i in $AD_FILES ; do
2699  # make itself for checking things and we      echo    " \\" >> $MAKEFILE
2700  # end up in a recursion.        printf " $i" >> $MAKEFILE
2701    done
2702    echo >> $MAKEFILE
2703    rm -f ad_files
2704    
2705  makefile:  cat >>$MAKEFILE <<EOF
2706          $THIS_SCRIPT $G2ARGS  
2707    # ... AD ...
2708    adall: \$(EXE_AD)
2709    adtaf: ad_taf_output.$FS
2710    adtamc: ad_tamc_output.$FS
2711    
2712    ad_input_code.$FS: \$(AD_FILES) \$(H_SRC_FILES)
2713            @$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
2714            cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h
2715            -rm -f ad_config.template
2716            @make \$(F77_PP_SRC_FILES)
2717            @make \$(FLOFILES)
2718            cat \$(FLOFILES) \$(AD_FILES) > ad_input_code.$FS
2719    
2720    ad_taf_output.$FS: ad_input_code.$FS
2721            \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.$FS
2722            ls -l ad_input_code_ad.$FS
2723            cat ad_input_code_ad.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ad_taf_output.$FS
2724    
2725    adtafonly:
2726            \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.$FS
2727            ls -l ad_input_code_ad.$FS
2728            cat ad_input_code_ad.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ad_taf_output.$FS
2729    
2730    \${EXE_AD}: ad_taf_output.o \$(OBJFILES)
2731            \$(LINK) -o \${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_taf_output.o \$(LIBS)
2732    
2733    ad_tamc_output.$FS: ad_input_code.$FS
2734            \$(TAMC) \$(AD_TAMC_FLAGS) \$(TAMC_EXTRA) ad_input_code.$FS
2735            cat ad_input_code_ad.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ad_tamc_output.$FS
2736    
2737    ad_tamc: ad_tamc_output.o \$(OBJFILES)
2738            \$(LINK) -o ${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_tamc_output.o \$(LIBS)
2739    
2740    adonlyfwd:
2741            patch < \$(TOOLSDIR)/ad_taf_output.f.onlyfwd.diff
2742    
2743    adtrick:
2744            patch < \$(TOOLSDIR)/ad_taf_output.f.adtrick.diff
2745    
2746    # ... FTL ...
2747    ftlall: ftl_taf
2748    ftltaf: ftl_taf_output.$FS
2749    ftltamc: ftl_tamc_output.$FS
2750    
2751    ftl_input_code.$FS: \$(AD_FILES) \$(H_SRC_FILES)
2752            @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > ftl_config.template
2753            cmp ftl_config.template AD_CONFIG.h || cat ftl_config.template > AD_CONFIG.h
2754            -rm -f ftl_config.template
2755            @make \$(F77_PP_SRC_FILES)
2756            @make \$(AD_FLOW_FILES)
2757            cat \$(AD_FLOW_FILES) \$(AD_FILES) > ftl_input_code.$FS
2758    
2759    ftl_taf_output.$FS: ftl_input_code.$FS
2760            \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.$FS
2761            ls -l ftl_input_code_ftl.$FS
2762            cat ftl_input_code_ftl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_taf_output.$FS
2763    
2764    ftltafonly:
2765            \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.$FS
2766            ls -l ftl_input_code_ftl.$FS
2767            cat ftl_input_code_ftl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_taf_output.$FS
2768    
2769    ftl_taf: ftl_taf_output.o \$(OBJFILES)
2770            \$(LINK) -o ${EXE_FTL} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ftl_taf_output.o \$(LIBS)
2771    
2772    ftl_tamc_output.$FS: ftl_input_code.$FS
2773            \$(TAMC) \$(FTL_TAMC_FLAGS) \$(TAMC_EXTRA) ftl_input_code.$FS
2774            cat ftl_input_code_ftl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_tamc_output.$FS
2775    
2776    ftl_tamc: ftl_tamc_output.o \$(OBJFILES)
2777            \$(LINK) -o ${EXE_FTL} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ftl_tamc_output.o \$(LIBS)
2778    
2779    
2780    # ... SVD ...
2781    svdtaf: ad_taf_output.$FS ftl_taf_output.$FS
2782            @echo "--->>> Only ran TAF to generate SVD code!    <<<---"
2783            @echo "--->>> Do make svdall afterwards to compile. <<<---"
2784    svdall: svd_touch svd_taf
2785    
2786    svd_taf: \$(OBJFILES)
2787            \$(LINK) -o mitgcmuv_svd \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_taf_output.o ftl_taf_output.o \$(LIBS)
2788    
2789            @echo "--->>> Only COMPILE svd code! <<<---"
2790            @echo "--->>> Assumes you previously <<<---"
2791            @echo "--->>> did make svdtaf        <<<---"
2792    
2793    svd_touch:
2794            @echo "--->>> Only COMPILE svd code! <<<---"
2795            @echo "--->>> Assumes you previously <<<---"
2796            @echo "--->>> did make svdtaf        <<<---"
2797            touch ad_taf_output.$FS ftl_taf_output.$FS
2798            \$(FC) \$(FFLAGS) \$(FOPTIM) -c ad_taf_output.$FS
2799            \$(FC) \$(FFLAGS) \$(FOPTIM) -c ftl_taf_output.$FS
2800            @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > ftl_config.template
2801            cmp ftl_config.template AD_CONFIG.h || cat ftl_config.template > AD_CONFIG.h
2802            -rm -f ftl_config.template
2803    
2804    EOF
2805    
2806  # because the file is called Makefile  fi
 .PHONY: makefile  
2807    
2808  #====================================  #===  for OpenAD  ========================
2809  #===  Automatic Differentiation   ===  
2810    if test "x$OPENAD" != x ; then
2811    
2812    # ============ begin OpenAD specific section ==============
2813    
2814    cat >>$MAKEFILE <<EOF
2815    
2816    # all the source files linked from the various locations:
2817    ALL_LINKED_FILES= \
2818    \$(F77_SRC_FILES) \
2819    \$(C_SRC_FILES) \
2820    \$(H_SRC_FILES) \
2821    \$(F90_SRC_FILES) \
2822    \$(SPECIAL_FILES)
2823    
2824  ifndef OPENADROOT  ifndef OPENADROOT
2825    \$(error "Error:  environment variable OPENADROOT not defined!")    \$(error "Error:  environment variable OPENADROOT not defined!")
# Line 2689  done Line 2865  done
2865  echo >> $MAKEFILE  echo >> $MAKEFILE
2866  rm -f adSrcFiles.tmp  rm -f adSrcFiles.tmp
2867    
   
2868  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
2869    
 .PHONY: adAll  
2870  adAll: \$(EXE_AD) ncheckLev.conf  adAll: \$(EXE_AD) ncheckLev.conf
2871    .PHONY: adAll
2872    
2873  CB2M_F90_PP_SRC_FILES=\$(addsuffix _mod.f$FS90, \$(CB2M_F90_SRC_NAMES))  CB2M_F90_PP_SRC_FILES=\$(addsuffix _mod.f$FS90, \$(CB2M_F90_SRC_NAMES))
2874    
# Line 2706  adDepend: \$(ALL_LINKED_FILES) \$(addsuf Line 2881  adDepend: \$(ALL_LINKED_FILES) \$(addsuf
2881          -rm -f makedepend.out          -rm -f makedepend.out
2882    
2883  OPENAD_SUPPORT_F90_SRC_FILES = \  OPENAD_SUPPORT_F90_SRC_FILES = \
2884  w2f__types.f90 \  w2f__types.F90 \
2885  active_module.f90 \  OAD_active.F90 \
2886  OAD_cp.f90 \  OAD_cp.F90 \
2887  OAD_rev.f90 \  OAD_rev.F90 \
2888  OAD_tape.f90          OAD_tape.F90        
2889    
2890  OPENAD_SUPPORT_C_SRC_FILES = \  OPENAD_SUPPORT_C_SRC_FILES = \
2891  iaddr.c \  iaddr.c \
2892  timeRatio.c  timeRatio.c
2893    
2894  f95_test_mods.f90: \$(OPENAD_SUPPORT_F90_SRC_FILES)  f95_test_mods.f90: \$(OPENAD_SUPPORT_F90_SRC_FILES:F90=$FS90)
2895          cat \$^ > \$@          cat \$^ > \$@
2896    
2897  f95_test.f90: all_mods.xb.x2w.w2f.pp.f$FS90 \$(NON_AD_F77_SRC_FILES:.F=_cb2m.f$FS90) ad_input_code.w2f.canon.xb.x2w.w2f.rs.pp.f$FS90  f95_test.f90: all_mods.xb.x2w.w2f.pp.f$FS90 \$(NON_AD_F77_SRC_FILES:.F=_cb2m.f$FS90) ad_input_code.w2f.canon.xb.x2w.w2f.rs.pp.f$FS90
# Line 2726  f95_test.out: f95_test_mods.f90 f95_test Line 2901  f95_test.out: f95_test_mods.f90 f95_test
2901          f95 -fixed -w=unused -maxcontin=132 -c f95_test_mods.f90 > \$@ 2>&1          f95 -fixed -w=unused -maxcontin=132 -c f95_test_mods.f90 > \$@ 2>&1
2902          f95 -fixed -w=unused -maxcontin=132 -c -fixed f95_test.f90 >> \$@ 2>&1          f95 -fixed -w=unused -maxcontin=132 -c -fixed f95_test.f90 >> \$@ 2>&1
2903    
2904  AD_OBJ_FILES=\$(OPENAD_SUPPORT_F90_SRC_FILES:.f90=.o) \$(OPENAD_SUPPORT_C_SRC_FILES:.c=.o) all_mods.xb.x2w.w2f.pp.o  ad_input_code.w2f.canon.xb.x2w.w2f.rs.pp.o \$(NON_AD_F77_SRC_FILES:.F=_cb2m.o) \$(C_SRC_FILES:.c=.o) \$(F90_SRC_FILES:.F90=.o)  AD_OBJ_FILES=\$(OPENAD_SUPPORT_F90_SRC_FILES:.F90=.o) \$(OPENAD_SUPPORT_C_SRC_FILES:.c=.o) all_mods.xb.x2w.w2f.pp.o  ad_input_code.w2f.canon.xb.x2w.w2f.rs.pp.o \$(NON_AD_F77_SRC_FILES:.F=_cb2m.o) \$(C_SRC_FILES:.c=.o) \$(F90_SRC_FILES:.F90=.o)
2905    
2906  \$(EXE_AD): \$(ALL_LINKED_FILES) \$(addsuffix _mod.h, \$(CB2M_F90_SRC_NAMES)) \$(AD_OBJ_FILES)  \$(EXE_AD): \$(ALL_LINKED_FILES) \$(addsuffix _mod.h, \$(CB2M_F90_SRC_NAMES)) \$(AD_OBJ_FILES)
2907          @echo Creating \$@ ...          @echo Creating \$@ ...
# Line 2746  openad: ad_input_code.w2f.canon.xb.x2w.w Line 2921  openad: ad_input_code.w2f.canon.xb.x2w.w
2921    
2922  # change everybody else to use the new module files:  # change everybody else to use the new module files:
2923  %_cb2m.FF90 : %.F ${MODS}/cb2mUseModules.bash  %_cb2m.FF90 : %.F ${MODS}/cb2mUseModules.bash
2924          ${MODS}/cb2mUseModules.bash $<          ${MODS}/cb2mUseModules.bash $< ${MPI}
2925    
2926  # makefile debug rule  # makefile debug rule
2927  small_f: \$(CB2M_F90_PP_SRC_FILES)  small_f: \$(CB2M_F90_PP_SRC_FILES)
# Line 2863  whirl2f whirl2f_be: Line 3038  whirl2f whirl2f_be:
3038  openad_adm:  openad_adm:
3039          \$(LN) \${XAIFBOOSTERROOT}/xaifBooster/algorithms/BasicBlockPreaccumulationReverse/test/t \$@          \$(LN) \${XAIFBOOSTERROOT}/xaifBooster/algorithms/BasicBlockPreaccumulationReverse/test/t \$@
3040    
3041    # ============ end OpenAD specific section ==============
3042    
3043  EOF  EOF
3044    
3045    fi
3046    
3047    #=========================================
3048    
3049  if test "x$EXEHOOK" != x ; then  if test "x$EXEHOOK" != x ; then
3050      printf "\nexehook:\n\t%s\n" $EXEHOOK >> $MAKEFILE      printf "\nexehook:\n\t%s\n" $EXEHOOK >> $MAKEFILE
3051  fi  fi
# Line 2894  echo "  Add rules for links" Line 3075  echo "  Add rules for links"
3075  cat srclinks.tmp >> $MAKEFILE  cat srclinks.tmp >> $MAKEFILE
3076  rm -f srclinks.tmp  rm -f srclinks.tmp
3077    
3078    echo "  Adding makedepend marker"
3079    printf "\n\n# DO NOT DELETE\n" >> $MAKEFILE
3080    
3081  printf "\n===  Done  ===\n"  printf "\n===  Done  ===\n"
3082    
3083  # Create special header files  # Create special header files

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

  ViewVC Help
Powered by ViewVC 1.1.22