2002-02-09 18:03:01 +00:00
# Makefile for libxml2 python library
AUTOMAKE_OPTIONS = 1.4 foreign
2012-08-14 12:50:25 +08:00
SUBDIRS = . tests
2002-02-02 09:17:16 +00:00
2008-02-19 07:54:52 +00:00
docsdir = $( datadir) /doc/libxml2-python-$( LIBXML_VERSION)
dist_docs_DATA = TODO
2002-02-01 09:29:41 +00:00
2002-02-02 10:42:43 +00:00
EXTRA_DIST = \
2002-03-09 10:22:50 +00:00
setup.py \
2002-02-02 10:42:43 +00:00
generator.py \
libxml.py \
2012-08-14 12:50:25 +08:00
libxml2-export.c \
libxml2-python-api.xml \
libxml2class.py \
libxml2class.txt
2002-03-15 22:24:56 +00:00
2002-01-31 23:42:44 +00:00
i f W I T H _ P Y T H O N
2012-08-14 12:50:25 +08:00
AM_CPPFLAGS = \
-I$( top_builddir) /include \
-I$( top_srcdir) /include \
-I$( PYTHON_INCLUDES)
2002-02-09 18:03:01 +00:00
2002-03-15 22:24:56 +00:00
python_LTLIBRARIES = libxml2mod.la
2002-02-09 18:03:01 +00:00
2012-08-14 12:50:25 +08:00
libxml2mod_la_SOURCES = libxml.c libxml_wrap.h libxml2-py.h libxml2-py.c types.c
2013-04-19 15:02:33 +08:00
libxml2mod_la_LDFLAGS = $( CYGWIN_EXTRA_LDFLAGS) $( WIN32_EXTRA_LDFLAGS) -module -avoid-version \
$( top_builddir) /libxml2.la $( CYGWIN_EXTRA_PYTHON_LIBADD) $( WIN32_EXTRA_PYTHON_LIBADD) $( PYTHON_LIBS)
2002-02-01 00:06:44 +00:00
2012-08-14 12:50:25 +08:00
BUILT_SOURCES = libxml2-export.c libxml2-py.h libxml2-py.c
2008-02-19 07:54:52 +00:00
2012-08-14 12:50:25 +08:00
# libxml.c #includes libxml2-export.c
libxml.$(OBJEXT) : libxml 2-export .c
2008-02-19 07:54:52 +00:00
2004-12-23 15:56:12 +00:00
libxml2.py : $( srcdir ) /libxml .py libxml 2class .py
2012-08-14 12:50:25 +08:00
cat $( srcdir) /libxml.py ` test -f libxml2class.py || echo $( srcdir) /` libxml2class.py > $@
2008-02-19 07:54:52 +00:00
dist_python_DATA = \
2012-08-14 12:50:25 +08:00
drv_libxml2.py \
libxml2.py
2008-01-11 07:19:24 +00:00
2012-08-14 12:50:25 +08:00
CLEANFILES = *.pyc
2002-01-31 23:42:44 +00:00
2012-08-14 12:50:25 +08:00
MAINTAINERCLEANFILES = libxml2.py libxml2class.*
2004-04-16 16:30:05 +00:00
2012-08-14 12:50:25 +08:00
API_DESC = $( top_srcdir) /doc/libxml2-api.xml $( srcdir) /libxml2-python-api.xml
GENERATED = libxml2class.py libxml2class.txt $( BUILT_SOURCES)
2002-07-21 11:14:18 +00:00
2012-08-14 12:50:25 +08:00
$(GENERATED) : $( srcdir ) /generator .py $( API_DESC )
$( PYTHON) $( srcdir) /generator.py $( srcdir)
2002-02-07 16:39:11 +00:00
e n d i f
2008-02-19 07:54:52 +00:00
2002-03-18 18:36:20 +00:00
tests test : all
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
2012-08-06 11:32:54 +08:00
cd tests && $( MAKE) tests