summaryrefslogtreecommitdiff
path: root/debian/rules
diff options
context:
space:
mode:
Diffstat (limited to 'debian/rules')
-rwxr-xr-xdebian/rules149
1 files changed, 149 insertions, 0 deletions
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..55b006d
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,149 @@
+#!/usr/bin/make -f
+export DH_VERBOSE=1
+
+# The versions of python currently supported
+PYVERS=$(shell pyversions -s)
+# The current default version of python
+PYVER=$(shell pyversions -d)
+
+export DEB_BUILD_MAINT_OPTIONS=hardening=+all
+DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+
+CC = $(DEB_HOST_GNU_TYPE)-gcc
+CFLAGS = `dpkg-buildflags --get CFLAGS` -Wall
+LDFLAGS = `dpkg-buildflags --get LDFLAGS` -Wl,--as-needed
+CPPFLAGS = `dpkg-buildflags --get CPPFLAGS`
+
+TARGETS := main $(PYVERS) $(PYVERS:%=%-dbg)
+
+WITH_UDEB := $(shell dpkg-vendor --derives-from Ubuntu && echo yes)
+
+ifdef WITH_UDEB
+$(if $(shell grep -q libxml2-udeb debian/control || echo yes),$(shell cat debian/control.udeb >> debian/control))
+TARGETS += udeb
+else
+$(if $(shell grep -q libxml2-udeb debian/control && echo yes),$(shell sed -i /libxml2-udeb/,\$$d debian/control))
+export DH_OPTIONS = -Nlibxml2-udeb
+endif
+
+ifeq ($(DEB_BUILD_PROFILE),stage1)
+DH_OPTIONS += -Npython-libxml2 -Npython-libxml2-dbg
+export DH_OPTIONS
+endif
+
+CONFIGURE_FLAGS := --disable-silent-rules --with-history CC="$(CC)" CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" --cache-file="$(CURDIR)/builddir/config.cache"
+
+override_dh_auto_configure: $(TARGETS:%=doconfigure-%)
+
+debian/autoreconf.after:
+ dh_autoreconf
+
+doconfigure-%: debian/autoreconf.after
+ dh_auto_configure --builddirectory=builddir/$* -- $(CONFIGURE_FLAGS)
+
+doconfigure-main: CONFIGURE_FLAGS += --without-python
+doconfigure-python%: CONFIGURE_FLAGS += --with-python=/usr/bin/$*
+#doconfigure-udeb: CONFIGURE_FLAGS += --without-history --with-minimum --with-tree --with-output
+doconfigure-udeb: CONFIGURE_FLAGS += --without-history --with-tree --with-output --without-python
+
+override_dh_auto_build: $(TARGETS:%=dobuild-%)
+
+dobuild-%: BUILD_DIR=builddir/$*
+dobuild-%: doconfigure-%
+ $(if $(filter $(BUILD_DIR),builddir/$*),,[ -d $(BUILD_DIR) ] || mv builddir/$*/python $(BUILD_DIR))
+ dh_auto_build --builddirectory=$(BUILD_DIR) -- $(BUILD_FLAGS)
+
+dobuild-python%: BUILD_DIR=builddir/main/$*
+dobuild-python%: BUILD_FLAGS = libxml2mod_la_LIBADD='$$(mylibs)' \
+ PYTHON_INCLUDES="$(shell $(DEB_HOST_GNU_TYPE)-python-config --includes)" \
+ PYTHON_LIBS="$(shell $(DEB_HOST_GNU_TYPE)-python-config --ldflags)"
+dobuild-python%-dbg: BUILD_FLAGS += PYTHON_INCLUDES="$(shell $(DEB_HOST_GNU_TYPE)-python-dbg-config --includes)" \
+ PYTHON_LIBS="$(shell $(DEB_HOST_GNU_TYPE)-python-dbg-config --ldflags)" \
+ CFLAGS="$(CFLAGS) -Wall -g -O0" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS) \
+ -L$(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)"
+build-arch: $(TARGETS:%=dobuild-%)
+build-indep:
+build: build-arch build-indep
+
+override_dh_auto_clean:
+ rm -rf builddir debian/tmp-dbg debian/tmp-udeb
+ dh_auto_clean
+
+override_dh_auto_install: $(TARGETS:%=doinstall-%)
+ find debian/ -name *.la -delete
+
+doinstall-main:
+ dh_auto_install --builddirectory=builddir/main
+ mv debian/tmp/usr/share/aclocal/libxml.m4 debian/tmp/usr/share/aclocal/libxml2.m4
+
+ # Properly install documentation in /usr/share/doc/libxml2-doc
+ install -d debian/tmp/usr/share/doc/libxml2-doc/examples
+ install -m 644 \
+ doc/*.html \
+ doc/*.gif \
+ doc/*.png \
+ doc/libxml2-api.xml debian/tmp/usr/share/doc/libxml2-doc
+ install -m 644 \
+ doc/examples/*.c \
+ doc/examples/*.res \
+ doc/examples/index.html \
+ doc/examples/[tw]*.xml debian/tmp/usr/share/doc/libxml2-doc/examples
+ cp -a \
+ doc/html \
+ doc/tutorial debian/tmp/usr/share/doc/libxml2-doc
+
+doinstall-python%-dbg:
+ $(MAKE) -C builddir/main/python$*-dbg DESTDIR=$(CURDIR)/debian/tmp-dbg install-pythonLTLIBRARIES
+ prename -vf 's/(?<!_d)\.so$$/_d.so/' debian/tmp-dbg/usr/lib/python$*/*-packages/*.so
+
+doinstall-python%:
+ dh_auto_install --builddirectory=builddir/main/python$*
+
+doinstall-udeb:
+ dh_auto_install --builddirectory=builddir/udeb --destdir=debian/tmp-udeb
+
+override_dh_installdocs:
+ dh_installdocs -A AUTHORS TODO README NEWS
+ dh_installdocs -ppython-libxml2 python/TODO
+
+override_dh_compress:
+ dh_compress -Xexamples/ -Xtutorial/ -Xhtml/ -X.html
+
+override_dh_installchangelogs:
+ dh_installchangelogs -plibxml2 ChangeLog
+ dh_installchangelogs -Nlibxml2 -XChangeLog
+
+override_dh_install:
+ dh_install -Npython-libxml2-dbg -Nlibxml2-udeb
+ifneq ($(DEB_BUILD_PROFILE),stage1)
+ dh_install -ppython-libxml2-dbg --sourcedir=debian/tmp-dbg
+endif
+ dh_install -plibxml2-udeb --sourcedir=debian/tmp-udeb
+ sed -i -e 's,/lib/$(DEB_HOST_MULTIARCH),/lib,' debian/libxml2-dev/usr/bin/xml2-config
+
+override_dh_strip:
+ dh_strip -a --dbg-package=libxml2-dbg -Nlibxml2-udeb -Nlibxml2-utils -Nlibxml2-utils-dbg -Npython-libxml2 -Npython-libxml2-dbg
+ dh_strip -plibxml2-utils --dbg-package=libxml2-utils-dbg
+ifneq ($(DEB_BUILD_PROFILE),stage1)
+ dh_strip -ppython-libxml2 --dbg-package=python-libxml2-dbg
+endif
+ $(foreach python, $(filter-out $(PYVER), $(PYVERS)),\
+ cd $(CURDIR)/debian/python-libxml2/usr/lib/pyshared; \
+ if diff $(python)/libxml2mod.so $(PYVER)/libxml2mod.so > /dev/null 2>&1; then \
+ rm -f $(python)/libxml2mod.so; \
+ ln -s ../$(PYVER)/libxml2mod.so $(python)/libxml2mod.so; \
+ fi;)
+ dh_strip
+
+override_dh_makeshlibs:
+ dh_makeshlibs -a $(if $(WITH_UDEB),--add-udeb=libxml2-udeb )-V 'libxml2 (>= 2.7.4)' -- -c4
+
+%:
+ifeq ($(DEB_BUILD_PROFILE),stage1)
+ dh $@ --with autoreconf
+else
+ dh $@ --with autoreconf,python2
+endif
+
+