• Show log

    Commit

  • Hash : 5706b6d8
    Author : Daniel Richard G
    Date : 2012-08-06T11:32:54

    Various "make distcheck" and portability fixups
    
    Makefile.am:
    
    * Don't use @VAR@, use $(VAR). Autoconf's AC_SUBST provides us the Make
       variable, it allows overriding the value at the command line, and
       (notably) it avoids a Make parse error in the libxml2_la_LDFLAGS
       assignment when @MODULE_PLATFORM_LIBS@ is empty
    
    * Changed how the THREADS_W32 mechanism switches the build between
       testThreads.c and testThreadsWin32.c as appropriate; using AM_CONDITIONAL
       allows this to work cleanly and plays well with dependencies
    
    * testapi.c should be specified as BUILT_SOURCES
    
    * Create symlinks to the test/ and result/ subdirs so that the runtests
       target is usable in out-of-source-tree builds
    
    * Don't do MAKEFLAGS+=--silent as this is not portable to non-GNU Makes
    
    * Fixed incorrect find(1) syntax in the "cleanup" rule, and doing "rm -f"
       instead of just "rm" is good form
    
    * (DIST)CLEANFILES needed a bit more coverage to allow "make distcheck" to
       pass
    
    configure.in:
    
    * Need AC_PROG_LN_S to create test/ and result/ symlinks in Makefile.am
    
    * AC_LIBTOOL_WIN32_DLL and AM_PROG_LIBTOOL are obsolete; these have been
       superceded by LT_INIT
    
    * Don't rebuild docs by default, as this requires GNU Make (as
       implemented)
    
    * Check for uint32_t as some platforms don't provide it
    
    * Check for some more functions, and undefine HAVE_MMAP if we don't also
       HAVE_MUNMAP (one system I tested on actually needed this)
    
    * Changed THREADS_W32 from a filename insert into an Automake conditional
    
    * The "Copyright" file will not be in the current directory if builddir !=
       srcdir
    
    doc/Makefile.am:
    
    * EXTRA_DIST cannot use wildcards when they refer to generated files; this
       breaks dependencies. What I did was define EXTRA_DIST_wc, which uses GNU
       Make $(wildcard) directives to build up a list of files, and EXTRA_DIST,
       as a literal expansion of EXTRA_DIST_wc. I also added a new rule,
       "check-extra-dist", to simplify checking that the two variables are
       equivalent. (Note that this works only when builddir == srcdir)
    
       (I can implement this differently if desired; this is just one way of
       doing it)
    
    * Don't define an "all" target; this steps on Automake's toes
    
    * Fixed up the "libxml2-api.xml ..." rule by using $(wildcard) for
       dependencies (as Make doesn't process the wildcards otherwise) and
       qualifying appropriate files with $(srcdir)
    
       (Note that $(srcdir) is not needed in the dependencies, thanks to VPATH,
       which we can count on as this is GNU-Make-only code anyway)
    
    doc/devhelp/Makefile.am:
    
    * Qualified appropriate files with $(srcdir)
    
    * Added an "uninstall-local" rule so that "make distcheck" passes
    
    doc/examples/Makefile.am:
    
    * Rather than use a wildcard that doesn't work, use a substitution that
       most Make programs can handle
    
    doc/examples/index.py:
    
    * Do the same here
    
    include/libxml/nanoftp.h:
    
    * Some platforms (e.g. MSVC 6) already #define INVALID_SOCKET:
    
         user@host:/cygdrive/c/Program Files/Microsoft Visual Studio/VC98/\
         Include$ grep -R INVALID_SOCKET .
         ./WINSOCK.H:#define INVALID_SOCKET  (SOCKET)(~0)
         ./WINSOCK2.H:#define INVALID_SOCKET  (SOCKET)(~0)
    
    include/libxml/xmlversion.h.in:
    
    * Support ancient GCCs (I was actually able to build the library with 2.5
       but for this bit)
    
    python/Makefile.am:
    
    * Expanded CLEANFILES to allow "make distcheck" to pass
    
    python/tests/Makefile.am:
    
    * Define CLEANFILES instead of a "clean" rule, and added tmp.xml to allow
       "make distcheck" to pass
    
    testRelax.c:
    
    * Use HAVE_MMAP instead of the less explicit HAVE_SYS_MMAN_H (as some
       systems have the header but not the function)
    
    testSchemas.c:
    
    * Use HAVE_MMAP instead of the less explicit HAVE_SYS_MMAN_H
    
    testapi.c:
    
    * Don't use putenv() if it's not available
    
    threads.c:
    
    * This fixes the following build error on Solaris 8:
    
         libtool: compile:  cc -DHAVE_CONFIG_H -I. -I./include -I./include \
         -D_REENTRANT -D__EXTENSIONS__ -D_REENTRANT -Dsparc -Xa -mt -v \
         -xarch=v9 -xcrossfile -xO5 -c threads.c  -KPIC -DPIC -o threads.o
         "threads.c", line 442: controlling expressions must have scalar type
         "threads.c", line 512: controlling expressions must have scalar type
         cc: acomp failed for threads.c
         *** Error code 1
    
    trio.c:
    
    * Define isascii() if the system doesn't provide it
    
    trio.h:
    
    * The trio library's HAVE_CONFIG_H header is not the same as LibXML2's
       HAVE_CONFIG_H header; this change is needed to avoid a double-inclusion
    
    win32/configure.js:
    
    * Added support for the LZMA compression option
    
    win32/Makefile.{bcb,mingw,msvc}:
    
    * Added appropriate bits to support WITH_LZMA=1
    
    * Install the header files under $(INCPREFIX)\libxml2\libxml instead of
       $(INCPREFIX)\libxml, to mirror the install location on Unix+Autotools
    
    xml2-config.in:
    
    * @MODULE_PLATFORM_LIBS@ (usually "-ldl") needs to be in there in order for
       `xml2-config --libs` to provide a complete set of dependencies
    
    xmllint.c:
    
    * Use HAVE_MMAP instead of the less-explicit HAVE_SYS_MMAN_H
    

  • README

  •                   XML toolkit from the GNOME project
    
    Full documentation is available on-line at
        http://xmlsoft.org/
    
    This code is released under the MIT Licence see the Copyright file.
    
    To build on an Unixised setup:
       ./configure ; make ; make install
    To build on Windows:
       see instructions on win32/Readme.txt
    
    To assert build quality:
       on an Unixised setup:
          run make tests
       otherwise:
           There is 3 standalone tools runtest.c runsuite.c testapi.c, which
           should compile as part of the build or as any application would.
           Launch them from this directory to get results, runtest checks 
           the proper functionning of libxml2 main APIs while testapi does
           a full coverage check. Report failures to the list.
    
    To report bugs, follow the instructions at: 
      http://xmlsoft.org/bugs.html
    
    A mailing-list xml@gnome.org is available, to subscribe:
        http://mail.gnome.org/mailman/listinfo/xml
    
    The list archive is at:
        http://mail.gnome.org/archives/xml/
    
    All technical answers asked privately will be automatically answered on
    the list and archived for public access unless privacy is explicitly
    required and justified.
    
    Daniel Veillard
    
    $Id$