#!/usr/bin/make -f # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 export DH_OPTIONS INSTDIR=$(CURDIR)/debian CFLAGS= ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) CFLAGS += -O0 -g else CFLAGS += -O2 -g endif PYTHONS := $(shell pyversions -vr debian/control) -include /usr/share/python/python.mk ifeq (,$(py_sitename)) py_sitename = site-packages py_libdir = /usr/lib/python$(subst python,,$(1))/site-packages py_sitename_sh = $(py_sitename) py_libdir_sh = $(py_libdir) endif .PRECIOUS: build-%/configure-stamp dbg-build-%/configure-stamp configure: $(PYTHONS:%=build-%/configure-stamp) $(PYTHONS:%=dbg-build-%/configure-stamp) build-%/configure-stamp: dh_testdir mkdir -p build-$* cd build-$* \ && python$* ../configure.py \ -d /usr/lib/python$*/$(call py_sitename,$*) \ -u STRIP="" CFLAGS="${CFLAGS}" CFLAGS_RELEASE="" CXXFLAGS="${CFLAGS}" CXXFLAGS_RELEASE="" touch $@ dbg-build-%/configure-stamp: dh_testdir mkdir -p dbg-build-$* cd dbg-build-$* \ && python$*-dbg ../configure.py \ -d /usr/lib/python$*/$(call py_sitename,$*) \ -e /usr/include/python$*_d \ -u CFLAGS="-O0 -g" CFLAGS_RELEASE="" CXXFLAGS="-O0 -g" CXXFLAGS_RELEASE="" STRIP="" touch $@ build: $(PYTHONS:%=build-%/build-stamp) $(PYTHONS:%=dbg-build-%/build-stamp) build-%/build-stamp: build-%/configure-stamp dh_testdir $(MAKE) -C build-$* touch $@ dbg-build-%/build-stamp: dbg-build-%/configure-stamp dh_testdir $(MAKE) -C dbg-build-$* touch $@ clean: dh_testdir dh_testroot rm -rf *-stamp siputils.pyc $(PYTHONS:%=build-%) $(PYTHONS:%=dbg-build-%) dh_clean install-arch: build dh_testdir dh_testroot dh_prep -a dh_installdirs -a # This is needed to enforce that the install-arch-% rules are # not run in parallel. Both rules install into the same directory, # and therefore might try to access the same files at the same time. # Therefore, instead of depending on the install-arch-% rules, # we invoke them explicitly. for p in $(PYTHONS) ; do \ $(MAKE) -f debian/rules install-arch-$$p;\ done for i in $$(find debian/python-sip-dbg -name '*.so'); do \ b=$$(basename $$i .so); \ mv $$i $$(dirname $$i)/$${b}_d.so; \ done find debian/python-sip-dbg ! -type d ! -name '*_d.*' | xargs rm -f find debian/python-sip-dbg -depth -empty -exec rmdir {} \; dh_install -a --sourcedir=$(CURDIR)/debian/tmp install -m 755 -o root -g root debian/dh_sip debian/python-sip-dev/usr/bin install-arch-%: $(MAKE) -C build-$* install DESTDIR=$(CURDIR)/debian/tmp $(MAKE) -C dbg-build-$* install DESTDIR=$(CURDIR)/debian/python-sip-dbg mkdir -p debian/python-sip/usr/lib/python$*/$(call py_sitename,$*)/ install -m 644 -o root -g root debian/sipconfig.py debian/python-sip/usr/lib/python$*/$(call py_sitename,$*)/ install -m 644 -o root -g root build-$*/sipconfig.py debian/python-sip/usr/lib/python$*/$(call py_sitename,$*)/sipconfig_nd.py install -m 644 -o root -g root dbg-build-$*/sipconfig.py debian/python-sip-dbg/usr/lib/python$*/$(call py_sitename,$*)/sipconfig_d.py mkdir -p debian/python-sip-dev/usr/include/python$* install -m 644 -o root -g root siplib/sip.h debian/python-sip-dev/usr/include/python$*/ mkdir -p debian/python-sip-dev/usr/include/python$*_d ln -s ../python$*/sip.h \ debian/python-sip-dev/usr/include/python$*_d/sip.h mkdir -p debian/python-sip-dev/usr/lib/python$*/$(call py_sitename,$*) install -m 644 -o root -g root sipdistutils.py debian/python-sip-dev/usr/lib/python$*/$(call py_sitename,$*) # Must not depend on anything. This is to be called by # binary-arch/binary-indep # in another 'make' thread. binary-common: dh_testdir dh_testroot dh_installman dh_installchangelogs dh_installdocs -A dh_installexamples dh_link # don't call strip twice, it's in binary-common ifneq (,$(findstring -a, $(DH_OPTIONS))) DH_OPTIONS= dh_strip -ppython-sip-dev DH_OPTIONS= dh_strip -ppython-sip -Npython-sip-dev --dbg-package=python-sip-dbg rm -rf debian/python-sip-dbg/usr/share/doc/python-sip-dbg mkdir -p debian/python-sip-dbg/usr/share/doc ln -s python-sip debian/python-sip-dbg/usr/share/doc/python-sip-dbg endif dh_compress dh_fixperms dh_pysupport dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb # Build architecture independant packages using the common target. binary-indep: $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common # Build architecture dependant packages using the common target. binary-arch: install-arch $(MAKE) -f debian/rules DH_OPTIONS=-a binary-common binary: binary-arch binary-indep .PHONY: build clean binary-indep binary-arch binary configure