#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

export DEB_BUILD_MAINT_OPTIONS = hardening=+all

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)

export DOCDIR       := $(CURDIR)/debian/rdkit-doc/usr/share/doc/rdkit/

export RDBASE       := $(CURDIR)

PY3VERS = $(shell py3versions -v -d)
PY3 = $(shell which python$(PY3VERS))
export DEBTMP := $(CURDIR)/debian/tmp

DH_AUTO_CONFIGURE_OPTS := -DCMAKE_BUILD_TYPE=None -DCMAKE_SKIP_RPATH=ON \
                          -DRDK_INSTALL_INTREE=OFF -DRDK_INSTALL_STATIC_LIBS=OFF \
                          -DRDK_BUILD_THREADSAFE_SSS=ON -DRDK_BUILD_PYTHON_WRAPPERS=ON \
                          -DRDK_BUILD_INCHI_SUPPORT=ON \
                          -DRDK_OPTIMIZE_POPCNT=OFF -DRDK_USE_URF=OFF \
                          -DRDK_INSTALL_COMIC_FONTS=OFF \
                          -DRDK_BUILD_CAIRO_SUPPORT=ON \
                          -DRDK_BUILD_PUBCHEMSHAPE_SUPPORT=OFF \
                          -DBoost_NO_BOOST_CMAKE=TRUE \
                          -DCMAKE_INSTALL_PREFIX=/usr \
                          -DCATCH_DIR=/usr/include/catch2 \
                          -DRDK_BUILD_PGSQL=ON \
                          -DRDK_PGSQL_STATIC=OFF \
                          -DPostgreSQL_CONFIG=/usr/bin/pg_config \
                          -DPostgreSQL_TYPE_INCLUDE_DIR="/usr/include/postgresql/17/server"

include /usr/share/postgresql-common/pgxs_debian_control.mk

%:
	dh $@ --with python3 --buildsystem=cmake

override_dh_auto_clean:
	find $(CURDIR) -name "*.pyc" | xargs rm -f
	$(RM) -r Projects/DbCLI/testData/bzr/ rdkit/Chem/inchi.py
	$(RM) -r Docs/Book/_build Code/docs rdkit/docs Code/doxygen_sqlite3.db
	$(RM) \
	Code/ForceField/MMFF/test_data/MMFF94_dative_min.sdf \
	Code/ForceField/MMFF/test_data/MMFF94_dative_min_from_SMILES.sdf \
	Code/ForceField/MMFF/test_data/MMFF94_hypervalent_min.sdf \
	Code/ForceField/MMFF/test_data/MMFF94_hypervalent_min_from_SMILES.sdf \
	Code/ForceField/MMFF/test_data/MMFF94_reference.log \
	Code/ForceField/MMFF/test_data/MMFF94s_reference.log \
	Code/ForceField/MMFF/test_data/testMMFFForceField.log \
	Code/GraphMol/Depictor/test_data/cis_trans_cpp.out.sdf \
	Code/GraphMol/Depictor/test_data/collisions.out.sdf \
	Code/GraphMol/Depictor/test_data/first_200.out.sdf \
	Code/GraphMol/Depictor/test_data/test1.out.sdf \
	Code/GraphMol/FileParsers/test_data/blah.sdf \
	Code/GraphMol/FileParsers/test_data/cdk2_stereo.sdf \
	Code/GraphMol/FileParsers/test_data/outNCI_few.sdf \
	Code/GraphMol/FileParsers/test_data/outNCI_few.tdt \
	Code/GraphMol/FileParsers/test_data/outNCI_first_200.props.sdf \
	Code/GraphMol/FileParsers/test_data/outSmiles.csv \
	Code/GraphMol/ForceFieldHelpers/UFF/test_data/Issue62.sdf \
	Code/GraphMol/MolAlign/test_data/ref_e2_pyCrippenO3A.sdf \
	Code/GraphMol/SLNParse/lex.yysln.cpp \
	Code/GraphMol/SLNParse/sln.tab.cpp \
	Code/GraphMol/SLNParse/sln.tab.hpp \
	Code/GraphMol/SmilesParse/lex.yysmarts.cpp \
	Code/GraphMol/SmilesParse/lex.yysmiles.cpp \
	Code/GraphMol/SmilesParse/smarts.tab.cpp \
	Code/GraphMol/SmilesParse/smarts.tab.hpp \
	Code/GraphMol/SmilesParse/smiles.tab.cpp \
	Code/GraphMol/SmilesParse/smiles.tab.hpp \
	Code/GraphMol/Wrap/test_data/outNCI_few.sdf \
	Code/GraphMol/Wrap/test_data/outSmiles.txt \
	Code/RDGeneral/versions.cpp \
	Docs/Book/Cartridge.rst \
	Docs/Book/Install.rst \
	Docs/Book/Overview.rst \
	rdkit/ML/Data/test_data/testgeneral.dat.pkl \
	rdkit/ML/Data/test_data/testquant.qdat.pkl
	$(RM) Code/RDGeneral/versions.h rdkit/sping/tests/testallps.ps
	dh_auto_clean
	$(RM) -rf $(CURDIR)/Code/PgSQL/rdkit/build-*

override_dh_auto_configure:
	dh_auto_configure -- $(DH_AUTO_CONFIGURE_OPTS) -DPYTHON_EXECUTABLE=$(PY3) ../
	for v in $$(pg_buildext supported-versions); do \
		(mkdir -p Code/PgSQL/rdkit/build-$$v && cd Code/PgSQL/rdkit/build-$$v && cmake -DPostgreSQL_CONFIG=/usr/lib/postgresql/$$v/bin/pg_config -DRDK_PGSQL_STATIC=OFF -DPostgreSQL_TYPE_INCLUDE_DIR="/usr/include/postgresql/$$v/server" -DCMAKE_VERBOSE_MAKEFILE=1 -DRDKit_CodeDir=../../../Code ../); \
	done

override_dh_auto_build:
	dh_auto_build
	for v in $$(pg_buildext supported-versions); do \
		(cd Code/PgSQL/rdkit/build-$$v && make || $$(cat ../../../../obj-*/Code/PgSQL/rdkit/CMakeFiles/rdkit.dir/link.txt | sed -e 's#\.\./\.\./#../../../../obj-*/Code/#g')); \
	done
	(cd $(CURDIR)/Code; doxygen doxygen/doxygen.config)
	(cd $(CURDIR)/Docs/Book; RDBASE=$(CURDIR) $(MAKE) html)
	(cd $(CURDIR)/Docs/Book; RDBASE=$(CURDIR) $(MAKE) latexpdf)

override_dh_auto_install:
	dh_auto_install

override_dh_install:
	mkdir -p $(DEBTMP)/usr/lib/python3
	mv $(DEBTMP)/usr/lib/python$(PY3VERS)/site-packages $(DEBTMP)/usr/lib/python3/dist-packages
	$(RM) -rf $(DEBTMP)/usr/lib/python$(PY3VERS)
	ln -sf /usr/share/fonts/truetype/freefont/FreeSans.ttf $(DEBTMP)/usr/lib/python3/dist-packages/rdkit/Chem/Draw/FreeSans.ttf
	dh_install -ppython3-rdkit /usr/lib/python3
	$(RM) -rf $(DEBTMP)/usr/lib/python3/dist-packages/rdkit/docs/
	$(RM) -rf $(DEBTMP)/usr/share/RDKit/Projects/__pycache__
	dh_numpy3
	dh_install
	for v in $$(pg_buildext supported-versions); do \
		mkdir -p debian/postgresql-$$v-rdkit/usr/lib/postgresql/$$v/lib/ debian/postgresql-$$v-rdkit/usr/share/postgresql/$$v/extension/; \
		cp Code/PgSQL/rdkit/build-$$v/librdkit.so debian/postgresql-$$v-rdkit/usr/lib/postgresql/$$v/lib/rdkit.so; \
		cp Code/PgSQL/rdkit/build-$$v/rdkit*.sql debian/postgresql-$$v-rdkit/usr/share/postgresql/$$v/extension/; \
		cp Code/PgSQL/rdkit/build-$$v/update_sql/rdkit*.sql debian/postgresql-$$v-rdkit/usr/share/postgresql/$$v/extension/; \
		cp Code/PgSQL/rdkit/rdkit.control debian/postgresql-$$v-rdkit/usr/share/postgresql/$$v/extension/; \
	done
	mkdir -p $(DOCDIR)
	# cp $(CURDIR)/Docs/Book/_build/latex/RDKit.pdf $(DOCDIR)
	cp -a $(CURDIR)/Docs/Book/_build/html $(DOCDIR)
	ln -sf /usr/share/javascript/jquery/jquery.js $(DOCDIR)/html/cppapi/jquery.js
	ln -sf /usr/share/javascript/jquery/jquery.js $(DOCDIR)/html/_static/jquery.js
	ln -sf /usr/share/javascript/underscore/underscore.js $(DOCDIR)/html/_static/underscore.js

override_dh_missing:
	dh_missing --list-missing

override_dh_installchangelogs:
	dh_installchangelogs ReleaseNotes.md

override_dh_python3:
	dh_python3 -ppython3-rdkit
	dh_numpy3 -ppython3-rdkit

ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
override_dh_auto_test:
	cp -r rdkit obj-*/
	find $(CURDIR) -name rdchem.so
	PYTHONPATH=$(wildcard $(CURDIR)/obj-*/):$(wildcard $(CURDIR)/obj-*/)/rdkit/Chem/ LD_LIBRARY_PATH="$(wildcard $(CURDIR)/obj-*/)/lib:$(LD_LIBRARY_PATH)" dh_auto_test
endif