Notes for compiling on zOS:

- since testapi.c file is huge (over 52000 lines), it's compilation
  fails: I skipped the problem by removing all references to testapi in the
  Makefile.in, but it would be neater if one can build without test files
  (I didn't find an option in configure...)

- since the name of files (or qualifier) in PDS are limited to 8 I had to
  rename xmlschemas.c and xmlschemastypes.c in (resp.) xmlsche.c xmlschet.c
  (and I had to modify all occurrences of these files accordingly in the
  rest of the Makefile !!!).

- in order to copy objects to PDS, I had the cp command at line 860
  of Makefile.in

libxml2.la: $(libxml2_la_OBJECTS) $(libxml2_la_DEPENDENCIES)
        $(AM_V_CCLD)$(libxml2_la_LINK) -rpath $(libdir) $(libxml2_la_OBJECTS) $(libxml2_la_LIBADD) $(LIBS)
        # Copy objects to PDS
        @list='$(libxml2_OBJECTS)' ; for p in $$list; do \
          cp -ACMv $$p "//'<PDS NAME>'"; \
        done

	with <PDS NAME> stands for the name of my PDS and
	
libxml2_OBJECTS = SAX.o entities.o encoding.o error.o \
	parserInternals.o parser.o tree.o hash.o list.o xmlIO.o \
	xmlmemory.o uri.o valid.o xlink.o HTMLparser.o \
	HTMLtree.o debugXML.o xpath.o xpointer.o xinclude.o \
	nanohttp.o nanoftp.o triostr.o trio.o catalog.o globals.o \
	threads.o c14n.o xmlstring.o buf.o xmlregexp.o \
	xmlsche.o xmlschet.o xmlunicode.o \
	xmlreader.o relaxng.o dict.o SAX2.o \
	xmlwriter.o legacy.o chvalid.o pattern.o xmlsave.o \
	xmlmodule.o schematron.o xzlib.o 

In order to handle the support of zOS without breaking the existing
Makefile maybe a new option/flag zOs would copy xmlschemas.c and
xmlschemastypes.c files and use specifics targets rather than existing
ones with the longer names... A variable to handle the PDS name has to
be provided also...

See patch below for set of changes to Makefile.in

Stéphane Michaut <smichaut@axway.com>
July 2017


--- Makefile.in	2017-08-01 08:17:15.000000000 +0200
+++ Makefile-new.in	2017-08-01 08:07:26.000000000 +0200
@@ -41,7 +41,7 @@
 	testSAX$(EXEEXT) testHTML$(EXEEXT) testXPath$(EXEEXT) \
 	testURI$(EXEEXT) testThreads$(EXEEXT) testC14N$(EXEEXT) \
 	testAutomata$(EXEEXT) testRegexp$(EXEEXT) testReader$(EXEEXT) \
-	testapi$(EXEEXT) testModule$(EXEEXT) runtest$(EXEEXT) \
+	testModule$(EXEEXT) runtest$(EXEEXT) \
 	runsuite$(EXEEXT) testchar$(EXEEXT) testdict$(EXEEXT) \
 	runxmlconf$(EXEEXT) testrecurse$(EXEEXT) testlimits$(EXEEXT)
 bin_PROGRAMS = xmllint$(EXEEXT) xmlcatalog$(EXEEXT)
@@ -106,6 +106,7 @@
 	debugXML.c xpath.c xpointer.c xinclude.c nanohttp.c nanoftp.c \
 	DOCBparser.c catalog.c globals.c threads.c c14n.c xmlstring.c \
 	buf.c xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
+        xmlsche.c xmlschet.c \
 	triostr.c trio.c xmlreader.c relaxng.c dict.c SAX2.c \
 	xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c xmlmodule.c \
 	schematron.c xzlib.c
@@ -118,10 +119,24 @@
 	nanohttp.lo nanoftp.lo $(am__objects_1) catalog.lo globals.lo \
 	threads.lo c14n.lo xmlstring.lo buf.lo xmlregexp.lo \
 	xmlschemas.lo xmlschemastypes.lo xmlunicode.lo \
+        xmlsche.lo xmlschet.lo \
 	$(am__objects_2) xmlreader.lo relaxng.lo dict.lo SAX2.lo \
 	xmlwriter.lo legacy.lo chvalid.lo pattern.lo xmlsave.lo \
 	xmlmodule.lo schematron.lo xzlib.lo
 libxml2_la_OBJECTS = $(am_libxml2_la_OBJECTS)
+
+libxml2_OBJECTS = SAX.o entities.o encoding.o error.o \
+	parserInternals.o parser.o tree.o hash.o list.o xmlIO.o \
+	xmlmemory.o uri.o valid.o xlink.o HTMLparser.o \
+	HTMLtree.o debugXML.o xpath.o xpointer.o xinclude.o \
+	nanohttp.o nanoftp.o triostr.o trio.o catalog.o globals.o \
+	threads.o c14n.o xmlstring.o buf.o xmlregexp.o \
+	xmlschemas.o xmlschemastypes.o xmlunicode.o \
+	xmlsche.o xmlschemast.o \
+	xmlreader.o relaxng.o dict.o SAX2.o \
+	xmlwriter.o legacy.o chvalid.o pattern.o xmlsave.o \
+	xmlmodule.o schematron.o xzlib.o
+
 AM_V_lt = $(am__v_lt_$(V))
 am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
 am__v_lt_0 = --silent
@@ -216,11 +231,6 @@
 testXPath_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(testXPath_LDFLAGS) $(LDFLAGS) -o $@
-am_testapi_OBJECTS = testapi.$(OBJEXT)
-testapi_OBJECTS = $(am_testapi_OBJECTS)
-testapi_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(testapi_LDFLAGS) $(LDFLAGS) -o $@
 am_testchar_OBJECTS = testchar.$(OBJEXT)
 testchar_OBJECTS = $(am_testchar_OBJECTS)
 testchar_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
@@ -285,7 +295,7 @@
 	$(testReader_SOURCES) $(testRegexp_SOURCES) \
 	$(testRelax_SOURCES) $(testSAX_SOURCES) $(testSchemas_SOURCES) \
 	$(testThreads_SOURCES) $(testURI_SOURCES) $(testXPath_SOURCES) \
-	$(testapi_SOURCES) $(testchar_SOURCES) $(testdict_SOURCES) \
+	$(testchar_SOURCES) $(testdict_SOURCES) \
 	$(testlimits_SOURCES) $(testrecurse_SOURCES) \
 	$(xmlcatalog_SOURCES) $(xmllint_SOURCES)
 DIST_SOURCES = $(am__libxml2_la_SOURCES_DIST) $(testdso_la_SOURCES) \
@@ -295,7 +305,7 @@
 	$(testReader_SOURCES) $(testRegexp_SOURCES) \
 	$(testRelax_SOURCES) $(testSAX_SOURCES) $(testSchemas_SOURCES) \
 	$(am__testThreads_SOURCES_DIST) $(testURI_SOURCES) \
-	$(testXPath_SOURCES) $(testapi_SOURCES) $(testchar_SOURCES) \
+	$(testXPath_SOURCES) $(testchar_SOURCES) \
 	$(testdict_SOURCES) $(testlimits_SOURCES) \
 	$(testrecurse_SOURCES) $(xmlcatalog_SOURCES) \
 	$(xmllint_SOURCES)
@@ -700,11 +710,6 @@
 noinst_LTLIBRARIES = testdso.la
 testdso_la_SOURCES = testdso.c
 testdso_la_LDFLAGS = -module -no-undefined -avoid-version -rpath $(libdir)
-BUILT_SOURCES = testapi.c
-testapi_SOURCES = testapi.c
-testapi_LDFLAGS = 
-testapi_DEPENDENCIES = $(DEPS)
-testapi_LDADD = $(LDADDS)
 runxmlconf_SOURCES = runxmlconf.c
 runxmlconf_LDFLAGS = 
 runxmlconf_DEPENDENCIES = $(DEPS)
@@ -854,6 +859,12 @@
 	done
 libxml2.la: $(libxml2_la_OBJECTS) $(libxml2_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libxml2_la_LINK) -rpath $(libdir) $(libxml2_la_OBJECTS) $(libxml2_la_LIBADD) $(LIBS)
+        # Copie des obj
+	@list='$(libxml2_OBJECTS)' ; for p in $$list; do \
+	  echo "copy to PDS: $$p"; \
+	  cp -ACMv $$p "//'A009153.XRDEV230.FIC.OBJLIB.LIBXML'"; \
+	done 
+
 testdso.la: $(testdso_la_OBJECTS) $(testdso_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(testdso_la_LINK)  $(testdso_la_OBJECTS) $(testdso_la_LIBADD) $(LIBS)
 install-binPROGRAMS: $(bin_PROGRAMS)
@@ -953,9 +964,6 @@
 testXPath$(EXEEXT): $(testXPath_OBJECTS) $(testXPath_DEPENDENCIES) 
 	@rm -f testXPath$(EXEEXT)
 	$(AM_V_CCLD)$(testXPath_LINK) $(testXPath_OBJECTS) $(testXPath_LDADD) $(LIBS)
-testapi$(EXEEXT): $(testapi_OBJECTS) $(testapi_DEPENDENCIES) 
-	@rm -f testapi$(EXEEXT)
-	$(AM_V_CCLD)$(testapi_LINK) $(testapi_OBJECTS) $(testapi_LDADD) $(LIBS)
 testchar$(EXEEXT): $(testchar_OBJECTS) $(testchar_DEPENDENCIES) 
 	@rm -f testchar$(EXEEXT)
 	$(AM_V_CCLD)$(testchar_LINK) $(testchar_OBJECTS) $(testchar_LDADD) $(LIBS)
@@ -1056,7 +1064,6 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testThreadsWin32.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testURI.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testXPath.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testapi.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testchar.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testdict.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testdso.Plo@am__quote@
@@ -1755,18 +1762,6 @@
 	uninstall-local uninstall-m4dataDATA uninstall-man \
 	uninstall-man1 uninstall-man3 uninstall-pkgconfigDATA
 
-
-# that one forces the rebuild when "make rebuild" is run on doc/
-rebuild_testapi:
-	-@(if [ "$(PYTHON)" != "" ] ; then \
-	    $(PYTHON) $(srcdir)/gentest.py $(srcdir) ; fi )
-
-# that one is just to make sure it is rebuilt if missing
-# but adding the dependances generate mess
-testapi.c: $(srcdir)/gentest.py
-	-@(if [ "$(PYTHON)" != "" ] ; then \
-	    $(PYTHON) $(srcdir)/gentest.py $(srcdir) ; fi )
-
 #testOOM_SOURCES=testOOM.c testOOMlib.h testOOMlib.c
 #testOOM_LDFLAGS = 
 #testOOM_DEPENDENCIES = $(DEPS)
@@ -1775,7 +1770,7 @@
 runtests:
 	[ -d test   ] || $(LN_S) $(srcdir)/test   .
 	[ -d result ] || $(LN_S) $(srcdir)/result .
-	$(CHECKER) ./runtest$(EXEEXT) && $(CHECKER) ./testrecurse$(EXEEXT) &&$(CHECKER) ./testapi$(EXEEXT) && $(CHECKER) ./testchar$(EXEEXT)&& $(CHECKER) ./testdict$(EXEEXT) && $(CHECKER) ./runxmlconf$(EXEEXT)
+	$(CHECKER) ./runtest$(EXEEXT) && $(CHECKER) ./testrecurse$(EXEEXT) &&$(CHECKER) && $(CHECKER) ./testchar$(EXEEXT)&& $(CHECKER) ./testdict$(EXEEXT) && $(CHECKER) ./runxmlconf$(EXEEXT)
 	@(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; \
 	    $(MAKE) tests ; fi)
 
@@ -1797,10 +1792,6 @@
 	    $(MAKE) tests ; fi)
 	@(cd doc/examples ; $(MAKE) tests)
 
-APItests: testapi$(EXEEXT)
-	@echo "## Running the API regression tests this may take a little while"
-	-@($(CHECKER) $(top_builddir)/testapi -q)
-
 HTMLtests : testHTML$(EXEEXT)
 	@(echo > .memdump)
 	@echo "## HTML regression tests"
@@ -2746,7 +2737,7 @@
 dist-test: distdir
 	(mkdir -p $(distdir))
 	(cd $(srcdir) ; tar -cf - --exclude CVS --exclude .svn --exclude .git xstc/Tests) | (cd $(distdir); tar xf -)
-	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
+	tar -cf - $(distdir)/test $(distdir)/result $(distdir)/xstc/Tests  $(distdir)/Makefile.tests $(distdir)/README $(distdir)/README.tests $(distdir)/AUTHORS $(distdir)/runtest.c $(distdir)/runsuite.c | GZIP=$(GZIP_ENV) gzip -c >`echo "$(distdir)" | sed "s+libxml2+libxml2-tests+"`.tar.gz
 	@(rm -rf $(distdir)/xstc/Test)
 
 cleantar:
