#!/usr/bin/make -f

include /usr/share/dpkg/architecture.mk

unexport LDFLAGS
export FFLAGS="-fPIC"
export ATLAS=None
export PATH := $(CURDIR)/debian/extra_bin:$(PATH)

PY2VERS:= $(shell pyversions -v -r debian/control)
PY3VERS:= $(shell py3versions -v -r debian/control)
TMPDIR := $(CURDIR)/build/tmp
BASE=$(shell pwd)/debian
PYLIBPATH := $(shell python3 -c "from distutils.command.build import build ; from distutils.core import Distribution ; b = build(Distribution()) ; b.finalize_options() ; print(b.build_platlib)")

ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
  export NPY_NUM_BUILD_JOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
endif

%:
	dh $@ --with python2,python3

clean: override_dh_auto_clean

override_dh_auto_clean:
	rm -rf build
	-rm -rf doc/source/fontList.cache
	-rm -rf doc/build
	-rm -rf debian/extra_bin
	find . -name "*.pyc" -exec rm {} \;
	dh_clean

override_dh_auto_configure:
	rm -f cythonize.dat
	touch scipy/linalg/_generate_pyx.py scipy/special/_generate_pyx.py
	python3 tools/cythonize.py

build-python%:
	python$* setup.py config_fc --noarch build;
	CFLAGS="-g -ggdb" python$*-dbg setup.py config_fc \
				--noarch build;

build: build-arch build-indep

build-arch:
	dh build-arch --with=python2,python3

build-indep: build-arch
	# generate documentation (see comment below) needs compiled scipy
	(export MPLCONFIGDIR=. ; make -C doc html PYTHONPATH=../$(PYLIBPATH) PYVER=3)

override_dh_auto_build: $(PY2VERS:%=build-python%) $(PY3VERS:%=build-python%)

install-python%:
	python$* setup.py install --root $(BASE)/tmp \
		--force --no-compile --install-layout=deb;

	python$*-dbg setup.py install --root $(BASE)/tmp \
		--force --no-compile --install-layout=deb;

override_dh_install-indep: $(PY3VERS:%=install-python%) $(PY2VERS:%=install-python%)
	dh_install

override_dh_install-arch: $(PY3VERS:%=install-python%) $(PY2VERS:%=install-python%)
	dh_install
	find debian/python-scipy -type f -name '*_d.so' -delete
	find debian/python3-scipy -type f -name '*.cpython-3?d*.so' -delete
	find debian/python-scipy-dbg ! -type d ! -name '*_d.so' -delete
	find debian/python3-scipy-dbg ! -type d ! -name '*.cpython-3?d*.so' -delete
	find debian/python-scipy-dbg -depth -empty -exec rmdir {} \;
	find debian/python3-scipy-dbg -depth -empty -exec rmdir {} \;
	rm -f $(BASE)/python-scipy*/usr/lib/python*/*-packages/scipy/LICENSE.txt;
	rm -fr $(BASE)/python-scipy*/usr/lib/python*/*-packages/scipy/weave/examples/

	# drop all the installed setup.py files
	find $(BASE)/ -name setup.py -delete
	find $(BASE)/ -name generate_ufuncs.py -delete

	set -e && for py in $(PY2VERS); do \
	  ln -sf /usr/lib/python$$py/dist-packages/decorator.py $(BASE)/python-scipy/usr/lib/python$$py/dist-packages/scipy/_lib/decorator.py; \
	done
	ln -sf /usr/lib/python3/dist-packages/decorator.py $(BASE)/python3-scipy/usr/lib/python3/dist-packages/scipy/_lib/decorator.py

	# not ported to py3 in 0.10.1
	rm -rf $(BASE)/python3-scipy/usr/lib/python3/dist-packages/scipy/weave

	dh_numpy
	dh_numpy3
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	mkdir -p $(TMPDIR)
	-set -e && for pyvers in $(PY2VERS); do \
	  ADTTMP=$(TMPDIR) \
	  PYTHONPATH=$(BASE)/python-scipy/usr/lib/python$$pyvers/dist-packages/ \
	  PYS=python$$pyvers TESTMODE=fast $(BASE)/tests/python2; \
	done
	-set -e && for pyvers in $(PY3VERS); do \
	  ADTTMP=$(TMPDIR) \
	  PYTHONPATH=$(BASE)/python3-scipy/usr/lib/python3/dist-packages/ \
	  PYS=python$$pyvers TESTMODE=fast $(BASE)/tests/python3; \
	done
endif

override_dh_fixperms-arch:
	dh_fixperms
	set -e; for i in `find debian -mindepth 2 -type f ! -perm 755`; do \
		if head -1 $$i | grep -q '^#!' ; then                      \
	    		chmod +x $$i;                                      \
		fi ;                                                       \
	done
	sed -i '1s|.|#!/usr/bin/python\n&|' $(BASE)/python-scipy/usr/lib/$(shell pyversions -d)/dist-packages/scipy/cluster/tests/test_vq.py
	sed -i '1s|.|#!/usr/bin/python\n&|' $(BASE)/python-scipy/usr/lib/$(shell pyversions -d)/dist-packages/scipy/stats/tests/test_stats.py
	sed -i '1s|.|#!/usr/bin/python3\n&|' $(BASE)/python3-scipy/usr/lib/python3/dist-packages/scipy/cluster/tests/test_vq.py
	sed -i '1s|.|#!/usr/bin/python3\n&|' $(BASE)/python3-scipy/usr/lib/python3/dist-packages/scipy/stats/tests/test_stats.py
	#replace all the usr/bin/env python
	find $(BASE)/python3-scipy/usr/lib/python3/ -name "*.py" -type f | xargs sed -i -e "1s#usr/bin/env\s\+python\s*\$$#usr/bin/env python3#"

override_dh_strip:
	dh_strip -ppython-scipy --dbg-package=python-scipy-dbg
	dh_strip -ppython3-scipy --dbg-package=python3-scipy-dbg

override_dh_installdocs-indep:
	dh_installdocs -i

	rm -rf debian/python-scipy-doc/usr/share/doc/python-scipy-doc/html/_static/jquery.js
	dh_link -ppython-scipy-doc /usr/share/javascript/jquery/jquery.js /usr/share/doc/python-scipy-doc/html/_static/jquery.js

	rm -rf debian/python-scipy-doc/usr/share/doc/python-scipy-doc/html/_static/underscore.js
	dh_link -ppython-scipy-doc /usr/share/javascript/underscore/underscore.js /usr/share/doc/python-scipy-doc/html/_static/underscore.js

	dh_sphinxdoc -i -XMathJax.js
	find debian/python-scipy-doc/ -name scipy-mathjax | xargs rm -rf
	rdfind -outputname /dev/null -makesymlinks true -removeidentinode false debian/python-scipy-doc
	symlinks -r -s -c debian/python-scipy-doc
