1## Process this file with automake to produce Makefile.in
2
3ACLOCAL_AMFLAGS = -I m4
4
5SUBDIRS = include . xstc @PYTHON_SUBDIR@
6
7DIST_SUBDIRS = include . doc example python xstc
8
9INCLUDES = -I$(top_builddir)/include -I@srcdir@/include @THREAD_CFLAGS@ @Z_CFLAGS@ 
10
11noinst_PROGRAMS=testSchemas testRelax testSAX testHTML testXPath testURI \
12                testThreads testC14N testAutomata testRegexp \
13                testReader testapi testModule runtest runsuite testchar \
14		testdict runxmlconf testrecurse
15
16bin_PROGRAMS = xmllint xmlcatalog
17
18bin_SCRIPTS=xml2-config
19
20lib_LTLIBRARIES = libxml2.la
21libxml2_la_LIBADD = @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) @M_LIBS@ @WIN32_EXTRA_LIBADD@
22
23if USE_VERSION_SCRIPT
24LIBXML2_VERSION_SCRIPT = $(VERSION_SCRIPT_FLAGS)$(srcdir)/libxml2.syms
25else
26LIBXML2_VERSION_SCRIPT =
27endif
28
29libxml2_la_LDFLAGS = @CYGWIN_EXTRA_LDFLAGS@ @WIN32_EXTRA_LDFLAGS@ \
30                     $(LIBXML2_VERSION_SCRIPT) \
31		     -version-info @LIBXML_VERSION_INFO@ \
32		     @MODULE_PLATFORM_LIBS@
33
34if WITH_TRIO_SOURCES
35libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c  \
36		parser.c tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c  \
37		valid.c xlink.c HTMLparser.c HTMLtree.c debugXML.c xpath.c  \
38		xpointer.c xinclude.c nanohttp.c nanoftp.c DOCBparser.c \
39		catalog.c globals.c threads.c c14n.c xmlstring.c \
40		xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
41		triostr.c trio.c xmlreader.c relaxng.c dict.c SAX2.c \
42		xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c \
43		xmlmodule.c schematron.c
44else
45libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c  \
46		parser.c tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c  \
47		valid.c xlink.c HTMLparser.c HTMLtree.c debugXML.c xpath.c  \
48		xpointer.c xinclude.c nanohttp.c nanoftp.c DOCBparser.c \
49		catalog.c globals.c threads.c c14n.c xmlstring.c \
50		xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
51		xmlreader.c relaxng.c dict.c SAX2.c \
52		xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c \
53		xmlmodule.c schematron.c
54endif
55
56DEPS = $(top_builddir)/libxml2.la
57LDADDS = @STATIC_BINARIES@ $(top_builddir)/libxml2.la @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) @M_LIBS@ @WIN32_EXTRA_LIBADD@
58
59
60man_MANS = xml2-config.1 libxml.3
61
62m4datadir = $(datadir)/aclocal
63m4data_DATA = libxml.m4
64
65runtest_SOURCES=runtest.c
66runtest_LDFLAGS = 
67runtest_DEPENDENCIES = $(DEPS)
68runtest_LDADD= @BASE_THREAD_LIBS@ @RDL_LIBS@ $(LDADDS)
69
70testrecurse_SOURCES=testrecurse.c
71testrecurse_LDFLAGS = 
72testrecurse_DEPENDENCIES = $(DEPS)
73testrecurse_LDADD= @BASE_THREAD_LIBS@ @RDL_LIBS@ $(LDADDS)
74
75testchar_SOURCES=testchar.c
76testchar_LDFLAGS = 
77testchar_DEPENDENCIES = $(DEPS)
78testchar_LDADD= @RDL_LIBS@ $(LDADDS)
79
80testdict_SOURCES=testdict.c
81testdict_LDFLAGS = 
82testdict_DEPENDENCIES = $(DEPS)
83testdict_LDADD= @RDL_LIBS@ $(LDADDS)
84
85runsuite_SOURCES=runsuite.c
86runsuite_LDFLAGS = 
87runsuite_DEPENDENCIES = $(DEPS)
88runsuite_LDADD= @RDL_LIBS@ $(LDADDS)
89
90xmllint_SOURCES=xmllint.c
91xmllint_LDFLAGS = 
92xmllint_DEPENDENCIES = $(DEPS)
93xmllint_LDADD=  @RDL_LIBS@ $(LDADDS)
94
95testSAX_SOURCES=testSAX.c
96testSAX_LDFLAGS = 
97testSAX_DEPENDENCIES = $(DEPS)
98testSAX_LDADD= $(LDADDS)
99
100testHTML_SOURCES=testHTML.c
101testHTML_LDFLAGS = 
102testHTML_DEPENDENCIES = $(DEPS)
103testHTML_LDADD= $(LDADDS)
104
105xmlcatalog_SOURCES=xmlcatalog.c
106xmlcatalog_LDFLAGS = 
107xmlcatalog_DEPENDENCIES = $(DEPS)
108xmlcatalog_LDADD= @RDL_LIBS@ $(LDADDS)
109
110testXPath_SOURCES=testXPath.c
111testXPath_LDFLAGS = 
112testXPath_DEPENDENCIES = $(DEPS)
113testXPath_LDADD= $(LDADDS)
114
115testC14N_SOURCES=testC14N.c
116testC14N_LDFLAGS = 
117testC14N_DEPENDENCIES = $(DEPS)
118testC14N_LDADD= $(LDADDS)
119
120testThreads_SOURCES=testThreads@THREADS_W32@.c
121testThreads_LDFLAGS = 
122testThreads_DEPENDENCIES = $(DEPS)
123testThreads_LDADD= @BASE_THREAD_LIBS@  $(LDADDS)
124
125testURI_SOURCES=testURI.c
126testURI_LDFLAGS = 
127testURI_DEPENDENCIES = $(DEPS)
128testURI_LDADD= $(LDADDS)
129
130testRegexp_SOURCES=testRegexp.c
131testRegexp_LDFLAGS = 
132testRegexp_DEPENDENCIES = $(DEPS)
133testRegexp_LDADD= $(LDADDS)
134
135testAutomata_SOURCES=testAutomata.c
136testAutomata_LDFLAGS = 
137testAutomata_DEPENDENCIES = $(DEPS)
138testAutomata_LDADD= $(LDADDS)
139
140testSchemas_SOURCES=testSchemas.c
141testSchemas_LDFLAGS = 
142testSchemas_DEPENDENCIES = $(DEPS)
143testSchemas_LDADD= $(LDADDS)
144
145testRelax_SOURCES=testRelax.c
146testRelax_LDFLAGS = 
147testRelax_DEPENDENCIES = $(DEPS)
148testRelax_LDADD= $(LDADDS)
149
150testReader_SOURCES=testReader.c
151testReader_LDFLAGS = 
152testReader_DEPENDENCIES = $(DEPS)
153testReader_LDADD= $(LDADDS)
154
155testModule_SOURCES=testModule.c
156testModule_LDFLAGS = 
157testModule_DEPENDENCIES = $(DEPS)
158testModule_LDADD= $(LDADDS)
159
160noinst_LTLIBRARIES = testdso.la
161testdso_la_SOURCES = testdso.c
162testdso_la_LDFLAGS = -module -no-undefined -avoid-version -rpath $(libdir)
163
164# that one forces the rebuild when "make rebuild" is run on doc/
165rebuild_testapi:
166	-@(if [ "$(PYTHON)" != "" ] ; then \
167	    $(PYTHON) $(srcdir)/gentest.py $(srcdir) ; fi )
168
169# that one is just to make sure it is rebuilt if missing
170# but adding the dependances generate mess
171testapi.c: $(srcdir)/gentest.py
172	-@(if [ "$(PYTHON)" != "" ] ; then \
173	    $(PYTHON) $(srcdir)/gentest.py $(srcdir) ; fi )
174
175testapi_SOURCES=testapi.c
176testapi_LDFLAGS = 
177testapi_DEPENDENCIES = $(DEPS)
178testapi_LDADD= $(LDADDS)
179
180runxmlconf_SOURCES=runxmlconf.c
181runxmlconf_LDFLAGS = 
182runxmlconf_DEPENDENCIES = $(DEPS)
183runxmlconf_LDADD= $(LDADDS)
184
185#testOOM_SOURCES=testOOM.c testOOMlib.h testOOMlib.c
186#testOOM_LDFLAGS = 
187#testOOM_DEPENDENCIES = $(DEPS)
188#testOOM_LDADD= $(LDADDS)
189
190runtests:
191	$(CHECKER) ./runtest$(EXEEXT) && $(CHECKER) ./testrecurse$(EXEEXT) &&$(CHECKER) ./testapi$(EXEEXT) && $(CHECKER) ./testchar$(EXEEXT)&& $(CHECKER) ./testdict$(EXEEXT) && $(CHECKER) ./runxmlconf$(EXEEXT)
192	@(if [ "@PYTHON_SUBDIR@" != "" ] ; then cd python ; \
193	    $(MAKE) MAKEFLAGS+=--silent tests ; fi)
194
195check: all runtests
196
197check-valgrind: all
198	@echo '## Running the regression tests under Valgrind'
199	@echo '## Go get a cup of coffee it is gonna take a while ...'
200	$(MAKE) CHECKER='valgrind -q' check
201
202testall : tests SVGtests SAXtests
203
204tests: XMLtests XMLenttests NStests IDtests Errtests APItests @READER_TEST@ @TEST_SAX@ @TEST_PUSH@ @TEST_HTML@ @TEST_PHTML@  @TEST_VALID@ URItests @TEST_PATTERN@ @TEST_XPATH@ @TEST_XPTR@ @TEST_XINCLUDE@ @TEST_C14N@ @TEST_DEBUG@ @TEST_CATALOG@ @TEST_REGEXPS@ @TEST_SCHEMAS@ @TEST_SCHEMATRON@ @TEST_THREADS@ Timingtests @TEST_VTIME@ @PYTHON_TESTS@ @TEST_MODULES@
205	@(if [ "@PYTHON_SUBDIR@" != "" ] ; then cd python ; \
206	    $(MAKE) MAKEFLAGS+=--silent tests ; fi)
207	@(cd doc/examples ; $(MAKE) MAKEFLAGS+=--silent tests)
208
209valgrind:
210	@echo '## Running the regression tests under Valgrind'
211	@echo '## Go get a cup of coffee it is gonna take a while ...'
212	$(MAKE) CHECKER='valgrind -q' tests
213
214APItests: testapi$(EXEEXT)
215	@echo "## Running the API regression tests this may take a little while"
216	-@($(CHECKER) $(top_builddir)/testapi -q)
217
218HTMLtests : testHTML$(EXEEXT)
219	@(echo > .memdump)
220	@echo "## HTML regression tests"
221	-@(for i in $(srcdir)/test/HTML/* ; do \
222	  name=`basename $$i`; \
223	  if [ ! -d $$i ] ; then \
224	  if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
225	      echo New test file $$name ; \
226	      $(CHECKER) $(top_builddir)/testHTML $$i > $(srcdir)/result/HTML/$$name 2>$(srcdir)/result/HTML/$$name.err ; \
227	  else \
228	      log=`$(CHECKER) $(top_builddir)/testHTML $$i > result.$$name 2> error.$$name ; \
229	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
230	      diff $(srcdir)/result/HTML/$$name result.$$name ; \
231	      diff -b $(srcdir)/result/HTML/$$name.err error.$$name ; \
232	      $(CHECKER) $(top_builddir)/testHTML result.$$name > result2.$$name 2>error.$$name ; \
233	      diff result.$$name result2.$$name` ; \
234	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
235	      rm result.$$name result2.$$name error.$$name ; \
236	  fi ; fi ; done)
237
238HTMLPushtests : testHTML$(EXEEXT)
239	@echo "## Push HTML regression tests"
240	-@(for i in $(srcdir)/test/HTML/* ; do \
241	  name=`basename $$i`; \
242	  if [ ! -d $$i ] ; then \
243	  if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
244	      echo New test file $$name ; \
245	      $(CHECKER) $(top_builddir)/testHTML --push $$i > $(srcdir)/result/HTML/$$name 2>$(srcdir)/result/HTML/$$name.err ; \
246	  else \
247	      log=`$(CHECKER) $(top_builddir)/testHTML --push $$i > result.$$name 2> error.$$name ; \
248	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
249	      diff $(srcdir)/result/HTML/$$name result.$$name ; \
250	      cut -b 1-15 $(srcdir)/result/HTML/$$name.err > errorcut.$$name; \
251	      cut -b 1-15 error.$$name > errorcut2.$$name; \
252	      diff -b errorcut.$$name errorcut2.$$name ; \
253	      $(CHECKER) $(top_builddir)/testHTML --push result.$$name > result2.$$name 2>error.$$name ; \
254	      diff result.$$name result2.$$name` ; \
255	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
256	      rm result.$$name result2.$$name error.$$name errorcut.$$name errorcut2.$$name ; \
257	  fi ; fi ; done)
258	@echo "## HTML SAX regression tests"
259	-@(for i in $(srcdir)/test/HTML/* ; do \
260	  name=`basename $$i`; \
261	  if [ ! -d $$i ] ; then \
262	  if [ ! -f $(srcdir)/result/HTML/$$name.sax ] ; then \
263	      echo New test file $$name ; \
264	      $(CHECKER) $(top_builddir)/testHTML --sax $$i > $(srcdir)/result/HTML/$$name.sax ; \
265	  else \
266	      log=`$(CHECKER) $(top_builddir)/testHTML --sax $$i > result.$$name.sax ; \
267	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
268	      diff $(srcdir)/result/HTML/$$name.sax result.$$name.sax` ; \
269	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
270	      rm result.$$name.sax ; \
271	  fi ; fi ; done)
272	@echo "## Push HTML SAX regression tests"
273	-@(for i in $(srcdir)/test/HTML/* ; do \
274	  name=`basename $$i`; \
275	  if [ ! -d $$i ] ; then \
276	  if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
277	      echo New test file $$name ; \
278	      $(CHECKER) $(top_builddir)/testHTML --push --sax $$i > $(srcdir)/result/HTML/$$name.sax ; \
279	  else \
280	      log=`$(CHECKER) $(top_builddir)/testHTML --push --sax $$i 2>&1 > result.$$name.sax ; \
281	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
282	      diff $(srcdir)/result/HTML/$$name.sax result.$$name.sax` ; \
283	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
284	      rm result.$$name.sax ; \
285	  fi ; fi ; done)
286
287XMLtests : xmllint$(EXEEXT)
288	@(echo > .memdump)
289	@echo "## XML regression tests"
290	-@(for i in $(srcdir)/test/* ; do \
291	  name=`basename $$i`; \
292	  if [ ! -d $$i ] ; then \
293	  if [ ! -f $(srcdir)/result/$$name ] ; then \
294	      echo New test file $$name ; \
295	      $(CHECKER) $(top_builddir)/xmllint $$i > $(srcdir)/result/$$name ; \
296	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
297	  else \
298	      log=`$(CHECKER) $(top_builddir)/xmllint $$i 2>&1 > result.$$name ; \
299	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
300	      diff $(srcdir)/result/$$name result.$$name ; \
301	      $(CHECKER) $(top_builddir)/xmllint result.$$name 2>&1 > result2.$$name | grep -v 'failed to load external entity' ; \
302	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
303	      diff result.$$name result2.$$name` ;\
304	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
305	      rm result.$$name result2.$$name ; \
306	  fi ; fi ; done)
307	@echo "## XML regression tests on memory"
308	-@(for i in $(srcdir)/test/* ; do \
309	  name=`basename $$i`; \
310	  if [ ! -d $$i ] ; then \
311	  if [ ! -f $(srcdir)/result/$$name ] ; then \
312	      echo New test file $$name ; \
313	      $(CHECKER) $(top_builddir)/xmllint --memory $$i > $(srcdir)/result/$$name ; \
314	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
315	  else \
316	      log=`$(CHECKER) $(top_builddir)/xmllint --memory $$i 2>&1 > result.$$name ; \
317	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
318	      diff $(srcdir)/result/$$name result.$$name ; \
319	      $(CHECKER) $(top_builddir)/xmllint --memory result.$$name 2>&1 > result2.$$name | grep -v 'failed to load external entity' ; \
320	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"`; \
321	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
322	      diff result.$$name result2.$$name ; \
323	      rm result.$$name result2.$$name ; \
324	  fi ; fi ; done)
325
326XMLPushtests: xmllint$(EXEEXT)
327	@(echo > .memdump)
328	@echo "## XML push regression tests"
329	-@(for i in $(srcdir)/test/* ; do \
330	  name=`basename $$i`; \
331	  if [ ! -d $$i ] ; then \
332	  if [ ! -f $(srcdir)/result/$$name ] ; then \
333	      echo New test file $$name ; \
334	      $(CHECKER) $(top_builddir)/xmllint --push $$i > $(srcdir)/result/$$name ; \
335	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
336	  else \
337	      log=`$(CHECKER) $(top_builddir)/xmllint --push $$i 2>&1 > result.$$name ; \
338	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
339	      diff $(srcdir)/result/$$name result.$$name ; \
340	      $(CHECKER) $(top_builddir)/xmllint --push result.$$name 2>&1 > result2.$$name | grep -v 'failed to load external entity' ; \
341	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
342	      diff result.$$name result2.$$name` ; \
343	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
344	      rm result.$$name result2.$$name ; \
345	  fi ; fi ; done)
346
347NStests : xmllint$(EXEEXT)
348	@(echo > .memdump)
349	@echo "## XML Namespaces regression tests"
350	-@(for i in $(srcdir)/test/namespaces/* ; do \
351	  name=`basename $$i`; \
352	  if [ ! -d $$i ] ; then \
353	  if [ ! -f $(srcdir)/result/namespaces/$$name ] ; then \
354	      echo New test file $$name ; \
355	      $(CHECKER) $(top_builddir)/xmllint $$i \
356	         2> $(srcdir)/result/namespaces/$$name.err \
357		 > $(srcdir)/result/namespaces/$$name ; \
358	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
359	  else \
360	      log=`$(CHECKER) $(top_builddir)/xmllint $$i 2> error.$$name > result.$$name ; \
361	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
362	      diff $(srcdir)/result/namespaces/$$name result.$$name ; \
363	      diff $(srcdir)/result/namespaces/$$name.err error.$$name`; \
364	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
365	      rm result.$$name error.$$name ; \
366	  fi ; fi ; done)
367
368IDtests : xmllint$(EXEEXT) testXPath$(EXEEXT)
369	@(echo > .memdump)
370	@echo "## xml:id regression tests"
371	-@(for i in $(srcdir)/test/xmlid/id_*.xml ; do \
372	  name=`basename $$i`; \
373	  if [ ! -d $$i ] ; then \
374	  if [ ! -f $(srcdir)/result/xmlid/$$name ] ; then \
375	      echo New test file $$name ; \
376	      $(CHECKER) $(top_builddir)/testXPath -i $$i "id('bar')" \
377	         2> $(srcdir)/result/xmlid/$$name.err \
378		 > $(srcdir)/result/xmlid/$$name ; \
379	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
380	  else \
381	      log=`$(CHECKER) $(top_builddir)/testXPath -i $$i "id('bar')" 2> error.$$name > result.$$name ; \
382	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
383	      diff $(srcdir)/result/xmlid/$$name result.$$name ; \
384	      diff $(srcdir)/result/xmlid/$$name.err error.$$name` ; \
385	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
386	      rm result.$$name error.$$name ; \
387	  fi ; fi ; done)
388
389Errtests : xmllint$(EXEEXT)
390	@(echo > .memdump)
391	@echo "## Error cases regression tests"
392	-@(for i in $(srcdir)/test/errors/*.xml ; do \
393	  name=`basename $$i`; \
394	  if [ ! -d $$i ] ; then \
395	  if [ ! -f $(srcdir)/result/errors/$$name ] ; then \
396	      echo New test file $$name ; \
397	      $(CHECKER) $(top_builddir)/xmllint $$i \
398	         2> $(srcdir)/result/errors/$$name.err \
399		 > $(srcdir)/result/errors/$$name ; \
400	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
401	  else \
402	      log=`$(CHECKER) $(top_builddir)/xmllint $$i 2> error.$$name > result.$$name ; \
403	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
404	      diff $(srcdir)/result/errors/$$name result.$$name ; \
405	      diff $(srcdir)/result/errors/$$name.err error.$$name` ; \
406	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
407	      rm result.$$name error.$$name ; \
408	  fi ; fi ; done)
409	@echo "## Error cases stream regression tests"
410	-@(for i in $(srcdir)/test/errors/*.xml ; do \
411	  name=`basename $$i`; \
412	  if [ ! -d $$i ] ; then \
413	  if [ ! -f $(srcdir)/result/errors/$$name.str ] ; then \
414	      echo New test file $$name ; \
415	      $(CHECKER) $(top_builddir)/xmllint --stream $$i \
416	         2> $(srcdir)/result/errors/$$name.str \
417		 > /dev/null ; \
418	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
419	  else \
420	      log=`$(CHECKER) $(top_builddir)/xmllint --stream $$i 2> error.$$name > /dev/null ; \
421	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
422	      diff $(srcdir)/result/errors/$$name.str error.$$name` ; \
423	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
424	      rm error.$$name ; \
425	  fi ; fi ; done)
426
427Docbtests : xmllint$(EXEEXT)
428
429XMLenttests : xmllint$(EXEEXT)
430	@(echo > .memdump)
431	@echo "## XML entity subst regression tests"
432	-@(for i in $(srcdir)/test/* ; do \
433	  name=`basename $$i`; \
434	  if [ ! -d $$i ] ; then \
435	  if [ ! -f $(srcdir)/result/noent/$$name ] ; then \
436	      echo New test file $$name ; \
437	      $(CHECKER) $(top_builddir)/xmllint --noent $$i > $(srcdir)/result/noent/$$name ; \
438	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
439	  else \
440	      log=`$(CHECKER) $(top_builddir)/xmllint --noent $$i 2>&1 > result.$$name ; \
441	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
442	      diff $(srcdir)/result/noent/$$name result.$$name ; \
443	      $(CHECKER) $(top_builddir)/xmllint --noent result.$$name 2>&1 > result2.$$name ; \
444	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
445	      diff result.$$name result2.$$name` ; \
446	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
447	      rm result.$$name result2.$$name ; \
448	  fi ; fi ; done)
449
450URItests : testURI$(EXEEXT)
451	@(echo > .memdump)
452	@echo "## URI module regression tests"
453	-@(for i in $(srcdir)/test/URI/*.data ; do \
454	  name=`basename $$i`; \
455	  if [ ! -d $$i ] ; then \
456	  if [ ! -f $(srcdir)/result/URI/$$name ] ; then \
457	      echo New test file $$name ; \
458	      $(CHECKER) $(top_builddir)/testURI -base 'http://foo.com/path/to/index.html?orig#help' < $$i > $(srcdir)/result/URI/$$name ; \
459	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
460	  else \
461	      log=`$(CHECKER) $(top_builddir)/testURI -base 'http://foo.com/path/to/index.html?orig#help' < $$i 2>&1 > result.$$name ; \
462	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
463	      diff $(srcdir)/result/URI/$$name result.$$name` ; \
464	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
465	      rm result.$$name ; \
466	  fi ; fi ; done)
467	-@(for i in $(srcdir)/test/URI/*.uri ; do \
468	  name=`basename $$i`; \
469	  if [ ! -d $$i ] ; then \
470	  if [ ! -f $(srcdir)/result/URI/$$name ] ; then \
471	      echo New test file $$name ; \
472	      $(CHECKER) $(top_builddir)/testURI < $$i > $(srcdir)/result/URI/$$name ; \
473	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
474	  else \
475	      log=`$(CHECKER) $(top_builddir)/testURI < $$i 2>&1 > result.$$name ; \
476	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
477	      diff $(srcdir)/result/URI/$$name result.$$name` ; \
478	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
479	      rm result.$$name ; \
480	  fi ; fi ; done)
481
482XPathtests : testXPath$(EXEEXT)
483	@(echo > .memdump)
484	@echo "## XPath regression tests"
485	-@(if [ "`$(top_builddir)/testXPath | grep 'support not compiled in'`" != "" ] ; \
486	  then echo Skipping debug not compiled in ; exit 0 ; fi ; \
487	  for i in $(srcdir)/test/XPath/expr/* ; do \
488	  name=`basename $$i`; \
489	  if [ ! -d $$i ] ; then \
490	  if [ ! -f $(srcdir)/result/XPath/expr/$$name ] ; then \
491	      echo New test file $$name ; \
492	      $(CHECKER) $(top_builddir)/testXPath -f --expr $$i > $(srcdir)/result/XPath/expr/$$name ; \
493	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
494	  else \
495	      log=`$(CHECKER) $(top_builddir)/testXPath -f --expr $$i 2>&1 > result.$$name ; \
496	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
497	      diff $(srcdir)/result/XPath/expr/$$name result.$$name` ; \
498	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
499	      rm result.$$name ; \
500	  fi ; fi ; done ; \
501	  for i in $(srcdir)/test/XPath/docs/* ; do \
502	  if [ ! -d $$i ] ; then \
503	  doc=`basename $$i`; \
504	  for j in $(srcdir)/test/XPath/tests/$$doc* ; do \
505	  if [ ! -f $$j ] ; then continue ; fi ; \
506	  name=`basename $$j`; \
507	  if [ ! -d $$j ] ; then \
508	  if [ ! -f $(srcdir)/result/XPath/tests/$$name ] ; then \
509	      echo New test file $$name ; \
510	      $(CHECKER) $(top_builddir)/testXPath -f -i $$i $$j > $(srcdir)/result/XPath/tests/$$name ; \
511	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
512	  else \
513	      log=`$(CHECKER) $(top_builddir)/testXPath -f -i $$i $$j 2>&1 > result.$$name ; \
514	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
515	      diff $(srcdir)/result/XPath/tests/$$name result.$$name` ; \
516	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
517	      rm result.$$name ; \
518	  fi ; fi ; done ; fi ; done)
519
520XPtrtests : testXPath$(EXEEXT)
521	@(echo > .memdump)
522	@echo "## XPointer regression tests"
523	-@(if [ "`$(top_builddir)/testXPath | grep 'support not compiled in'`" != "" ] ; \
524	  then echo Skipping debug not compiled in ; exit 0 ; fi ; \
525	  for i in $(srcdir)/test/XPath/docs/* ; do \
526	  if [ ! -d $$i ] ; then \
527	  doc=`basename $$i`; \
528	  for j in $(srcdir)/test/XPath/xptr/$$doc* ; do \
529	  if [ ! -f $$j ] ; then continue ; fi ; \
530	  name=`basename $$j`; \
531	  if [ ! -d $$j ] ; then \
532	  if [ ! -f $(srcdir)/result/XPath/xptr/$$name ] ; then \
533	      echo New test file $$name ; \
534	      $(CHECKER) $(top_builddir)/testXPath -xptr -f -i $$i $$j > $(srcdir)/result/XPath/xptr/$$name ; \
535	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
536	  else \
537	      log=`$(CHECKER) $(top_builddir)/testXPath -xptr -f -i $$i $$j 2>&1 > result.$$name ; \
538	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
539	      diff $(srcdir)/result/XPath/xptr/$$name result.$$name` ; \
540	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
541	      rm result.$$name ; \
542	  fi ; fi ; done ; fi ; done)
543
544XIncludetests : xmllint$(EXEEXT)
545	@(echo > .memdump)
546	@echo "## XInclude regression tests"
547	-@(for i in $(srcdir)/test/XInclude/docs/* ; do \
548	  name=`basename $$i`; \
549	  if [ ! -d $$i ] ; then \
550	  if [ ! -f $(srcdir)/result/XInclude/$$name ] ; then \
551	      echo New test file $$name ; \
552	      $(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude $$i > $(srcdir)/result/XInclude/$$name 2> $(srcdir)/result/XInclude/$$name.err ; \
553	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
554	  else \
555	      log=`$(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude $$i > result.$$name 2>error.$$name ; \
556	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
557	      diff $(srcdir)/result/XInclude/$$name result.$$name ; \
558	      diff $(srcdir)/result/XInclude/$$name.err error.$$name` ; \
559	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
560	      rm result.$$name error.$$name ; \
561	  fi ; fi ; done)
562	-@(for i in $(srcdir)/test/XInclude/docs/* ; do \
563	  name=`basename $$i`; \
564	  if [ ! -d $$i ] ; then \
565	  if [ ! -f $(srcdir)/result/XInclude/$$name ] ; then \
566	      echo New test file $$name ; \
567	      $(CHECKER) $(top_builddir)/xmllint --nowarning --noxincludenode $$i > $(srcdir)/result/XInclude/$$name 2> $(srcdir)/result/XInclude/$$name.err ; \
568	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
569	  else \
570	      log=`$(CHECKER) $(top_builddir)/xmllint --nowarning --noxincludenode $$i > result.$$name 2>error.$$name ; \
571	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
572	      diff $(srcdir)/result/XInclude/$$name result.$$name ; \
573	      diff $(srcdir)/result/XInclude/$$name.err error.$$name` ; \
574	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
575	      rm result.$$name error.$$name ; \
576	  fi ; fi ; done)
577	@(echo > .memdump)
578	@echo "## XInclude xmlReader regression tests"
579	-@(for i in $(srcdir)/test/XInclude/docs/* ; do \
580	  name=`basename $$i`; \
581	  if [ ! -d $$i ] ; then \
582	  if [ ! -f $(srcdir)/result/XInclude/$$name.rdr ] ; then \
583	      echo New test file $$name ; \
584	      $(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude --stream --debug $$i > $(srcdir)/result/XInclude/$$name.rdr ; \
585	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
586	  else \
587	      log=`$(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude --stream --debug $$i > result.$$name 2>error.$$name ; \
588	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
589	      diff $(srcdir)/result/XInclude/$$name.err error.$$name ; \
590	      diff $(srcdir)/result/XInclude/$$name.rdr result.$$name` ; \
591	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
592	      rm result.$$name error.$$name ; \
593	  fi ; fi ; done)
594	-@(for i in $(srcdir)/test/XInclude/docs/* ; do \
595	  name=`basename $$i`; \
596	  if [ ! -d $$i ] ; then \
597	  if [ ! -f $(srcdir)/result/XInclude/$$name.rdr ] ; then \
598	      echo New test file $$name ; \
599	      $(CHECKER) $(top_builddir)/xmllint --nowarning --noxincludenode --stream --debug $$i > $(srcdir)/result/XInclude/$$name.rdr ; \
600	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
601	  else \
602	      log=`$(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude --stream --debug $$i > result.$$name 2>error.$$name ; \
603	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
604	      diff $(srcdir)/result/XInclude/$$name.err error.$$name ; \
605	      diff $(srcdir)/result/XInclude/$$name.rdr result.$$name` ; \
606	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
607	      rm result.$$name error.$$name ; \
608	  fi ; fi ; done)
609
610Scripttests : xmllint$(EXEEXT)
611	@(echo > .memdump)
612	@echo "## Scripts regression tests"
613	@echo "## Some of the base computations may be different if srcdir != ."
614	-@(for i in $(srcdir)/test/scripts/*.script ; do \
615	  name=`basename $$i .script`; \
616	  xml=$(srcdir)/test/scripts/`basename $$i .script`.xml; \
617	  if [ -f $$xml ] ; then \
618	  if [ ! -f $(srcdir)/result/scripts/$$name ] ; then \
619	      echo New test file $$name ; \
620	      $(CHECKER) $(top_builddir)/xmllint --shell $$xml < $$i > $(srcdir)/result/scripts/$$name 2> $(srcdir)/result/scripts/$$name.err ; \
621	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
622	  else \
623	      log=`$(CHECKER) $(top_builddir)/xmllint --shell $$xml < $$i > result.$$name 2> result.$$name.err ; \
624	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
625	      diff $(srcdir)/result/scripts/$$name result.$$name ; \
626	      diff $(srcdir)/result/scripts/$$name.err result.$$name.err` ; \
627	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
628	      rm result.$$name result.$$name.err ; \
629	  fi ; fi ; done)
630
631Catatests : xmlcatalog$(EXEEXT)
632	@(echo > .memdump)
633	@echo "## Catalog regression tests"
634	-@(for i in $(srcdir)/test/catalogs/*.script ; do \
635	  name=`basename $$i .script`; \
636	  xml=$(srcdir)/test/catalogs/`basename $$i .script`.xml; \
637	  if [ -f $$xml ] ; then \
638	  if [ ! -f $(srcdir)/result/catalogs/$$name ] ; then \
639	      echo New test file $$name ; \
640	      $(CHECKER) $(top_builddir)/xmlcatalog --shell $$xml < $$i 2>&1 > $(srcdir)/result/catalogs/$$name ; \
641	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
642	  else \
643	      log=`$(CHECKER) $(top_builddir)/xmlcatalog --shell $$xml < $$i 2>&1 > result.$$name ; \
644	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
645	      diff $(srcdir)/result/catalogs/$$name result.$$name` ; \
646	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
647	      rm result.$$name ; \
648	  fi ; fi ; done)
649	-@(for i in $(srcdir)/test/catalogs/*.script ; do \
650	  name=`basename $$i .script`; \
651	  sgml=$(srcdir)/test/catalogs/`basename $$i .script`.sgml; \
652	  if [ -f $$sgml ] ; then \
653	  if [ ! -f $(srcdir)/result/catalogs/$$name ] ; then \
654	      echo New test file $$name ; \
655	      $(CHECKER) $(top_builddir)/xmlcatalog --shell $$sgml < $$i > $(srcdir)/result/catalogs/$$name ; \
656	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
657	  else \
658	      log=`$(CHECKER) $(top_builddir)/xmlcatalog --shell $$sgml < $$i > result.$$name ; \
659	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
660	      diff $(srcdir)/result/catalogs/$$name result.$$name` ; \
661	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
662	      rm result.$$name ; \
663	  fi ; fi ; done)
664	@echo "## Add and del operations on XML Catalogs"
665	-@($(CHECKER) $(top_builddir)/xmlcatalog --create --noout $(srcdir)/result/catalogs/mycatalog; \
666	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
667	$(CHECKER) $(top_builddir)/xmlcatalog --noout --add public Pubid sysid $(srcdir)/result/catalogs/mycatalog; \
668	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
669	$(CHECKER) $(top_builddir)/xmlcatalog --noout --add public Pubid2 sysid2 $(srcdir)/result/catalogs/mycatalog; \
670	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
671	$(CHECKER) $(top_builddir)/xmlcatalog --noout --add public Pubid3 sysid3 $(srcdir)/result/catalogs/mycatalog; \
672	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
673	diff result/catalogs/mycatalog.full $(srcdir)/result/catalogs/mycatalog; \
674	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
675	$(CHECKER) $(top_builddir)/xmlcatalog --noout --del sysid $(srcdir)/result/catalogs/mycatalog; \
676	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
677	$(CHECKER) $(top_builddir)/xmlcatalog --noout --del sysid3 $(srcdir)/result/catalogs/mycatalog; \
678	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
679	$(CHECKER) $(top_builddir)/xmlcatalog --noout --del sysid2 $(srcdir)/result/catalogs/mycatalog; \
680	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
681	diff result/catalogs/mycatalog.empty $(srcdir)/result/catalogs/mycatalog; \
682	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
683	rm -f $(srcdir)/result/catalogs/mycatalog)
684
685SVGtests : xmllint$(EXEEXT)
686	@echo "## SVG parsing regression tests"
687	-@(for i in $(srcdir)/test/SVG/* ; do \
688	  name=`basename $$i`; \
689	  if [ ! -d $$i ] ; then \
690	  if [ ! -f $(srcdir)/result/SVG/$$name ] ; then \
691	      echo New test file $$name ; \
692	      $(CHECKER) $(top_builddir)/xmllint $$i > $(srcdir)/result/SVG/$$name ; \
693	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
694	  else \
695	      echo Testing $$name ; \
696	      $(CHECKER) $(top_builddir)/xmllint $$i > result.$$name ; \
697	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
698	      diff $(srcdir)/result/SVG/$$name result.$$name ; \
699	      $(CHECKER) $(top_builddir)/xmllint result.$$name > result2.$$name ; \
700	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
701	      diff result.$$name result2.$$name ; \
702	      rm result.$$name result2.$$name ; \
703	  fi ; fi ; done)
704
705Threadtests : testThreads$(EXEEXT)
706	@echo "## Threaded regression tests"
707	-@($(CHECKER) $(top_builddir)/testThreads ; \
708	   grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
709	   exit 0)
710
711Readertests : xmllint$(EXEEXT)
712	@(echo > .memdump)
713	@echo "## Reader regression tests"
714	-@(for i in $(srcdir)/test/* ; do \
715	  name=`basename $$i`; \
716	  if [ ! -d $$i ] ; then \
717	  if [ ! -f $(srcdir)/result/$$name.rdr ] ; then \
718	      echo New test file $$name ; \
719	      $(CHECKER) $(top_builddir)/xmllint --nonet --debug --stream $$i > $(srcdir)/result/$$name.rdr 2>/dev/null ; \
720	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
721	  else \
722	      log=`$(CHECKER) $(top_builddir)/xmllint --nonet --debug --stream $$i > result.$$name 2>/dev/null ; \
723	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
724	      diff $(srcdir)/result/$$name.rdr result.$$name` ; \
725	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
726	      rm result.$$name ; \
727	  fi ; fi ; done)
728	@echo "## Reader on memory regression tests"
729	-@(for i in $(srcdir)/test/* ; do \
730	  name=`basename $$i`; \
731	  if [ ! -d $$i ] ; then \
732	  if [ ! -f $(srcdir)/result/$$name.rdr ] ; then \
733	      echo New test file $$name ; \
734	      $(CHECKER) $(top_builddir)/xmllint --memory --nonet --debug --stream $$i > $(srcdir)/result/$$name.rdr 2>/dev/null ; \
735	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
736	  else \
737	      log=`$(CHECKER) $(top_builddir)/xmllint --memory --nonet --debug --stream $$i > result.$$name 2>/dev/null ; \
738	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
739	      diff $(srcdir)/result/$$name.rdr result.$$name` ; \
740	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
741	      rm result.$$name ; \
742	  fi ; fi ; done)
743	@(echo > .memdump)
744	@echo "## Walker regression tests"
745	-@(for i in $(srcdir)/test/* ; do \
746	  name=`basename $$i`; \
747	  if [ ! -d $$i ] ; then \
748	  if [ ! -f $(srcdir)/result/$$name.rdr ] ; then \
749	      echo New test file $$name ; \
750	      $(CHECKER) $(top_builddir)/xmllint --nonet --debug --walker $$i > $(srcdir)/result/$$name.rdr 2>/dev/null ; \
751	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
752	  else \
753	      log=`$(CHECKER) $(top_builddir)/xmllint --nonet --debug --walker $$i > result.$$name 2>/dev/null ; \
754	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
755	      diff $(srcdir)/result/$$name.rdr result.$$name` ; \
756	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
757	      rm result.$$name ; \
758	  fi ; fi ; done)
759	@echo "## Reader entities substitution regression tests"
760	-@(for i in $(srcdir)/test/* ; do \
761	  name=`basename $$i`; \
762	  if [ ! -d $$i ] ; then \
763	  if [ ! -f $(srcdir)/result/$$name.rde ] ; then \
764	      echo New test file $$name ; \
765	      $(CHECKER) $(top_builddir)/xmllint --noent --nonet --debug --stream $$i > $(srcdir)/result/$$name.rde 2>/dev/null ; \
766	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
767	  else \
768	      log=`$(CHECKER) $(top_builddir)/xmllint --noent --nonet --debug --stream $$i > result.$$name 2>/dev/null ; \
769	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
770	      diff $(srcdir)/result/$$name.rde result.$$name` ; \
771	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
772	      rm result.$$name ; \
773	  fi ; fi ; done)
774
775SAXtests : testSAX$(EXEEXT)
776	@(echo > .memdump)
777	@echo "## SAX1 callbacks regression tests"
778	-@(for i in $(srcdir)/test/* ; do \
779	  name=`basename $$i`; \
780	  if [ ! -d $$i ] ; then \
781	  if [ ! -f $(srcdir)/result/$$name.sax ] ; then \
782	      echo New test file $$name ; \
783	      $(CHECKER) $(top_builddir)/testSAX $$i > $(srcdir)/result/$$name.sax 2> /dev/null ; \
784	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
785	  else \
786	      log=`$(CHECKER) $(top_builddir)/testSAX $$i > result.$$name 2> /dev/null ; \
787	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
788	      diff $(srcdir)/result/$$name.sax result.$$name` ; \
789	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
790	      rm result.$$name ; \
791	  fi ; fi ; done)
792	@echo "## SAX2 callbacks regression tests"
793	-@(for i in $(srcdir)/test/* ; do \
794	  name=`basename $$i`; \
795	  if [ ! -d $$i ] ; then \
796	  if [ ! -f $(srcdir)/result/$$name.sax2 ] ; then \
797	      echo New test file $$name ; \
798	      $(CHECKER) $(top_builddir)/testSAX --sax2 $$i > $(srcdir)/result/$$name.sax2 2> /dev/null ; \
799	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
800	  else \
801	      log=`$(CHECKER) $(top_builddir)/testSAX --sax2 $$i > result.$$name 2> /dev/null ; \
802	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
803	      diff $(srcdir)/result/$$name.sax2 result.$$name` ; \
804	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
805	      rm result.$$name ; \
806	  fi ; fi ; done)
807
808Validtests : xmllint$(EXEEXT)
809	@(echo > .memdump)
810	@echo "## Valid documents regression tests"
811	-@(for i in $(srcdir)/test/VCM/* ; do \
812	  name=`basename $$i`; \
813	  if [ ! -d $$i ] ; then \
814	      log=`$(CHECKER) $(top_builddir)/xmllint --valid --noout --nowarning $$i ; \
815	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"`;\
816	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
817	  fi ; done ; exit 0)
818	@echo "## Validity checking regression tests"
819	-@(for i in $(srcdir)/test/VC/* ; do \
820	  name=`basename $$i`; \
821	  if [ ! -d $$i ] ; then \
822	  if [ ! -f $(srcdir)/result/VC/$$name ] ; then \
823	      echo New test file $$name ; \
824	      $(CHECKER) $(top_builddir)/xmllint --noout --valid $$i 2> $(srcdir)/result/VC/$$name ; \
825	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
826	  else \
827	      log=`$(CHECKER) $(top_builddir)/xmllint --noout --valid $$i 2> result.$$name ; \
828	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
829	      diff $(srcdir)/result/VC/$$name result.$$name` ; \
830	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
831	      rm result.$$name ; \
832	  fi ; fi ; done)
833	@echo "## General documents valid regression tests"
834	-@(for i in $(srcdir)/test/valid/* ; do \
835	  name=`basename $$i`; \
836	  if [ ! -d $$i ] ; then \
837	  if [ ! -f $(srcdir)/result/valid/$$name ] ; then \
838	      echo New test file $$name ; \
839	      $(CHECKER) $(top_builddir)/xmllint --valid $$i > $(srcdir)/result/valid/$$name 2>$(srcdir)/result/valid/$$name.err ; \
840	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
841	  else \
842	      log=`$(CHECKER) $(top_builddir)/xmllint --valid $$i > result.$$name 2>error.$$name ; \
843	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
844	      diff $(srcdir)/result/valid/$$name result.$$name ; \
845	      diff $(srcdir)/result/valid/$$name.err error.$$name` ; \
846	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
847	      rm result.$$name error.$$name ; \
848	  fi ; fi ; done)
849
850Regexptests: testRegexp$(EXEEXT)
851	@(echo > .memdump)
852	@echo "## Regexp regression tests"
853	-@(for i in $(srcdir)/test/regexp/* ; do \
854	  name=`basename $$i`; \
855	  if [ ! -d $$i ] ; then \
856	  if [ ! -f $(srcdir)/result/regexp/$$name ] ; then \
857	      echo New test file $$name ; \
858	      $(CHECKER) $(top_builddir)/testRegexp -i $$i > $(srcdir)/result/regexp/$$name; \
859	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
860	  else \
861	      log=`$(CHECKER) $(top_builddir)/testRegexp -i $$i 2>&1 > result.$$name ; \
862	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
863	      diff $(srcdir)/result/regexp/$$name result.$$name` ; \
864	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
865	      rm result.$$name ; \
866	  fi ; fi ; done)
867	@echo "## Formal expresssions regression tests"
868	-@(for i in $(srcdir)/test/expr/* ; do \
869	  name=`basename $$i`; \
870	  if [ ! -d $$i ] ; then \
871	  if [ ! -f $(srcdir)/result/expr/$$name ] ; then \
872	      echo New test file $$name ; \
873	      $(CHECKER) $(top_builddir)/testRegexp --expr -i $$i > $(srcdir)/result/expr/$$name; \
874	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
875	  else \
876	      log=`$(CHECKER) $(top_builddir)/testRegexp --expr -i $$i 2>&1 > result.$$name ; \
877	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
878	      diff $(srcdir)/result/expr/$$name result.$$name` ; \
879	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
880	      rm result.$$name ; \
881	  fi ; fi ; done)
882
883Automatatests: testAutomata$(EXEEXT)
884	@(echo > .memdump)
885	@echo "## Automata regression tests"
886	-@(for i in $(srcdir)/test/automata/* ; do \
887	  name=`basename $$i`; \
888	  if [ ! -d $$i ] ; then \
889	  if [ ! -f $(srcdir)/result/automata/$$name ] ; then \
890	      echo New test file $$name ; \
891	      $(CHECKER) $(top_builddir)/testAutomata $$i > $(srcdir)/result/automata/$$name; \
892	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
893	  else \
894	      log=`$(CHECKER) $(top_builddir)/testAutomata $$i 2>&1 > result.$$name ; \
895	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
896	      diff $(srcdir)/result/automata/$$name result.$$name` ; \
897	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
898	      rm result.$$name ; \
899	  fi ; fi ; done)
900
901dba100000.xml: dbgenattr.pl
902	@echo "## generating dba100000.xml"
903	@($(PERL) $(top_srcdir)/dbgenattr.pl 100000 > dba100000.xml)
904
905Timingtests: xmllint$(EXEEXT) dba100000.xml
906	@echo "## Timing tests to try to detect performance"
907	@echo "## as well a memory usage breakage when streaming"
908	@echo "## 1/ using the file interface"
909	@echo "## 2/ using the memory interface"
910	@echo "## 3/ repeated DOM parsing"
911	@echo "## 4/ repeated DOM validation"
912	-@($(top_builddir)/xmllint --stream --timing dba100000.xml; \
913	   MEM=`cat .memdump | grep "MEMORY ALLOCATED" | awk '{ print $$7}'`;\
914	   if [ "$$MEM" != "" ] ; then echo Using $$MEM bytes ; fi ; \
915	   grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
916	   exit 0)
917	-@($(top_builddir)/xmllint --stream --timing --memory dba100000.xml; \
918	   MEM=`cat .memdump | grep "MEMORY ALLOCATED" | awk '{ print $$7}'`;\
919	   if [ "$$MEM" != "" ] ; then echo Using $$MEM bytes ; fi ; \
920	   grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
921	   exit 0)
922	-@($(top_builddir)/xmllint --noout --timing --repeat $(srcdir)/test/valid/REC-xml-19980210.xml; \
923	   MEM=`cat .memdump | grep "MEMORY ALLOCATED" | awk '{ print $$7}'`;\
924	   if [ "$$MEM" != "" ] ; then echo Using $$MEM bytes ; fi ; \
925	   grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
926	   exit 0)
927
928VTimingtests: xmllint$(EXEEXT)
929	-@($(top_builddir)/xmllint --noout --timing --valid --repeat $(srcdir)/test/valid/REC-xml-19980210.xml; \
930	   MEM=`cat .memdump | grep "MEMORY ALLOCATED" | awk '{ print $$7}'`;\
931	   if [ "$$MEM" != "" ] ; then echo Using $$MEM bytes ; fi ; \
932	   grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
933	   exit 0)
934
935C14Ntests : testC14N$(EXEEXT)
936	@echo "## C14N and XPath regression tests"
937	-@(for m in with-comments without-comments 1-1-without-comments exc-without-comments ; do \
938	    for i in $(srcdir)/test/c14n/$$m/*.xml ; do  \
939		if [ ! -d $$i ] ; then \
940		    name=`basename $$i .xml`; \
941		    cmdline="$(CHECKER) $(top_builddir)/testC14N --$$m $$i"; \
942		    if [ -f $(srcdir)/test/c14n/$$m/$$name.xpath ] ; then \
943			cmdline="$$cmdline $(srcdir)/test/c14n/$$m/$$name.xpath"; \
944			if [ -f $(srcdir)/test/c14n/$$m/$$name.ns ] ; then \
945			    cmdline="$$cmdline '`cat $(srcdir)/test/c14n/$$m/$$name.ns`'"; \
946			fi; \
947		    fi; \
948		    $$cmdline > $(srcdir)/test/c14n/test.tmp; \
949		    if [ $$? -eq 0 ]; then \
950			diff  $(srcdir)/result/c14n/$$m/$$name $(srcdir)/test/c14n/test.tmp; \
951			if [ $$? -ne 0 ]; then \
952			    echo "Test $$m/$$name failed"; \
953			    cat $(srcdir)/test/c14n/test.tmp; \
954			fi; \
955		    else \
956			echo "C14N failed"; \
957		    fi; \
958		    grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
959		fi; \
960		rm -f $(srcdir)/test/c14n/test.tmp; \
961	    done; \
962	done)
963
964Schemastests: testSchemas$(EXEEXT)
965	@(echo > .memdump)
966	@echo "## Schemas regression tests"
967	-@(for i in $(srcdir)/test/schemas/*_*.xsd ; do \
968	  name=`basename $$i | sed 's+_.*++'`; \
969	  sno=`basename $$i | sed 's+.*_\(.*\).xsd+\1+'`; \
970	  for j in $(srcdir)/test/schemas/"$$name"_*.xml ; do \
971	      if [ -f $$j ] ; then \
972	      xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
973	      if [ ! -f $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno" ]; \
974	      then \
975		  echo New test file "$$name"_"$$sno"_"$$xno" ; \
976		  $(CHECKER) $(top_builddir)/testSchemas $$i $$j \
977		    > $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno" \
978		    2> $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno".err; \
979	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
980	      else \
981	          log=`$(CHECKER) $(top_builddir)/testSchemas $$i $$j \
982		    > res.$$name 2> err.$$name;\
983	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
984	          diff $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno" \
985		       res.$$name;\
986	          diff $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno".err \
987		       err.$$name;\
988		  grep Unimplemented err.$$name`; \
989	          if [ -n "$$log" ] ; then echo "$$name"_"$$sno"_"$$xno" result ; echo $$log ; fi ; \
990	          rm res.$$name err.$$name ; \
991	       fi ; fi ;\
992	  done; done)
993
994Relaxtests: xmllint$(EXEEXT)
995	@(echo > .memdump)
996	@echo "## Relax-NG regression tests"
997	-@(for i in $(srcdir)/test/relaxng/*.rng ; do \
998	  name=`basename $$i | sed 's+\.rng++'`; \
999	  if [ ! -f $(srcdir)/result/relaxng/"$$name"_valid ] ; then \
1000	      echo New schemas $$name ; \
1001	      $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $(srcdir)/test/relaxng/tutorA.rng $$i \
1002		      > $(srcdir)/result/relaxng/"$$name"_valid \
1003		      2> $(srcdir)/result/relaxng/"$$name"_err; \
1004	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
1005	  else \
1006	      log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $(srcdir)/test/relaxng/tutorA.rng $$i \
1007	      > res.$$name 2> err.$$name;\
1008	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
1009	      diff $(srcdir)/result/relaxng/"$$name"_valid \
1010		   res.$$name;\
1011	      diff $(srcdir)/result/relaxng/"$$name"_err \
1012		   err.$$name | grep -v "error detected at";\
1013	      grep Unimplemented err.$$name`; \
1014	      if [ -n "$$log" ] ; then echo schemas $$name result ; echo $$log ; fi ; \
1015	      rm res.$$name err.$$name ; \
1016	  fi; \
1017	  for j in $(srcdir)/test/relaxng/"$$name"_*.xml ; do \
1018	      if [ -f $$j ] ; then \
1019	      xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
1020	      if [ ! -f $(srcdir)/result/relaxng/"$$name"_"$$xno" ]; \
1021	      then \
1022		  echo New test file "$$name"_"$$xno" ; \
1023		  $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $$i $$j \
1024		    > $(srcdir)/result/relaxng/"$$name"_"$$xno" \
1025		    2> $(srcdir)/result/relaxng/"$$name"_"$$xno".err; \
1026	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
1027	      else \
1028	          log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $$i $$j \
1029		    > res.$$name 2> err.$$name;\
1030	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
1031	          diff $(srcdir)/result/relaxng/"$$name"_"$$xno" \
1032		       res.$$name;\
1033	          diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \
1034		       err.$$name | grep -v "error detected at";\
1035		  grep Unimplemented err.$$name`; \
1036		  if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo $$log ; fi ; \
1037	          rm res.$$name err.$$name ; \
1038	       fi ; fi ; \
1039	  done; done)
1040	@echo "## Relax-NG streaming regression tests"
1041	-@(for i in $(srcdir)/test/relaxng/*.rng ; do \
1042	  name=`basename $$i | sed 's+\.rng++'`; \
1043	  for j in $(srcdir)/test/relaxng/"$$name"_*.xml ; do \
1044	      if [ -f $$j ] ; then \
1045	      xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
1046	      if [ ! -f $(srcdir)/result/relaxng/"$$name"_"$$xno" ]; \
1047	      then \
1048		  echo New test file "$$name"_"$$xno" ; \
1049		  $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $$i $$j \
1050		    > $(srcdir)/result/relaxng/"$$name"_"$$xno" \
1051		    2> $(srcdir)/result/relaxng/"$$name"_"$$xno".err; \
1052	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
1053	      else \
1054	          log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --stream --relaxng $$i $$j \
1055		    > res.$$name 2> err.$$name;\
1056	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
1057	          diff $(srcdir)/result/relaxng/"$$name"_"$$xno" res.$$name;\
1058		  if [ "$$name" != "tutor10_1" -a "$$name" != "tutor10_2" -a "$$name" != "tutor3_2" -a "$$name" != "307377" -a "$$name" != "tutor8_2" ] ; then \
1059		      diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \
1060			   err.$$name | grep -v "error detected at";\
1061		  fi ; grep Unimplemented err.$$name`; \
1062	          if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo $$log ; fi ; \
1063	          rm res.$$name err.$$name ; \
1064	       fi ; fi ; \
1065	  done; done)
1066
1067Schematrontests: xmllint$(EXEEXT)
1068	@(echo > .memdump)
1069	@echo "## Schematron regression tests"
1070	-@(for i in $(srcdir)/test/schematron/*.sct ; do \
1071	  name=`basename $$i | sed 's+\.sct++'`; \
1072	  for j in $(srcdir)/test/schematron/"$$name"_*.xml ; do \
1073	      if [ -f $$j ] ; then \
1074	      xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
1075	      if [ ! -f $(srcdir)/result/schematron/"$$name"_"$$xno" ]; \
1076	      then \
1077		  echo New test file "$$name"_"$$xno" ; \
1078		  $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --schematron $$i $$j \
1079		    > $(srcdir)/result/schematron/"$$name"_"$$xno" \
1080		    2> $(srcdir)/result/schematron/"$$name"_"$$xno".err; \
1081	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
1082	      else \
1083	          log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --schematron $$i $$j \
1084		    > res.$$name 2> err.$$name;\
1085	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
1086	          diff $(srcdir)/result/schematron/"$$name"_"$$xno" \
1087		       res.$$name;\
1088	          diff $(srcdir)/result/schematron/"$$name"_"$$xno".err \
1089		       err.$$name | grep -v "error detected at";\
1090		  grep Unimplemented err.$$name`; \
1091		  if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo $$log ; fi ; \
1092	          rm res.$$name err.$$name ; \
1093	       fi ; fi ; \
1094	  done; done)
1095
1096RelaxNGPythonTests:
1097	@(if [ -x $(PYTHON) ] ; then \
1098	    PYTHONPATH=$(top_builddir)/python:$(top_builddir)/python/.libs:$$PYTHONPATH ; \
1099	    export PYTHONPATH; \
1100	    LD_LIBRARY_PATH="$(top_builddir)/.libs:$$LD_LIBRARY_PATH" ; \
1101	    export LD_LIBRARY_PATH; \
1102	    echo "## Relax-NG Python based test suite 1" ; \
1103	    $(CHECKER) $(PYTHON) $(srcdir)/check-relaxng-test-suite.py ; \
1104	    echo "## Relax-NG Python based test suite 2" ; \
1105	    $(CHECKER) $(PYTHON) $(srcdir)/check-relaxng-test-suite2.py ; \
1106	  fi)
1107
1108SchemasPythonTests:
1109	@(if [ -x $(PYTHON) ] ; then \
1110	    PYTHONPATH=$(top_builddir)/python:$(top_builddir)/python/.libs:$$PYTHONPATH; \
1111	    export PYTHONPATH; \
1112	    LD_LIBRARY_PATH="$(top_builddir)/.libs:$$LD_LIBRARY_PATH" ; \
1113	    export LD_LIBRARY_PATH; \
1114	    echo "## XML Schemas datatypes Python based test suite" ; \
1115	    echo "## It is normal to see 11 errors reported" ; \
1116	    $(CHECKER) $(PYTHON) $(srcdir)/check-xsddata-test-suite.py ; \
1117	  fi)
1118	@(if [ -x $(PYTHON) -a -d xstc ] ; then cd xstc ; $(MAKE) CHECKER="$(CHECKER)" MAKEFLAGS+=--silent pytests ; fi)
1119
1120Patterntests: xmllint$(EXEEXT)
1121	@(echo > .memdump)
1122	@echo "## Pattern regression tests"
1123	-@(for i in $(srcdir)/test/pattern/*.pat ; do \
1124	  name=`basename $$i .pat`; \
1125	  if [ -f $(srcdir)/test/pattern/$$name.xml ] ; then \
1126	  if [ ! -f $(srcdir)/result/pattern/$$name ] ; then \
1127	      rm -f result.$$name ; \
1128	      echo New test file $$name ; \
1129	      for pat in `cat $$i` ; do \
1130	      $(CHECKER) $(top_builddir)/xmllint --walker --pattern $$pat $(srcdir)/test/pattern/$$name.xml >> $(srcdir)/result/pattern/$$name ; \
1131	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
1132	      done ;\
1133	  else \
1134	      rm -f result.$$name ; \
1135	      lst=`cat $$i` ; \
1136	      log=`for pat in $$lst ; do $(CHECKER) $(top_builddir)/xmllint --walker --pattern $$pat $(srcdir)/test/pattern/$$name.xml 2>&1 >> result.$$name ; \
1137	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
1138	      done ;\
1139	      diff $(srcdir)/result/pattern/$$name result.$$name` ; \
1140	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
1141	      rm result.$$name ; \
1142	  fi ; fi ; done ;)
1143
1144ModuleTests: testModule$(EXEEXT) testdso.la
1145	@echo "## Module tests"
1146	@(./testModule$(EXEEXT))
1147
1148cleanup:
1149	-@(find . -name .\#\* -exec rm {} \;)
1150	-@(find . -name \*.gcda -o *.gcno -exec rm {} \;)
1151	-@(find . -name \*.orig -o -name \*.rej -o -name \*.old -exec rm {} \;)
1152
1153dist-hook: cleanup libxml2.spec
1154	-cp libxml2.spec $(distdir)
1155	(cd $(srcdir) ; tar -cf - --exclude CVS --exclude .svn win32 macos vms VxWorks bakefile test result) | (cd $(distdir); tar xf -)
1156
1157dist-source: distdir
1158	$(AMTAR) -chof - --exclude Tests --exclude test --exclude result $(distdir) | GZIP=$(GZIP_ENV) gzip -c >`echo "$(distdir)" | sed "s+libxml2+libxml2-sources+"`.tar.gz
1159
1160dist-test: distdir
1161	(mkdir -p $(distdir))
1162	(cd $(srcdir) ; tar -cf - --exclude CVS --exclude .svn xstc/Tests) | (cd $(distdir); tar xf -)
1163	tar -cf - $(distdir)/test $(distdir)/result $(distdir)/xstc/Tests  $(distdir)/Makefile.tests $(distdir)/README $(distdir)/README.tests $(distdir)/AUTHORS $(distdir)/testapi.c $(distdir)/runtest.c $(distdir)/runsuite.c | GZIP=$(GZIP_ENV) gzip -c >`echo "$(distdir)" | sed "s+libxml2+libxml2-tests+"`.tar.gz
1164	@(rm -rf $(distdir)/xstc/Test)
1165
1166cleantar:
1167	@(rm -f libxml*.tar.gz COPYING.LIB)
1168
1169rpm: cleanup cleantar
1170	@(unset CDPATH ; $(MAKE) dist-source dist && rpmbuild -ta $(distdir).tar.gz)
1171
1172## We create xml2Conf.sh here and not from configure because we want
1173## to get the paths expanded correctly.  Macros like srcdir are given
1174## the value NONE in configure if the user doesn't specify them (this
1175## is an autoconf feature, not a bug).
1176
1177xml2Conf.sh: xml2Conf.sh.in Makefile
1178## Use sed and then mv to avoid problems if the user interrupts.
1179	sed -e 's?\@XML_LIBDIR\@?$(XML_LIBDIR)?g' \
1180	    -e 's?\@XML_INCLUDEDIR\@?$(XML_INCLUDEDIR)?g' \
1181	    -e 's?\@VERSION\@?$(VERSION)?g' \
1182	    -e 's?\@XML_LIBS\@?$(XML_LIBS)?g' \
1183	       < $(srcdir)/xml2Conf.sh.in > xml2Conf.tmp \
1184	&& mv xml2Conf.tmp xml2Conf.sh
1185
1186CLEANFILES=xml2Conf.sh *.gcda *.gcno
1187
1188confexecdir=$(libdir)
1189confexec_DATA = xml2Conf.sh
1190CVS_EXTRA_DIST=
1191EXTRA_DIST = xml2-config.in xml2Conf.sh.in libxml.spec.in libxml2.spec \
1192             libxml.m4 Copyright check-xml-test-suite.py gentest.py \
1193	     check-relaxng-test-suite.py check-relaxng-test-suite2.py \
1194	     check-xsddata-test-suite.py check-xinclude-test-suite.py \
1195             example/Makefile.am example/gjobread.c example/gjobs.xml \
1196	     $(man_MANS) libxml-2.0.pc.in libxml-2.0-uninstalled.pc.in \
1197	     trionan.c trionan.h triostr.c triostr.h trio.c trio.h \
1198	     triop.h triodef.h libxml.h elfgcchack.h \
1199	     testThreadsWin32.c genUnicode.py TODO_SCHEMAS \
1200	     dbgen.pl dbgenattr.pl regressions.py regressions.xml \
1201	     README.tests Makefile.tests libxml2.syms \
1202	     $(CVS_EXTRA_DIST)
1203
1204
1205pkgconfigdir = $(libdir)/pkgconfig
1206pkgconfig_DATA = libxml-2.0.pc
1207
1208#
1209# Install the tests program sources as examples 
1210#
1211BASE_DIR=$(datadir)/doc
1212DOC_MODULE=libxml2-$(VERSION)
1213EXAMPLES_DIR=$(BASE_DIR)/$(DOC_MODULE)/examples
1214
1215install-data-local: 
1216	$(mkinstalldirs) $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE)
1217	-@INSTALL@ -m 0644 $(srcdir)/Copyright $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE)
1218	$(mkinstalldirs) $(DESTDIR)$(EXAMPLES_DIR)
1219	-@INSTALL@ -m 0644 $(srcdir)/xmllint.c $(DESTDIR)$(EXAMPLES_DIR)
1220	-@INSTALL@ -m 0644 $(srcdir)/testSAX.c $(DESTDIR)$(EXAMPLES_DIR)
1221	-@INSTALL@ -m 0644 $(srcdir)/testHTML.c $(DESTDIR)$(EXAMPLES_DIR)
1222	-@INSTALL@ -m 0644 $(srcdir)/testXPath.c $(DESTDIR)$(EXAMPLES_DIR)
1223
1224uninstall-local:
1225	rm -f $(DESTDIR)$(EXAMPLES_DIR)/testXPath.c
1226	rm -f $(DESTDIR)$(EXAMPLES_DIR)/testHTML.c
1227	rm -f $(DESTDIR)$(EXAMPLES_DIR)/testSAX.c
1228	rm -f $(DESTDIR)$(EXAMPLES_DIR)/xmllint.c
1229	rm -rf $(DESTDIR)$(EXAMPLES_DIR)
1230	rm -f $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE)/Copyright
1231	rm -rf $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE)
1232
1233tst: tst.c
1234	$(CC) $(CFLAGS) -Iinclude -o tst tst.c .libs/libxml2.a -lpthread -lm -lz
1235
1236sparse: clean
1237	$(MAKE) CC=cgcc
1238
1239#
1240# Coverage support, largely borrowed from libvirt
1241# Both binaries comes from the lcov package in Fedora
1242#
1243LCOV = /usr/bin/lcov
1244GENHTML = /usr/bin/genhtml
1245
1246cov: clean-cov
1247	if [ "`echo $(LDFLAGS) | grep coverage`" = "" ] ; then \
1248	    echo not configured with coverage; exit 1 ; fi
1249	if [ ! -x $(LCOV) -o ! -x $(GENHTML) ] ; then \
1250	    echo Need $(LCOV) and $(GENHTML) excecutables; exit 1 ; fi
1251	-@($(MAKE) check)
1252	-@(./runsuite$(EXEEXT))
1253	mkdir $(top_builddir)/coverage
1254	$(LCOV) -c -o $(top_builddir)/coverage/libxml2.info.tmp -d $(top_srcdir)
1255	$(LCOV) -r $(top_builddir)/coverage/libxml2.info.tmp -o $(top_builddir)/coverage/libxml2.info *usr*
1256	rm $(top_builddir)/coverage/libxml2.info.tmp
1257	$(GENHTML) -s -t "libxml2" -o $(top_builddir)/coverage --legend $(top_builddir)/coverage/libxml2.info
1258	echo "Coverage report is in $(top_builddir)/coverage/index.html"
1259
1260clean-cov:
1261	rm -rf $(top_builddir)/coverage
1262
1263