1 |
--- /scratch/users/mlosch/MITgcm/tools/genmake2 2014-11-03 10:48:01.154070057 +0100 |
2 |
+++ genmake2 2014-12-10 09:23:33.121567223 +0100 |
3 |
@@ -3124,6 +3124,19 @@ |
4 |
|
5 |
cat >>$MAKEFILE <<EOF |
6 |
|
7 |
+# ... Utilities ... |
8 |
+remove_comments: |
9 |
+ sed -i.bak -f \$(TOOLSDIR)/remove_comments_sed \$(AD_FILES) |
10 |
+ @-rm -f \$(AD_FILES:.$FS=.$FS.bak) |
11 |
+adj_sed: |
12 |
+ sed -i.bak -f \$(TOOLSDIR)/adjoint_sed \$(AD_FILES:.$FS=_ad.$FS) |
13 |
+ @-rm -f \$(AD_FILES:.$FS=_ad.$FS.bak) |
14 |
+ftl_sed: |
15 |
+ sed -i.bak -f \$(TOOLSDIR)/adjoint_sed \$(AD_FILES:.$FS=_tl.$FS) |
16 |
+ @-rm -f \$(AD_FILES:.$FS=_tl.$FS.bak) |
17 |
+adobjfiles: \$(AD_FILES:.$FS=_ad.o) |
18 |
+ftlobjfiles: \$(AD_FILES:.$FS=_tl.o) |
19 |
+ |
20 |
# ... AD ... |
21 |
adall: ad_exe_target |
22 |
adtaf: ad_taf_output.$FS |
23 |
@@ -3144,19 +3157,25 @@ |
24 |
@\$(MAKE) -f \$(MAKEFILE) \$(FLOWFILES) |
25 |
cat \$(FLOWFILES) \$(AD_FILES) | sed -f \$(TOOLSDIR)/remove_comments_sed > ad_input_code.$FS |
26 |
|
27 |
-ad_taf_output.$FS: ad_input_code.$FS |
28 |
- @-rm -f ad_input_code_ad.$FS ; echo '' |
29 |
- \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.$FS |
30 |
- ls -l ad_input_code_ad.$FS |
31 |
- cat ad_input_code_ad.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ad_taf_output.$FS |
32 |
+ad_taf_output.$FS: \$(AD_FLOW_FILES) \$(AD_FILES) |
33 |
+ @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Adjoint version" -bAD_CONFIG_H -DALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > ad_config.template |
34 |
+ cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h |
35 |
+ @-rm -f ad_config.template |
36 |
+ @\$(MAKE) -f \$(MAKEFILE) \$(F77_PP_SRC_FILES) |
37 |
+ @\$(MAKE) -f \$(MAKEFILE) \$(FLOWFILES) |
38 |
+ @-rm -f \$(AD_FILES:.$FS=_ad.$FS) \$(AD_FILES:.$FS=_ad.o); echo '' |
39 |
+ \$(MAKE) -f \$(MAKEFILE) remove_comments |
40 |
+ \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) \$(FLOWFILES) \$(AD_FILES) |
41 |
+ \$(MAKE) -f \$(MAKEFILE) adj_sed |
42 |
+ \$(MAKE) -f \$(MAKEFILE) adobjfiles |
43 |
+ cat \$(AD_FILES:.$FS=_ad.$FS) > ad_taf_output.$FS |
44 |
|
45 |
adtafonly: |
46 |
- \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.$FS |
47 |
- ls -l ad_input_code_ad.$FS |
48 |
- cat ad_input_code_ad.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ad_taf_output.$FS |
49 |
+ \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) \$(FLOWFILES) \$(AD_FILES) |
50 |
+ cat \$(AD_FILES:.$FS=_ad.$FS) | sed -f \$(TOOLSDIR)/adjoint_sed > ad_taf_output.$FS |
51 |
|
52 |
-\$(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) |
53 |
- \$(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) |
54 |
+\$(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) |
55 |
+ \$(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) |
56 |
|
57 |
ad_tamc_output.$FS: ad_input_code.$FS |
58 |
\$(TAMC) \$(AD_TAMC_FLAGS) \$(TAMC_EXTRA) ad_input_code.$FS |
59 |
@@ -3171,7 +3190,7 @@ |
60 |
adtrick: |
61 |
patch < \$(TOOLSDIR)/ad_taf_output.f.adtrick.diff |
62 |
|
63 |
-adobj: ad_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) |
64 |
+adobj: \$(AD_FILES:.$FS=_ad.o) \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) |
65 |
|
66 |
# ... FTL ... |
67 |
ftlall: ftl_exe_target |
68 |
@@ -3193,19 +3212,25 @@ |
69 |
@\$(MAKE) -f \$(MAKEFILE) \$(AD_FLOW_FILES) |
70 |
cat \$(AD_FLOW_FILES) \$(AD_FILES) | sed -f \$(TOOLSDIR)/remove_comments_sed > ftl_input_code.$FS |
71 |
|
72 |
-ftl_taf_output.$FS: ftl_input_code.$FS |
73 |
- @-rm -f ftl_input_code_tl.$FS ; echo '' |
74 |
- \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.$FS |
75 |
- ls -l ftl_input_code_tl.$FS |
76 |
- cat ftl_input_code_tl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_taf_output.$FS |
77 |
+ftl_taf_output.$FS: \$(AD_FLOW_FILES) \$(AD_FILES) |
78 |
+ @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "TangLin version" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN > ad_config.template |
79 |
+ cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h |
80 |
+ @-rm -f ad_config.template |
81 |
+ @\$(MAKE) -f \$(MAKEFILE) \$(F77_PP_SRC_FILES) |
82 |
+ @\$(MAKE) -f \$(MAKEFILE) \$(AD_FLOW_FILES) |
83 |
+ @-rm -f \$(AD_FILES:.$FS=_tl.$FS) \$(AD_FILES:.$FS=_tl.o); echo '' |
84 |
+ \$(MAKE) -f \$(MAKEFILE) remove_comments |
85 |
+ \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) \$(AD_FLOW_FILES) \$(AD_FILES) |
86 |
+ \$(MAKE) -f \$(MAKEFILE) ftl_sed |
87 |
+ \$(MAKE) -f \$(MAKEFILE) ftlobjfiles |
88 |
+ cat \$(AD_FILES:.$FS=_tl.$FS) > ftl_taf_output.$FS |
89 |
|
90 |
ftltafonly: |
91 |
\$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.$FS |
92 |
- ls -l ftl_input_code_tl.$FS |
93 |
- cat ftl_input_code_tl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_taf_output.$FS |
94 |
+ cat \$(AD_FILES:.$FS=_tl.$FS) | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_taf_output.$FS |
95 |
|
96 |
-\$(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) |
97 |
- \$(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) |
98 |
+\$(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) |
99 |
+ \$(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) |
100 |
|
101 |
ftl_tamc_output.$FS: ftl_input_code.$FS |
102 |
\$(TAMC) \$(FTL_TAMC_FLAGS) \$(TAMC_EXTRA) ftl_input_code.$FS |