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