#!/usr/bin/make -f

debian/control:: debian/control.in
DEB_PHONY_RULES += debian/control.in
debian/control.in::
	sed -e 's/__LIBPKGNAME__/$(libpkg)/g' <debian/control.in.in >debian/control.in

DEB_AUTO_UPDATE_LIBTOOL = pre
DEB_AUTO_UPDATE_AUTOCONF = 2.69
DEB_AUTO_UPDATE_AUTOHEADER = 2.69
DEB_AUTO_UPDATE_ACLOCAL = ,
DEB_AUTO_UPDATE_AUTOMAKE = ,

include /usr/share/pkg-kde-tools/makefiles/1/cdbs/symbolshelper.mk
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/autotools.mk
include /usr/share/cdbs/1/rules/utils.mk

# resolve experimental release
EXP_RELEASE := $(filter experimental% UNRELEASED,\
 $(shell dpkg-parsechangelog | grep -Po '^Distribution: \K.*'))

# relax symbols check when targeting experimental
$(if $(EXP_RELEASE),export DPKG_GENSYMBOLS_CHECK_LEVEL=0)

stem = zim
major = 0
lib = lib$(stem)
libpkg = lib$(stem)$(major)v5
devpkg = lib$(stem)-dev

# Build-depend unversioned on debhelper
#  TODO: Drop when adopted in cdbs
CDBS_BUILD_DEPENDS_rules_debhelper_v9 = debhelper

# Needed by upstream build
CDBS_BUILD_DEPENDS +=, liblzma-dev, libcxxtools-dev, pkg-kde-tools

# Multiarch quirks (see also d-shlibs use of the variable further down)
CDBS_PREDEPENDS_$(libpkg) = $(if $(DEB_HOST_MULTIARCH),multiarch-support)
DEB_CONFIGURE_EXTRA_FLAGS += --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH)

# Run unit tests shipped by upstream
DEB_CONFIGURE_EXTRA_FLAGS += --enable-unittest
DEB_MAKE_CHECK_TARGET = test

# Install and resolve build-dependencies for shared libraries
#  * recent d-shlibs needed for v5 option
CDBS_BUILD_DEPENDS +=, d-shlibs (>= 0.61)
binary-post-install/$(libpkg) binary-post-install/$(devpkg):: debian/stamp-local-shlibs-$(lib)
debian/stamp-local-shlibs-$(lib): binary-install/$(libpkg) binary-install/$(devpkg)
	d-shlibmove --commit \
		--v5 \
		--devunversioned \
		--multiarch \
		--exclude-la \
		--override s/$(lib)$(major)-dev/$(lib)-dev/ \
		--override s/liblzma5-dev/liblzma-dev/ \
		--movedev "debian/tmp/usr/include/*" usr/include/ \
		debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/$(lib).so
	touch $@
clean::
	rm -f debian/stamp-local-shlibs-$(lib)

# put aside upstream-shipped autotools files during build
makefiledirs = . examples include src src/tools test
macros_libtool = libtool ltoptions ltsugar ltversion lt~obsolete
macros_autoconf = ax_check_compile_flag ax_compiler_vendor
DEB_UPSTREAM_CRUFT_MOVE = aclocal.m4 ltmain.sh configure
DEB_UPSTREAM_CRUFT_MOVE += compile install-sh missing src/config.h.in
DEB_UPSTREAM_CRUFT_MOVE += depcomp $(patsubst %,%/Makefile.in,$(makefiledirs))
DEB_UPSTREAM_CRUFT_MOVE += $(patsubst %,m4/%.m4,$(macros_libtool) $(macros_autotools))

# (re)create autotools files
DEB_ACLOCAL_ARGS = -Im4 --install --force
DEB_AUTOMAKE_ARGS = --add-missing --copy --foreign --force
DEB_MAKE_CLEAN_TARGET = distclean
