* docs.make, Makefile.am: Build mono-file-formats{.tree,.zip},
[mono.git] / mcs / tools / mdoc / Makefile
1 thisdir = tools/mdoc
2 SUBDIRS = 
3 include ../../build/rules.make
4
5 LOCAL_MCS_FLAGS = \
6         /resource:../monodoc/Resources/mdoc-html-utils.xsl,mdoc-html-utils.xsl      \
7         /resource:../monodoc/Resources/mdoc-sections-css.xsl,mdoc-sections-css.xsl  \
8         /resource:../monodoc/Resources/mono-ecma-css.xsl,mono-ecma-css.xsl          \
9         /resource:Resources/defaulttemplate.xsl,defaulttemplate.xsl                 \
10         /resource:Resources/monodoc-ecma.xsd,monodoc-ecma.xsd                       \
11         /resource:Resources/overview.xsl,overview.xsl                               \
12         /resource:Resources/stylesheet.xsl,stylesheet.xsl                           \
13         /r:$(topdir)/class/lib/net_1_1/monodoc.dll                                  \
14         /r:$(topdir)/class/lib/net_1_1/Mono.Cecil.dll
15
16 MDOC_RESOURCES = \
17         Resources/defaulttemplate.xsl     \
18         Resources/monodoc-ecma.xsd        \
19         Resources/overview.xsl            \
20         Resources/stylesheet.xsl
21
22 MDOC_TEST_FILES = \
23         Test/DocTest-v1.cs                                        \
24         Test/DocTest-v2.patch                                     \
25         Test/msxdoc-expected.importslashdoc.xml                   \
26         Test/TestEcmaDocs.xml                                     \
27         Test/validate.check.monodocer                             \
28         Test/validate.check.monodocer.importslashdoc              \
29         Test/validate.check.monodocer.since
30
31 EXTRA_DISTFILES = \
32         $(MDOC_RESOURCES) \
33         $(MDOC_TEST_FILES)
34
35 PROGRAM = mdoc.exe
36
37 $(PROGRAM) : $(MDOC_RESOURCES) $(topdir)/class/lib/net_1_1/monodoc.dll
38
39 include ../../build/executable.make
40
41 $(PROGRAM) : Makefile
42
43 MONO = \
44         MONO_PATH="$(topdir)/class/lib/2.0$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" \
45         $(RUNTIME) $(RUNTIME_FLAGS)
46
47 dist-local: dist-default dist-tests
48
49 dist-tests:
50         find Test/en.expected* -name '*.xml'     > .files
51         find Test/html.expected* -name '*.html' >> .files
52         tar cTf .files - | (cd $(distdir); tar xf -)
53         rm .files ; \
54
55 test-local: $(PROGRAM)
56
57 clean-local: cleanup
58
59 cleanup:
60         -rm -Rf Test/en.actual Test/html.actual
61         -rm monodocer1.exe*
62
63 Test/DocTest.dll: 
64         $(CSCOMPILE) $(TEST_CSCFLAGS) -debug -unsafe -target:library -out:$@ Test/DocTest.cs
65
66 Test/DocTest.dll-v1: 
67         -rm -f Test/DocTest.cs
68         cp Test/DocTest-v1.cs Test/DocTest.cs
69         -rm -f Test/DocTest.dll
70         $(MAKE) TEST_CSCFLAGS=$(TEST_CSCFLAGS) Test/DocTest.dll
71
72 Test/DocTest.dll-v2: 
73         -rm -f Test/DocTest.cs
74         cp Test/DocTest-v1.cs Test/DocTest.cs
75         cd Test && patch -p0 < DocTest-v2.patch
76         -rm -f Test/DocTest.dll
77         $(MAKE) TEST_CSCFLAGS=$(TEST_CSCFLAGS) Test/DocTest.dll
78
79 check-monodocer-update: mdoc.exe
80         find Test/en.expected -name \*.xml -exec rm "{}" \;
81         $(MAKE) Test/DocTest.dll-v1
82         $(MONO) mdoc.exe update -o Test/en.expected Test/DocTest.dll
83
84 check-monodocer: mdoc.exe
85         -rm -Rf Test/en.actual
86         $(MAKE) Test/DocTest.dll-v1
87         $(MONO) mdoc.exe update -o Test/en.actual Test/DocTest.dll
88         diff --exclude=.svn -rup Test/en.expected Test/en.actual
89         $(MONO) mdoc.exe update -o Test/en.actual Test/DocTest.dll 
90         diff --exclude=.svn -rup Test/en.expected Test/en.actual
91
92 check-monodocer-since-update: mdoc.exe
93         find Test/en.expected.since -name \*.xml -exec rm "{}" \;
94         $(MAKE) Test/DocTest.dll-v1
95         $(MONO) mdoc.exe update -o Test/en.expected.since Test/DocTest.dll 
96         $(MAKE) Test/DocTest.dll-v2
97         $(MONO) mdoc.exe update --since="Version 2.0" \
98                 -o Test/en.expected.since Test/DocTest.dll 
99
100 check-monodocer-since: mdoc.exe
101         rm -Rf Test/en.actual
102         $(MAKE) Test/DocTest.dll-v1
103         $(MONO) mdoc.exe update -o Test/en.actual Test/DocTest.dll 
104         $(MAKE) Test/DocTest.dll-v2
105         $(MONO) mdoc.exe update --since="Version 2.0" \
106                 -o Test/en.actual Test/DocTest.dll 
107         diff --exclude=.svn -rup Test/en.expected.since Test/en.actual
108
109 check-monodocer-importslashdoc-update: mdoc.exe
110         find Test/en.expected.importslashdoc -name \*.xml -exec rm "{}" \;
111         $(MAKE) Test/DocTest.dll-v1 TEST_CSCFLAGS=-doc:Test/DocTest.xml
112         $(MONO) mdoc.exe update -i Test/DocTest.xml \
113                 -o Test/en.expected.importslashdoc Test/DocTest.dll 
114
115 check-monodocer-importslashdoc: mdoc.exe
116         rm -Rf Test/en.actual
117         $(MAKE) Test/DocTest.dll-v1 TEST_CSCFLAGS=-doc:Test/DocTest.xml
118         $(MONO) mdoc.exe update -i Test/DocTest.xml \
119                 -o Test/en.actual Test/DocTest.dll 
120         diff --exclude=.svn -rup Test/en.expected.importslashdoc Test/en.actual
121
122 check-monodocer-importecmadoc-update: mdoc.exe
123         find Test/en.expected.importecmadoc -name \*.xml -exec rm "{}" \;
124         $(MAKE) Test/DocTest.dll-v1
125         $(MONO) mdoc.exe update -i Test/TestEcmaDocs.xml \
126                 '--type=System.Action`1' --type=System.AsyncCallback \
127                 --type=System.Environment --type=System.Array \
128                 -o Test/en.expected.importecmadoc Test/DocTest.dll 
129
130 check-monodocer-importecmadoc: mdoc.exe
131         rm -Rf Test/en.actual
132         $(MAKE) Test/DocTest.dll-v1
133         $(MONO) mdoc.exe update -i Test/TestEcmaDocs.xml \
134                 '--type=System.Action`1' --type=System.AsyncCallback \
135                 --type=System.Environment --type=System.Array \
136                 -o Test/en.actual Test/DocTest.dll 
137         diff --exclude=.svn -rup Test/en.expected.importecmadoc Test/en.actual
138
139 check-mdoc-export-html-update: mdoc.exe
140         find Test/html.expected -name \*.html -exec rm "{}" \;
141         $(MONO) mdoc.exe export-html -o Test/html.expected \
142                 Test/en.expected.importslashdoc 
143
144 check-mdoc-export-html: check-monodocer mdoc.exe
145         rm -Rf Test/html.actual
146         $(MONO) mdoc.exe export-html -o Test/html.actual \
147                 Test/en.expected.importslashdoc
148         diff --exclude=.svn -rup Test/html.expected Test/html.actual
149
150 check-md-html-dir: mdoc.exe
151         rm -Rf Test/html.actual
152         $(MONO) mdoc.exe export-html -dest:Test/html.actual $(DIR) 
153         diff --exclude=.svn -rup Test/html.expected Test/html.actual
154
155 check-mdoc-export-msxdoc-update:
156         $(MONO) mdoc.exe export-msxdoc -o - Test/en.expected.importslashdoc \
157                 > Test/msxdoc-expected.importslashdoc.xml
158
159 check-mdoc-export-msxdoc:
160         $(MONO) mdoc.exe export-msxdoc -o - Test/en.expected.importslashdoc \
161                 | diff --brief - Test/msxdoc-expected.importslashdoc.xml
162
163 my_abs_top_srcdir = $(shell cd . && pwd)
164
165 check-mdoc-validate-update: mdoc.exe
166         $(MONO) mdoc.exe validate -f ecma Test/en.expected 2>&1 | \
167                 sed 's#file://$(my_abs_top_srcdir)/##g' > \
168                 Test/validate.check.monodocer
169         $(MONO) mdoc.exe validate -f ecma Test/en.expected.importslashdoc 2>&1 | \
170                 sed 's#file://$(my_abs_top_srcdir)/##g' > \
171                 Test/validate.check.monodocer.importslashdoc
172         $(MONO) mdoc.exe validate -f ecma Test/en.expected.since 2>&1 | \
173                 sed 's#file://$(my_abs_top_srcdir)/##g' > \
174                 Test/validate.check.monodocer.since
175
176 check-mdoc-validate: mdoc.exe
177         $(MONO) mdoc.exe validate -f ecma Test/en.expected 2>&1 | \
178                 sed 's#file://$(my_abs_top_srcdir)/##g' | \
179                 diff - Test/validate.check.monodocer
180         $(MONO) mdoc.exe validate -f ecma Test/en.expected.importslashdoc 2>&1 | \
181                 sed 's#file://$(my_abs_top_srcdir)/##g' | \
182                 diff --brief - Test/validate.check.monodocer.importslashdoc
183         $(MONO) mdoc.exe validate -f ecma Test/en.expected.since 2>&1 | \
184                 sed 's#file://$(my_abs_top_srcdir)/##g' | \
185                 diff --brief - Test/validate.check.monodocer.since
186
187 run-test-local: check-doc-tools
188
189 run-test-update : check-doc-tools-update
190
191 check-doc-tools: check-monodocer-since \
192         check-monodocer-importecmadoc \
193         check-monodocer-importslashdoc \
194         check-monodocer \
195         check-mdoc-export-html \
196         check-mdoc-export-msxdoc \
197         check-mdoc-validate
198
199 check-doc-tools-update: check-monodocer-since-update \
200         check-monodocer-importecmadoc-update \
201         check-monodocer-importslashdoc-update \
202         check-monodocer-update \
203         check-mdoc-export-html-update \
204         check-mdoc-export-msxdoc-update \
205         check-mdoc-validate-update
206