diff options
Diffstat (limited to 'debian/rules')
-rwxr-xr-x | debian/rules | 182 |
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 |