Makefile.am revision 252004df14b680d40c29e2ab479660162e15431e
1## Process this file with automake to produce Makefile.in
2
3SUBDIRS = include . doc example @PYTHON_SUBDIR@
4
5DIST_SUBDIRS = include . doc example python
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
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 = @WIN32_EXTRA_LDFLAGS@ -version-info @LIBXML_VERSION_INFO@
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
31else
32libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c  \
33		parser.c tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c  \
34		valid.c xlink.c HTMLparser.c HTMLtree.c debugXML.c xpath.c  \
35		xpointer.c xinclude.c nanohttp.c nanoftp.c DOCBparser.c \
36		catalog.c globals.c threads.c c14n.c xmlstring.c \
37		xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
38		xmlreader.c relaxng.c dict.c SAX2.c \
39		xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c
40endif
41
42DEPS = $(top_builddir)/libxml2.la
43LDADDS = @STATIC_BINARIES@ $(top_builddir)/libxml2.la @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) @M_LIBS@ @WIN32_EXTRA_LIBADD@
44
45
46man_MANS = xml2-config.1 libxml.3
47
48m4datadir = $(datadir)/aclocal
49m4data_DATA = libxml.m4
50
51xmllint_SOURCES=xmllint.c
52xmllint_LDFLAGS = 
53xmllint_DEPENDENCIES = $(DEPS)
54xmllint_LDADD=  @RDL_LIBS@ $(LDADDS)
55
56testSAX_SOURCES=testSAX.c
57testSAX_LDFLAGS = 
58testSAX_DEPENDENCIES = $(DEPS)
59testSAX_LDADD= $(LDADDS)
60
61testHTML_SOURCES=testHTML.c
62testHTML_LDFLAGS = 
63testHTML_DEPENDENCIES = $(DEPS)
64testHTML_LDADD= $(LDADDS)
65
66xmlcatalog_SOURCES=xmlcatalog.c
67xmlcatalog_LDFLAGS = 
68xmlcatalog_DEPENDENCIES = $(DEPS)
69xmlcatalog_LDADD= @RDL_LIBS@ $(LDADDS)
70
71testXPath_SOURCES=testXPath.c
72testXPath_LDFLAGS = 
73testXPath_DEPENDENCIES = $(DEPS)
74testXPath_LDADD= $(LDADDS)
75
76testC14N_SOURCES=testC14N.c
77testC14N_LDFLAGS = 
78testC14N_DEPENDENCIES = $(DEPS)
79testC14N_LDADD= $(LDADDS)
80
81testThreads_SOURCES=testThreads@THREADS_W32@.c
82testThreads_LDFLAGS = 
83testThreads_DEPENDENCIES = $(DEPS)
84testThreads_LDADD= $(LDADDS)
85
86testURI_SOURCES=testURI.c
87testURI_LDFLAGS = 
88testURI_DEPENDENCIES = $(DEPS)
89testURI_LDADD= $(LDADDS)
90
91testRegexp_SOURCES=testRegexp.c
92testRegexp_LDFLAGS = 
93testRegexp_DEPENDENCIES = $(DEPS)
94testRegexp_LDADD= $(LDADDS)
95
96testAutomata_SOURCES=testAutomata.c
97testAutomata_LDFLAGS = 
98testAutomata_DEPENDENCIES = $(DEPS)
99testAutomata_LDADD= $(LDADDS)
100
101testSchemas_SOURCES=testSchemas.c
102testSchemas_LDFLAGS = 
103testSchemas_DEPENDENCIES = $(DEPS)
104testSchemas_LDADD= $(LDADDS)
105
106testRelax_SOURCES=testRelax.c
107testRelax_LDFLAGS = 
108testRelax_DEPENDENCIES = $(DEPS)
109testRelax_LDADD= $(LDADDS)
110
111testReader_SOURCES=testReader.c
112testReader_LDFLAGS = 
113testReader_DEPENDENCIES = $(DEPS)
114testReader_LDADD= $(LDADDS)
115
116#testOOM_SOURCES=testOOM.c testOOMlib.h testOOMlib.c
117#testOOM_LDFLAGS = 
118#testOOM_DEPENDENCIES = $(DEPS)
119#testOOM_LDADD= $(LDADDS)
120
121check-local: tests
122
123testall : tests SVGtests SAXtests
124
125tests: XMLtests XMLenttests NStests Errtests @READER_TEST@ @TEST_SAX@ @TEST_PUSH@ @TEST_HTML@ @TEST_PHTML@  @TEST_VALID@ URItests @TEST_XPATH@ @TEST_XPTR@ @TEST_XINCLUDE@ @TEST_C14N@ @TEST_DEBUG@ @TEST_CATALOG@ @TEST_REGEXPS@ @TEST_SCHEMAS@ @TEST_THREADS@ Timingtests @TEST_VTIME@ @PYTHON_TESTS@
126	@(if [ "@PYTHON_SUBDIR@" != "" ] ; then cd python ; $(MAKE) tests ; fi)
127	@(cd doc/examples ; $(MAKE) tests)
128
129valgrind:
130	@echo '## Running the regression tests under Valgrind'
131	@echo '## Go get a cup of coffee it is gonna take a while ...'
132	$(MAKE) CHECKER='valgrind -q' tests
133
134HTMLtests : testHTML$(EXEEXT)
135	@(echo > .memdump)
136	@echo "## HTML regression tests"
137	-@(for i in $(srcdir)/test/HTML/* ; do \
138	  name=`basename $$i`; \
139	  if [ ! -d $$i ] ; then \
140	  if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
141	      echo New test file $$name ; \
142	      $(CHECKER) $(top_builddir)/testHTML $$i > $(srcdir)/result/HTML/$$name 2>$(srcdir)/result/HTML/$$name.err ; \
143	  else \
144	      log=`$(CHECKER) $(top_builddir)/testHTML $$i > result.$$name 2> error.$$name ; \
145	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
146	      diff $(srcdir)/result/HTML/$$name result.$$name ; \
147	      diff -b $(srcdir)/result/HTML/$$name.err error.$$name ; \
148	      $(CHECKER) $(top_builddir)/testHTML result.$$name > result2.$$name 2>error.$$name ; \
149	      diff result.$$name result2.$$name` ; \
150	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
151	      rm result.$$name result2.$$name error.$$name ; \
152	  fi ; fi ; done)
153
154HTMLPushtests : testHTML$(EXEEXT)
155	@echo "## Push HTML regression tests"
156	-@(for i in $(srcdir)/test/HTML/* ; do \
157	  name=`basename $$i`; \
158	  if [ ! -d $$i ] ; then \
159	  if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
160	      echo New test file $$name ; \
161	      $(CHECKER) $(top_builddir)/testHTML $$i > $(srcdir)/result/HTML/$$name 2>$(srcdir)/result/HTML/$$name.err ; \
162	  else \
163	      log=`$(CHECKER) $(top_builddir)/testHTML --push $$i > result.$$name 2> error.$$name ; \
164	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
165	      diff $(srcdir)/result/HTML/$$name result.$$name ; \
166	      cut -b 1-15 $(srcdir)/result/HTML/$$name.err > errorcut.$$name; \
167	      cut -b 1-15 error.$$name > errorcut2.$$name; \
168	      diff -b errorcut.$$name errorcut2.$$name ; \
169	      $(CHECKER) $(top_builddir)/testHTML --push result.$$name > result2.$$name 2>error.$$name ; \
170	      diff result.$$name result2.$$name` ; \
171	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
172	      rm result.$$name result2.$$name error.$$name errorcut.$$name errorcut2.$$name ; \
173	  fi ; fi ; done)
174	@echo "## HTML SAX regression tests"
175	-@(for i in $(srcdir)/test/HTML/* ; do \
176	  name=`basename $$i`; \
177	  if [ ! -d $$i ] ; then \
178	  if [ ! -f $(srcdir)/result/HTML/$$name.sax ] ; then \
179	      echo New test file $$name ; \
180	      $(CHECKER) $(top_builddir)/testHTML --sax $$i > $(srcdir)/result/HTML/$$name.sax ; \
181	  else \
182	      log=`$(CHECKER) $(top_builddir)/testHTML --sax $$i > result.$$name.sax ; \
183	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
184	      diff $(srcdir)/result/HTML/$$name.sax result.$$name.sax` ; \
185	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
186	      rm result.$$name.sax ; \
187	  fi ; fi ; done)
188	@echo "## Push HTML SAX regression tests"
189	-@(for i in $(srcdir)/test/HTML/* ; do \
190	  name=`basename $$i`; \
191	  if [ ! -d $$i ] ; then \
192	  if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
193	      echo New test file $$name ; \
194	      $(CHECKER) $(top_builddir)/testHTML --sax $$i > $(srcdir)/result/HTML/$$name.sax ; \
195	  else \
196	      log=`$(CHECKER) $(top_builddir)/testHTML --push --sax $$i 2>&1 > result.$$name.sax ; \
197	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
198	      diff $(srcdir)/result/HTML/$$name.sax result.$$name.sax` ; \
199	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
200	      rm result.$$name.sax ; \
201	  fi ; fi ; done)
202
203XMLtests : xmllint$(EXEEXT)
204	@(echo > .memdump)
205	@echo "## XML regression tests"
206	-@(for i in $(srcdir)/test/* ; do \
207	  name=`basename $$i`; \
208	  if [ ! -d $$i ] ; then \
209	  if [ ! -f $(srcdir)/result/$$name ] ; then \
210	      echo New test file $$name ; \
211	      $(CHECKER) $(top_builddir)/xmllint $$i > $(srcdir)/result/$$name ; \
212	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
213	  else \
214	      log=`$(CHECKER) $(top_builddir)/xmllint $$i 2>&1 > result.$$name ; \
215	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
216	      diff $(srcdir)/result/$$name result.$$name ; \
217	      $(CHECKER) $(top_builddir)/xmllint result.$$name 2>&1 > result2.$$name | grep -v 'failed to load external entity' ; \
218	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
219	      diff result.$$name result2.$$name` ;\
220	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
221	      rm result.$$name result2.$$name ; \
222	  fi ; fi ; done)
223	@echo "## XML regression tests on memory"
224	-@(for i in $(srcdir)/test/* ; do \
225	  name=`basename $$i`; \
226	  if [ ! -d $$i ] ; then \
227	  if [ ! -f $(srcdir)/result/$$name ] ; then \
228	      echo New test file $$name ; \
229	      $(CHECKER) $(top_builddir)/xmllint --memory $$i > $(srcdir)/result/$$name ; \
230	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
231	  else \
232	      log=`$(CHECKER) $(top_builddir)/xmllint --memory $$i 2>&1 > result.$$name ; \
233	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
234	      diff $(srcdir)/result/$$name result.$$name ; \
235	      $(CHECKER) $(top_builddir)/xmllint --memory result.$$name 2>&1 > result2.$$name | grep -v 'failed to load external entity' ; \
236	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"`; \
237	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
238	      diff result.$$name result2.$$name ; \
239	      rm result.$$name result2.$$name ; \
240	  fi ; fi ; done)
241
242XMLPushtests: xmllint$(EXEEXT)
243	@(echo > .memdump)
244	@echo "## XML push regression tests"
245	-@(for i in $(srcdir)/test/* ; do \
246	  name=`basename $$i`; \
247	  if [ ! -d $$i ] ; then \
248	  if [ ! -f $(srcdir)/result/$$name ] ; then \
249	      echo New test file $$name ; \
250	      $(CHECKER) $(top_builddir)/xmllint --push $$i > $(srcdir)/result/$$name ; \
251	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
252	  else \
253	      log=`$(CHECKER) $(top_builddir)/xmllint --push $$i 2>&1 > result.$$name ; \
254	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
255	      diff $(srcdir)/result/$$name result.$$name ; \
256	      $(CHECKER) $(top_builddir)/xmllint --push result.$$name 2>&1 > result2.$$name | grep -v 'failed to load external entity' ; \
257	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
258	      diff result.$$name result2.$$name` ; \
259	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
260	      rm result.$$name result2.$$name ; \
261	  fi ; fi ; done)
262
263NStests : xmllint$(EXEEXT)
264	@(echo > .memdump)
265	@echo "## XML Namespaces regression tests"
266	-@(for i in $(srcdir)/test/namespaces/* ; do \
267	  name=`basename $$i`; \
268	  if [ ! -d $$i ] ; then \
269	  if [ ! -f $(srcdir)/result/namespaces/$$name ] ; then \
270	      echo New test file $$name ; \
271	      $(CHECKER) $(top_builddir)/xmllint $$i \
272	         2> $(srcdir)/result/namespaces/$$name.err \
273		 > $(srcdir)/result/namespaces/$$name ; \
274	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
275	  else \
276	      log=`$(CHECKER) $(top_builddir)/xmllint $$i 2> error.$$name > result.$$name ; \
277	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
278	      diff $(srcdir)/result/namespaces/$$name result.$$name ; \
279	      diff $(srcdir)/result/namespaces/$$name.err error.$$name` ; \
280	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
281	      rm result.$$name error.$$name ; \
282	  fi ; fi ; done)
283
284Errtests : xmllint$(EXEEXT)
285	@(echo > .memdump)
286	@echo "## Error cases regression tests"
287	-@(for i in $(srcdir)/test/errors/*.xml ; do \
288	  name=`basename $$i`; \
289	  if [ ! -d $$i ] ; then \
290	  if [ ! -f $(srcdir)/result/errors/$$name ] ; then \
291	      echo New test file $$name ; \
292	      $(CHECKER) $(top_builddir)/xmllint $$i \
293	         2> $(srcdir)/result/errors/$$name.err \
294		 > $(srcdir)/result/errors/$$name ; \
295	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
296	  else \
297	      log=`$(CHECKER) $(top_builddir)/xmllint $$i 2> error.$$name > result.$$name ; \
298	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
299	      diff $(srcdir)/result/errors/$$name result.$$name ; \
300	      diff $(srcdir)/result/errors/$$name.err error.$$name` ; \
301	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
302	      rm result.$$name error.$$name ; \
303	  fi ; fi ; done)
304	@echo "## Error cases stream regression tests"
305	-@(for i in $(srcdir)/test/errors/*.xml ; do \
306	  name=`basename $$i`; \
307	  if [ ! -d $$i ] ; then \
308	  if [ ! -f $(srcdir)/result/errors/$$name.str ] ; then \
309	      echo New test file $$name ; \
310	      $(CHECKER) $(top_builddir)/xmllint $$i \
311	         2> $(srcdir)/result/errors/$$name.str \
312		 > $(srcdir)/result/errors/$$name ; \
313	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
314	  else \
315	      log=`$(CHECKER) $(top_builddir)/xmllint $$i 2> error.$$name > result.$$name ; \
316	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
317	      diff $(srcdir)/result/errors/$$name result.$$name ; \
318	      diff $(srcdir)/result/errors/$$name.str error.$$name` ; \
319	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
320	      rm result.$$name error.$$name ; \
321	  fi ; fi ; done)
322
323Docbtests : xmllint$(EXEEXT)
324
325XMLenttests : xmllint$(EXEEXT)
326	@(echo > .memdump)
327	@echo "## XML entity subst regression tests"
328	-@(for i in $(srcdir)/test/* ; do \
329	  name=`basename $$i`; \
330	  if [ ! -d $$i ] ; then \
331	  if [ ! -f $(srcdir)/result/noent/$$name ] ; then \
332	      echo New test file $$name ; \
333	      $(CHECKER) $(top_builddir)/xmllint --noent $$i > $(srcdir)/result/noent/$$name ; \
334	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
335	  else \
336	      log=`$(CHECKER) $(top_builddir)/xmllint --noent $$i 2>&1 > result.$$name ; \
337	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
338	      diff $(srcdir)/result/noent/$$name result.$$name ; \
339	      $(CHECKER) $(top_builddir)/xmllint --noent result.$$name 2>&1 > result2.$$name ; \
340	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
341	      diff result.$$name result2.$$name` ; \
342	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
343	      rm result.$$name result2.$$name ; \
344	  fi ; fi ; done)
345
346URItests : testURI$(EXEEXT)
347	@(echo > .memdump)
348	@echo "## URI module regression tests"
349	-@(for i in $(srcdir)/test/URI/*.data ; do \
350	  name=`basename $$i`; \
351	  if [ ! -d $$i ] ; then \
352	  if [ ! -f $(srcdir)/result/URI/$$name ] ; then \
353	      echo New test file $$name ; \
354	      $(CHECKER) $(top_builddir)/testURI -base 'http://foo.com/path/to/index.html?orig#help' < $$i > $(srcdir)/result/URI/$$name ; \
355	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
356	  else \
357	      log=`$(CHECKER) $(top_builddir)/testURI -base 'http://foo.com/path/to/index.html?orig#help' < $$i 2>&1 > result.$$name ; \
358	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
359	      diff $(srcdir)/result/URI/$$name result.$$name` ; \
360	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
361	      rm result.$$name ; \
362	  fi ; fi ; done)
363	-@(for i in $(srcdir)/test/URI/*.uri ; do \
364	  name=`basename $$i`; \
365	  if [ ! -d $$i ] ; then \
366	  if [ ! -f $(srcdir)/result/URI/$$name ] ; then \
367	      echo New test file $$name ; \
368	      $(CHECKER) $(top_builddir)/testURI < $$i > $(srcdir)/result/URI/$$name ; \
369	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
370	  else \
371	      log=`$(CHECKER) $(top_builddir)/testURI < $$i 2>&1 > result.$$name ; \
372	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
373	      diff $(srcdir)/result/URI/$$name result.$$name` ; \
374	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
375	      rm result.$$name ; \
376	  fi ; fi ; done)
377
378XPathtests : testXPath$(EXEEXT)
379	@(echo > .memdump)
380	@echo "## XPath regression tests"
381	-@(if [ "`$(top_builddir)/testXPath | grep 'support not compiled in'`" != "" ] ; \
382	  then echo Skipping debug not compiled in ; exit 0 ; fi ; \
383	  for i in $(srcdir)/test/XPath/expr/* ; do \
384	  name=`basename $$i`; \
385	  if [ ! -d $$i ] ; then \
386	  if [ ! -f $(srcdir)/result/XPath/expr/$$name ] ; then \
387	      echo New test file $$name ; \
388	      $(CHECKER) $(top_builddir)/testXPath -f --expr $$i > $(srcdir)/result/XPath/expr/$$name ; \
389	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
390	  else \
391	      log=`$(CHECKER) $(top_builddir)/testXPath -f --expr $$i 2>&1 > result.$$name ; \
392	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
393	      diff $(srcdir)/result/XPath/expr/$$name result.$$name` ; \
394	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
395	      rm result.$$name ; \
396	  fi ; fi ; done ; \
397	  for i in $(srcdir)/test/XPath/docs/* ; do \
398	  if [ ! -d $$i ] ; then \
399	  doc=`basename $$i`; \
400	  for j in $(srcdir)/test/XPath/tests/$$doc* ; do \
401	  if [ ! -f $$j ] ; then continue ; fi ; \
402	  name=`basename $$j`; \
403	  if [ ! -d $$j ] ; then \
404	  if [ ! -f $(srcdir)/result/XPath/tests/$$name ] ; then \
405	      echo New test file $$name ; \
406	      $(CHECKER) $(top_builddir)/testXPath -f -i $$i $$j > $(srcdir)/result/XPath/tests/$$name ; \
407	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
408	  else \
409	      log=`$(CHECKER) $(top_builddir)/testXPath -f -i $$i $$j 2>&1 > result.$$name ; \
410	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
411	      diff $(srcdir)/result/XPath/tests/$$name result.$$name` ; \
412	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
413	      rm result.$$name ; \
414	  fi ; fi ; done ; fi ; done)
415
416XPtrtests : testXPath$(EXEEXT)
417	@(echo > .memdump)
418	@echo "## XPointer regression tests"
419	-@(if [ "`$(top_builddir)/testXPath | grep 'support not compiled in'`" != "" ] ; \
420	  then echo Skipping debug not compiled in ; exit 0 ; fi ; \
421	  for i in $(srcdir)/test/XPath/docs/* ; do \
422	  if [ ! -d $$i ] ; then \
423	  doc=`basename $$i`; \
424	  for j in $(srcdir)/test/XPath/xptr/$$doc* ; do \
425	  if [ ! -f $$j ] ; then continue ; fi ; \
426	  name=`basename $$j`; \
427	  if [ ! -d $$j ] ; then \
428	  if [ ! -f $(srcdir)/result/XPath/xptr/$$name ] ; then \
429	      echo New test file $$name ; \
430	      $(CHECKER) $(top_builddir)/testXPath -xptr -f -i $$i $$j > $(srcdir)/result/XPath/xptr/$$name ; \
431	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
432	  else \
433	      log=`$(CHECKER) $(top_builddir)/testXPath -xptr -f -i $$i $$j 2>&1 > result.$$name ; \
434	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
435	      diff $(srcdir)/result/XPath/xptr/$$name result.$$name` ; \
436	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
437	      rm result.$$name ; \
438	  fi ; fi ; done ; fi ; done)
439
440XIncludetests : xmllint$(EXEEXT)
441	@(echo > .memdump)
442	@echo "## XInclude regression tests"
443	-@(for i in $(srcdir)/test/XInclude/docs/* ; do \
444	  name=`basename $$i`; \
445	  if [ ! -d $$i ] ; then \
446	  if [ ! -f $(srcdir)/result/XInclude/$$name ] ; then \
447	      echo New test file $$name ; \
448	      $(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude $$i > $(srcdir)/result/XInclude/$$name 2> $(srcdir)/result/XInclude/$$name.err ; \
449	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
450	  else \
451	      log=`$(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude $$i > result.$$name 2>error.$$name | grep -v 'failed to load external entity' ; \
452	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
453	      diff $(srcdir)/result/XInclude/$$name result.$$name ; \
454	      diff $(srcdir)/result/XInclude/$$name.err error.$$name` ; \
455	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
456	      rm result.$$name error.$$name ; \
457	  fi ; fi ; done)
458	@(echo > .memdump)
459	@echo "## XInclude xmlReader regression tests"
460	-@(for i in $(srcdir)/test/XInclude/docs/* ; do \
461	  name=`basename $$i`; \
462	  if [ ! -d $$i ] ; then \
463	  if [ ! -f $(srcdir)/result/XInclude/$$name.rdr ] ; then \
464	      echo New test file $$name ; \
465	      $(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude --walker --debug $$i > $(srcdir)/result/XInclude/$$name.rdr ; \
466	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
467	  else \
468	      log=`$(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude --stream --debug $$i > result.$$name 2>error.$$name | grep -v 'failed to load external entity' ; \
469	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
470	      diff $(srcdir)/result/XInclude/$$name.err error.$$name ; \
471	      diff $(srcdir)/result/XInclude/$$name.rdr result.$$name` ; \
472	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
473	      rm result.$$name error.$$name ; \
474	  fi ; fi ; done)
475
476Scripttests : xmllint$(EXEEXT)
477	@(echo > .memdump)
478	@echo "## Scripts regression tests"
479	@echo "## Some of the base computations may be different if srcdir != ."
480	-@(for i in $(srcdir)/test/scripts/*.script ; do \
481	  name=`basename $$i .script`; \
482	  xml=$(srcdir)/test/scripts/`basename $$i .script`.xml; \
483	  if [ -f $$xml ] ; then \
484	  if [ ! -f $(srcdir)/result/scripts/$$name ] ; then \
485	      echo New test file $$name ; \
486	      $(CHECKER) $(top_builddir)/xmllint --shell $$xml < $$i > $(srcdir)/result/scripts/$$name ; \
487	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
488	  else \
489	      log=`$(CHECKER) $(top_builddir)/xmllint --shell $$xml < $$i 2>&1 > result.$$name ; \
490	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
491	      diff $(srcdir)/result/scripts/$$name result.$$name` ; \
492	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
493	      rm result.$$name ; \
494	  fi ; fi ; done)
495
496Catatests : xmlcatalog$(EXEEXT)
497	@(echo > .memdump)
498	@echo "## Catalog regression tests"
499	-@(for i in $(srcdir)/test/catalogs/*.script ; do \
500	  name=`basename $$i .script`; \
501	  xml=$(srcdir)/test/catalogs/`basename $$i .script`.xml; \
502	  if [ -f $$xml ] ; then \
503	  if [ ! -f $(srcdir)/result/catalogs/$$name ] ; then \
504	      echo New test file $$name ; \
505	      $(CHECKER) $(top_builddir)/xmlcatalog --shell $$xml < $$i > $(srcdir)/result/catalogs/$$name ; \
506	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
507	  else \
508	      log=`$(CHECKER) $(top_builddir)/xmlcatalog --shell $$xml < $$i 2>&1 > result.$$name ; \
509	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
510	      diff $(srcdir)/result/catalogs/$$name result.$$name` ; \
511	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
512	      rm result.$$name ; \
513	  fi ; fi ; done)
514	-@(for i in $(srcdir)/test/catalogs/*.script ; do \
515	  name=`basename $$i .script`; \
516	  sgml=$(srcdir)/test/catalogs/`basename $$i .script`.sgml; \
517	  if [ -f $$sgml ] ; then \
518	  if [ ! -f $(srcdir)/result/catalogs/$$name ] ; then \
519	      echo New test file $$name ; \
520	      $(CHECKER) $(top_builddir)/xmlcatalog --shell $$sgml < $$i > $(srcdir)/result/catalogs/$$name ; \
521	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
522	  else \
523	      log=`$(CHECKER) $(top_builddir)/xmlcatalog --shell $$sgml < $$i > result.$$name ; \
524	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
525	      diff $(srcdir)/result/catalogs/$$name result.$$name` ; \
526	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
527	      rm result.$$name ; \
528	  fi ; fi ; done)
529	@echo "## Add and del operations on XML Catalogs"
530	-@($(CHECKER) $(top_builddir)/xmlcatalog --create --noout $(srcdir)/result/catalogs/mycatalog; \
531	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
532	$(CHECKER) $(top_builddir)/xmlcatalog --noout --add public Pubid sysid $(srcdir)/result/catalogs/mycatalog; \
533	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
534	$(CHECKER) $(top_builddir)/xmlcatalog --noout --add public Pubid2 sysid2 $(srcdir)/result/catalogs/mycatalog; \
535	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
536	$(CHECKER) $(top_builddir)/xmlcatalog --noout --add public Pubid3 sysid3 $(srcdir)/result/catalogs/mycatalog; \
537	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
538	diff result/catalogs/mycatalog.full $(srcdir)/result/catalogs/mycatalog; \
539	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
540	$(CHECKER) $(top_builddir)/xmlcatalog --noout --del sysid $(srcdir)/result/catalogs/mycatalog; \
541	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
542	$(CHECKER) $(top_builddir)/xmlcatalog --noout --del sysid3 $(srcdir)/result/catalogs/mycatalog; \
543	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
544	$(CHECKER) $(top_builddir)/xmlcatalog --noout --del sysid2 $(srcdir)/result/catalogs/mycatalog; \
545	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
546	diff result/catalogs/mycatalog.empty $(srcdir)/result/catalogs/mycatalog; \
547	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
548	rm -f $(srcdir)/result/catalogs/mycatalog)
549
550SVGtests : xmllint$(EXEEXT)
551	@echo "## SVG parsing regression tests"
552	-@(for i in $(srcdir)/test/SVG/* ; do \
553	  name=`basename $$i`; \
554	  if [ ! -d $$i ] ; then \
555	  if [ ! -f $(srcdir)/result/SVG/$$name ] ; then \
556	      echo New test file $$name ; \
557	      $(CHECKER) $(top_builddir)/xmllint $$i > $(srcdir)/result/SVG/$$name ; \
558	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
559	  else \
560	      echo Testing $$name ; \
561	      $(CHECKER) $(top_builddir)/xmllint $$i > result.$$name ; \
562	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
563	      diff $(srcdir)/result/SVG/$$name result.$$name ; \
564	      $(CHECKER) $(top_builddir)/xmllint result.$$name > result2.$$name ; \
565	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
566	      diff result.$$name result2.$$name ; \
567	      rm result.$$name result2.$$name ; \
568	  fi ; fi ; done)
569
570Threadtests : testThreads$(EXEEXT)
571	@echo "## Threaded regression tests"
572	-@($(CHECKER) $(top_builddir)/testThreads ; \
573	   grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
574	   exit 0)
575
576Readertests : xmllint$(EXEEXT)
577	@(echo > .memdump)
578	@echo "## Reader regression tests"
579	-@(for i in $(srcdir)/test/* ; do \
580	  name=`basename $$i`; \
581	  if [ ! -d $$i ] ; then \
582	  if [ ! -f $(srcdir)/result/$$name.rdr ] ; then \
583	      echo New test file $$name ; \
584	      $(CHECKER) $(top_builddir)/xmllint --nonet --debug --stream $$i > $(srcdir)/result/$$name.rdr 2>/dev/null ; \
585	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
586	  else \
587	      log=`$(CHECKER) $(top_builddir)/xmllint --nonet --debug --stream $$i > result.$$name 2>/dev/null ; \
588	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
589	      diff $(srcdir)/result/$$name.rdr result.$$name` ; \
590	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
591	      rm result.$$name ; \
592	  fi ; fi ; done)
593	@echo "## Reader on memory regression tests"
594	-@(for i in $(srcdir)/test/* ; do \
595	  name=`basename $$i`; \
596	  if [ ! -d $$i ] ; then \
597	  if [ ! -f $(srcdir)/result/$$name.rdr ] ; then \
598	      echo New test file $$name ; \
599	      $(CHECKER) $(top_builddir)/xmllint --memory --nonet --debug --stream $$i > $(srcdir)/result/$$name.rdr 2>/dev/null ; \
600	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
601	  else \
602	      log=`$(CHECKER) $(top_builddir)/xmllint --memory --nonet --debug --stream $$i > result.$$name 2>/dev/null ; \
603	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
604	      diff $(srcdir)/result/$$name.rdr result.$$name` ; \
605	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
606	      rm result.$$name ; \
607	  fi ; fi ; done)
608	@(echo > .memdump)
609	@echo "## Walker regression tests"
610	-@(for i in $(srcdir)/test/* ; do \
611	  name=`basename $$i`; \
612	  if [ ! -d $$i ] ; then \
613	  if [ ! -f $(srcdir)/result/$$name.rdr ] ; then \
614	      echo New test file $$name ; \
615	      $(CHECKER) $(top_builddir)/xmllint --nonet --debug --walker $$i > $(srcdir)/result/$$name.rdr 2>/dev/null ; \
616	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
617	  else \
618	      log=`$(CHECKER) $(top_builddir)/xmllint --nonet --debug --walker $$i > result.$$name 2>/dev/null ; \
619	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
620	      diff $(srcdir)/result/$$name.rdr result.$$name` ; \
621	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
622	      rm result.$$name ; \
623	  fi ; fi ; done)
624SAXtests : testSAX$(EXEEXT)
625	@(echo > .memdump)
626	@echo "## SAX callbacks regression tests"
627	-@(for i in $(srcdir)/test/* ; do \
628	  name=`basename $$i`; \
629	  if [ ! -d $$i ] ; then \
630	  if [ ! -f $(srcdir)/result/$$name.sax ] ; then \
631	      echo New test file $$name ; \
632	      $(CHECKER) $(top_builddir)/testSAX $$i > $(srcdir)/result/$$name.sax 2> /dev/null ; \
633	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
634	  else \
635	      log=`$(CHECKER) $(top_builddir)/testSAX $$i > result.$$name 2> /dev/null ; \
636	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
637	      diff $(srcdir)/result/$$name.sax result.$$name` ; \
638	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
639	      rm result.$$name ; \
640	  fi ; fi ; done)
641
642Validtests : xmllint$(EXEEXT)
643	@(echo > .memdump)
644	@echo "## Valid documents regression tests"
645	-@(for i in $(srcdir)/test/VCM/* ; do \
646	  name=`basename $$i`; \
647	  if [ ! -d $$i ] ; then \
648	      log=`$(CHECKER) $(top_builddir)/xmllint --valid --noout --nowarning $$i ; \
649	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"`;\
650	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
651	  fi ; done ; exit 0)
652	@echo "## Validity checking regression tests"
653	-@(for i in $(srcdir)/test/VC/* ; do \
654	  name=`basename $$i`; \
655	  if [ ! -d $$i ] ; then \
656	  if [ ! -f $(srcdir)/result/VC/$$name ] ; then \
657	      echo New test file $$name ; \
658	      $(CHECKER) $(top_builddir)/xmllint --noout --valid $$i 2> $(srcdir)/result/VC/$$name ; \
659	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
660	  else \
661	      log=`$(CHECKER) $(top_builddir)/xmllint --noout --valid $$i 2> result.$$name ; \
662	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
663	      diff $(srcdir)/result/VC/$$name result.$$name` ; \
664	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
665	      rm result.$$name ; \
666	  fi ; fi ; done)
667	@echo "## General documents valid regression tests"
668	-@(for i in $(srcdir)/test/valid/* ; do \
669	  name=`basename $$i`; \
670	  if [ ! -d $$i ] ; then \
671	  if [ ! -f $(srcdir)/result/valid/$$name ] ; then \
672	      echo New test file $$name ; \
673	      $(CHECKER) $(top_builddir)/xmllint --valid $$i > $(srcdir)/result/valid/$$name 2>$(srcdir)/result/valid/$$name.err ; \
674	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
675	  else \
676	      log=`$(CHECKER) $(top_builddir)/xmllint --valid $$i > result.$$name 2>error.$$name ; \
677	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
678	      diff $(srcdir)/result/valid/$$name result.$$name ; \
679	      diff $(srcdir)/result/valid/$$name.err error.$$name` ; \
680	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
681	      rm result.$$name error.$$name ; \
682	  fi ; fi ; done)
683
684Regexptests: testRegexp$(EXEEXT)
685	@(echo > .memdump)
686	@echo "## Regexp regression tests"
687	-@(for i in $(srcdir)/test/regexp/* ; do \
688	  name=`basename $$i`; \
689	  if [ ! -d $$i ] ; then \
690	  if [ ! -f $(srcdir)/result/regexp/$$name ] ; then \
691	      echo New test file $$name ; \
692	      $(CHECKER) $(top_builddir)/testRegexp -i $$i > $(srcdir)/result/regexp/$$name; \
693	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
694	  else \
695	      log=`$(CHECKER) $(top_builddir)/testRegexp -i $$i 2>&1 > result.$$name ; \
696	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
697	      diff $(srcdir)/result/regexp/$$name result.$$name` ; \
698	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
699	      rm result.$$name ; \
700	  fi ; fi ; done)
701
702Automatatests: testAutomata$(EXEEXT)
703	@(echo > .memdump)
704	@echo "## Automata regression tests"
705	-@(for i in $(srcdir)/test/automata/* ; do \
706	  name=`basename $$i`; \
707	  if [ ! -d $$i ] ; then \
708	  if [ ! -f $(srcdir)/result/automata/$$name ] ; then \
709	      echo New test file $$name ; \
710	      $(CHECKER) $(top_builddir)/testAutomata $$i > $(srcdir)/result/automata/$$name; \
711	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
712	  else \
713	      log=`$(CHECKER) $(top_builddir)/testAutomata $$i 2>&1 > result.$$name ; \
714	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
715	      diff $(srcdir)/result/automata/$$name result.$$name` ; \
716	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
717	      rm result.$$name ; \
718	  fi ; fi ; done)
719
720$(srcdir)/dba100000.xml: dbgenattr.pl
721	@echo "## generating dba100000.xml"
722	@($(top_srcdir)/dbgenattr.pl 100000 > $(srcdir)/dba100000.xml)
723
724Timingtests: xmllint$(EXEEXT) $(srcdir)/dba100000.xml
725	@echo "## Timing tests to try to detect performance"
726	@echo "## as well a memory usage breakage when streaming"
727	@echo "## 1/ using the file interface"
728	@echo "## 2/ using the memory interface"
729	@echo "## 3/ repeated DOM parsing"
730	@echo "## 4/ repeated DOM validation"
731	-@($(top_builddir)/xmllint --stream --timing $(srcdir)/dba100000.xml; \
732	   MEM=`cat .memdump | grep "MEMORY ALLOCATED" | awk '{ print $$7}'`;\
733	   if [ "$$MEM" != "" ] ; then echo Using $$MEM bytes ; fi ; \
734	   grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
735	   exit 0)
736	-@($(top_builddir)/xmllint --stream --timing --memory $(srcdir)/dba100000.xml; \
737	   MEM=`cat .memdump | grep "MEMORY ALLOCATED" | awk '{ print $$7}'`;\
738	   if [ "$$MEM" != "" ] ; then echo Using $$MEM bytes ; fi ; \
739	   grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
740	   exit 0)
741	-@($(top_builddir)/xmllint --noout --timing --repeat $(srcdir)/test/valid/REC-xml-19980210.xml; \
742	   MEM=`cat .memdump | grep "MEMORY ALLOCATED" | awk '{ print $$7}'`;\
743	   if [ "$$MEM" != "" ] ; then echo Using $$MEM bytes ; fi ; \
744	   grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
745	   exit 0)
746
747VTimingtests: xmllint$(EXEEXT)
748	-@($(top_builddir)/xmllint --noout --timing --valid --repeat $(srcdir)/test/valid/REC-xml-19980210.xml; \
749	   MEM=`cat .memdump | grep "MEMORY ALLOCATED" | awk '{ print $$7}'`;\
750	   if [ "$$MEM" != "" ] ; then echo Using $$MEM bytes ; fi ; \
751	   grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
752	   exit 0)
753
754C14Ntests : testC14N$(EXEEXT)
755	@echo "## C14N and XPath regression tests"
756	-@(for m in with-comments without-comments exc-without-comments ; do \
757	    for i in $(srcdir)/test/c14n/$$m/*.xml ; do  \
758		if [ ! -d $$i ] ; then \
759		    name=`basename $$i .xml`; \
760		    cmdline="$(CHECKER) $(top_builddir)/testC14N --$$m $$i"; \
761		    if [ -f $(srcdir)/test/c14n/$$m/$$name.xpath ] ; then \
762			cmdline="$$cmdline $(srcdir)/test/c14n/$$m/$$name.xpath"; \
763			if [ -f $(srcdir)/test/c14n/$$m/$$name.ns ] ; then \
764			    cmdline="$$cmdline '`cat $(srcdir)/test/c14n/$$m/$$name.ns`'"; \
765			fi; \
766		    fi; \
767		    $$cmdline > $(srcdir)/test/c14n/test.tmp; \
768		    if [ $$? -eq 0 ]; then \
769			diff  $(srcdir)/result/c14n/$$m/$$name $(srcdir)/test/c14n/test.tmp; \
770			if [ $$? -ne 0 ]; then \
771			    echo "Test $$m/$$name failed"; \
772			    cat $(srcdir)/test/c14n/test.tmp; \
773			fi; \
774		    else \
775			echo "C14N failed"; \
776		    fi; \
777		    grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
778		fi; \
779		rm -f $(srcdir)/test/c14n/test.tmp; \
780	    done; \
781	done)
782
783Schemastests: testSchemas$(EXEEXT)
784	@(echo > .memdump)
785	@echo "## Schemas regression tests"
786	-@(for i in $(srcdir)/test/schemas/*_*.xsd ; do \
787	  name=`basename $$i | sed 's+_.*++'`; \
788	  sno=`basename $$i | sed 's+.*_\(.*\).xsd+\1+'`; \
789	  for j in $(srcdir)/test/schemas/"$$name"_*.xml ; do \
790	      if [ -f $$j ] ; then \
791	      xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
792	      if [ ! -f $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno" ]; \
793	      then \
794		  echo New test file "$$name"_"$$sno"_"$$xno" ; \
795		  $(CHECKER) $(top_builddir)/testSchemas $$i $$j \
796		    > $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno" \
797		    2> $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno".err; \
798	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
799	      else \
800	          log=`$(CHECKER) $(top_builddir)/testSchemas $$i $$j \
801		    > res.$$name 2> err.$$name;\
802	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
803	          diff $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno" \
804		       res.$$name;\
805	          diff $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno".err \
806		       err.$$name;\
807		  grep Unimplemented err.$$name`; \
808	          if [ -n "$$log" ] ; then echo "$$name"_"$$sno"_"$$xno" result ; echo $$log ; fi ; \
809	          rm res.$$name err.$$name ; \
810	       fi ; fi ;\
811	  done; done)
812
813Relaxtests: xmllint$(EXEEXT)
814	@(echo > .memdump)
815	@echo "## Relax-NG regression tests"
816	-@(for i in $(srcdir)/test/relaxng/*.rng ; do \
817	  name=`basename $$i | sed 's+\.rng++'`; \
818	  if [ ! -f $(srcdir)/result/relaxng/"$$name"_valid ] ; then \
819	      echo New schemas $$name ; \
820	      $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $(srcdir)/test/relaxng/tutorA.rng $$i \
821		      > $(srcdir)/result/relaxng/"$$name"_valid \
822		      2> $(srcdir)/result/relaxng/"$$name"_err; \
823	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
824	  else \
825	      log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $(srcdir)/test/relaxng/tutorA.rng $$i \
826	      > res.$$name 2> err.$$name;\
827	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
828	      diff $(srcdir)/result/relaxng/"$$name"_valid \
829		   res.$$name;\
830	      diff $(srcdir)/result/relaxng/"$$name"_err \
831		   err.$$name | grep -v "error detected at";\
832	      grep Unimplemented err.$$name`; \
833	      if [ -n "$$log" ] ; then echo schemas $$name result ; echo $$log ; fi ; \
834	      rm res.$$name err.$$name ; \
835	  fi; \
836	  for j in $(srcdir)/test/relaxng/"$$name"_*.xml ; do \
837	      if [ -f $$j ] ; then \
838	      xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
839	      if [ ! -f $(srcdir)/result/relaxng/"$$name"_"$$xno" ]; \
840	      then \
841		  echo New test file "$$name"_"$$xno" ; \
842		  $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $$i $$j \
843		    > $(srcdir)/result/relaxng/"$$name"_"$$xno" \
844		    2> $(srcdir)/result/relaxng/"$$name"_"$$xno".err; \
845	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
846	      else \
847	          log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $$i $$j \
848		    > res.$$name 2> err.$$name;\
849	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
850	          diff $(srcdir)/result/relaxng/"$$name"_"$$xno" \
851		       res.$$name;\
852	          diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \
853		       err.$$name | grep -v "error detected at";\
854		  grep Unimplemented err.$$name`; \
855		  if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo $$log ; fi ; \
856	          rm res.$$name err.$$name ; \
857	       fi ; fi ; \
858	  done; done)
859	@echo "## Relax-NG streaming regression tests"
860	-@(for i in $(srcdir)/test/relaxng/*.rng ; do \
861	  name=`basename $$i | sed 's+\.rng++'`; \
862	  for j in $(srcdir)/test/relaxng/"$$name"_*.xml ; do \
863	      if [ -f $$j ] ; then \
864	      xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
865	      if [ ! -f $(srcdir)/result/relaxng/"$$name"_"$$xno" ]; \
866	      then \
867		  echo New test file "$$name"_"$$xno" ; \
868		  $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $$i $$j \
869		    > $(srcdir)/result/relaxng/"$$name"_"$$xno" \
870		    2> $(srcdir)/result/relaxng/"$$name"_"$$xno".err; \
871	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
872	      else \
873	          log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --stream --relaxng $$i $$j \
874		    > res.$$name 2> err.$$name;\
875	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
876	          diff $(srcdir)/result/relaxng/"$$name"_"$$xno" res.$$name;\
877		  if [ "$$name" != "tutor10_1" -a "$$name" != "tutor10_2" -a "$$name" != "tutor3_2" ] ; then \
878		      diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \
879			   err.$$name | grep -v "error detected at";\
880		  fi ; grep Unimplemented err.$$name`; \
881	          if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
882	          rm res.$$name err.$$name ; \
883	       fi ; fi ; \
884	  done; done)
885
886RelaxNGPythonTests:
887	@(if [ -x $(PYTHON) ] ; then \
888	    echo "## Relax-NG Python based test suite 1" ; \
889	    $(CHECKER) $(PYTHON) $(srcdir)/check-relaxng-test-suite.py ; \
890	    echo "## Relax-NG Python based test suite 2" ; \
891	    $(CHECKER) $(PYTHON) $(srcdir)/check-relaxng-test-suite2.py ; \
892	  fi)
893
894SchemasPythonTests:
895	@(if [ -x $(PYTHON) ] ; then \
896	    echo "## XML Schemas datatypes Python based test suite" ; \
897	    $(CHECKER) $(PYTHON) $(srcdir)/check-xsddata-test-suite.py ; \
898	  fi)
899
900cleanup:
901	-@(find . -name .\#\* -exec rm {} \;)
902
903dist-hook: cleanup libxml2.spec
904	-cp libxml2.spec $(distdir)
905	(cd $(srcdir) ; tar -cf - --exclude CVS win32 macos vms test result SAXresult ) | (cd $(distdir); tar xf -)
906
907cleantar:
908	@(rm -f libxml*.tar.gz COPYING.LIB)
909
910rpm: cleanup cleantar
911	@(unset CDPATH ; $(MAKE) dist && rpmbuild -ta $(distdir).tar.gz)
912
913## We create xml2Conf.sh here and not from configure because we want
914## to get the paths expanded correctly.  Macros like srcdir are given
915## the value NONE in configure if the user doesn't specify them (this
916## is an autoconf feature, not a bug).
917
918xml2Conf.sh: xml2Conf.sh.in Makefile
919## Use sed and then mv to avoid problems if the user interrupts.
920	sed -e 's?\@XML_LIBDIR\@?$(XML_LIBDIR)?g' \
921	    -e 's?\@XML_INCLUDEDIR\@?$(XML_INCLUDEDIR)?g' \
922	    -e 's?\@VERSION\@?$(VERSION)?g' \
923	    -e 's?\@XML_LIBS\@?$(XML_LIBS)?g' \
924	       < $(srcdir)/xml2Conf.sh.in > xml2Conf.tmp \
925	&& mv xml2Conf.tmp xml2Conf.sh
926
927CLEANFILES=xml2Conf.sh
928
929confexecdir=$(libdir)
930confexec_DATA = xml2Conf.sh
931EXTRA_DIST = xml2-config.in xml2Conf.sh.in libxml.spec.in libxml2.spec \
932             libxml.m4 Copyright check-xml-test-suite.py \
933	     check-relaxng-test-suite.py check-relaxng-test-suite2.py \
934	     check-xsddata-test-suite.py check-xinclude-test-suite.py \
935             example/Makefile.am example/gjobread.c example/gjobs.xml \
936	     $(man_MANS) libxml-2.0.pc.in libxml-2.0-uninstalled.pc.in \
937	     trionan.c trionan.h triostr.c triostr.h trio.c trio.h \
938	     triop.h triodef.h libxml.h \
939	     testThreadsWin32.c genUnicode.py TODO_SCHEMAS \
940	     dbgen.pl dbgenattr.pl
941
942
943pkgconfigdir = $(libdir)/pkgconfig
944pkgconfig_DATA = libxml-2.0.pc
945
946#
947# Instll the tests program sources as examples 
948#
949BASE_DIR=$(datadir)/doc
950DOC_MODULE=libxml2-$(VERSION)
951EXAMPLES_DIR=$(BASE_DIR)/$(DOC_MODULE)/examples
952
953install-data-local: 
954	$(mkinstalldirs) $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE)
955	-@INSTALL@ -m 0644 $(srcdir)/Copyright $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE)
956	$(mkinstalldirs) $(DESTDIR)$(EXAMPLES_DIR)
957	-@INSTALL@ -m 0644 $(srcdir)/xmllint.c $(DESTDIR)$(EXAMPLES_DIR)
958	-@INSTALL@ -m 0644 $(srcdir)/testSAX.c $(DESTDIR)$(EXAMPLES_DIR)
959	-@INSTALL@ -m 0644 $(srcdir)/testHTML.c $(DESTDIR)$(EXAMPLES_DIR)
960	-@INSTALL@ -m 0644 $(srcdir)/testXPath.c $(DESTDIR)$(EXAMPLES_DIR)
961