#!/usr/bin/make -f

include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/cmake.mk
include /usr/share/cdbs/1/rules/utils.mk

DEB_COMPRESS_EXCLUDE_ALL := .py .cpp .h .pdf
DEB_INSTALL_DOCS_ALL += AUTHORS README TODO

# Allow test programs that uses OpenMPI to run
export OMPI_MCA_plm_rsh_agent=/bin/false

# Disable MPI on lam architectures
ifeq ($(DEB_BUILD_ARCH), armel)
ENABLE_MPI=OFF
else ifeq ($(DEB_BUILD_ARCH), mips)
ENABLE_MPI=OFF
else ifeq ($(DEB_BUILD_ARCH), mipsel)
ENABLE_MPI=OFF
else ifeq ($(DEB_BUILD_ARCH), s390)
ENABLE_MPI=OFF
else ifeq ($(DEB_BUILD_ARCH), sparc)
ENABLE_MPI=OFF
else
ENABLE_MPI=ON
endif

DEFAULT_PY_VERSION = $(shell pyversions --default)

DEB_CMAKE_EXTRA_FLAGS= \
	-D BUILD_SHARED_LIBS:BOOL=ON \
	-D CMAKE_SKIP_RPATH:BOOL=ON \
	-D CMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=OFF \
	-D DOLFIN_ENABLE_TRILINOS:BOOL=OFF \
	-D DOLFIN_ENABLE_CGAL:BOOL=ON \
	-D DOLFIN_ENABLE_MTL4:BOOL=OFF \
	-D DOLFIN_ENABLE_PARMETIS:BOOL=OFF \
	-D DOLFIN_ENABLE_UNIT_TESTS:BOOL=OFF \
	-D SWIG_EXECUTABLE:FILEPATH=/usr/bin/swig2.0 \
        -D DOLFIN_ENABLE_MPI:BOOL=$(ENABLE_MPI) \
	-D PETSC_DIR:PATH=/usr/lib/petscdir/3.2 \
	-D SLEPC_DIR:PATH=/usr/lib/slepcdir/3.2 \
	-D PYTHON_EXECUTABLE:FILEPATH=/usr/bin/$(DEFAULT_PY_VERSION) \
	-D PYTHON_LIBRARY:FILEPATH=/usr/lib/lib$(DEFAULT_PY_VERSION).so \
	-D PYTHON_INCLUDE_DIR:PATH=/usr/include/$(DEFAULT_PY_VERSION) \
	..

USCAN_DESTDIR := $(CURDIR)

PY_VERSIONS = $(shell pyversions --requested debian/control | tac -s' ')

install-stamp-%:
	cd $(DEB_BUILDDIR) && rm CMakeCache.txt && \
	  cmake $(DEB_CMAKE_NORMAL_ARGS) $(DEB_CMAKE_EXTRA_FLAGS) \
	    -D PYTHON_EXECUTABLE:FILEPATH=/usr/bin/$* \
	    -D PYTHON_LIBRARY:FILEPATH=/usr/lib/lib$*.so \
	    -D PYTHON_INCLUDE_DIR:PATH=/usr/include/$* \
	    ..
	make -C $(DEB_BUILDDIR) install DESTDIR=$(CURDIR)/debian/tmp
	touch $@

install/python-dolfin:: $(addprefix install-stamp-, $(PY_VERSIONS))

binary-predeb/python-dolfin::
	# We have a tight dependency on swig2.0 - #675207
	set -e; \
	swig_version=$$(dpkg-query -W swig2.0 | cut -f 2 | cut -d- -f 1); \
	next_swig_version="$${swig_version%.*}.$$(($${swig_version##*.} + 1))"; \
	echo "swig:Depends=swig2.0 (>= $$swig_version), swig2.0 (<< $$next_swig_version~)" >> debian/python-dolfin.substvars

binary-install/python-dolfin::
	dh_python2 -p$(cdbs_curpkg)
	dh_numpy -p$(cdbs_curpkg)

binary-install/dolfin-bin::
	dh_python2 -p$(cdbs_curpkg)

clean::
	-rm -rf $(addprefix install-stamp-, $(PY_VERSIONS))

get-orig-source:
	uscan --force-download --verbose --destdir $(USCAN_DESTDIR) \
	 --download-version $(DEB_UPSTREAM_VERSION) \
	 --upstream-version $(DEB_UPSTREAM_VERSION)
