#!/usr/bin/make -f
# -*- makefile-gmake -*-

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

export DEB_BUILD_MAINT_OPTIONS = hardening=+all
# We install both libraries as private (no rdeps in Debian).
export DEB_LDFLAGS_MAINT_APPEND := -Wl,-rpath,/usr/lib/relion

DEBVENDOR  := $(shell dpkg-vendor --query Vendor)

ifeq ($(DEBVENDOR), Qlustar)
    # Qlustar specific stuff
    include /usr/share/ql-deb-utils/Makefile
    MPICXX := mpicxx.openmpi-gcc
else
    include /usr/share/dpkg/default.mk
    MPICXX := mpicxx.openmpi
endif

# -DCMAKE_SKIP_RPATH=TRUE is needed to avoid Lintian errors.
CONFIGURE_COMMON := \
  -DBUILD_SHARED_LIBS=ON \
  -DPYTHON_EXE_PATH=/usr/bin/python3 \
  -DCMAKE_SKIP_RPATH=TRUE

%:
	dh $@

override_dh_auto_configure:
	dh_auto_configure -- $(CONFIGURE_COMMON) -DGUI=ON -DCUDA=OFF

override_dh_auto_install:
	dh_auto_install --destdir=debian/tmp/cli
	mkdir -p $(CURDIR)/debian/tmp/gui/usr/bin
	rm $(CURDIR)/debian/tmp/cli/usr/bin/*.csh # Useless ...
	set -e; for prog in relion relion_display relion_manualpick; do \
	  mv $(CURDIR)/debian/tmp/cli/usr/bin/$$prog \
	    $(CURDIR)/debian/tmp/gui/usr/bin; done
# Imports Python module "starfile" which is not in Debian.
	rm $(CURDIR)/debian/tmp/cli/usr/bin/relion_filament_selection
	rm $(CURDIR)/debian/tmp/cli/usr/bin/relion_trace_amyloids.py
# Bash wrappers for RELION Python modules; not packaged.
	rm $(CURDIR)/debian/tmp/cli/usr/bin/relion_python_*
# Rename scripts to avoid lintian W: script-with-language-extension.
	mv $(CURDIR)/debian/tmp/cli/usr/bin/relion_it.py \
	  $(CURDIR)/debian/tmp/gui/usr/bin/relion_it
# relion_schemegui is installed without a .py suffix since upstream 5.1.0.
	mv $(CURDIR)/debian/tmp/cli/usr/bin/relion_schemegui \
	  $(CURDIR)/debian/tmp/gui/usr/bin/relion_schemegui
# Move the GUI library to the -gui package.
	mkdir -p $(CURDIR)/debian/tmp/gui/usr/lib/relion
	mv $(CURDIR)/debian/tmp/cli/usr/lib/relion/librelion_gui_lib.so \
	  $(CURDIR)/debian/tmp/gui/usr/lib/relion

override_dh_python3:
# For some reason, dh_python3 treats the library as a Python extension.
	dh_python3 --no-ext-rename

override_dh_shlibdeps:
# Silence some of the warnings from dpkg-shlibdeps which stem from the
# fact that the upstream build system is not satisfactory: it creates
# unversioned libraries so the complaints are correct.  relion-gui
# depends on relion (= ${binary:Version}), so there's no problem.
	dh_shlibdeps -lusr/lib/relion -Lrelion
