Makefile.am revision f4e5576f8f34362b6bec9396ab073fac839dfb22
1## Process this file with automake to produce Makefile.in
2# AUTOMAKE_ OPTIONS=no-dependencies
3
4SUBDIRS = include . doc example @PYTHON_SUBDIR@
5
6DIST_SUBDIRS = include . doc example python
7
8INCLUDES = -I$(top_builddir)/include -I@srcdir@/include @THREAD_CFLAGS@ @Z_CFLAGS@ 
9
10noinst_PROGRAMS=testSchemas testRelax testSAX testHTML testXPath testURI \
11                testDocbook testThreads testC14N testAutomata testRegexp \
12		testReader
13
14bin_PROGRAMS = xmllint xmlcatalog
15
16bin_SCRIPTS=xml2-config
17
18lib_LTLIBRARIES = libxml2.la
19libxml2_la_LIBADD = @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) -lm
20
21libxml2_la_LDFLAGS = -version-info @LIBXML_VERSION_INFO@
22
23if WITH_TRIO_SOURCES
24libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c  \
25		parser.c tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c  \
26		valid.c xlink.c HTMLparser.c HTMLtree.c debugXML.c xpath.c  \
27		xpointer.c xinclude.c nanohttp.c nanoftp.c DOCBparser.c \
28		catalog.c globals.c threads.c c14n.c \
29		xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
30		triostr.c trio.c xmlreader.c relaxng.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 \
37		xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
38		xmlreader.c relaxng.c
39endif
40
41DEPS = $(top_builddir)/libxml2.la
42LDADDS = @STATIC_BINARIES@ $(top_builddir)/libxml2.la @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) -lm
43
44man_MANS = xml2-config.1 libxml.3
45
46m4datadir = $(datadir)/aclocal
47m4data_DATA = libxml.m4
48
49xmllint_SOURCES=xmllint.c
50xmllint_LDFLAGS = 
51xmllint_DEPENDENCIES = $(DEPS)
52xmllint_LDADD=  @RDL_LIBS@ $(LDADDS)
53
54testSAX_SOURCES=testSAX.c
55testSAX_LDFLAGS = 
56testSAX_DEPENDENCIES = $(DEPS)
57testSAX_LDADD= $(LDADDS)
58
59testHTML_SOURCES=testHTML.c
60testHTML_LDFLAGS = 
61testHTML_DEPENDENCIES = $(DEPS)
62testHTML_LDADD= $(LDADDS)
63
64testDocbook_SOURCES=testDocbook.c
65testDocbook_LDFLAGS = 
66testDocbook_DEPENDENCIES = $(DEPS)
67testDocbook_LDADD= $(LDADDS)
68
69xmlcatalog_SOURCES=xmlcatalog.c
70xmlcatalog_LDFLAGS = 
71xmlcatalog_DEPENDENCIES = $(DEPS)
72xmlcatalog_LDADD= @RDL_LIBS@ $(LDADDS)
73
74testXPath_SOURCES=testXPath.c
75testXPath_LDFLAGS = 
76testXPath_DEPENDENCIES = $(DEPS)
77testXPath_LDADD= $(LDADDS)
78
79testC14N_SOURCES=testC14N.c
80testC14N_LDFLAGS = 
81testC14N_DEPENDENCIES = $(DEPS)
82testC14N_LDADD= $(LDADDS)
83
84testThreads_SOURCES=testThreads.c
85testThreads_LDFLAGS = 
86testThreads_DEPENDENCIES = $(DEPS)
87testThreads_LDADD= $(LDADDS)
88
89testURI_SOURCES=testURI.c
90testURI_LDFLAGS = 
91testURI_DEPENDENCIES = $(DEPS)
92testURI_LDADD= $(LDADDS)
93
94testRegexp_SOURCES=testRegexp.c
95testRegexp_LDFLAGS = 
96testRegexp_DEPENDENCIES = $(DEPS)
97testRegexp_LDADD= $(LDADDS)
98
99testAutomata_SOURCES=testAutomata.c
100testAutomata_LDFLAGS = 
101testAutomata_DEPENDENCIES = $(DEPS)
102testAutomata_LDADD= $(LDADDS)
103
104testSchemas_SOURCES=testSchemas.c
105testSchemas_LDFLAGS = 
106testSchemas_DEPENDENCIES = $(DEPS)
107testSchemas_LDADD= $(LDADDS)
108
109testRelax_SOURCES=testRelax.c
110testRelax_LDFLAGS = 
111testRelax_DEPENDENCIES = $(DEPS)
112testRelax_LDADD= $(LDADDS)
113
114testReader_SOURCES=testReader.c
115testReader_LDFLAGS = 
116testReader_DEPENDENCIES = $(DEPS)
117testReader_LDADD= $(LDADDS)
118
119check-local: tests
120
121testall : tests SVGtests SAXtests
122
123tests: XMLtests XMLenttests HTMLtests Validtests URItests XPathtests XPtrtests XIncludetests C14Ntests Scripttests Catatests @TEST_REGEXPS@ @TEST_SCHEMAS@ @TEST_THREADS@
124	@(if [ "@PYTHON_SUBDIR@" != "" ] ; then cd python ; $(MAKE) tests ; fi)
125
126valgrind:
127	@echo '## Running the regression tests under Valgrind'
128	@echo '## Go get a cup of coffee it is gonna take a while ...'
129	$(MAKE) CHECKER='valgrind -q' tests
130
131HTMLtests : testHTML$(EXEEXT)
132	@(echo > .memdump)
133	@echo "##"
134	@echo "## HTML regression tests"
135	@echo "##"
136	-@(for i in $(srcdir)/test/HTML/* ; do \
137	  name=`basename $$i`; \
138	  if [ ! -d $$i ] ; then \
139	  if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
140	      echo New test file $$name ; \
141	      $(CHECKER) $(top_builddir)/testHTML $$i > $(srcdir)/result/HTML/$$name 2>$(srcdir)/result/HTML/$$name.err ; \
142	  else \
143	      echo Testing $$name ; \
144	      $(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	      rm result.$$name result2.$$name error.$$name ; \
151	  fi ; fi ; done)
152	@echo "##"
153	@echo "## Push HTML regression tests"
154	@echo "##"
155	-@(for i in $(srcdir)/test/HTML/* ; do \
156	  name=`basename $$i`; \
157	  if [ ! -d $$i ] ; then \
158	  if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
159	      echo New test file $$name ; \
160	      $(CHECKER) $(top_builddir)/testHTML $$i > $(srcdir)/result/HTML/$$name 2>$(srcdir)/result/HTML/$$name.err ; \
161	  else \
162	      echo Testing $$name ; \
163	      $(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	      rm result.$$name result2.$$name error.$$name errorcut.$$name errorcut2.$$name ; \
172	  fi ; fi ; done)
173	@echo "##"
174	@echo "## HTML SAX regression tests"
175	@echo "##"
176	-@(for i in $(srcdir)/test/HTML/* ; do \
177	  name=`basename $$i`; \
178	  if [ ! -d $$i ] ; then \
179	  if [ ! -f $(srcdir)/result/HTML/$$name.sax ] ; then \
180	      echo New test file $$name ; \
181	      $(CHECKER) $(top_builddir)/testHTML --sax $$i > $(srcdir)/result/HTML/$$name.sax ; \
182	  else \
183	      echo Testing $$name ; \
184	      $(CHECKER) $(top_builddir)/testHTML --sax $$i > result.$$name.sax ; \
185	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
186	      diff $(srcdir)/result/HTML/$$name.sax result.$$name.sax ; \
187	      rm result.$$name.sax ; \
188	  fi ; fi ; done)
189	@echo "##"
190	@echo "## Push HTML SAX regression tests"
191	@echo "##"
192	-@(for i in $(srcdir)/test/HTML/* ; do \
193	  name=`basename $$i`; \
194	  if [ ! -d $$i ] ; then \
195	  if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
196	      echo New test file $$name ; \
197	      $(CHECKER) $(top_builddir)/testHTML --sax $$i > $(srcdir)/result/HTML/$$name.sax ; \
198	  else \
199	      echo Testing $$name ; \
200	      $(CHECKER) $(top_builddir)/testHTML --push --sax $$i > result.$$name.sax ; \
201	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
202	      diff $(srcdir)/result/HTML/$$name.sax result.$$name.sax ; \
203	      rm result.$$name.sax ; \
204	  fi ; fi ; done)
205
206
207XMLtests : xmllint$(EXEEXT)
208	@(echo > .memdump)
209	@echo "##"
210	@echo "## XML regression tests"
211	@echo "##"
212	@echo "## You should see one warning on entity 'title.xml' for ent2"
213	@echo "##"
214	-@(for i in $(srcdir)/test/* ; do \
215	  name=`basename $$i`; \
216	  if [ ! -d $$i ] ; then \
217	  if [ ! -f $(srcdir)/result/$$name ] ; then \
218	      echo New test file $$name ; \
219	      $(CHECKER) $(top_builddir)/xmllint $$i > $(srcdir)/result/$$name ; \
220	  else \
221	      echo Testing $$name ; \
222	      $(CHECKER) $(top_builddir)/xmllint $$i > result.$$name ; \
223	      diff $(srcdir)/result/$$name result.$$name ; \
224	      $(CHECKER) $(top_builddir)/xmllint result.$$name > result2.$$name ; \
225	      diff result.$$name result2.$$name ; \
226	      rm result.$$name result2.$$name ; \
227	  fi ; fi ; done)
228	@(echo > .memdump)
229	@echo "##"
230	@echo "## XML push regression tests"
231	@echo "##"
232	@echo "## You should see one warning on entity 'title.xml' for ent2"
233	@echo "##"
234	-@(for i in $(srcdir)/test/* ; do \
235	  name=`basename $$i`; \
236	  if [ ! -d $$i ] ; then \
237	  if [ ! -f $(srcdir)/result/$$name ] ; then \
238	      echo New test file $$name ; \
239	      $(CHECKER) $(top_builddir)/xmllint --push $$i > $(srcdir)/result/$$name ; \
240	  else \
241	      echo Testing $$name ; \
242	      $(CHECKER) $(top_builddir)/xmllint --push $$i > result.$$name ; \
243	      diff $(srcdir)/result/$$name result.$$name ; \
244	      $(CHECKER) $(top_builddir)/xmllint --push result.$$name > result2.$$name ; \
245	      diff result.$$name result2.$$name ; \
246	      rm result.$$name result2.$$name ; \
247	  fi ; fi ; done)
248	@echo "##"
249	@echo "## XML regression tests on memory"
250	@echo "##"
251	@echo "## You should see two warnings on entity 'title.xml' for ent2"
252	@echo "##"
253	-@(for i in $(srcdir)/test/* ; do \
254	  name=`basename $$i`; \
255	  if [ ! -d $$i ] ; then \
256	  if [ ! -f $(srcdir)/result/$$name ] ; then \
257	      echo New test file $$name ; \
258	      $(CHECKER) $(top_builddir)/xmllint --memory $$i > $(srcdir)/result/$$name ; \
259	  else \
260	      echo Testing $$name ; \
261	      $(CHECKER) $(top_builddir)/xmllint --memory $$i > result.$$name ; \
262	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
263	      diff $(srcdir)/result/$$name result.$$name ; \
264	      $(CHECKER) $(top_builddir)/xmllint --memory result.$$name > result2.$$name ; \
265	      diff result.$$name result2.$$name ; \
266	      rm result.$$name result2.$$name ; \
267	  fi ; fi ; done)
268
269Docbtests : xmllint$(EXEEXT)
270	@(echo > .memdump)
271	@echo "##"
272	@echo "## SGML DocBook regression tests"
273	@echo "##"
274	-@(for i in $(srcdir)/test/DocBook/*.sgm ; do \
275	  name=`basename $$i .sgm`; \
276	  if [ ! -d $$i ] ; then \
277	  if [ ! -f $(srcdir)/result/DocBook/$$name.xml ] ; then \
278	      echo New test file $$name ; \
279	      $(CHECKER) $(top_builddir)/xmllint --sgml $$i > $(srcdir)/result/DocBook/$$name.xml ; \
280	      $(CHECKER) $(top_builddir)/xmllint --valid --noout $(srcdir)/result/DocBook/$$name.xml ; \
281	  else \
282	      echo Testing $$name ; \
283	      $(CHECKER) $(top_builddir)/xmllint --sgml $$i > result.$$name ; \
284	      diff $(srcdir)/result/DocBook/$$name.xml result.$$name ; \
285	      $(CHECKER) $(top_builddir)/xmllint --valid --noout result.$$name ; \
286	      rm result.$$name ; \
287	  fi ; fi ; done)
288
289XMLenttests : xmllint$(EXEEXT)
290	@(echo > .memdump)
291	@echo "##"
292	@echo "## XML entity subst regression tests"
293	@echo "##"
294	-@(for i in $(srcdir)/test/* ; do \
295	  name=`basename $$i`; \
296	  if [ ! -d $$i ] ; then \
297	  if [ ! -f $(srcdir)/result/noent/$$name ] ; then \
298	      echo New test file $$name ; \
299	      $(CHECKER) $(top_builddir)/xmllint --noent $$i > $(srcdir)/result/noent/$$name ; \
300	  else \
301	      echo Testing $$name ; \
302	      $(CHECKER) $(top_builddir)/xmllint --noent $$i > result.$$name ; \
303	      diff $(srcdir)/result/noent/$$name result.$$name ; \
304	      $(CHECKER) $(top_builddir)/xmllint --noent result.$$name > result2.$$name ; \
305	      diff result.$$name result2.$$name ; \
306	      rm result.$$name result2.$$name ; \
307	  fi ; fi ; done)
308
309URItests : testURI$(EXEEXT)
310	@(echo > .memdump)
311	@echo "##"
312	@echo "## URI module regression tests"
313	@echo "##"
314	-@(for i in $(srcdir)/test/URI/*.data ; do \
315	  name=`basename $$i`; \
316	  if [ ! -d $$i ] ; then \
317	  if [ ! -f $(srcdir)/result/URI/$$name ] ; then \
318	      echo New test file $$name ; \
319	      $(CHECKER) $(top_builddir)/testURI -base 'http://foo.com/path/to/index.html?orig#help' < $$i > $(srcdir)/result/URI/$$name ; \
320	  else \
321	      echo Testing $$name ; \
322	      $(CHECKER) $(top_builddir)/testURI -base 'http://foo.com/path/to/index.html?orig#help' < $$i > result.$$name ; \
323	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
324	      diff $(srcdir)/result/URI/$$name result.$$name ; \
325	      rm result.$$name ; \
326	  fi ; fi ; done)
327	-@(for i in $(srcdir)/test/URI/*.uri ; do \
328	  name=`basename $$i`; \
329	  if [ ! -d $$i ] ; then \
330	  if [ ! -f $(srcdir)/result/URI/$$name ] ; then \
331	      echo New test file $$name ; \
332	      $(CHECKER) $(top_builddir)/testURI < $$i > $(srcdir)/result/URI/$$name ; \
333	  else \
334	      echo Testing $$name ; \
335	      $(CHECKER) $(top_builddir)/testURI < $$i > result.$$name ; \
336	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
337	      diff $(srcdir)/result/URI/$$name result.$$name ; \
338	      rm result.$$name ; \
339	  fi ; fi ; done)
340
341XPathtests : testXPath$(EXEEXT)
342	@(echo > .memdump)
343	@echo "##"
344	@echo "## XPath regression tests"
345	@echo "##"
346	-@(if [ "`$(top_builddir)/testXPath | grep 'support not compiled in'`" != "" ] ; \
347	  then echo Skipping debug not compiled in ; exit 0 ; fi ; \
348	  for i in $(srcdir)/test/XPath/expr/* ; do \
349	  name=`basename $$i`; \
350	  if [ ! -d $$i ] ; then \
351	  if [ ! -f $(srcdir)/result/XPath/expr/$$name ] ; then \
352	      echo New test file $$name ; \
353	      $(CHECKER) $(top_builddir)/testXPath -f --expr $$i > $(srcdir)/result/XPath/expr/$$name ; \
354	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
355	  else \
356	      echo Testing $$name ; \
357	      $(CHECKER) $(top_builddir)/testXPath -f --expr $$i > result.$$name ; \
358	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
359	      diff $(srcdir)/result/XPath/expr/$$name result.$$name ; \
360	      rm result.$$name ; \
361	  fi ; fi ; done ; \
362	  for i in $(srcdir)/test/XPath/docs/* ; do \
363	  if [ ! -d $$i ] ; then \
364	  doc=`basename $$i`; \
365	  for j in $(srcdir)/test/XPath/tests/$$doc* ; do \
366	  if [ ! -f $$j ] ; then continue ; fi ; \
367	  name=`basename $$j`; \
368	  if [ ! -d $$j ] ; then \
369	  if [ ! -f $(srcdir)/result/XPath/tests/$$name ] ; then \
370	      echo New test file $$name ; \
371	      $(CHECKER) $(top_builddir)/testXPath -f -i $$i $$j > $(srcdir)/result/XPath/tests/$$name ; \
372	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
373	  else \
374	      echo Testing $$name ; \
375	      $(CHECKER) $(top_builddir)/testXPath -f -i $$i $$j > result.$$name ; \
376	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
377	      diff $(srcdir)/result/XPath/tests/$$name result.$$name ; \
378	      rm result.$$name ; \
379	  fi ; fi ; done ; fi ; done)
380
381XPtrtests : testXPath$(EXEEXT)
382	@(echo > .memdump)
383	@echo "##"
384	@echo "## XPointer regression tests"
385	@echo "##"
386	-@(if [ "`$(top_builddir)/testXPath | grep 'support not compiled in'`" != "" ] ; \
387	  then echo Skipping debug not compiled in ; exit 0 ; fi ; \
388	  for i in $(srcdir)/test/XPath/docs/* ; do \
389	  if [ ! -d $$i ] ; then \
390	  doc=`basename $$i`; \
391	  for j in $(srcdir)/test/XPath/xptr/$$doc* ; do \
392	  if [ ! -f $$j ] ; then continue ; fi ; \
393	  name=`basename $$j`; \
394	  if [ ! -d $$j ] ; then \
395	  if [ ! -f $(srcdir)/result/XPath/xptr/$$name ] ; then \
396	      echo New test file $$name ; \
397	      ./testXPath -xptr -f -i $$i $$j > $(srcdir)/result/XPath/xptr/$$name ; \
398	  else \
399	      echo Testing $$name ; \
400	      ./testXPath -xptr -f -i $$i $$j > result.$$name ; \
401	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
402	      diff $(srcdir)/result/XPath/xptr/$$name result.$$name ; \
403	      rm result.$$name ; \
404	  fi ; fi ; done ; fi ; done)
405
406XIncludetests : xmllint$(EXEEXT)
407	@(echo > .memdump)
408	@echo "##"
409	@echo "## XInclude regression tests"
410	@echo "##"
411	-@(for i in $(srcdir)/test/XInclude/docs/* ; do \
412	  name=`basename $$i`; \
413	  if [ ! -d $$i ] ; then \
414	  if [ ! -f $(srcdir)/result/XInclude/$$name ] ; then \
415	      echo New test file $$name ; \
416	      $(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude $$i > $(srcdir)/result/XInclude/$$name ; \
417	  else \
418	      echo Testing $$name ; \
419	      $(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude $$i > result.$$name ; \
420	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
421	      diff $(srcdir)/result/XInclude/$$name result.$$name ; \
422	      rm result.$$name ; \
423	  fi ; fi ; done)
424
425Scripttests : xmllint$(EXEEXT)
426	@(echo > .memdump)
427	@echo "##"
428	@echo "## Scripts regression tests"
429	@echo "## Some of the base computations may be different if srcdir != ."
430	@echo "##"
431	-@(for i in $(srcdir)/test/scripts/*.script ; do \
432	  name=`basename $$i .script`; \
433	  xml=$(srcdir)/test/scripts/`basename $$i .script`.xml; \
434	  if [ -f $$xml ] ; then \
435	  if [ ! -f $(srcdir)/result/scripts/$$name ] ; then \
436	      echo New test file $$name ; \
437	      $(CHECKER) $(top_builddir)/xmllint --shell $$xml < $$i > $(srcdir)/result/scripts/$$name ; \
438	  else \
439	      echo Testing $$name ; \
440	      $(CHECKER) $(top_builddir)/xmllint --shell $$xml < $$i > result.$$name ; \
441	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
442	      diff $(srcdir)/result/scripts/$$name result.$$name ; \
443	      rm result.$$name ; \
444	  fi ; fi ; done)
445
446Catatests : xmlcatalog$(EXEEXT)
447	@(echo > .memdump)
448	@echo "##"
449	@echo "## Catalog regression tests"
450	@echo "##"
451	-@(for i in $(srcdir)/test/catalogs/*.script ; do \
452	  name=`basename $$i .script`; \
453	  xml=$(srcdir)/test/catalogs/`basename $$i .script`.xml; \
454	  if [ -f $$xml ] ; then \
455	  if [ ! -f $(srcdir)/result/catalogs/$$name ] ; then \
456	      echo New test file $$name ; \
457	      $(CHECKER) $(top_builddir)/xmlcatalog --shell $$xml < $$i > $(srcdir)/result/catalogs/$$name ; \
458	  else \
459	      echo Testing $$name ; \
460	      $(CHECKER) $(top_builddir)/xmlcatalog --shell $$xml < $$i > result.$$name ; \
461	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
462	      diff $(srcdir)/result/catalogs/$$name result.$$name ; \
463	      rm result.$$name ; \
464	  fi ; fi ; done)
465	-@(for i in $(srcdir)/test/catalogs/*.script ; do \
466	  name=`basename $$i .script`; \
467	  sgml=$(srcdir)/test/catalogs/`basename $$i .script`.sgml; \
468	  if [ -f $$sgml ] ; then \
469	  if [ ! -f $(srcdir)/result/catalogs/$$name ] ; then \
470	      echo New test file $$name ; \
471	      $(CHECKER) $(top_builddir)/xmlcatalog --shell $$sgml < $$i > $(srcdir)/result/catalogs/$$name ; \
472	  else \
473	      echo Testing $$name ; \
474	      $(CHECKER) $(top_builddir)/xmlcatalog --shell $$sgml < $$i > result.$$name ; \
475	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
476	      diff $(srcdir)/result/catalogs/$$name result.$$name ; \
477	      rm result.$$name ; \
478	  fi ; fi ; done)
479	@echo "Add and del operations on XML Catalogs"
480	-@($(CHECKER) $(top_builddir)/xmlcatalog --create --noout $(srcdir)/result/catalogs/mycatalog; \
481	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
482	$(CHECKER) $(top_builddir)/xmlcatalog --noout --add public Pubid sysid $(srcdir)/result/catalogs/mycatalog; \
483	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
484	$(CHECKER) $(top_builddir)/xmlcatalog --noout --add public Pubid2 sysid2 $(srcdir)/result/catalogs/mycatalog; \
485	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
486	$(CHECKER) $(top_builddir)/xmlcatalog --noout --add public Pubid3 sysid3 $(srcdir)/result/catalogs/mycatalog; \
487	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
488	diff result/catalogs/mycatalog.full $(srcdir)/result/catalogs/mycatalog; \
489	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
490	$(CHECKER) $(top_builddir)/xmlcatalog --noout --del sysid $(srcdir)/result/catalogs/mycatalog; \
491	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
492	$(CHECKER) $(top_builddir)/xmlcatalog --noout --del sysid3 $(srcdir)/result/catalogs/mycatalog; \
493	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
494	$(CHECKER) $(top_builddir)/xmlcatalog --noout --del sysid2 $(srcdir)/result/catalogs/mycatalog; \
495	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
496	diff result/catalogs/mycatalog.empty $(srcdir)/result/catalogs/mycatalog; \
497	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
498	rm -f $(srcdir)/result/catalogs/mycatalog)
499
500SVGtests : xmllint$(EXEEXT)
501	@echo "##"
502	@echo "## SVG parsing regression tests"
503	@echo "##"
504	-@(for i in $(srcdir)/test/SVG/* ; do \
505	  name=`basename $$i`; \
506	  if [ ! -d $$i ] ; then \
507	  if [ ! -f $(srcdir)/result/SVG/$$name ] ; then \
508	      echo New test file $$name ; \
509	      $(CHECKER) $(top_builddir)/xmllint $$i > $(srcdir)/result/SVG/$$name ; \
510	  else \
511	      echo Testing $$name ; \
512	      $(CHECKER) $(top_builddir)/xmllint $$i > result.$$name ; \
513	      diff $(srcdir)/result/SVG/$$name result.$$name ; \
514	      $(CHECKER) $(top_builddir)/xmllint result.$$name > result2.$$name ; \
515	      diff result.$$name result2.$$name ; \
516	      rm result.$$name result2.$$name ; \
517	  fi ; fi ; done)
518
519Threadtests : testThreads$(EXEEXT)
520	@echo "##"
521	@echo "## Threaded regression tests"
522	@echo "##"
523	$(CHECKER) $(top_builddir)/testThreads
524
525SAXtests : testSAX$(EXEEXT)
526	@(echo > .memdump)
527	@echo "##"
528	@echo "## SAX callbacks regression tests"
529	@echo "##"
530	-@(for i in $(srcdir)/test/* ; do \
531	  name=`basename $$i`; \
532	  if [ ! -d $$i ] ; then \
533	  if [ ! -f $(srcdir)/SAXresult/$$name ] ; then \
534	      echo New test file $$name ; \
535	      $(CHECKER) $(top_builddir)/testSAX $$i > $(srcdir)/SAXresult/$$name ; \
536	  else \
537	      echo Testing $$name ; \
538	      $(CHECKER) $(top_builddir)/testSAX $$i > result.$$name ; \
539	      diff $(srcdir)/SAXresult/$$name result.$$name ; \
540	      rm result.$$name ; \
541	  fi ; fi ; done)
542
543
544Validtests : xmllint$(EXEEXT)
545	@(echo > .memdump)
546	@echo "##"
547	@echo "## Valid documents regression tests"
548	@echo "##"
549	-@(for i in $(srcdir)/test/VCM/* ; do \
550	  name=`basename $$i`; \
551	  if [ ! -d $$i ] ; then \
552	      echo Testing $$name ; \
553	      $(CHECKER) $(top_builddir)/xmllint --valid --noout --nowarning $$i ; \
554	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
555	  fi ; done ; exit 0)
556	@echo "##"
557	@echo "## Validity checking regression tests"
558	@echo "##"
559	-@(for i in $(srcdir)/test/VC/* ; do \
560	  name=`basename $$i`; \
561	  if [ ! -d $$i ] ; then \
562	  if [ ! -f $(srcdir)/result/VC/$$name ] ; then \
563	      echo New test file $$name ; \
564	      $(CHECKER) $(top_builddir)/xmllint --noout --valid $$i 2> $(srcdir)/result/VC/$$name ; \
565	  else \
566	      echo Testing $$name ; \
567	      $(CHECKER) $(top_builddir)/xmllint --noout --valid $$i 2> result.$$name ; \
568	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
569	      diff $(srcdir)/result/VC/$$name result.$$name ; \
570	      rm result.$$name ; \
571	  fi ; fi ; done)
572	@echo "##"
573	@echo "## General documents valid regression tests"
574	@echo "##"
575	-@(for i in $(srcdir)/test/valid/* ; do \
576	  name=`basename $$i`; \
577	  if [ ! -d $$i ] ; then \
578	  if [ ! -f $(srcdir)/result/valid/$$name ] ; then \
579	      echo New test file $$name ; \
580	      $(CHECKER) $(top_builddir)/xmllint --valid $$i > $(srcdir)/result/valid/$$name 2>$(srcdir)/result/valid/$$name.err ; \
581	  else \
582	      echo Testing $$name ; \
583	      $(CHECKER) $(top_builddir)/xmllint --valid $$i > result.$$name 2>error.$$name ; \
584	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
585	      diff $(srcdir)/result/valid/$$name result.$$name ; \
586	      diff $(srcdir)/result/valid/$$name.err error.$$name ; \
587	      rm result.$$name error.$$name ; \
588	  fi ; fi ; done)
589
590Regexptests: testRegexp$(EXEEXT)
591	@(echo > .memdump)
592	@echo "##"
593	@echo "## Regexp regression tests"
594	@echo "##"
595	-@(for i in $(srcdir)/test/regexp/* ; do \
596	  name=`basename $$i`; \
597	  if [ ! -d $$i ] ; then \
598	  if [ ! -f $(srcdir)/result/regexp/$$name ] ; then \
599	      echo New test file $$name ; \
600	      $(CHECKER) $(top_builddir)/testRegexp -i $$i > $(srcdir)/result/regexp/$$name; \
601	  else \
602	      echo Testing $$name ; \
603	      $(CHECKER) $(top_builddir)/testRegexp -i $$i > result.$$name ; \
604	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
605	      diff $(srcdir)/result/regexp/$$name result.$$name ; \
606	      rm result.$$name ; \
607	  fi ; fi ; done)
608
609Automatatests: testAutomata$(EXEEXT)
610	@(echo > .memdump)
611	@echo "##"
612	@echo "## Automata regression tests"
613	@echo "##"
614	-@(for i in $(srcdir)/test/automata/* ; do \
615	  name=`basename $$i`; \
616	  if [ ! -d $$i ] ; then \
617	  if [ ! -f $(srcdir)/result/automata/$$name ] ; then \
618	      echo New test file $$name ; \
619	      $(CHECKER) $(top_builddir)/testAutomata $$i > $(srcdir)/result/automata/$$name; \
620	  else \
621	      echo Testing $$name ; \
622	      $(CHECKER) $(top_builddir)/testAutomata $$i > result.$$name ; \
623	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
624	      diff $(srcdir)/result/automata/$$name result.$$name ; \
625	      rm result.$$name ; \
626	  fi ; fi ; done)
627
628C14Ntests : testC14N$(EXEEXT)
629	@echo "##"
630	@echo "## C14N and XPath regression tests"
631	@echo "##"
632	-@(for m in with-comments without-comments exc-without-comments ; do \
633	    for i in $(srcdir)/test/c14n/$$m/*.xml ; do  \
634		if [ ! -d $$i ] ; then \
635		    name=`basename $$i .xml`; \
636		    echo Testing $$m/$$name; \
637		    cmdline="$(CHECKER) $(top_builddir)/testC14N --$$m $$i"; \
638		    if [ -f $(srcdir)/test/c14n/$$m/$$name.xpath ] ; then \
639			cmdline="$$cmdline $(srcdir)/test/c14n/$$m/$$name.xpath"; \
640			if [ -f $(srcdir)/test/c14n/$$m/$$name.ns ] ; then \
641			    cmdline="$$cmdline '`cat $(srcdir)/test/c14n/$$m/$$name.ns`'"; \
642			fi; \
643		    fi; \
644		    $$cmdline > $(srcdir)/test/c14n/test.tmp; \
645		    if [ $$? -eq 0 ]; then \
646			diff  $(srcdir)/result/c14n/$$m/$$name $(srcdir)/test/c14n/test.tmp; \
647			if [ $$? -ne 0 ]; then \
648			    echo "Test failed"; \
649			    cat $(srcdir)/test/c14n/test.tmp; \
650			fi; \
651		    else \
652			echo "C14N failed"; \
653		    fi; \
654		fi; \
655		rm -f $(srcdir)/test/c14n/test.tmp; \
656	    done; \
657	done)
658
659Schemastests: testSchemas$(EXEEXT)
660	@(echo > .memdump)
661	@echo "##"
662	@echo "## Schemas regression tests"
663	@echo "##"
664	-@(for i in $(srcdir)/test/schemas/*_*.xsd ; do \
665	  name=`basename $$i | sed 's+_.*++'`; \
666	  sno=`basename $$i | sed 's+.*_\(.*\).xsd+\1+'`; \
667	  for j in $(srcdir)/test/schemas/"$$name"_*.xml ; do \
668	      if [ -f $$j ] ; then \
669	      xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
670	      if [ ! -f $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno" ]; \
671	      then \
672		  echo New test file "$$name"_"$$sno"_"$$xno" ; \
673		  $(CHECKER) $(top_builddir)/testSchemas $$i $$j \
674		    > $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno" \
675		    2> $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno".err; \
676	      else \
677		  echo Testing "$$name"_"$$sno"_"$$xno" ; \
678	          $(CHECKER) $(top_builddir)/testSchemas $$i $$j \
679		    > res.$$name 2> err.$$name;\
680	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
681	          diff $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno" \
682		       res.$$name;\
683	          diff $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno".err \
684		       err.$$name;\
685		  grep Unimplemented err.$$name; \
686	          rm res.$$name err.$$name ; \
687	       fi ; fi ;\
688	  done; done)
689
690Relaxtests: xmllint$(EXEEXT)
691	@(echo > .memdump)
692	@echo "##"
693	@echo "## Relax-NG regression tests"
694	@echo "##"
695	-@(for i in $(srcdir)/test/relaxng/*.rng ; do \
696	  name=`basename $$i | sed 's+\.rng++'`; \
697	  if [ ! -f $(srcdir)/result/relaxng/"$$name"_valid ] ; then \
698	      echo New schemas $$name ; \
699	      $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $(srcdir)/test/relaxng/tutorA.rng $$i \
700		      > $(srcdir)/result/relaxng/"$$name"_valid \
701		      2> $(srcdir)/result/relaxng/"$$name"_err; \
702	  else \
703	      echo Checking schemas $$name ; \
704	      $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $(srcdir)/test/relaxng/tutorA.rng $$i \
705	      > res.$$name 2> err.$$name;\
706	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
707	      diff $(srcdir)/result/relaxng/"$$name"_valid \
708		   res.$$name;\
709	      diff $(srcdir)/result/relaxng/"$$name"_err \
710		   err.$$name | grep -v "error detected at";\
711	      grep Unimplemented err.$$name; \
712	      rm res.$$name err.$$name ; \
713	  fi; \
714	  for j in $(srcdir)/test/relaxng/"$$name"_*.xml ; do \
715	      if [ -f $$j ] ; then \
716	      xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
717	      if [ ! -f $(srcdir)/result/relaxng/"$$name"_"$$xno" ]; \
718	      then \
719		  echo New test file "$$name"_"$$xno" ; \
720		  $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $$i $$j \
721		    > $(srcdir)/result/relaxng/"$$name"_"$$xno" \
722		    2> $(srcdir)/result/relaxng/"$$name"_"$$xno".err; \
723	      else \
724		  echo Testing "$$name"_"$$xno" ; \
725	          $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $$i $$j \
726		    > res.$$name 2> err.$$name;\
727	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
728	          diff $(srcdir)/result/relaxng/"$$name"_"$$xno" \
729		       res.$$name;\
730	          diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \
731		       err.$$name | grep -v "error detected at";\
732		  grep Unimplemented err.$$name; \
733	          rm res.$$name err.$$name ; \
734	       fi ; fi ; \
735	  done; done)
736	@echo "##"
737	@echo "## Relax-NG streaming regression tests"
738	@echo "##"
739	-@(for i in $(srcdir)/test/relaxng/*.rng ; do \
740	  name=`basename $$i | sed 's+\.rng++'`; \
741	  for j in $(srcdir)/test/relaxng/"$$name"_*.xml ; do \
742	      if [ -f $$j ] ; then \
743	      xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
744	      if [ ! -f $(srcdir)/result/relaxng/"$$name"_"$$xno" ]; \
745	      then \
746		  echo New test file "$$name"_"$$xno" ; \
747		  $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $$i $$j \
748		    > $(srcdir)/result/relaxng/"$$name"_"$$xno" \
749		    2> $(srcdir)/result/relaxng/"$$name"_"$$xno".err; \
750	      else \
751		  echo Testing "$$name"_"$$xno" ; \
752	          $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --stream --relaxng $$i $$j \
753		    > res.$$name 2> err.$$name;\
754	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
755	          diff $(srcdir)/result/relaxng/"$$name"_"$$xno" \
756		       res.$$name;\
757	          diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \
758		       err.$$name | grep -v "error detected at";\
759		  grep Unimplemented err.$$name; \
760	          rm res.$$name err.$$name ; \
761	       fi ; fi ; \
762	  done; done)
763
764dist-hook: libxml2.spec
765	-cp libxml2.spec $(distdir)
766	(cd $(srcdir) ; tar -cf - --exclude CVS win32 macos vms test result SAXresult ) | (cd $(distdir); tar xf -)
767
768cleantar:
769	@(rm -f libxml*.tar.gz COPYING.LIB)
770
771rpm: cleantar
772	@(unset CDPATH ; $(MAKE) dist && rpmbuild -ta $(distdir).tar.gz)
773
774## We create xml2Conf.sh here and not from configure because we want
775## to get the paths expanded correctly.  Macros like srcdir are given
776## the value NONE in configure if the user doesn't specify them (this
777## is an autoconf feature, not a bug).
778
779CLEANFILES=xml2Conf.sh
780
781confexecdir=$(libdir)
782confexec_DATA = xml2Conf.sh
783EXTRA_DIST = xml2-config.in xml2Conf.sh.in libxml.spec.in libxml2.spec \
784             libxml.m4 Copyright check-xml-test-suite.py \
785	     check-relaxng-test-suite.py check-xinclude-test-suite.py \
786             example/Makefile.am example/gjobread.c example/gjobs.xml \
787	     $(man_MANS) libxml-2.0.pc.in \
788	     trionan.c trionan.h triostr.c triostr.h trio.c trio.h \
789	     triop.h triodef.h libxml.h \
790	     testThreadsWin32.c genUnicode.py TODO_SCHEMAS
791
792pkgconfigdir = $(libdir)/pkgconfig
793pkgconfig_DATA = libxml-2.0.pc
794
795#
796# Instll the tests program sources as examples 
797#
798BASE_DIR=$(datadir)/doc
799DOC_MODULE=libxml2-$(VERSION)
800EXAMPLES_DIR=$(BASE_DIR)/$(DOC_MODULE)/examples
801
802install-data-local: 
803	$(mkinstalldirs) $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE)
804	-@INSTALL@ -m 0644 $(srcdir)/Copyright $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE)
805	$(mkinstalldirs) $(DESTDIR)$(EXAMPLES_DIR)
806	-@INSTALL@ -m 0644 $(srcdir)/xmllint.c $(DESTDIR)$(EXAMPLES_DIR)
807	-@INSTALL@ -m 0644 $(srcdir)/testSAX.c $(DESTDIR)$(EXAMPLES_DIR)
808	-@INSTALL@ -m 0644 $(srcdir)/testHTML.c $(DESTDIR)$(EXAMPLES_DIR)
809	-@INSTALL@ -m 0644 $(srcdir)/testXPath.c $(DESTDIR)$(EXAMPLES_DIR)
810