#! /usr/bin/make -f

#export DH_VERBOSE = 1
#export DH_BUILD_DDEBS = 1
PACKAGE_DIR=$(CURDIR)/debian/python$(if $(patsubst 3.%,,$(1)),,3)-pyopencl
INSTALL_DIR=$(CURDIR)/debian/tmp/
PYTHON2=$(shell pyversions -vr)
PYTHON3=$(shell py3versions -vr)

#export PYBUILD_DESTDIR_python2=debian/python-pyopencl/
#export PYBUILD_DESTDIR_python2-dbg=debian/python-pyopencl-dbg/
#export PYBUILD_DESTDIR_python3=debian/python3-pyopencl/
#export PYBUILD_DESTDIR_python3-dbg=debian/python3-pyopencl-dbg/

ifneq (,$(filter nostrip,$(DEB_BUILD_OPTIONS)))
DEB_CXXFLAGS_MAINT_STRIP=-O2
DEB_CXXFLAGS_MAINT_APPEND=-O0
endif

LAST_CHANGE=$(shell dpkg-parsechangelog -S Date)
BUILD_DATE=$(shell LC_ALL=C date -u "+%B %d, %Y" -d "$(LAST_CHANGE)")
SPHINXOPTS:=-D today=\"$(BUILD_DATE)\"
SPHINXOPTS+=-D html_last_updated_fmt=\"$(BUILD_DATE)\"

%:
	dh $@ --with python2,python3,sphinxdoc

override_dh_auto_configure:
	./configure.py --cl-enable-gl

override_dh_auto_clean:
	dh_auto_clean
	-rm cffi_build.py

override_dh_auto_build:
	dh_auto_build --buildsystem=python_distutils
	set -e; \
	for python in $(PYTHON3); do \
		python$$python setup.py build ; \
		python$$python-dbg setup.py build ; \
	done

override_dh_auto_install:
	set -e; \
	for python in $(PYTHON2); do \
		python$$python setup.py install --install-layout=deb --root=$(INSTALL_DIR); \
	done
	set -e; \
	for python in $(PYTHON2); do \
		python$$python-dbg setup.py install --install-layout=deb --root=$(INSTALL_DIR); \
	done
	set -e; \
	for python in $(PYTHON3); do \
		python$$python setup.py install --install-layout=deb --root=$(INSTALL_DIR); \
	done
	set -e; \
	for python in $(PYTHON3); do \
		python$$python-dbg setup.py install --install-layout=deb --root=$(INSTALL_DIR); \
	done
	dh_numpy
	dh_numpy3

override_dh_installdocs:
# Required to build PyOpenCL symbols for documentation
	cp -Ri pyopencl.egg-info build/lib.*-*-$(firstword $(PYTHON2))/
	PYTHONPATH=../$$(ls -d build/lib.*-*-$(firstword $(PYTHON2)))/ $(MAKE) -C doc html SPHINXOPTS="$(SPHINXOPTS)"
#	PYTHONPATH=`pybuild --build -i python3 -s custom --build-args 'echo {build_dir}'`\
#       $(MAKE) -C doc html
#	pybuild --build -i python3 -s custom --build-args 'make -C {dir}/doc html'
	rm -rf build/lib.*-*-$(firstword $(PYTHON2))/pyopencl.egg-info 
	dh_installdocs

# Sphinx documentation is architecture-independent
override_dh_sphinxdoc-arch:

# Do not run test automatically - they require OpenCL-capable hardware
override_dh_auto_test:

override_dh_compress:
	dh_compress --all -X.py -X.txt -X.js -X.rst -X.json -X.doctree -Xobjects.inv

override_dh_strip:
ifeq (,$(filter nostrip,$(DEB_BUILD_OPTIONS)))
	dh_strip -ppython-pyopencl --dbg-package=python-pyopencl-dbg
#	dh_strip -ppython-pyopencl --ddeb-migration='python-pyopencl-dbg (<< 2015.1-1)'
	dh_strip -ppython3-pyopencl --dbg-package=python3-pyopencl-dbg
#	dh_strip -ppython3-pyopencl --ddeb-migration='python3-pyopencl-dbg (<< 2015.1-1)'
endif


MODULE_NAME=pyopencl
DEB_UPSTREAM_VERSION=$(shell dpkg-parsechangelog \
	| sed -rne 's/^Version: ([^-]+).*/\1/p')
GIT_REVISION=v2015.2.4
GIT_SUBMODULES=pyopencl/compyte
GIT_URL=http://git.tiker.net/trees/pyopencl.git 

get-orig-source:
	rm -rf $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION) $(MODULE_NAME)_$(DEB_UPSTREAM_VERSION).orig.tar.gz
	git clone $(GIT_URL) $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)
	cd $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION) && git submodule init $(GIT_SUBMODULES) && git submodule update $(GIT_SUBMODULES) && git checkout $(GIT_REVISION)
	rm -rf $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)/.git $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)/.gitignore $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)/.gitmodules
	rm -rf $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)/doc/source/.gitignore
	rm -rf $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)/$(GIT_SUBMODULES)/.git $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)/$(GIT_SUBMODULES)/.gitignore
	tar caf $(MODULE_NAME)_$(DEB_UPSTREAM_VERSION).orig.tar.xz $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)
	rm -rf $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)

