#!/usr/bin/make -f

include /usr/share/dpkg/architecture.mk
include /usr/share/dpkg/buildtools.mk

DEB_BUILD_PARALLEL ?= $(shell guess_concurrency --require-mem 16G)
export PYBUILD_TEST_ARGS=-n $(DEB_BUILD_PARALLEL)

PYVERS=$(shell py3versions -vs)
PERL_ARCHLIB := $(shell perl -MConfig -e 'print $$Config{vendorarch}')

export CPPFLAGS     := $(shell dpkg-buildflags --get CPPFLAGS)
export CFLAGS       := $(shell dpkg-buildflags --get CFLAGS) $(CPPFLAGS)
export CXXFLAGS     := $(shell dpkg-buildflags --get CXXFLAGS) $(CPPFLAGS)
export LDFLAGS      := $(shell dpkg-buildflags --get LDFLAGS)

DH_AUTO_CONFIGURE_OPTS := -DCMAKE_BUILD_TYPE=None \
                          -DLIB_SUFFIX=/$(DEB_HOST_MULTIARCH) \
                          -DPYTHON_BINDINGS=ON -DPYTHON_EXECUTABLE=/usr/bin/python3 \
                          -DPYTHON_INSTDIR=/usr/lib/python3/dist-packages \
                          -DPERL_BINDINGS=ON \
                          -DOBPERL_INSTALLDIRS=vendor \
                          -DRUN_SWIG=ON \
                          -DCMAKE_SKIP_RPATH=ON -DBUILD_GUI=ON \
                          -DENABLE_OPENMP=ON -DBUILD_DOCS=ON \
                          -DOPENBABEL_USE_SYSTEM_INCHI=ON \
                          -DCMAKE_POLICY_VERSION_MINIMUM=3.5
ifneq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
DH_AUTO_CONFIGURE_OPTS += -DENABLE_TESTS=OFF
endif

%:
	dh $@ --with=python3 --builddirectory=$(CURDIR)/builddir --max-parallel=$(DEB_BUILD_PARALLEL)

override_dh_auto_configure:
	dh_auto_configure -- $(DH_AUTO_CONFIGURE_OPTS)

override_dh_auto_build:
	dh_auto_build
	make -C $(CURDIR)/builddir docs
	mkdir -p $(CURDIR)/builddir/scripts
	for pyversion in $(PYVERS); do \
		pyinclude=$$(python$$pyversion -c "import sysconfig; print(sysconfig.get_path('include'))"); \
		extsuffix=$$(python$$pyversion -c "import sysconfig; print(sysconfig.get_config_var('EXT_SUFFIX'))"); \
		$(CXX) $(CXXFLAGS) $(CPPFLAGS) -fPIC -shared \
			-I$(CURDIR)/include -I$(CURDIR)/builddir/include -I/usr/include/eigen3 -I$$pyinclude \
			-Wno-deprecated-declarations \
			$(CURDIR)/scripts/python/openbabel/openbabel-python.cpp \
			-o $(CURDIR)/builddir/scripts/_openbabel$$extsuffix \
			$(LDFLAGS) -L$(CURDIR)/builddir/lib/$(DEB_HOST_MULTIARCH) -L$(CURDIR)/builddir/lib -lopenbabel; \
	done

override_dh_auto_install:
	dh_auto_install
	rm -f $(CURDIR)/debian/tmp/usr/lib/python3/dist-packages/openbabel/_openbabel.so
	for pyversion in $(PYVERS); do \
		extsuffix=$$(python$$pyversion -c "import sysconfig; print(sysconfig.get_config_var('EXT_SUFFIX'))"); \
		install -m 0644 $(CURDIR)/builddir/scripts/_openbabel$$extsuffix \
			$(CURDIR)/debian/tmp/usr/lib/python3/dist-packages/openbabel/; \
	done
	mkdir --parents $(CURDIR)/debian/tmp/$(PERL_ARCHLIB)
	mv debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/auto debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/Chemistry \
		$(CURDIR)/debian/tmp/$(PERL_ARCHLIB)

override_dh_installexamples:
	dh_installexamples -X.pyc

override_dh_installdocs:
	dh_installdocs -X.js

override_dh_compress:
	dh_compress -Xusr/share/doc/libopenbabel-dev/html \
	            -Xusr/share/doc/python3-openbabel/examples

override_dh_auto_test:
	-BABEL_LIBDIR=$(CURDIR)/builddir/lib/$(DEB_HOST_MULTIARCH) \
	LD_LIBRARY_PATH=$(CURDIR)/builddir/lib/$(DEB_HOST_MULTIARCH) \
	OMP_NUM_THREADS=1 \
	dh_auto_test --max-parallel=$(DEB_BUILD_PARALLEL)

override_dh_strip:
	dh_strip --dbgsym-migration='openbabel-dbg (<< 3.0.0+dfsg)'
