#! /usr/bin/make -f
#
# debian/rules

PYTHON2_PACKAGE_NAME = python-coverage
PYTHON3_PACKAGE_NAME = python3-coverage
python2_debug_package_name = ${PYTHON2_PACKAGE_NAME}-dbg
python3_debug_package_name = ${PYTHON3_PACKAGE_NAME}-dbg
package_working_root = debian
package_install_root = ${package_working_root}/tmp
package_install_bin_dir = ${package_install_root}/usr/bin
MANPAGE_SUFFIX = .1
default_manpage_name = python-coverage${MANPAGE_SUFFIX}
python2_manpage_names = $(addsuffix ${MANPAGE_SUFFIX}, \
	$(notdir $(wildcard ${package_install_bin_dir}/python2*-coverage)))
python3_manpage_names = $(addsuffix ${MANPAGE_SUFFIX}, \
	$(notdir $(wildcard ${package_install_bin_dir}/python3*-coverage)))
versioned_manpage_names = ${python2_manpage_names} ${python3_manpage_names}
versioned_manpage_paths = $(addprefix ${package_working_root}/, \
	${versioned_manpage_names})
debug_object_glob = *_d.so

PYTHON2 = $(shell pyversions -vr)
PYTHON3 = $(shell py3versions -vr)

DISTRIBUTION_NAME = coverage
egg_info_dir = ${DISTRIBUTION_NAME}.egg-info

duplicate_libraries :=

HTMLFILES_DIR = coverage/htmlfiles
bundled_libraries += $(addprefix ${HTMLFILES_DIR}/, \
	jquery-1.4.3.min.js \
	jquery.hotkeys.js \
	jquery.isonscreen.js \
	jquery.tablesorter.min.js \
	)

GENERATED_FILES += ${egg_info_dir}/PKG-INFO ${egg_info_dir}/SOURCES.txt

# Send HTTP traffic to the “discard” service during packaging actions.
export http_proxy = http://127.0.1.1:9/
export https_proxy = ${http_proxy}


ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
.PHONY: test-python%
test-python%:
	python$* setup.py test -vv

.PHONY: override_dh_auto_test
override_dh_auto_test: $(PYTHON2:%=test-python%) $(PYTHON3:%=test-python%)
endif


.PHONY: build
build: manpage-symlinks build-arch build-indep
	dh $@ --with python2,python3

.PHONY: build-arch
build-arch: build-stamp
	dh $@ --with python2,python3

.PHONY: build-indep
build-indep: build-stamp
	dh $@ --with python2,python3

build-stamp:
	touch $@

.PHONY: build-python%
build-python%:
	python$* setup.py build

.PHONY: manpage-symlinks
manpage-symlinks: ${versioned_manpage_paths}

${package_working_root}/%${MANPAGE_SUFFIX}:
	ln -s ${default_manpage_name} $@

.PHONY: override_dh_auto_build
override_dh_auto_build: remove-bundled-libraries $(PYTHON3:%=build-python%)
	dh_auto_build


.PHONY: remove-bundled-libraries
remove-bundled-libraries:
	$(RM) ${bundled_libraries}

.PHONY: clean
clean:
	dh $@ --with python2,python3
	$(RM) -r ${GENERATED_FILES}

.PHONY: override_dh_auto_clean
override_dh_auto_clean:
	dh_auto_clean
	$(RM) -r build
	$(RM) -r *.egg-info


.PHONY: install
install: build
	dh $@ --with python2,python3 \
	    --package ${python2_debug_package_name} \
	    --package ${python3_debug_package_name}
	dh $@ --with python2,python3 --exclude ${debug_object_glob}

.PHONY: install-python%
install-python%:
	python$* setup.py install --install-layout=deb \
	    --root=$(CURDIR)/${package_install_root}


.PHONY: binary-indep
binary-indep: build install

.PHONY: binary-arch
binary-arch: build install
	dh $@ --with python2,python3

.PHONY: binary
binary: build binary-indep binary-arch


.PHONY: override_dh_strip
override_dh_strip:
	dh_strip --package=${PYTHON2_PACKAGE_NAME} --dbg-package=${python2_debug_package_name}
	dh_strip --package=${PYTHON3_PACKAGE_NAME} --dbg-package=${python3_debug_package_name}

.PHONY: override_dh_auto_install
override_dh_auto_install: $(PYTHON3:%=install-python%)
override_dh_auto_install:
	dh_auto_install
	mv ${package_install_bin_dir}/coverage \
           ${package_install_bin_dir}/python-coverage

.PHONY: override_dh_installchangelogs
override_dh_installchangelogs:
	dh_installchangelogs CHANGES.txt

.PHONY: override_dh_installdocs
override_dh_installdocs:
	dh_installdocs \
	    --package=${PYTHON2_PACKAGE_NAME} \
	    --package=${python2_debug_package_name} \
            --link-doc=${PYTHON2_PACKAGE_NAME}
	dh_installdocs \
	    --package=${PYTHON3_PACKAGE_NAME} \
	    --package=${python3_debug_package_name} \
	    --link-doc=${PYTHON3_PACKAGE_NAME}

.PHONY: override_dh_installman
override_dh_installman:
	dh_installman \
	    --package=${PYTHON2_PACKAGE_NAME} \
	    $(addprefix ${package_working_root}/, \
	        ${python2_manpage_names} ${default_manpage_name})
	dh_installman \
	    --package=${PYTHON3_PACKAGE_NAME} \
	    $(addprefix ${package_working_root}/,${python3_manpage_names})


# Local variables:
# mode: makefile
# coding: utf-8
# End:
# vim: filetype=make fileencoding=utf-8 :
