#!/usr/bin/make -f
# -*- makefile-gmake -*-
# Uncomment this to turn on verbose mode.
export DH_VERBOSE=1
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk

SOVERSION=1.5
BALL_INSTALL_PATH=build
#PYTHON_VERSION=$(shell py3versions -d)
#PYTHON_SITE_PATH=/lib/python3/dist-packages

export DEB_BUILD_MAINT_OPTIONS = hardening=+all

# Needed for a reproducible tutorial.pdf.
export FORCE_SOURCE_DATE := 1

common_targets := BALL VIEW BALLView

%:
	dh $@ --buildsystem=cmake --builddirectory=build

override_dh_auto_configure:
# The plugins are not installed so there is no sense to build them.
# TODO: The -DCMAKE_BUILD_RPATH_USE_ORIGIN=ON option is passed by
# default in dh compat 14, so remove it when upgrading.
	dh_auto_configure -- -DCMAKE_INSTALL_PREFIX=./usr \
	  -DCMAKE_BUILD_RPATH_USE_ORIGIN=ON \
	  -DBALL_PATH=/usr \
	  -DBALL_DATA_PATH=/usr/share/BALL-$(SOVERSION)/data \
	  -DBALL_PYTHON_SUPPORT=OFF \
	  -DBALL_BUILD_BALLAXY=OFF \
	  -DUSE_PRESENTABALL_PLUGIN=OFF

#		    -DSIP_LIBRARIES=/usr/lib/python3/dist-packages \

# Set BALL_DATA_PATH so that test scripts find it
export BALL_DATA_PATH=$(CURDIR)/data
# Make sure HOME exists (for Directory_test)
export HOME=/tmp

# The testsuite issues several failures
# Run it, but ignore the return code for now.
override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	dh_auto_test --no-parallel -- || true
endif

# Different tests are failing in different runs

#The following tests FAILED:
#         86 - Composite_test4 (Failed)
#         87 - Composite_test5 (Failed)
#Errors while running CTest

#The following tests FAILED:
#        112 - Fragment_test (Failed)
#        113 - Chain_test (Failed)
#Errors while running CTest


override_dh_auto_build-arch:
	## Fix upstream issue of missing UI files
#	uic-qt4 source/VIEW/DIALOGS/assignBondOrderConfigurationDialog.ui > include/BALL/VIEW/UIC/ui_assignBondOrderConfigurationDialog.h
#	uic-qt4 source/VIEW/DIALOGS/assignBondOrderResultsDialog.ui       > include/BALL/VIEW/UIC/ui_assignBondOrderResultsDialog.h
#	uic-qt4 source/VIEW/DIALOGS/atomOverview.ui                       > include/BALL/VIEW/UIC/ui_atomOverview.h
	## ...
	## Uhmmm, seems we need to do this for all UI files mentioned in
	##   source/VIEW/DIALOGS/sources.cmake
	## but I really hope some cmake expert might be able to find a clue
	## how to trigger cmake to do it as intended by upstream.
	## Somehow the code
	##   ADD_BALL_UIFILES("VIEW/DIALOGS" "${UI_LIST}")
	## needs to be called before the build code below can be started
	dh_auto_build -- $(common_targets) install
# Don't build the tests if they are not going to be run.
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	dh_auto_build -- build_tests
endif

override_dh_auto_build-indep:
	dh_auto_build -- $(common_targets) doc doc_tutorial install

override_dh_auto_clean:
	[ -d source ] && cd source ; \
	if [ -f Makefile ] ; \
	then  \
		make clean ; \
		cd PYTHON/EXTENSIONS; \
		make clean; \
		rm -rf ../lib/Linux*; \
		rm -rf ../doc/doxygen/latex/*; \
		rm -f $(CURDIR)/source/config.status 2>/dev/null; \
	fi
	rm -f data/BALLView/translations/BALLView.de_DE.qm
	rm -f data/BALLView/translations/BALLView.zh_TW.qm
	rm -f doc/TUTORIAL/*.aux
	rm -rf $(BALL_INSTALL_PATH)
	find . -name "*.o" | xargs -r rm
	find . -type l | xargs -r rm
	find doc/TUTORIAL/ -name "tutorial.*" | egrep -v ".(tex|bib)$$" |xargs -r rm
	rm -f include/BALL/BALL.doc
	# find . -name "*.doc" -delete
	# Remove self-create UI header file
	rm -f include/BALL/VIEW/UIC/ui_assignBondOrderConfigurationDialog.h \
	      include/BALL/VIEW/UIC/ui_assignBondOrderResultsDialog.h \
	      include/BALL/VIEW/UIC/ui_atomOverview.h


override_dh_auto_install-arch:
	mkdir -p debian/libball$(SOVERSION)/usr/lib/$(DEB_HOST_MULTIARCH) \
		debian/libball$(SOVERSION)-data/usr/share/BALL-$(SOVERSION) \
		debian/libballview$(SOVERSION)/usr/lib/$(DEB_HOST_MULTIARCH) \
                debian/ballview/usr/lib/ballview/

	mkdir -p debian/ballview/usr/share/BALL-$(SOVERSION)/data/graphics

	cp -r $(BALL_INSTALL_PATH)/usr/share/BALL/BALLView/*	debian/ballview/usr/share/doc/ballview/
	cp    $(BALL_INSTALL_PATH)/usr/bin/BALLView		debian/ballview/usr/lib/ballview/
	cp -a debian/bin/*					debian/ballview/usr/bin

	find $(BALL_INSTALL_PATH)/usr/lib/ -name libBALL*.so.* | xargs -r cp --target-directory debian/libball$(SOVERSION)/usr/lib/$(DEB_HOST_MULTIARCH)
	find $(BALL_INSTALL_PATH)/usr/lib/ -name libVIEW*.so.* | xargs -r cp --target-directory debian/libballview$(SOVERSION)/usr/lib/$(DEB_HOST_MULTIARCH)

	# debian needs the logo in the ballview - package, not in the libball
	cp $(BALL_INSTALL_PATH)/usr/share/BALL/graphics/ballview*.xpm debian/ballview/usr/share/pixmaps/

#	cp -r $(BALL_INSTALL_PATH)/usr/share/doc/BALL/EXAMPLES/PYTHON	debian/python3-ball/usr/share/BALL-$(SOVERSION)
#	cp -a source/PYTHON/EXTENSIONS/*       debian/python3-ball/usr/$(PYTHON_SITE_PATH)
#	cp $(BALL_INSTALL_PATH)/usr/lib/BALLCore.so   debian/python-ball/usr/$(PYTHON_SITE_PATH)

	# -dev packages are arch dependent
	mkdir -p debian/libball$(SOVERSION)-dev/usr/lib/$(DEB_HOST_MULTIARCH) \
		debian/libballview$(SOVERSION)-dev/usr/include/BALL \
		debian/libballview$(SOVERSION)-dev/usr/lib/$(DEB_HOST_MULTIARCH) \
		debian/libball$(SOVERSION)-dev/usr/include
	# move the cmake configuration files to their final location
	cp -R $(BALL_INSTALL_PATH)/usr/lib/$(DEB_HOST_MULTIARCH)/cmake/ debian/libball$(SOVERSION)-dev/usr/lib/$(DEB_HOST_MULTIARCH)

	cp -r $(BALL_INSTALL_PATH)/usr/include/BALL       debian/libball$(SOVERSION)-dev/usr/include
	cp -r $(BALL_INSTALL_PATH)/usr/include/BALL/VIEW  debian/libballview$(SOVERSION)-dev/usr/include/BALL
	cp -P $(BALL_INSTALL_PATH)/usr/lib/$(DEB_HOST_MULTIARCH)/libBALL.so debian/libball$(SOVERSION)-dev/usr/lib/$(DEB_HOST_MULTIARCH)
	cp -P $(BALL_INSTALL_PATH)/usr/lib/$(DEB_HOST_MULTIARCH)/libVIEW.so debian/libballview$(SOVERSION)-dev/usr/lib/$(DEB_HOST_MULTIARCH)

	# get rid of the VIEW includes in libball-dev
	rm -rf debian/libball$(SOVERSION)-dev/usr/include/BALL/VIEW

override_dh_auto_install-indep:
	mkdir -p debian/libball$(SOVERSION)-doc/usr/share/doc/libball$(SOVERSION)/html \
		debian/libball$(SOVERSION)-data/usr/share/BALL-$(SOVERSION)/doc \
		debian/libball$(SOVERSION)-doc/usr/share/doc/libball$(SOVERSION)/html/BALL

	cp    $(BALL_INSTALL_PATH)/usr/share/doc/BALL/TUTORIAL/tutorial.pdf	debian/libball$(SOVERSION)-doc/usr/share/doc/libball$(SOVERSION)/
#	cp -r $(BALL_INSTALL_PATH)/usr/share/BALL/doc/classes			debian/libball$(SOVERSION)-data/usr/share/BALL-$(SOVERSION)/doc
#	cp -r $(BALL_INSTALL_PATH)/usr/share/BALL/doc/internal			debian/libball$(SOVERSION)-data/usr/share/BALL-$(SOVERSION)/doc
	# we need the BALLView documentation in the data path as well... sorry for that
	cp -r $(BALL_INSTALL_PATH)/usr/share/doc/BALL/EXAMPLES/PYTHON/BALLView	debian/libball$(SOVERSION)-data/usr/share/BALL-$(SOVERSION)/doc
	cp -r $(BALL_INSTALL_PATH)/usr/share/doc/BALL/html/*			debian/libball$(SOVERSION)-doc/usr/share/doc/libball$(SOVERSION)/html/BALL

	cp -r $(BALL_INSTALL_PATH)/usr/share/BALL/*    debian/libball$(SOVERSION)-data/usr/share/BALL-$(SOVERSION)

# Fix lintian W: national-encoding.
	iconv -f ISO-8859-1 -t UTF-8 < data/structures/test.btf \
	  > debian/libball$(SOVERSION)-data/usr/share/BALL-$(SOVERSION)/structures/test.btf
	iconv -f ISO-8859-1 -t UTF-8 < data/gui-test/tutorial.btf \
	  > debian/libball$(SOVERSION)-data/usr/share/BALL-$(SOVERSION)/gui-test/tutorial.btf
	iconv -f ISO-8859-1 -t UTF-8 < data/gui-test/selection.btf \
	  > debian/libball$(SOVERSION)-data/usr/share/BALL-$(SOVERSION)/gui-test/selection.btf

override_dh_installdocs-indep:
	dh_installdocs -i
	find debian/*/usr/share -type d -empty -delete
	find debian/*/usr/share -name jquery.js -delete
	find debian/*/usr/share -name license.txt -delete
	mv debian/libball1.5-data/usr/share/BALL-1.5/BALLView/html debian/libball1.5-data/usr/share/doc/libball1.5-data/BALLView
	dh_link -p libball1.5-data usr/share/doc/libball1.5-data/BALLView usr/share/BALL-1.5/BALLView/html
	mv debian/libball1.5-data/usr/share/BALL-1.5/PresentaBALL debian/libball1.5-data/usr/share/doc/libball1.5-data
	dh_link -p libball1.5-data usr/share/doc/libball1.5-data/PresentaBALL usr/share/BALL-1.5/PresentaBALL

#override_dh_install:
#	dh_install
#	dh_sip3
#	if [ -d debian/python3-ball ] ; then \
#	    find debian/python3-ball/usr/lib/python*/dist-packages/ -name BALLPyMacros.h -delete ; \
#	    find debian/python3-ball -name CMakeLists.txt -delete ; \
#	fi
