#!/usr/bin/make -f

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

PYVERS = $(shell pyversions -r) $(shell py3versions -r)

DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk

build: build-arch build-indep
build-arch: build-stamp
build-indep: build-stamp

build-stamp: $(PYVERS:%=build-ext-%-stamp) $(PYVERS:%=build-ext-%-dbg-stamp)
	touch $@

build-ext-%-stamp:
	dh_testdir
	$* setup.py build -g --enable=load_extension
	touch $@

clean:
	dh_testdir
	dh_testroot
	rm -f build*stamp dbg-build*stamp
	rm -rf build
	find . -name '*.pyc' | xargs rm -f
	rm -f src/shell.c
	dh_clean

install: build install-prereq $(PYVERS:%=install-ext-%) $(PYVERS:%=install-ext-%-dbg)

install-prereq:
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

install-ext-%:
	$* setup.py install --force --root=debian/tmp \
	                    --no-compile -O0 --install-layout=deb

# Build architecture-independent files here.
binary-indep:
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs -i usr/share/doc/python-apsw

	cp -a doc debian/python-apsw-doc/usr/share/doc/python-apsw/html

# Remove Google Analytics footer (see
# http://lintian.debian.org/tags/privacy-breach-google-adsense.html)
	sed -i '/This page uses.*analytics.google.com/,/<\/div>/d' \
	    debian/python-apsw-doc/usr/share/doc/python-apsw/html/*.html

	cd debian/python-apsw-doc/usr/share/doc/python-apsw && \
		ln -sf ../../../../javascript/jquery/jquery.min.js html/_static/jquery.js
	cd debian/python-apsw-doc/usr/share/doc/python-apsw && \
		ln -sf ../../../../javascript/underscore/underscore.min.js html/_static/underscore.js
	mkdir debian/python-apsw-doc/usr/share/doc/python-apsw-doc
	cp debian/copyright debian/python-apsw-doc/usr/share/doc/python-apsw-doc
	cp debian/changelog debian/python-apsw-doc/usr/share/doc/python-apsw-doc/changelog.Debian

	mkdir -p debian/python-apsw-doc/usr/share/doc-base
	cp debian/python-apsw-doc.doc-base debian/python-apsw-doc/usr/share/doc-base/python-apsw-doc

	dh_compress -i -Xjson -Xtxt -Xjs -Xinv
	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_installdocs -a debian/NEWS.Debian

	dh_install

	dh_python2 -a
	dh_python3 -a

        # Install debugging extension and remove from regular package
	(cd debian/python-apsw; \
	    find . -name "*_d.so" -printf "%P\0" -delete) \
	    | xargs -0 dh_install --autodest -ppython-apsw-dbg

	(cd debian/python3-apsw; \
	    find . -regextype posix-egrep -regex ".+-[a-z0-9]*d[a-z]*.so" \
	           -printf "%P\0" -delete) \
	    | xargs -0 dh_install --autodest -ppython3-apsw-dbg

	dh_installchangelogs -a
	dh_strip -ppython-apsw --dbg-package=python-apsw-dbg
	dh_strip -ppython3-apsw --dbg-package=python3-apsw-dbg
	rm -rf debian/python-apsw-dbg/usr/share/doc/python-apsw-dbg
	ln -s python-apsw debian/python-apsw-dbg/usr/share/doc/python-apsw-dbg
	rm -rf debian/python3-apsw-dbg/usr/share/doc/python3-apsw-dbg
	ln -s python3-apsw debian/python3-apsw-dbg/usr/share/doc/python3-apsw-dbg
	dh_compress -a
	dh_fixperms -a
	dh_installdeb -a
	dh_shlibdeps -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

binary: binary-indep binary-arch

.PHONY: build build-arch build-indep
.PHONY: clean
.PHONY: install install-prereq
.PHONY: binary-indep binary-arch binary
