Skip to content
Permalink
e064779bca
Go to file
 
 
Cannot retrieve contributors at this time
executable file 209 lines (180 sloc) 7.17 KB
#!/usr/bin/make -f
include /usr/share/gnome-pkg-tools/1/rules/uploaders.mk
-include /usr/share/gnome-pkg-tools/1/rules/gnome-get-source.mk
include /usr/share/python/python.mk
CFLAGS += -Wall -g -O$(if $(findstring noopt,$(DEB_BUILD_OPTIONS)),0,2)
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
configure_flags += --prefix=/usr --enable-thread --build=$(DEB_BUILD_GNU_TYPE)
ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
configure_flags += --host=$(DEB_HOST_GNU_TYPE)
endif
PYDEFAULTVER := $(shell pyversions --default --version)
PYVERS := $(shell pyversions --requested --version debian/control)
PYVERS := $(filter-out $(PYDEFAULTVER), $(PYVERS)) $(PYDEFAULTVER)
.PRECIOUS: build-%/configure-stamp dbg-build-%/configure-stamp
patch-stamp:
dh_testdir
# backup the original files to restore them in the clean target
[ ! -r config.sub ] || \
(cp config.sub config.sub.orig && \
cp /usr/share/misc/config.sub config.sub)
[ ! -r config.guess ] || \
(cp config.guess config.guess.orig && \
cp /usr/share/misc/config.guess config.guess)
touch $@
patch: patch-stamp
unpatch:
rm -f patch-stamp
# restore files from backup (before unpatching)
[ ! -r config.sub.orig ] || \
cp config.sub.orig config.sub
[ ! -r config.guess.orig ] || \
cp config.guess.orig config.guess
rm -rf .pc
autoreconf-stamp: patch-stamp
dh_testdir
dh_autoreconf autoreconf -- -f -i -I m4
touch $@
build-%/configure-stamp: autoreconf-stamp
dh_testdir
mkdir -p build-$*
cd build-$* && \
PYTHON=/usr/bin/python$* CFLAGS="$(CFLAGS)" \
$(CURDIR)/configure $(configure_flags)
touch $@
build-%/build-stamp: build-%/configure-stamp
dh_testdir
PYTHON=/usr/bin/python$* $(MAKE) -C build-$* pyexecdir=$(call py_libdir_sh, $*)
touch $@
dbg-build-%/configure-stamp: autoreconf-stamp
dh_testdir
mkdir -p dbg-build-$*
cd dbg-build-$* && \
PYTHON=/usr/bin/python$*-dbg CFLAGS="$(CFLAGS) -O0" \
$(CURDIR)/configure $(configure_flags)
touch $@
dbg-build-%/build-stamp: dbg-build-%/configure-stamp
dh_testdir
PYTHON=/usr/bin/python$*-dbg $(MAKE) -C dbg-build-$* pyexecdir=$(call py_libdir_sh, $*)
touch $@
build: $(PYVERS:%=build-%/build-stamp) $(PYVERS:%=dbg-build-%/build-stamp)
build-arch build-indep: build
build-%/check-stamp: build-%/build-stamp
dh_testdir
G_HOME=/ PYTHON=/usr/bin/python$* xvfb-run -a -s "-screen 0 1280x1024x24 -noreset" $(MAKE) -C build-$* check
touch $@
dbg-build-%/check-stamp: dbg-build-%/build-stamp
dh_testdir
G_HOME=/ PYTHON=/usr/bin/python$*-dbg xvfb-run -a -s "-screen 0 1280x1024x24 -noreset" $(MAKE) -C dbg-build-$* check
touch $@
check: $(PYVERS:%=build-%/check-stamp) $(PYVERS:%=dbg-build-%/check-stamp)
build-%/install-stamp: build-%/build-stamp
dh_testdir
dh_testroot
PYTHON=/usr/bin/python$* $(MAKE) -C build-$* install DESTDIR=$(CURDIR)/debian/tmp pyexecdir=$(call py_libdir_sh, $*)
# move installed files to a per python runtime location to allow
# comparison of the resulting files across runtimes or shipping
# multiple versions
# pkg-config file (this is shipped twice because of varying pyexecdir)
mkdir debian/tmp/usr/lib/pkgconfig/python$*
mv debian/tmp/usr/lib/pkgconfig/*.pc debian/tmp/usr/lib/pkgconfig/python$*
# defs files, should be the same whatever the build-time python runtime
mkdir debian/tmp/usr/share/pygtk/2.0/defs/python$*
mv debian/tmp/usr/share/pygtk/2.0/defs/*.defs debian/tmp/usr/share/pygtk/2.0/defs/python$*
# headers, should be the same whatever the build-time python runtime
mkdir debian/tmp/usr/include/python$*
mv debian/tmp/usr/include/pygtk-2.0 debian/tmp/usr/include/python$*
dbg-build-%/install-stamp: dbg-build-%/build-stamp
dh_testdir
dh_testroot
PYTHON=/usr/bin/python$* $(MAKE) -C dbg-build-$* install DESTDIR=$(CURDIR)/debian/python-gtk2-dbg pyexecdir=$(call py_libdir_sh, $*)
find debian/python-gtk2-dbg ! -type d ! -name '*.so' | xargs rm -f
find debian/python-gtk2-dbg -depth -empty -exec rmdir {} \;
touch $@
install-stamp:
dh_testdir
dh_testroot
# remove the install stamps to force a reinstall (since dh_clean is
# removing the package dirs)
rm -f $(PYVERS:%=build-%/install-stamp) $(PYVERS:%=dbg-build-%/install-stamp)
dh_prep
$(MAKE) -f debian/rules $(PYVERS:%=build-%/install-stamp) $(PYVERS:%=dbg-build-%/install-stamp)
# check that all builds with various Python runtimes produced the same
# *.defs files (or fail)
for v in $(PYVERS); do \
echo "Comparing defs files for the default Python version ($(PYDEFAULTVER)) with defs files for Python $$v"; \
diff --brief --recursive debian/tmp/usr/share/pygtk/2.0/defs/python$(PYDEFAULTVER) debian/tmp/usr/share/pygtk/2.0/defs/python$$v; \
echo "Comparing headers for the default Python version ($(PYDEFAULTVER)) with headers for Python $$v"; \
diff --brief --recursive debian/tmp/usr/include/python$(PYDEFAULTVER) debian/tmp/usr/include/python$$v; \
done
# since all Python runtimes produced the same files, only keep one set
echo "Cleaning up"
mv debian/tmp/usr/share/pygtk/2.0/defs/python$(PYDEFAULTVER)/*.defs debian/tmp/usr/share/pygtk/2.0/defs
mv debian/tmp/usr/include/python$(PYDEFAULTVER)/* debian/tmp/usr/include
for v in $(PYVERS); do \
rm --force --recursive debian/tmp/usr/share/pygtk/2.0/defs/python$$v; \
rm --force --recursive debian/tmp/usr/include/python$$v; \
done
# finally, install files from DESTDIR in the per-package dirs
dh_install
# install rtupdate script to handle Python default runtime change
install -d debian/python-gtk2-dev/usr/share/python/runtime.d
install debian/python-gtk2-dev.rtupdate debian/python-gtk2-dev/usr/share/python/runtime.d
for i in $$(find debian/python-*-dbg -name '*.so'); do \
b=$$(basename $$i .so); \
mv $$i $$(dirname $$i)/$${b}_d.so; \
done
install: install-stamp
clean::
dh_testdir
dh_testroot
rm -f install-stamp
rm -rf debian/tmp-*
rm -rf build-* dbg-build-*
rm -f tests/*.pyc
rm -f autoreconf-stamp
dh_autoreconf_clean
$(MAKE) -f debian/rules unpatch
dh_clean
maybe_check = $(if $(findstring nocheck,$(DEB_BUILD_OPTIONS)),,check)
binary-indep: build install
dh_testdir
dh_testroot
dh_installdocs -i
dh_installexamples -i
find debian/python-gtk2-doc/usr/share/doc -name '*.py[co]' -delete
dh_installchangelogs -i ChangeLog
dh_link -i
dh_compress -i -X.py -X.glade
dh_fixperms -i
# More permission fixing
grep -rlZ "^#\!.*python" debian/python-gtk2-dev/usr | xargs -0r chmod 755
dh_python2 -ppython-gtk2-doc /usr/share/pygtk
dh_installdeb -i
dh_gencontrol -i
dh_md5sums -i
dh_builddeb -i
binary-arch: build install
dh_testdir
dh_testroot
dh_installdocs -s
dh_installexamples -s
dh_installchangelogs ChangeLog -s
dh_strip -s -Npython-gtk2-dbg --dbg-package=python-gtk2-dbg
rm -rf debian/python-gtk2-dbg/usr/share/doc/python-gtk2-dbg
ln -s python-gtk2 debian/python-gtk2-dbg/usr/share/doc/python-gtk2-dbg
dh_link -s
dh_compress -s -X.py -X.glade
dh_fixperms -s
dh_python2 -a
if ! dpkg-vendor --is ubuntu; then \
dh_numpy -s -ppython-gtk2; \
fi
dh_installdeb -s
dh_shlibdeps -s
dh_gencontrol -s
dh_md5sums -s
dh_builddeb -s
binary: binary-arch binary-indep
.PHONY: patch unpatch build-indep build-arch build check install clean binary-indep binary-arch binary
You can’t perform that action at this time.