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