#!/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

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)

export echo=/bin/echo


prefix = /opt/pygi
configure_flags += \
		--prefix=$(prefix) \
		--enable-thread \
		--build=$(DEB_BUILD_GNU_TYPE) \
		--disable-maintainer-mode \
		--enable-pygi

ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
	configure_flags += --host=$(DEB_HOST_GNU_TYPE)
endif

DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
ifeq ($(DEB_HOST_ARCH),i386)
	configure_flags += CPPFLAGS="-I/usr/include/i486-linux-gnu"
endif
ifeq ($(DEB_HOST_ARCH),armel)
       configure_flags += CPPFLAGS="-I/usr/include/arm-linux-gnueabi"
endif

PYVERS := $(shell pyversions -vr)

# how to call quilt
PATCH_DIR := $(CURDIR)/debian/patches
QUILT := QUILT_PATCHES=$(PATCH_DIR) quilt --quiltrc /dev/null

patch-stamp:
	dh_testdir
	# apply patches
	$(QUILT) push -a || test $$? = 2
	# backup the original files to restore them in the clean target
	[ ! -r configure ] || cp -a configure configure.orig
	[ ! -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 configure.orig ] || cp -a configure.orig configure
	[ ! -r config.sub.orig ]   || \
	    cp config.sub.orig   config.sub
	[ ! -r config.guess.orig ]   || \
	    cp config.guess.orig config.guess
	# unapply patches, if any
	$(QUILT) pop -f -a || test $$? = 2
	rm -rf .pc

build-%/configure-stamp: patch-stamp
	dh_testdir
	NOCONFIGURE=1 bash autogen.sh
	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=$(prefix)/lib/python$*/site-packages
	-PYTHON=/usr/bin/python$* $(MAKE) -C build-$* check
	touch $@

build: $(PYVERS:%=build-%/build-stamp)

build-%/install-stamp: build-%/build-stamp
	dh_testdir
	dh_testroot
	PYTHON=/usr/bin/python$* $(MAKE) -C build-$* install DESTDIR=$(CURDIR)/debian/python-gobject-pygi-dev pyexecdir=$(prefix)/lib/python$*/site-packages
	touch $@

install-stamp: $(PYVERS:%=build-%/build-stamp)
	dh_testdir
	dh_testroot
	# remove the install stamps to force a reinstall (since dh_clean is
	# removing the package dirs)
	dh_clean -k $(PYVERS:%=build-%/install-stamp)
	$(MAKE) -f debian/rules $(PYVERS:%=build-%/install-stamp)
	find debian/python-gobject-pygi-dev -name \*.la | xargs -r rm
	#mkdir -p debian/python-gobject-pygi/var/lib debian/python-gobject-pygi/$(prefix)/lib
	mkdir -p debian/python-gobject-pygi/$(prefix)/lib
	mv debian/python-gobject-pygi-dev/$(prefix)/lib/python* debian/python-gobject-pygi/$(prefix)/lib/
	mv debian/python-gobject-pygi-dev/$(prefix)/lib/libpyglib-*so.* \
	   debian/python-gobject-pygi/$(prefix)/lib
	rm -rf debian/python-gobject-pygi-dev/$(prefix)/lib/python* debian/python-gobject-pygi-dev/var
	sed -i 's,bin/python[23]\.[0-9],bin/python,' \
		debian/python-gobject-pygi-dev/$(prefix)/bin/pygobject-codegen-2.0

	touch $@

install: install-stamp

clean::
	dh_testdir
	dh_testroot
	rm -f install-stamp
	rm -rf build-*
	$(MAKE) -f debian/rules unpatch
	dh_clean *.py[co] */*.py[co]

binary-indep: install
	dh_testdir
	dh_testroot
	dh_installdocs -i
	dh_installexamples -i
	dh_installchangelogs ChangeLog -i
	dh_link -i
	dh_compress -i -X.py
	dh_fixperms -i
	# More permission fixing
	chmod 755 `grep -rl "^#\!.*python" debian/python-gobject-pygi-dev/$(prefix)`
	#dh_pysupport -i $(prefix)/share/pygobject
	dh_installdeb -i
	dh_gencontrol -i
	rm -rf debian/python-gobject-pygi-dev/usr/share/doc
	rmdir -p debian/python-gobject-pygi-dev/usr/share || true
	rm -rf debian/python-gobject-pygi-dev/$(prefix)/share/gtk-doc
	rmdir -p debian/python-gobject-pygi-dev/$(prefix)/share || true
	dh_md5sums -i
	dh_builddeb -i

binary-arch: install
	dh_testdir
	dh_testroot
	dh_installdocs -s
	dh_installexamples -s
	dh_installchangelogs -s ChangeLog
	dh_strip -ppython-gobject-pygi
	dh_link -s
	dh_compress -s -X.py
	dh_fixperms -s
	#dh_pysupport -s
	dh_makeshlibs -ppython-gobject-pygi     -V'python-gobject-pygi (>= 2.15.2)'
	dh_installdeb -s
	dh_shlibdeps -s
	dh_gencontrol -s
	rm -rf debian/python-gobject-pygi/usr/share/doc
	rmdir -p debian/python-gobject-pygi/usr/share || true
	dh_md5sums -s
	dh_builddeb -s

binary: binary-arch binary-indep
.PHONY: patch unpatch build install clean binary-indep binary-arch binary
