#!/usr/bin/make -f

# Let's try to cut down noisy symbols to the official API
export DEB_CFLAGS_MAINT_APPEND = -fvisibility=hidden
export DEB_CXXFLAGS_MAINT_APPEND = -fvisibility=hidden

-include /usr/share/cdbs/1/rules/upstream-tarball.mk
-include /usr/share/cdbs/1/rules/utils.mk
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/makefile.mk

# suppress optional build-dependencies
CDBS_BUILD_DEPENDS_rules_upstream-tarball =
CDBS_BUILD_DEPENDS_rules_utils_copyright-check =

# Explicitly require these versions until cdbs knows about multiarch
CDBS_BUILD_DEPENDS += , cdbs (>= 0.4.93~),\
						debhelper (>= 8.1.3)
CDBS_BUILD_DEPENDS_rules_debhelper_buildinfo =

# Set tag to full 40 char git tag for git snapshot release
tag = $(DEB_UPSTREAM_TARBALL_VERSION)
DEB_UPSTREAM_URL = https://github.com/jackaudio/jack2/archive
DEB_UPSTREAM_TARBALL_BASENAME = $(tag)
DEB_UPSTREAM_TARBALL_SRCDIR = jack2-$(tag)

# unneeded and possibly sourceless binaries
DEB_UPSTREAM_REPACKAGE_EXCLUDES += *.a *.dll *.Lib

# unneeded sources copyright-protected without licence
DEB_UPSTREAM_REPACKAGE_EXCLUDES += ./windows/**.rc

# pure garbage in upstream tarball
DEB_UPSTREAM_REPACKAGE_EXCLUDES += .DS_Store

# sources not in prefered form of modification
DEB_UPSTREAM_REPACKAGE_EXCLUDES += ./waf

# Minimum assured version referenced upstream as library API/ABI
ABI = 0.118.0

waf-configure-options = --prefix=/usr --classic
waf-configure-options += --libdir=/usr/lib/$(DEB_HOST_MULTIARCH)
waf-configure-options += $(if $(filter linux,$(DEB_HOST_ARCH_OS)),--alsa --dbus)
waf-configure-options += $(if $(filter amd64 i386 powerpc,$(DEB_HOST_ARCH)),--firewire)

DEB_MAKE_INVOKE = $(DEB_MAKE_EXTRA_ARGS) ./waf-light -v --destdir=$(CURDIR)/debian/tmp
DEB_MAKE_INSTALL_TARGET = install

# TODO: use distclean and drop related clean target, when (or if)
# upstream stop shipping waf dir
DEB_MAKE_CLEAN_TARGET = clean
clean::
	rm -f .lock-wscript .lock-waf_linux2_build
	find waflib -name "*.pyc" -delete || true
	rm -f man/*.1
	rm -rf build

DEB_DH_MAKESHLIBS_ARGS = -Xintime -Xinprocess -Xjack_alsa -Xjack_oss -Xjack_dummy -Xjack_firewire

# too noisy symbols, so only watch disappearing ones for now
DEB_DH_MAKESHLIBS_ARGS += -- -c1

# Generate (and cleanup) files containing variables static per build
infiles = $(filter-out debian/control.in, $(wildcard debian/*.in))
outfiles = $(basename $(infiles))
DEB_PHONY_RULES += $(outfiles)
pre-build:: $(outfiles)
$(outfiles): update-config debian/stamp-copyright-check
	sed 's/__ABI__/$(ABI)/' <$@.in >$@
clean::
	rm -f $(outfiles)

common-configure-arch common-configure-indep:: common-configure-impl
common-configure-impl:: debian/stamp-waf-configure
debian/stamp-waf-configure:
	chmod +x ./waf-light
	$(DEB_MAKE_EXTRA_ARGS) ./waf-light configure $(waf-configure-options)
	touch $@
clean::
	rm -f debian/stamp-waf-configure

install/jackd2::
ifeq ($(DEB_HOST_ARCH_OS),linux)
	dh_install -pjackd2 debian/tmp/usr/bin/alsa_in
	dh_install -pjackd2 debian/tmp/usr/bin/alsa_out
	dh_install -pjackd2 debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/jack/jack_alsa.so
	dh_install -pjackd2 debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/jack/jack_alsarawmidi.so
	dh_install -pjackd2 debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/jack/audioadapter.so
	dh_install -pjackd2 debian/tmp/usr/share/dbus-1/*
endif	

binary-install/jackd2::
	dh_python2 -pjackd2

# TODO: drop libstdc++6 override when bug#374049 closed in stable
binary-post-install/libjack0::
	d-devlibdeps \
		--override s/libjackserver0-dev// \
		--override s/libffado2-dev/libffado-dev/ \
		--override s/libcelt0-0-dev/libcelt-dev/ \
		--override s/libstdc++6-4.1-dev// \
		debian/libjack-dev.substvars \
		debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/*.so \
		debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/jack/*.so

#common-binary-post-install-arch::
#        ln -s jackdmp debian/jackdmp/usr/bin/jackd
