#!/usr/bin/make -f

%:
	dh --with python2 --buildsystem=cmake --parallel $@

# Python versions
PYVERSIONS=$(shell pyversions -v -r)
DEFAULT_PY=$(shell pyversions -v -d)
LIBPYSIDE_SOVERSION=1.0

# G++ versions
g++-version := $(shell readlink /usr/bin/g++ | sed -e 's/g++-\(.*\)\.\(.*\)/\1\2/')
g++-version-ge-4.5 := $(shell if test $(g++-version) -ge 45; then echo "yes"; else echo "no"; fi)

#### CONFIGURE ####

override_dh_auto_configure: $(PYVERSIONS:%=override_dh_auto_configure_dbg-%) $(PYVERSIONS:%=override_dh_auto_configure-%)

override_dh_auto_configure_dbg-%:
	mkdir -p build-$*-dbg
	dh_auto_configure --builddirectory=build-$*-dbg -- \
	-DCMAKE_VERBOSE_MAKEFILE=OFF \
	-DCMAKE_BUILD_TYPE:STRING="Debug" \
	-DCMAKE_SKIP_RPATH=true \
	-DCMAKE_USE_PYTHON_VERSION="$*-dbg;$*_d;$*" \
	-DUSE_XVFB=true \
	-DPYTHON_BASENAME=python$*-dbg

override_dh_auto_configure-%:
	mkdir -p build-$*
	dh_auto_configure --builddirectory=build-$* -- \
	-DCMAKE_VERBOSE_MAKEFILE=OFF \
	-DCMAKE_BUILD_TYPE:STRING="Release" \
	-DCMAKE_SKIP_RPATH=true \
	-DCMAKE_USE_PYTHON_VERSION="$*" \
	-DUSE_XVFB=true \
	-DPYTHON_BASENAME=python$* \
	-DDEFAULT_PYTHON_BASENAME=python${DEFAULT_PY}

#### BUILD ####

override_dh_auto_build: $(PYVERSIONS:%=override_dh_auto_build_dbg-%) $(PYVERSIONS:%=override_dh_auto_build-%)

override_dh_auto_build_dbg-%:
	dh_auto_build --builddirectory=build-$*-dbg

override_dh_auto_build-%:
	dh_auto_build --builddirectory=build-$*

#### INSTALL ####

override_dh_auto_install: $(PYVERSIONS:%=override_dh_auto_install_dbg-%) $(PYVERSIONS:%=override_dh_auto_install-%)

override_dh_auto_install_dbg-%:
	dh_auto_install --builddirectory=build-$*-dbg --destdir=debian/tmp-dbg

override_dh_auto_install-%:
	dh_auto_install --builddirectory=build-$*

#### Shared libs ####
override_dh_makeshlibs: $(PYVERSIONS:%=override_dh_makeshlibs-%)
	cat debian/libpyside${LIBPYSIDE_SOVERSION}.symbols-py* > debian/libpyside${LIBPYSIDE_SOVERSION}.symbols
	dh_makeshlibs

override_dh_makeshlibs-%:
	echo "libpyside-python$*.so.${LIBPYSIDE_SOVERSION} libpyside${LIBPYSIDE_SOVERSION} #MINVER#" > debian/libpyside${LIBPYSIDE_SOVERSION}.symbols-py$*
	cat debian/libpyside${LIBPYSIDE_SOVERSION}.symbols.pristine >> debian/libpyside${LIBPYSIDE_SOVERSION}.symbols-py$*
ifeq ($(g++-version-ge-4.5),yes)
	# g++ version is >= 4.5, add related symbols
	sed -e 's|^ _| (ge-g++4.5)_|g' debian/libpyside${LIBPYSIDE_SOVERSION}.symbols.g++-ge-4.5 >> debian/libpyside${LIBPYSIDE_SOVERSION}.symbols-py$*
else
	# g++ version is < 4.5, add related symbols
	sed -e 's|^ _| (lt-g++4.5)_|g' debian/libpyside${LIBPYSIDE_SOVERSION}.symbols.g++-lt-4.5 >> debian/libpyside${LIBPYSIDE_SOVERSION}.symbols-py$*
endif

#### STRIP ####
override_dh_strip:
	dh_strip --dbg-package=python-pyside-dbg --exclude=-dbg.so --exclude=_d.so
	
#### TEST ####
override_dh_auto_test: $(PYVERSIONS:%=override_dh_auto_test_dbg-%) $(PYVERSIONS:%=override_dh_auto_test-%)

override_dh_auto_test_dbg-%:
	- dh_auto_test --builddirectory=build-$*-dbg

override_dh_auto_test-%:
	- dh_auto_test --builddirectory=build-$*

#### CLEAN ####
override_dh_auto_clean:
	rm -rf build-*
	cd tests; rm -Rf *.pyc */*.pyc */*/*.pyc */*/*/*.pyc
	rm -rf debian/tmp-dbg
	rm -f debian/libpyside${LIBPYSIDE_SOVERSION}.symbols
	rm -f debian/libpyside${LIBPYSIDE_SOVERSION}.symbols-py*

#### DEBIAN INSTALL ####

override_dh_install: override_dh_install_3

override_dh_install_1:
	# Move the debug .so's right in place
	$(shell rename 's/(debian\/tmp-dbg\/)(.*)\.so(.*)$$/debian\/tmp\/$$2_d.so$$3/'\
	             debian/tmp-dbg/usr/lib/python*/*-packages/PySide/*.so)
	$(shell rename 's/(debian\/tmp-dbg\/)(.*)\.so(.*)$$/debian\/tmp\/$$2.so$$3/'\
	             debian/tmp-dbg/usr/lib/*.so*)
	# Setup the default version symbolic links
	$(shell ln -s libpyside-python${DEFAULT_PY}.so.${LIBPYSIDE_SOVERSION} \
	             debian/tmp/usr/lib/libpyside${LIBPYSIDE_SOVERSION}.so)
	$(shell ln -s libpyside${LIBPYSIDE_SOVERSION}.so debian/tmp/usr/lib/libpyside.so)

override_dh_install_2: override_dh_install_1
	# Do the legacy install for the rest
	dh_install --list-missing

override_dh_install_3: override_dh_install_2
	# Move the debug library to the correct package.
	$(shell rename 's/(debian\/libpyside${LIBPYSIDE_SOVERSION}\/)(.*)-dbg\.so(.*)$$/debian\/python-pyside-dbg\/$$2-dbg.so$$3/' \
	              debian/libpyside${LIBPYSIDE_SOVERSION}/usr/lib/*-dbg.so*)
	# Move the debug cmake files to the correct package
	$(shell rename 's/(debian\/libpyside-dev\/)(.*)-dbg\.cmake/debian\/python-pyside-dbg\/$$2-dbg.cmake/'\
	              debian/tmp-dbg/usr/lib/cmake/PySide-*/*-dbg.cmake)

override_dh_gencontrol:
	debian/dh_pycmakedeps --modules-root=PySide/
	dh_gencontrol
