#!/usr/bin/make -f

# DH_VERBOSE := 1

export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed

# CamiTK version
VER_MAJOR=3
VER_MINOR=2
VER_SHORT=$(VER_MAJOR).$(VER_MINOR)

# package aliases (see d/control)
pkg_lib = libcamitk$(VER_MAJOR)
pkg_qpb = libqtpropertybrowser$(VER_MAJOR)
pkg_dev = libcamitk$(VER_MAJOR)-dev
pkg_qpb_dev = libqtpropertybrowser$(VER_MAJOR)-dev
pkg_data = libcamitk$(VER_MAJOR)-data
pkg_doc = libcamitk$(VER_MAJOR)-doc
pkg_imp = camitk-imp
pkg_asm = camitk-actionstatemachine

# dpkg-shlibdeps needs to know about camitk extension directories to manage inner-dependencies
# between extensions (i.e., mml component extension depends on physicalmodel component extensions)
# for component extensions:
LD_LIBRARY_PATH:=$(LD_LIBRARY_PATH):$(CURDIR)/debian/${pkg_lib}/usr/lib/camitk-${VER_SHORT}/components/
# for action extensions: 
LD_LIBRARY_PATH:=$(LD_LIBRARY_PATH):$(CURDIR)/debian/${pkg_lib}/usr/lib/camitk-${VER_SHORT}/actions/
# for private libraries:
LD_LIBRARY_PATH:=$(LD_LIBRARY_PATH):$(CURDIR)/debian/${pkg_lib}/usr/lib/camitk-${VER_SHORT}/

# CMake flags are of two types:
# - generic (to tell cmake to build proper binaries)
# - CamiTK specific options
CMAKE_EXTRA_FLAGS = \
	-DCMAKE_SKIP_RPATH:BOOL=ON \
	-DCMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=OFF \
	-DCMAKE_BUILD_TYPE:STRING=None \
	\
	-DCEP_IMAGING:BOOL=TRUE \
	-DCEP_MODELING:BOOL=TRUE \
	\
	-DAPIDOC_SDK:BOOL=TRUE \
	\
	-DCAMITK_DICOM_INCOMPLETE_SUPPORT:BOOL=ON 

%:
	dh $@

override_dh_auto_configure:
	dh_auto_configure -- $(CMAKE_EXTRA_FLAGS)

# let's be smart with doc
override_dh_auto_build-indep:
	$(MAKE) -C obj-* apidoc
	# remove the javascript search field
	rm -f obj-*/share/camitk-$(VER_SHORT)/apidoc/html/jquery.js

# No tests needed for docs
override_dh_auto_test-indep:

override_dh_install:
	# $(CURDIR) is the current source dir
	# camitk dynamic library
	dh_install -p$(pkg_lib) --autodest debian/tmp/usr/lib/libcamitkcore.so.*
	dh_install -p$(pkg_lib) --autodest debian/tmp/usr/lib/camitk-$(VER_SHORT)/lib*.so.*
	dh_install -p$(pkg_lib) --autodest debian/tmp/usr/lib/camitk-$(VER_SHORT)/actions/lib*.so.*
	dh_install -p$(pkg_lib) --autodest debian/tmp/usr/lib/camitk-$(VER_SHORT)/components/lib*.so.*
	# camitk-config is part of libcamitk
	dh_install -p$(pkg_lib) --autodest debian/tmp/usr/bin/camitk-config
	dh_install -p$(pkg_lib) --autodest debian/tmp/usr/share/pixmaps/camitk-config.xpm
	dh_installman -p$(pkg_lib) debian/tmp/usr/share/man/man1/camitk-config.1  

	# separate tools qtpropertybrowser
	dh_install -p$(pkg_qpb) debian/tmp/usr/lib/libqtpropertybrowser.so.* usr/lib

	# camitk so and headers and static libs + wizard
	dh_install -p$(pkg_dev) debian/tmp/usr/lib/libcamitkcore.so usr/lib 
	dh_install -p$(pkg_dev) --autodest debian/tmp/usr/lib/camitk-$(VER_SHORT)/lib*.so
	dh_install -p$(pkg_dev) --autodest debian/tmp/usr/lib/camitk-$(VER_SHORT)/actions/lib*.so
	dh_install -p$(pkg_dev) --autodest debian/tmp/usr/lib/camitk-$(VER_SHORT)/components/lib*.so
	dh_install -p$(pkg_dev) --autodest debian/tmp/usr/lib/camitk-$(VER_SHORT)/lib*.a
	dh_install -p$(pkg_dev) --autodest debian/tmp/usr/include/camitk-${VER_SHORT}/libraries/camitkcore
	dh_install -p$(pkg_dev) --autodest debian/tmp/usr/include/camitk-${VER_SHORT}/libraries/coreschema
	dh_install -p$(pkg_dev) --autodest debian/tmp/usr/include/camitk-${VER_SHORT}/actions
	dh_install -p$(pkg_dev) --autodest debian/tmp/usr/include/camitk-${VER_SHORT}/components
	dh_install -p$(pkg_dev) --autodest debian/tmp/usr/include/camitk-${VER_SHORT}/libraries/pml
	dh_install -p$(pkg_dev) --autodest debian/tmp/usr/include/camitk-${VER_SHORT}/libraries/lml
	dh_install -p$(pkg_dev) --autodest debian/tmp/usr/include/camitk-${VER_SHORT}/libraries/mml
	dh_install -p$(pkg_dev) --autodest debian/tmp/usr/include/camitk-${VER_SHORT}/libraries/monitoring
	dh_install -p$(pkg_dev) --autodest debian/tmp/usr/include/camitk-${VER_SHORT}/libraries/monitoringgui
	dh_install -p$(pkg_dev) --autodest debian/tmp/usr/share/camitk-$(VER_SHORT)/cmake/*.cmake 
	dh_install -p$(pkg_dev) --autodest debian/tmp/usr/share/camitk-$(VER_SHORT)/cmake/macros/*.cmake 
	dh_install -p$(pkg_dev) --autodest debian/tmp/usr/share/camitk-$(VER_SHORT)/cmake/launcher-templates/*.in
	dh_install -p$(pkg_dev) --autodest debian/tmp/usr/bin/camitk-wizard
	dh_install -p$(pkg_dev) --autodest debian/tmp/usr/share/applications/camitk-wizard.desktop
	dh_install -p$(pkg_dev) --autodest debian/tmp/usr/share/pixmaps/camitk-wizard.xpm
	dh_installman -p$(pkg_dev) debian/tmp/usr/share/man/man1/camitk-wizard.1

        # qtpropertybrowser so and headers (includes are put directly in usr/include as package should be generic/independant from CamiTK)
	dh_install -p$(pkg_qpb_dev) debian/tmp/usr/lib/libqtpropertybrowser.so usr/lib
	dh_install -p$(pkg_qpb_dev) debian/tmp/usr/include/camitk-${VER_SHORT}/libraries/qtpropertybrowser usr/include

	# api doc
	dh_install -p$(pkg_doc) --autodest debian/tmp/usr/share/camitk-$(VER_SHORT)/apidoc

	# all test data
	dh_install -p$(pkg_data) --autodest debian/tmp/usr/share/camitk-$(VER_SHORT)/testdata

	# imp
	dh_install -p$(pkg_imp) --autodest debian/tmp/usr/bin/camitk-imp
	dh_install -p$(pkg_imp) --autodest debian/tmp/usr/share/applications/camitk-imp.desktop
	dh_install -p$(pkg_imp) --autodest debian/tmp/usr/share/pixmaps/camitk-imp.xpm
	dh_installman -p$(pkg_imp) debian/tmp/usr/share/man/man1/camitk-imp.1

	# asm
	dh_install -p$(pkg_asm) --autodest debian/tmp/usr/bin/camitk-actionstatemachine
	dh_install -p$(pkg_asm) --autodest debian/tmp/usr/share/pixmaps/camitk-actionstatemachine.xpm
	dh_installman -p$(pkg_asm) debian/tmp/usr/share/man/man1/camitk-actionstatemachine.1

override_dh_builddeb:
	dh_builddeb -- -Z xz

# see http://lists.debian.org/debian-mentors/2012/07/msg00124.html
get-orig-source:
	mkdir -p ../tarballs
	PERL_LWP_SSL_VERIFY_HOSTNAME=0 uscan --rename --verbose --force-download --destdir=../tarballs
