#!/usr/bin/make -f

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

# The default gzip compressor has been changed in dpkg >= 1.17.0.
deb_default_compress = $(shell LANG=C dpkg-deb --version | head -n1 | \
                         sed -e "s|.*version ||" -e "s| .*||" | \
                         xargs -r dpkg --compare-versions 1.17.0 lt \
                         && echo xz || echo gzip)
ifeq ($(deb_default_compress),gzip)
DEB_DH_BUILDDEB_ARGS += -- -Z$(shell dpkg-deb --help | grep -q ":.* xz[,.]" \
                               && echo xz || echo bzip2)
endif

export DH_OPTIONS

-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


DOC=$(CURDIR)/debian/python-tqt-doc/usr/share/doc/python-tqt-doc
INSTDIR=$(CURDIR)/debian

export TQTDIR=/usr/share/tqt3
export QMAKESPEC=$(TQTDIR)/mkspecs/linux-g++

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	CXXFLAGS += -O0
else
	CXXFLAGS += -O1
endif
CXXFLAGS += "-I/usr/include/tqt"

PYTHONS	:= $(shell pyversions -vr debian/control) $(shell py3versions -vd)

DEB_PYTHON_SYSTEM = $(if $(wildcard /usr/bin/dh_python2),,pysupport)
DH_PYTHON2 = $(if $(wildcard /usr/bin/dh_python2),dh_python2,dh_pysupport)

DEB_PARALLEL_JOBS ?= 40

.PRECIOUS: build-%/configure-stamp dbg-build-%/configure-stamp

#configure: $(PYTHONS:%=build-%/configure-stamp) $(PYTHONS:%=dbg-build-%/configure-stamp)
configure: $(PYTHONS:%=build-%/configure-stamp)

build-%/configure-stamp:
	dh_testdir
	mkdir -p build-$*
	cd build-$* && echo yes \
                | python$* ../configure.py \
                        -c -n /usr/include/tqt3 \
                        -e python$* \
                        -o /usr/lib/$(DEB_HOST_MULTIARCH) -u -j $(DEB_PARALLEL_JOBS) \
                        -d /usr/lib/python$*/$(call py_sitename,$*)/python_tqt \
                        -l /usr/include/python$* \
                        -v /usr/share/sip/tqt \
                        -m /usr/lib/python$*/config \
                        -z \
                        CXXFLAGS_RELEASE="" CXXFLAGS="${CXXFLAGS}" STRIP=""
	touch $@

dbg-build-%/configure-stamp:
	dh_testdir
	mkdir -p dbg-build-$*
	cd dbg-build-$* && echo yes \
                | python$*-dbg ../configure.py \
                        -c -n /usr/include/tqt3 \
                        -o /usr/lib/$(DEB_HOST_MULTIARCH) -u -j $(DEB_PARALLEL_JOBS) \
                        -d /usr/lib/python$*/$(call py_sitename,$*)/python_tqt \
                        -l /usr/include/python$*_d \
                        -v /usr/share/sip/tqt \
                        -m /usr/lib/python$*/config_d \
                        -z \
                        CXXFLAGS_RELEASE="" CXXFLAGS="-O0 -g -I/usr/include/tqt" STRIP=""
	touch $@

#build build-arch: $(PYTHONS:%=build-%/build-stamp) $(PYTHONS:%=dbg-build-%/build-stamp)
build build-arch: $(PYTHONS:%=build-%/build-stamp)
build-indep:

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 $@

install-indep: configure
	dh_testdir
	dh_testroot
	dh_clean -k -i
	dh_installdirs -i
	for version in ${PYTHONS}; do\
		pylib=$$(python$$version -c 'from distutils import sysconfig; print (sysconfig.get_python_lib())')/python_tqt;\
		mkdir -p debian/python-tqt-dev/$$pylib;\
		install -m 644 -o root -g root build-$$version/pyqtconfig.py debian/python-tqt-dev/$$pylib;\
	done
	dh_install -i

install-arch: build
	dh_testdir
	dh_testroot
	dh_clean -k -a
	dh_installdirs -a

	for p in $(PYTHONS) ; do \
		$(MAKE) -f debian/rules install-arch-$$p;\
	done

	dh_install -a --sourcedir=$(CURDIR)/debian/tmp

	for i in $$(find debian/python3-*-dbg -name '*.so'); do \
	  b=$$(basename $$i .so); \
	  mv $$i $$(dirname $$i)/$${b}_d.so; \
	done
	find debian/python3-*-dbg ! -type d \
                ! \( -name '*.so' -o -name '*config_d.py' \) | xargs rm -f
	find debian/python3-*-dbg -depth -type d -empty -exec rmdir {} \;

install-arch-3.%:
	$(MAKE) -C build-3.$* install DESTDIR=$(CURDIR)/debian/tmp
#	$(MAKE) -C dbg-build-3.* install DESTDIR=$(CURDIR)/debian/python3-tqt-dbg
	mkdir -p debian/python3-tqt/usr/lib/python3.$*/$(call py_sitename,$$version)/python_tqt
	cp -a debian/tmp/usr/lib/python3.$*/$(call py_sitename,$$version)/python_tqt/__init__.py \
	      debian/python3-tqt/usr/lib/python3.$*/$(call py_sitename,$$version)/python_tqt/__init__.py
#	mkdir -p debian/python3-tqt-gl-dbg/usr/lib/python3.$*/$(call py_sitename,$$version)/python_tqt
#	mv debian/python3-tqt-dbg/usr/lib/python3.$*/$(call py_sitename,$$version)/python_tqt/qtgl.so \
#	   debian/python3-tqt-gl-dbg/usr/lib/python3.$*/$(call py_sitename,$$version)/python_tqt/
#	mkdir -p debian/python3-tqtext-dbg/usr/lib/python3.$*/$(call py_sitename,$$version)/python_tqt
#	mv debian/python3-tqt-dbg/usr/lib/python3.$*/$(call py_sitename,$$version)/python_tqt/qtext.so \
#	   debian/python3-tqtext-dbg/usr/lib/python3.$*/$(call py_sitename,$$version)/python_tqt/

install-arch-%:
	$(MAKE) -C build-$* install DESTDIR=$(CURDIR)/debian/tmp
#	$(MAKE) -C dbg-build-$* install DESTDIR=$(CURDIR)/debian/python-tqt-dbg
	mkdir -p debian/python-tqt/usr/lib/python$*/$(call py_sitename,$$version)/python_tqt
	cp -a debian/tmp/usr/lib/python$*/$(call py_sitename,$$version)/python_tqt/__init__.py \
	      debian/python-tqt/usr/lib/python$*/$(call py_sitename,$$version)/python_tqt/__init__.py
#	mkdir -p debian/python-tqt-gl-dbg/usr/lib/python$*/$(call py_sitename,$$version)/python_tqt
#	mv debian/python-tqt-dbg/usr/lib/python$*/$(call py_sitename,$$version)/python_tqt/qtgl.so \
#	   debian/python-tqt-gl-dbg/usr/lib/python$*/$(call py_sitename,$$version)/python_tqt/
#	mkdir -p debian/python-tqtext-dbg/usr/lib/python$*/$(call py_sitename,$$version)/python_tqt
#	mv debian/python-tqt-dbg/usr/lib/python$*/$(call py_sitename,$$version)/python_tqt/qtext.so \
#	   debian/python-tqtext-dbg/usr/lib/python$*/$(call py_sitename,$$version)/python_tqt/

clean:
	dh_testdir
	dh_testroot
	rm -rf $(PYTHONS:%=build-%) $(PYTHONS:%=dbg-build-%) 
	rm -f *-stamp
	dh_clean

# 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 ChangeLog
	dh_installdocs -A NEWS THANKS
	dh_installexamples
	dh_link
#	dh_strip
	dh_compress -X.py -X.bmp -X.ui -X.sql
	dh_fixperms
ifneq (dh_pysupport,${DH_PYTHON2})
	${DH_PYTHON2} --no-dbg-cleaning
else
	${DH_PYTHON2}
endif
	dh_python3 --no-dbg-cleaning
	dh_sip_tqt
	dh_sip3_tqt
	dh_lintian
	dh_installdeb
	dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info
	dh_gencontrol
	dh_md5sums
	dh_builddeb $(DEB_DH_BUILDDEB_ARGS)

# Build architecture independant packages using the common target.
binary-indep: install-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 build-arch clean binary-indep binary-arch binary configure
