/[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.264 by jmc, Sat Jan 25 18:25:49 2014 UTC revision 1.272 by heimbach, Fri Jul 3 21:33:55 2015 UTC
# Line 22  Usage: "$0" [OPTIONS] Line 22  Usage: "$0" [OPTIONS]
22      -oad | --oad      -oad | --oad
23            Generate a Makefile for an OpenAD built            Generate a Makefile for an OpenAD built
24    
25        -nocat4ad | -dog4ad | -ncad | -dad
26              do not concatenate (cat) source code sent to TAF
27              resulting in compilation of multiple files
28    
29      -adoptfile NAME | --adoptfile NAME | -adof NAME | --adof NAME      -adoptfile NAME | --adoptfile NAME | -adof NAME | --adof NAME
30        -adoptfile=NAME | --adoptfile=NAME | -adof=NAME | --adof=NAME        -adoptfile=NAME | --adoptfile=NAME | -adof=NAME | --adof=NAME
31            Use "NAME" as the adoptfile.  By default, the file at            Use "NAME" as the adoptfile.  By default, the file at
# Line 1083  EOF Line 1087  EOF
1087  }  }
1088    
1089  check_lapack_libs()  {  check_lapack_libs()  {
1090      if test ! "x$SKIP_LAPACK_CHECK" = x ; then      if test "x$CHECK_FOR_LAPACK" = xf ; then return ; fi
         return  
     fi  
1091      echo >> $LOGFILE      echo >> $LOGFILE
1092      echo "running: check_lapack_libs()" >> $LOGFILE      echo "running: check_lapack_libs()" >> $LOGFILE
1093      cat <<EOF > genmake_tla.F      cat <<EOF > genmake_tla.F
# Line 1281  GSL= Line 1283  GSL=
1283  DEVEL=  DEVEL=
1284  HAVE_TEST_L=  HAVE_TEST_L=
1285    
1286  # comment this line out to enable lapack test  # set this to "t" to enable lapack test
1287  SKIP_LAPACK_CHECK=t  CHECK_FOR_LAPACK=f
1288    
1289  # DEFINES checked by test compilation or command-line  # DEFINES checked by test compilation or command-line
1290  HAVE_SYSTEM=  HAVE_SYSTEM=
# Line 1330  FS90= Line 1332  FS90=
1332    
1333  AUTODIFF_PKG_USED=f  AUTODIFF_PKG_USED=f
1334  OPENAD=  OPENAD=
1335    OPENAD_DIVA=
1336  AD_OPTFILE=  AD_OPTFILE=
1337    CAT_SRC_FOR_TAF=1
1338  TAF=  TAF=
1339  AD_TAF_FLAGS=  AD_TAF_FLAGS=
1340  FTL_TAF_FLAGS=  FTL_TAF_FLAGS=
# Line 1413  for ac_option in "$@" ; do Line 1417  for ac_option in "$@" ; do
1417              OPTFILE=$ac_optarg ;;              OPTFILE=$ac_optarg ;;
1418    
1419          -oad | --oad)          -oad | --oad)
1420              OPENAD="true" ;;              OPENAD="true" ; ALWAYS_USE_F90=1 ;;
1421            -nocat4ad | -dog4ad | -ncad | -dad)
1422                CAT_SRC_FOR_TAF=0 ;;
1423          -adoptfile | --adoptfile | -adof | --adof)          -adoptfile | --adoptfile | -adof | --adof)
1424              ac_prev=AD_OPTFILE ;;              ac_prev=AD_OPTFILE ;;
1425          -adoptfile=* | --adoptfile=* | -adof=* | --adof=*)          -adoptfile=* | --adoptfile=* | -adof=* | --adof=*)
1426              AD_OPTFILE=$ac_optarg ;;              AD_OPTFILE=$ac_optarg ;;
1427    
1428            -diva | --diva)
1429                OPENAD_DIVA="ALLOW_OPENAD_DIVA=" ;;
1430    
1431          -pdepend | --pdepend)          -pdepend | --pdepend)
1432              ac_prev=PKG_DEPEND ;;              ac_prev=PKG_DEPEND ;;
1433          -pdepend=* | --pdepend=*)          -pdepend=* | --pdepend=*)
# Line 1585  done Line 1594  done
1594    
1595  #TMP=./genmk_$$  #TMP=./genmk_$$
1596  #- try to put temporary files in system-local /tmp dir  #- try to put temporary files in system-local /tmp dir
1597  TMP=/tmp/genmk_$$  TMP=/tmp/genmk_${USER}_$$
1598  touch $TMP ; retVal=$?  touch $TMP ; retVal=$?
1599  if [ $retVal -eq 0 ] ; then  if [ $retVal -eq 0 ] ; then
1600    if test ! -r $TMP ; then TMP=./genmk_$$ ; fi    if test ! -r $TMP ; then TMP=./genmk_$$ ; fi
# Line 2633  if test "x$OPENAD" != x ; then Line 2642  if test "x$OPENAD" != x ; then
2642      OAD_CB2M_FILES="/dev/null"      OAD_CB2M_FILES="/dev/null"
2643      OADTOOLS="$TOOLSDIR/OAD_support"      OADTOOLS="$TOOLSDIR/OAD_support"
2644      echo "  looking for dontCompile file:  "      echo "  looking for dontCompile file:  "
2645      for i in "." $MODS ; do      for i in "." $MODS $OADTOOLS ; do
2646          if test -r $i"/dontCompile" ; then          if test -r $i"/dontCompile" ; then
2647              OAD_DONT_COMPILE=$i"/dontCompile"              OAD_DONT_COMPILE=$i"/dontCompile"
2648              echo "     found $OAD_DONT_COMPILE"              echo "     found $OAD_DONT_COMPILE"
# Line 2641  if test "x$OPENAD" != x ; then Line 2650  if test "x$OPENAD" != x ; then
2650          fi          fi
2651      done      done
2652      echo "  looking for dontTransform file:  "      echo "  looking for dontTransform file:  "
2653      for i in "." $MODS ; do      for i in "." $MODS $OADTOOLS ; do
2654          if test -r $i"/dontTransform" ; then          if test -r $i"/dontTransform" ; then
2655              OAD_DONT_TRANSFORM=$i"/dontTransform"              OAD_DONT_TRANSFORM=$i"/dontTransform"
2656              echo "     found $OAD_DONT_TRANSFORM"              echo "     found $OAD_DONT_TRANSFORM"
# Line 2649  if test "x$OPENAD" != x ; then Line 2658  if test "x$OPENAD" != x ; then
2658          fi          fi
2659      done      done
2660      echo "  looking for keepOriginal file:  "      echo "  looking for keepOriginal file:  "
2661      for i in "." $MODS ; do      for i in "." $MODS $OADTOOLS ; do
2662          if test -r $i"/keepOriginal" ; then          if test -r $i"/keepOriginal" ; then
2663              OAD_KEEP_ORIGINAL=$i"/keepOriginal"              OAD_KEEP_ORIGINAL=$i"/keepOriginal"
2664              echo "     found $OAD_KEEP_ORIGINAL"              echo "     found $OAD_KEEP_ORIGINAL"
# Line 2657  if test "x$OPENAD" != x ; then Line 2666  if test "x$OPENAD" != x ; then
2666          fi          fi
2667      done      done
2668      echo "  looking for cb2mFiles:  "      echo "  looking for cb2mFiles:  "
2669      for i in "." $MODS ; do      for i in "." $MODS $OADTOOLS ; do
2670          if test -r $i"/cb2mFiles" ; then          if test -r $i"/cb2mFiles" ; then
2671              OAD_CB2M_FILES=$i"/cb2mFiles"              OAD_CB2M_FILES=$i"/cb2mFiles"
2672              echo "     found $OAD_CB2M_FILES"              echo "     found $OAD_CB2M_FILES"
# Line 2885  F90C = ${F90C} Line 2894  F90C = ${F90C}
2894  CC = ${CC}  CC = ${CC}
2895  # Link editor  # Link editor
2896  LINK = ${LINK} ${LDADD}  LINK = ${LINK} ${LDADD}
2897    export $OPENAD_DIVA
2898    
2899  # Defines for CPP  # Defines for CPP
2900  DEFINES = ${DEFINES}  DEFINES = ${DEFINES}
# Line 2896  CPPINCLUDES = ${CPPINCLUDES} Line 2906  CPPINCLUDES = ${CPPINCLUDES}
2906  KFLAGS1 = ${KFLAGS1}  KFLAGS1 = ${KFLAGS1}
2907  KFLAGS2 = ${KFLAGS2}  KFLAGS2 = ${KFLAGS2}
2908  # Optim./debug for FC  # Optim./debug for FC
2909  FFLAGS = ${FFLAGS} ${FEXTRAFLAGS}  FFLAGS = ${FFLAGS}
2910  FOPTIM = ${FOPTIM}  FOPTIM = ${FOPTIM} ${FEXTRAFLAGS}
2911  # Optim./debug for FC  # Optim./debug for FC
2912  F90FLAGS = ${F90FLAGS}  F90FLAGS = ${F90FLAGS}
2913  F90OPTIM = ${F90OPTIM}  F90OPTIM = ${F90OPTIM}
# Line 2973  links: \$(F77_SRC_FILES) \$(C_SRC_FILES) Line 2983  links: \$(F77_SRC_FILES) \$(C_SRC_FILES)
2983    
2984  small_f: \$(F77_PP_SRC_FILES) \$(F90_PP_SRC_FILES)  small_f: \$(F77_PP_SRC_FILES) \$(F90_PP_SRC_FILES)
2985    
 output.txt: \$(EXECUTABLE)  
         @printf 'running ... '  
         @\$(EXECUTABLE) > \$@  
   
2986  # remove most of the files that "make" generates  # remove most of the files that "make" generates
2987  clean:  clean:
2988          -rm -rf *.p *.$FS90 *.mod ${RMFILES} work.{pc,pcl} *.template          -rm -rf *.p *.$FS90 *.mod ${RMFILES} work.{pc,pcl} *.template
# Line 3128  done Line 3134  done
3134  echo >> $MAKEFILE  echo >> $MAKEFILE
3135  rm -f $TMP.adSrcFiles  rm -f $TMP.adSrcFiles
3136    
3137    if test $CAT_SRC_FOR_TAF = 0 ; then
3138    cat >>$MAKEFILE <<EOF
3139    
3140    # ... Utilities ...
3141    remove_comments:
3142            sed -i.bak -f \$(TOOLSDIR)/remove_comments_sed \$(AD_FILES)
3143            @-rm -f \$(AD_FILES:.$FS=.$FS.bak)
3144    adj_sed:
3145            sed -i.bak -f \$(TOOLSDIR)/adjoint_sed \$(AD_FILES:.$FS=_ad.$FS)
3146            @-rm -f \$(AD_FILES:.$FS=_ad.$FS.bak)
3147    ftl_sed:
3148            sed -i.bak -f \$(TOOLSDIR)/adjoint_sed \$(AD_FILES:.$FS=_tl.$FS)
3149            @-rm -f \$(AD_FILES:.$FS=_tl.$FS.bak)
3150    adobjfiles: \$(AD_FILES:.$FS=_ad.o)
3151    ftlobjfiles: \$(AD_FILES:.$FS=_tl.o)
3152    EOF
3153    fi
3154    
3155  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
3156    
3157  # ... AD ...  # ... AD ...
# Line 3150  ad_input_code.$FS: \$(AD_FILES) \$(AD_FL Line 3174  ad_input_code.$FS: \$(AD_FILES) \$(AD_FL
3174          @\$(MAKE) -f \$(MAKEFILE) \$(FLOWFILES)          @\$(MAKE) -f \$(MAKEFILE) \$(FLOWFILES)
3175          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
3176    
3177  ad_taf_output.$FS: ad_input_code.$FS  adtafonly:
         @-rm -f ad_input_code_ad.$FS ; echo ''  
3178          \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.$FS          \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.$FS
3179          ls -l ad_input_code_ad.$FS          ls -l ad_input_code_ad.$FS
3180          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
3181    
3182  adtafonly:  EOF
3183    
3184    if test $CAT_SRC_FOR_TAF = 1 ; then
3185    cat >>$MAKEFILE <<EOF
3186    # ... send 1 file to TAF ...
3187    ad_taf_output.$FS: ad_input_code.$FS
3188            @-rm -f ad_input_code_ad.$FS ; echo ''
3189          \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.$FS          \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.$FS
3190          ls -l ad_input_code_ad.$FS          ls -l ad_input_code_ad.$FS
3191          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
# Line 3164  adtafonly: Line 3193  adtafonly:
3193  \$(EXE_AD): \$(SPECIAL_FILES) \$(H_SRC_FILES) ad_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(EMBEDDED_FILES)  \$(EXE_AD): \$(SPECIAL_FILES) \$(H_SRC_FILES) ad_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(EMBEDDED_FILES)
3194          \$(LINK) -o \${EXE_AD} \$(FFLAGS) \$(FOPTIM) ad_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(LIBS)          \$(LINK) -o \${EXE_AD} \$(FFLAGS) \$(FOPTIM) ad_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(LIBS)
3195    
3196  ad_tamc_output.$FS: ad_input_code.$FS  adobj: ad_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o)
         \$(TAMC) \$(AD_TAMC_FLAGS) \$(TAMC_EXTRA) ad_input_code.$FS  
         cat ad_input_code_ad.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ad_tamc_output.$FS  
3197    
3198  ad_tamc: ad_tamc_output.o \$(OBJFILES)  EOF
3199          \$(LINK) -o ${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_tamc_output.o \$(LIBS)  
3200    else
3201    cat >>$MAKEFILE <<EOF
3202    # ... send multiple files to TAF ...
3203    ad_taf_output.$FS: \$(AD_FLOW_FILES) \$(AD_FILES)
3204            @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Adjoint version" -bAD_CONFIG_H -DALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > ad_config.template
3205            cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h
3206            @-rm -f ad_config.template
3207            @\$(MAKE) -f \$(MAKEFILE) \$(F77_PP_SRC_FILES)
3208            @\$(MAKE) -f \$(MAKEFILE) \$(FLOWFILES)
3209            @-rm -f \$(AD_FILES:.$FS=_ad.$FS) \$(AD_FILES:.$FS=_ad.o); echo ''
3210            \$(MAKE) -f \$(MAKEFILE) remove_comments
3211            \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) \$(FLOWFILES) \$(AD_FILES)
3212            \$(MAKE) -f \$(MAKEFILE) adj_sed
3213            cat \$(AD_FILES:.$FS=_ad.$FS) > ad_taf_output.$FS
3214    
3215    \$(EXE_AD): \$(SPECIAL_FILES) \$(H_SRC_FILES) ad_taf_output.$FS \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(EMBEDDED_FILES)
3216            \$(MAKE) -f \$(MAKEFILE) adobjfiles
3217            \$(LINK) -o \${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(AD_FILES:.$FS=_ad.o) \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(LIBS)
3218    
3219    adobj: ad_taf_output.$FS \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o)
3220            \$(MAKE) -f \$(MAKEFILE) adobjfiles
3221    
3222    EOF
3223    fi
3224    
3225    cat >>$MAKEFILE <<EOF
3226  adonlyfwd:  adonlyfwd:
3227          patch < \$(TOOLSDIR)/ad_taf_output.f.onlyfwd.diff          patch < \$(TOOLSDIR)/ad_taf_output.f.onlyfwd.diff
3228    
3229  adtrick:  adtrick:
3230          patch < \$(TOOLSDIR)/ad_taf_output.f.adtrick.diff          patch < \$(TOOLSDIR)/ad_taf_output.f.adtrick.diff
3231    
3232  adobj: ad_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o)  ad_tamc_output.$FS: ad_input_code.$FS
3233            \$(TAMC) \$(AD_TAMC_FLAGS) \$(TAMC_EXTRA) ad_input_code.$FS
3234            cat ad_input_code_ad.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ad_tamc_output.$FS
3235    
3236    ad_tamc: ad_tamc_output.o \$(OBJFILES)
3237            \$(LINK) -o ${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_tamc_output.o \$(LIBS)
3238    
3239  # ... FTL ...  # ... FTL ...
3240  ftlall: ftl_exe_target  ftlall: ftl_exe_target
# Line 3199  ftl_input_code.$FS: \$(AD_FILES) Line 3256  ftl_input_code.$FS: \$(AD_FILES)
3256          @\$(MAKE) -f \$(MAKEFILE) \$(AD_FLOW_FILES)          @\$(MAKE) -f \$(MAKEFILE) \$(AD_FLOW_FILES)
3257          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
3258    
3259  ftl_taf_output.$FS: ftl_input_code.$FS  ftltafonly:
         @-rm -f ftl_input_code_tl.$FS ; echo ''  
3260          \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.$FS          \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.$FS
3261          ls -l ftl_input_code_tl.$FS          ls -l ftl_input_code_tl.$FS
3262          cat ftl_input_code_tl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_taf_output.$FS          cat ftl_input_code_tl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_taf_output.$FS
3263    
3264  ftltafonly:  EOF
3265    
3266    if test $CAT_SRC_FOR_TAF = 1 ; then
3267    cat >>$MAKEFILE <<EOF
3268    # ... send 1 file to TAF ...
3269    ftl_taf_output.$FS: ftl_input_code.$FS
3270            @-rm -f ftl_input_code_tl.$FS ; echo ''
3271          \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.$FS          \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.$FS
3272          ls -l ftl_input_code_tl.$FS          ls -l ftl_input_code_tl.$FS
3273          cat ftl_input_code_tl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_taf_output.$FS          cat ftl_input_code_tl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_taf_output.$FS
# Line 3213  ftltafonly: Line 3275  ftltafonly:
3275  \$(EXE_FTL): \$(SPECIAL_FILES) \$(H_SRC_FILES) ftl_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(EMBEDDED_FILES)  \$(EXE_FTL): \$(SPECIAL_FILES) \$(H_SRC_FILES) ftl_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(EMBEDDED_FILES)
3276          \$(LINK) -o \${EXE_FTL} \$(FFLAGS) \$(FOPTIM) ftl_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(LIBS)          \$(LINK) -o \${EXE_FTL} \$(FFLAGS) \$(FOPTIM) ftl_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(LIBS)
3277    
3278    EOF
3279    
3280    else
3281    cat >>$MAKEFILE <<EOF
3282    # ... send multiple files to TAF ...
3283    ftl_taf_output.$FS: \$(AD_FLOW_FILES) \$(AD_FILES)
3284            @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "TangLin version" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN > ad_config.template
3285            cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h
3286            @-rm -f ad_config.template
3287            @\$(MAKE) -f \$(MAKEFILE) \$(F77_PP_SRC_FILES)
3288            @\$(MAKE) -f \$(MAKEFILE) \$(AD_FLOW_FILES)
3289            @-rm -f \$(AD_FILES:.$FS=_tl.$FS) \$(AD_FILES:.$FS=_tl.o); echo ''
3290            \$(MAKE) -f \$(MAKEFILE) remove_comments
3291            \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) \$(AD_FLOW_FILES) \$(AD_FILES)
3292            \$(MAKE) -f \$(MAKEFILE) ftl_sed
3293            cat \$(AD_FILES:.$FS=_tl.$FS) > ftl_taf_output.$FS
3294    
3295    \$(EXE_FTL): \$(SPECIAL_FILES) \$(H_SRC_FILES) ftl_taf_output.$FS \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(EMBEDDED_FILES)
3296            \$(MAKE) -f \$(MAKEFILE) ftlobjfiles
3297            \$(LINK) -o \${EXE_FTL} \$(FFLAGS) \$(FOPTIM) \$(AD_FILES:.$FS=_tl.o) \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(LIBS)
3298    
3299    EOF
3300    fi
3301    
3302    cat >>$MAKEFILE <<EOF
3303  ftl_tamc_output.$FS: ftl_input_code.$FS  ftl_tamc_output.$FS: ftl_input_code.$FS
3304          \$(TAMC) \$(FTL_TAMC_FLAGS) \$(TAMC_EXTRA) ftl_input_code.$FS          \$(TAMC) \$(FTL_TAMC_FLAGS) \$(TAMC_EXTRA) ftl_input_code.$FS
3305          cat ftl_input_code_ftl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_tamc_output.$FS          cat ftl_input_code_ftl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_tamc_output.$FS
# Line 3255  if test "x$OPENAD" != x ; then Line 3342  if test "x$OPENAD" != x ; then
3342  # ============ begin OpenAD specific section ==============  # ============ begin OpenAD specific section ==============
3343    
3344  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
3345    # ... OpenAD ...
3346    
3347  # all the source files linked from the various locations:  # all the source files linked from the various locations:
3348  ALL_LINKED_FILES= \  ALL_LINKED_FILES= \
# Line 3308  rm -f $TMP.adSrcFiles Line 3396  rm -f $TMP.adSrcFiles
3396    
3397  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
3398    
3399  adAll: \$(EXE_AD)  adAll: ad_exe_target
3400  .PHONY: adAll  .PHONY: adAll
3401    
3402    ad_exe_target:
3403            @echo Update AD_CONFIG.h and make \$(EXE_AD)
3404            @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Adjoint version" -bAD_CONFIG_H -DALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > ad_config.template
3405            @cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h
3406            @-rm -f ad_config.template
3407            \$(MAKE) -f \$(MAKEFILE) \$(EXE_AD)
3408    
3409  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))
3410    
3411  .PRECIOUS: \$(CB2M_F90_PP_SRC_FILES) \$(NON_AD_F77_SRC_FILES:.F=_cb2m.f$FS90)  .PRECIOUS: \$(CB2M_F90_PP_SRC_FILES) \$(NON_AD_F77_SRC_FILES:.F=_cb2m.f$FS90)
# Line 3327  OAD_active.F90 \ Line 3422  OAD_active.F90 \
3422  OAD_cp.F90 \  OAD_cp.F90 \
3423  OAD_rev.F90 \  OAD_rev.F90 \
3424  OAD_tape.F90 \  OAD_tape.F90 \
3425    OAD_regular_cp.F90 \
3426  revolve.F90  revolve.F90
3427    
3428  OPENAD_SUPPORT_C_SRC_FILES = \  OPENAD_SUPPORT_C_SRC_FILES = \
# Line 3368  AD_OBJ_FILES_S2=\$(AD_OBJ_FILES_S1) \$(N Line 3464  AD_OBJ_FILES_S2=\$(AD_OBJ_FILES_S1) \$(N
3464  small_f: \$(CB2M_F90_PP_SRC_FILES)  small_f: \$(CB2M_F90_PP_SRC_FILES)
3465  .PHONY: small_f  .PHONY: small_f
3466    
 ad_output.txt: \$(EXE_AD)  
         @printf 'linking data files ... '  
         \$(LN) -f ../input_ad/data* ../input_ad/eedata .  
         \$(LN) -f ../../global_ocean.90x40x15/input/*.bin .  
         @printf 'running ... '  
         @./\$(EXE_AD) > \$@  
   
3467  ad_input_code.f$FS90:  \$(CB2M_AD_FILES)  ad_input_code.f$FS90:  \$(CB2M_AD_FILES)
3468          cat \$^ > \$@          cat \$^ > \$@
3469    

Legend:
Removed from v.1.264  
changed lines
  Added in v.1.272

  ViewVC Help
Powered by ViewVC 1.1.22