blob: a3fecfc64ad29bf688d492c7c989498ffca5e24f [file] [log] [blame]
Daniel Veillard5e5c2d02002-02-09 18:03:01 +00001# Makefile for libxml2 python library
2AUTOMAKE_OPTIONS = 1.4 foreign
3
Daniel Veillard253aa2c2002-02-02 09:17:16 +00004SUBDIRS= . tests
5
Daniel Veillard5e5c2d02002-02-09 18:03:01 +00006INCLUDES = \
7 -I/usr/include/python$(PYTHON_VERSION) \
8 -I$(PYTHON_INCLUDES) \
9 -I$(top_srcdir)/include
Daniel Veillard253aa2c2002-02-02 09:17:16 +000010
Daniel Veillard5e5c2d02002-02-09 18:03:01 +000011DOCS_DIR = $(prefix)/share/doc/libxml2-python-$(LIBXML_VERSION)
Daniel Veillard253aa2c2002-02-02 09:17:16 +000012DOCS = TODO libxml2class.txt
Daniel Veillardc3e39442002-02-01 09:29:41 +000013
Daniel Veillard4cf998a2002-02-02 10:42:43 +000014EXTRA_DIST = \
15 libxml.c \
Daniel Veillard3ce52572002-02-03 15:08:05 +000016 types.c \
Daniel Veillard4cf998a2002-02-02 10:42:43 +000017 generator.py \
18 libxml_wrap.h \
19 libxml.py \
20 libxml2-python-api.xml \
Daniel Veillard253aa2c2002-02-02 09:17:16 +000021 $(DOCS)
Daniel Veillardc3e39442002-02-01 09:29:41 +000022
Daniel Veillardf1d0e6b2002-01-31 23:42:44 +000023if WITH_PYTHON
Daniel Veillard5e5c2d02002-02-09 18:03:01 +000024mylibs = \
25 $(top_builddir)/libxml2.la
26
27all: libxml2mod.so libxml2.py
28
29LDADD = -lxml2
30CFLAGS = -Wall -g
31
32pythondir = $(prefix)/lib/python${PYTHON_VERSION}/site-packages
33python_PROGRAMS = libxml2mod.so
34
35libxml2mod_so_SOURCES =
36libxml2mod_so_LDFLAGS = $(mylibs) $(LIBS) -shared -Wl,-soname,libxml2mod.so
37
38noinst_LTLIBRARIES = libxmlmodule.la
39libxmlmodule_la_SOURCES = libxml.c types.c libxml2-py.c
40
41libxml2mod.so: $(libxmlmodule_la_OBJECTS)
42 $(LINK) -o $@ $(libxmlmodule_la_OBJECTS) $(libxml2mod_so_LDFLAGS)
43
Daniel Veillard96c9af72002-02-01 00:06:44 +000044
Daniel Veillard253aa2c2002-02-02 09:17:16 +000045libxml2.py: $(srcdir)/libxml.py libxml2class.py
46 cat $(srcdir)/libxml.py libxml2class.py > libxml2.py
Daniel Veillardf1d0e6b2002-01-31 23:42:44 +000047
Daniel Veillard7a96efc2002-02-05 16:34:33 +000048install-data-local:
49 $(mkinstalldirs) $(DESTDIR)$(PYTHON_SITE_PACKAGES)
50 -@INSTALL@ -m 0644 libxml2.py $(DESTDIR)$(PYTHON_SITE_PACKAGES)
Daniel Veillard7a96efc2002-02-05 16:34:33 +000051 $(mkinstalldirs) $(DESTDIR)$(DOCS_DIR)
52 -@(for doc in $(DOCS) ; \
53 do @INSTALL@ -m 0644 $$doc $(DESTDIR)$(DOCS_DIR) ; done)
Daniel Veillardf1d0e6b2002-01-31 23:42:44 +000054
Daniel Veillardf1d0e6b2002-01-31 23:42:44 +000055GENERATE = generator.py
Daniel Veillard9589d452002-02-02 10:28:17 +000056API_DESC = $(top_srcdir)/doc/libxml2-api.xml $(srcdir)/libxml2-python-api.xml
Daniel Veillardf1d0e6b2002-01-31 23:42:44 +000057GENERATED= $(srcdir)/libxml2class.py \
58 $(srcdir)/libxml2-export.c \
59 $(srcdir)/libxml2-py.c \
60 $(srcdir)/libxml2-py.h
61
62$(GENERATED): $(srcdir)/$(GENERATE) $(API_DESC)
63 cd $(srcdir) && $(PYTHON) $(GENERATE)
Daniel Veillard1c18e302002-02-09 22:16:40 +000064
65$(libxmlmodule_la_OBJECTS): $(GENERATED)
66
Daniel Veillard7db38712002-02-07 16:39:11 +000067else
68all:
69endif
Daniel Veillardf1d0e6b2002-01-31 23:42:44 +000070
Daniel Veillard3ce52572002-02-03 15:08:05 +000071tests: all
Daniel Veillardcfb05462002-02-02 23:18:22 +000072 cd tests && $(MAKE) tests
73
Daniel Veillardf1d0e6b2002-01-31 23:42:44 +000074clean:
Daniel Veillarda7340c82002-02-01 17:56:45 +000075 rm -f $(GENERATED) *.o _libxml.so *.pyc libxml2.py
Daniel Veillard253aa2c2002-02-02 09:17:16 +000076