#!/usr/bin/make -f

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

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

# Python helper
-include /usr/share/python/python.mk

# All available python versions (python-support)
PYVERS  := $(shell pyversions -rv)

# CFLAGS
CFLAGS = -Wall -g
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -O0
else
	CFLAGS += -O2
endif

build: build-all $(PYVERS:%=build-python%)

build: build-all-stamp
build-all: build-all-stamp
build-all-stamp:
	dh_testdir
	$(MAKE)
	touch $@

$(PYVERS:%=build-python%): build-all-stamp $(PYVERS:%=build-python%-stamp)
build-python%-stamp:
	CFLAGS="$(CFLAGS)" python$* setup.py build
	touch $@

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp portlistingparse.o build-python*-stamp

	$(MAKE) clean
	dh_clean

install: build install-prereq install-all $(PYVERS:%=install-python%)

install-prereq:
	dh_testdir
	dh_testroot
	dh_prep

install-all: install-all-stamp
install-all-stamp: install-prereq
	$(MAKE) install PREFIX=$(CURDIR)/debian/miniupnpc INSTALLDIRLIB=$(CURDIR)/debian/miniupnpc/usr/lib/$(DEB_HOST_MULTIARCH)
	# Move the library in its corresponding separate package folder.
	mkdir -p $(CURDIR)/debian/libminiupnpc8/usr
	mv $(CURDIR)/debian/miniupnpc/usr/lib $(CURDIR)/debian/libminiupnpc8/usr
	# Move the include files
	mkdir -p $(CURDIR)/debian/libminiupnpc-dev/usr/lib
	mv $(CURDIR)/debian/miniupnpc/usr/include $(CURDIR)/debian/libminiupnpc-dev/usr
	mkdir -p $(CURDIR)/debian/libminiupnpc-dev/usr/lib/$(DEB_HOST_MULTIARCH)
	mv $(CURDIR)/debian/libminiupnpc8/usr/lib/$(DEB_HOST_MULTIARCH)/libminiupnpc.so $(CURDIR)/debian/libminiupnpc-dev/usr/lib/$(DEB_HOST_MULTIARCH)
	mv $(CURDIR)/debian/libminiupnpc8/usr/lib/$(DEB_HOST_MULTIARCH)/libminiupnpc.a $(CURDIR)/debian/libminiupnpc-dev/usr/lib/$(DEB_HOST_MULTIARCH)

$(PYVERS:%=install-python%): $(PYVERS:%=install-python%-stamp)
install-python%-stamp: install-all-stamp
	python$* setup.py install --root=$(CURDIR)/debian/python-miniupnpc --no-compile $(py_setup_install_args)

binary-indep: build install

binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs Changelog.txt
	dh_installdocs
	dh_installman
	dh_python2
	dh_strip
	dh_compress
	dh_fixperms
	dh_makeshlibs -V -- -c4
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

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