Skip to content

Commit

Permalink
Bundles all generated files for python into the distribution
Browse files Browse the repository at this point in the history
So end users building the Python module don't need to
regenerate any source files. some clean-up too.
  • Loading branch information
teragram-oss authored and veillard committed Aug 14, 2012
1 parent 97fa5b3 commit d10a72c
Showing 1 changed file with 24 additions and 37 deletions.
61 changes: 24 additions & 37 deletions python/Makefile.am
Original file line number Diff line number Diff line change
@@ -1,67 +1,54 @@
# Makefile for libxml2 python library
AUTOMAKE_OPTIONS = 1.4 foreign

SUBDIRS= . tests

INCLUDES = \
-I$(PYTHON_INCLUDES) \
-I$(top_srcdir)/include \
-I$(top_builddir)/include \
-I$(top_builddir)/$(subdir)
SUBDIRS = . tests

docsdir = $(datadir)/doc/libxml2-python-$(LIBXML_VERSION)
# libxml2class.txt is generated
dist_docs_DATA = TODO

EXTRA_DIST = \
setup.py \
setup.py.in \
generator.py \
libxml_wrap.h \
libxml.py \
libxml2-python-api.xml

libxml2mod_la_LDFLAGS = $(CYGWIN_EXTRA_LDFLAGS) $(WIN32_EXTRA_LDFLAGS) -module -avoid-version
libxml2-export.c \
libxml2-python-api.xml \
libxml2class.py \
libxml2class.txt

if WITH_PYTHON
mylibs = \
$(top_builddir)/libxml2.la
AM_CPPFLAGS = \
-I$(top_builddir)/include \
-I$(top_srcdir)/include \
-I$(PYTHON_INCLUDES)

python_LTLIBRARIES = libxml2mod.la

libxml2mod_la_SOURCES = $(srcdir)/libxml.c $(srcdir)/types.c
nodist_libxml2mod_la_SOURCES = libxml2-py.c
libxml2mod_la_LIBADD = $(mylibs) $(CYGWIN_EXTRA_PYTHON_LIBADD) $(WIN32_EXTRA_PYTHON_LIBADD) $(PYTHON_LIBS) -lpython$(PYTHON_VERSION)
libxml2mod_la_SOURCES = libxml.c libxml_wrap.h libxml2-py.h libxml2-py.c types.c
libxml2mod_la_LIBADD = $(top_builddir)/libxml2.la $(CYGWIN_EXTRA_PYTHON_LIBADD) $(WIN32_EXTRA_PYTHON_LIBADD) $(PYTHON_LIBS) -lpython$(PYTHON_VERSION)
libxml2mod_la_LDFLAGS = $(CYGWIN_EXTRA_LDFLAGS) $(WIN32_EXTRA_LDFLAGS) -module -avoid-version

$(srcdir)/libxml.c: libxml2-py.h # to generate before to compile
BUILT_SOURCES = libxml2-export.c libxml2-py.h libxml2-py.c

# libxml.c #includes libxml2-export.c
libxml.$(OBJEXT): libxml2-export.c

libxml2.py: $(srcdir)/libxml.py libxml2class.py
cat $(srcdir)/libxml.py libxml2class.py > $@

python_DATA = \
libxml2.py
cat $(srcdir)/libxml.py `test -f libxml2class.py || echo $(srcdir)/`libxml2class.py > $@

dist_python_DATA = \
drv_libxml2.py
drv_libxml2.py \
libxml2.py

GENERATE = generator.py
API_DESC = $(top_srcdir)/doc/libxml2-api.xml $(srcdir)/libxml2-python-api.xml
GENERATED= libxml2class.py \
libxml2-export.c \
libxml2class.txt \
libxml2-py.c \
libxml2-py.h
CLEANFILES = *.pyc

CLEANFILES = $(GENERATED) gen_prog libxml2.py *.pyc
MAINTAINERCLEANFILES = libxml2.py libxml2class.*

$(GENERATED): gen_prog
API_DESC = $(top_srcdir)/doc/libxml2-api.xml $(srcdir)/libxml2-python-api.xml
GENERATED = libxml2class.py libxml2class.txt $(BUILT_SOURCES)

gen_prog: $(srcdir)/$(GENERATE) $(API_DESC)
$(PYTHON) $(srcdir)/$(GENERATE) $(srcdir)
touch gen_prog
$(GENERATED): $(srcdir)/generator.py $(API_DESC)
$(PYTHON) $(srcdir)/generator.py $(srcdir)
endif

tests test: all
cd tests && $(MAKE) tests

0 comments on commit d10a72c

Please sign in to comment.