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