summaryrefslogtreecommitdiff
path: root/debian/rules
diff options
context:
space:
mode:
Diffstat (limited to 'debian/rules')
-rwxr-xr-xdebian/rules182
1 files changed, 182 insertions, 0 deletions
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..2d0a6c7
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,182 @@
+#!/usr/bin/make -f
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# These are used for cross-compiling and for saving the configure script
+# # from having to guess our platform (since we know it already)
+DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
+# The versions of python currently supported
+PYVERS=$(subst -dev,,$(subst python,,$(filter python%-dev,$(shell sed -n '/^Build-Depends/s/,//gp' debian/control))))
+
+WORKAROUND_REMOVED_FILES=include/libxml/xmlversion.h libxml2.spec python/setup.py doc/xmlcatalog.1
+WORKAROUND_MODIFIED_FILES=python/libxml2-py.c
+
+CFLAGS = -Wall -g
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ CFLAGS += -O0
+else
+ CFLAGS += -O2 -fno-strict-aliasing
+endif
+
+build: build-stamp
+build-stamp:
+ dh_testdir
+
+ # Workaround backups because of non-idempotent upstream:
+ for file in $(WORKAROUND_REMOVED_FILES) $(WORKAROUND_MODIFIED_FILES); do \
+ cp -f -a $${file} $${file}-tmp; \
+ done
+
+ # ./configure
+ CFLAGS="$(CFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --with-history
+ echo "all:" > example/Makefile
+ echo "install:" >> example/Makefile
+ echo "distclean:" >> example/Makefile
+ echo " rm -rf .deps" >> example/Makefile
+
+ mv -f python/Makefile python/Makefile.bak
+ echo all: > python/Makefile
+ # Build libxml2
+ $(MAKE)
+ mv -f python/Makefile.bak python/Makefile
+
+ touch build-stamp
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp install*-stamp
+ rm -f debian/python*.examples debian/python*.install
+
+ -$(MAKE) distclean
+ -rm -f example/Makefile
+ rm COPYING && cp Copyright COPYING
+
+ # Restore workaround backups of removed and modified files
+ -for file in $(WORKAROUND_REMOVED_FILES) $(WORKAROUND_MODIFIED_FILES); do \
+ test -r $${file}-tmp && \
+ mv -f $${file}-tmp $${file}; \
+ done
+
+ -test -r /usr/share/misc/config.sub && \
+ cp -f /usr/share/misc/config.sub config.sub
+ -test -r /usr/share/misc/config.guess && \
+ cp -f /usr/share/misc/config.guess config.guess
+
+ dh_clean
+
+install: install-stamp install-python-stamp
+install-stamp: build-stamp
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ mv -f python/Makefile python/Makefile.bak
+ echo install: > python/Makefile
+ $(MAKE) DESTDIR=`pwd`/debian/tmp install
+ mv -f python/Makefile.bak python/Makefile
+
+ 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
+
+
+ # Special workaround for svn-buildpackage:
+ # Restore workaround backups of modified files.
+ -for file in $(WORKAROUND_MODIFIED_FILES); do \
+ test -r $${file}-tmp && \
+ cat $${file}-tmp > $${file}; \
+ done
+
+ touch install-stamp
+
+build-python%-stamp: build-stamp
+ cd python && $(MAKE) clean && $(MAKE) PYTHON=/usr/bin/python$* PYTHON_VERSION=$* PYTHON_INCLUDES=/usr/include/python$*
+
+ touch $@
+
+install-python%-stamp: build-python%-stamp
+ rm build-python$*-stamp
+ cd python && $(MAKE) DESTDIR=`pwd`/../debian/tmp PYTHON=/usr/bin/python$* PYTHON_VERSION=$* PYTHON_INCLUDES=/usr/include/python$* install
+
+ sed s/PYVERS/$*/ debian/python-libxml2.install.in > debian/python$*-libxml2.install
+ cp debian/python-libxml2.examples.in debian/python$*-libxml2.examples
+
+ touch $@
+
+install-python-stamp: $(PYVERS:%=install-python%-stamp)
+ touch $@
+
+# Build architecture-independent files here.
+binary-indep: build install
+ dh_testdir -i
+ dh_testroot -i
+ dh_installdocs -i -A AUTHORS TODO README
+ dh_installchangelogs -i debian/no-upstream-changelog
+ dh_install -i --sourcedir=debian/tmp
+ dh_python -i
+ dh_link -i
+ dh_strip -i
+ dh_compress -i -Xexamples/ -Xtutorial/ -Xhtml/ -X.html
+ dh_fixperms -i
+ dh_installdeb -i
+ dh_shlibdeps -i
+ dh_gencontrol -i
+ dh_md5sums -i
+ dh_builddeb -i
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ dh_testdir -a
+ dh_testroot -a
+ dh_installexamples -a
+ dh_installdocs -plibxml2 -A AUTHORS TODO README
+ for python in $(PYVERS); do \
+ dh_installdocs -ppython$${python}-libxml2 python/TODO; \
+ for file in AUTHORS README README.Debian changelog.Debian.gz changelog.gz; do \
+ ln -sf ../libxml2/$${file} debian/python$${python}-libxml2/usr/share/doc/python$${python}-libxml2/$${file}; \
+ done; \
+ done
+ ln -sf libxml2 debian/libxml2-dev/usr/share/doc/libxml2-dev
+ ln -sf libxml2 debian/libxml2-utils/usr/share/doc/libxml2-utils
+ ln -sf libxml2 debian/libxml2-dbg/usr/share/doc/libxml2-dbg
+ dh_installman -a
+ dh_installchangelogs -plibxml2 ChangeLog
+ dh_install -a --sourcedir=debian/tmp
+ dh_python -a
+ dh_link -a
+ dh_strip -a --dbg-package=libxml2-dbg $(addprefix -Npython,$(addsuffix -libxml2, $(PYVERS)))
+ dh_strip $(addprefix -ppython,$(addsuffix -libxml2, $(PYVERS)))
+ dh_compress -a -Xexamples/
+ dh_fixperms -a
+ dh_makeshlibs -a -V 'libxml2 (>= 2.6.26)'
+ dh_installdeb -a
+ dh_shlibdeps -a
+ dh_gencontrol -a
+ dh_md5sums -a
+ dh_builddeb -a
+
+source diff:
+ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install