#!/usr/bin/make -f

.PHONY: override_dh_clean override_dh_auto_configure override_dh_auto_build override_dh_install override_dh_strip override_dh_installchangelogs override_dh_builddeb

LDFLAGS += -Wl,-z,defs -Wl,--as-needed

# uncomment line to turn verbose mode on
#export V=1


%:
	dh $@ --parallel

override_dh_clean:
	[ ! -f build-config ] || ./drake clean:dist

	dh_clean config.status config.log \
	rake.d/dependecy.d/*.rb src/input/*.d config.h build-config

ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	rm -rf lib/gtest
endif

override_dh_auto_configure:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	mkdir -p lib/gtest
	cp -R /usr/include/gtest lib/gtest/
	mv lib/gtest/gtest lib/gtest/include
	cp -R /usr/src/gtest/src lib/gtest/
endif

<% if (distro == 'debian') and (version >= Gem::Version.new('11')) and (version < Gem::Version.new('12')) %>
# gcc 10 in Debian 11 Bullseye contains a bug that causes an
# "internal compiler error" segfault. Workaround: compile with
# clang.

# Additionally the version of the fmt library in Debian 11 on at least
# armhf has a bug with a simple format such as fmt::format("{}",
# fmt::join(range, separator)). Therefore build with the internal
# copy.
	dh_auto_configure -- CC=/usr/bin/clang CXX=/usr/bin/clang++ \
	  --docdir='$${datarootdir}/doc/mkvtoolnix-gui' \
	  --enable-debug --enable-optimization
	perl -pi -e 's/FMT_INTERNAL *=.*/FMT_INTERNAL = yes/' build-config
<% else %>
	dh_auto_configure -- --docdir='$${datarootdir}/doc/mkvtoolnix-gui' \
	  --enable-debug --enable-optimization
<% end %>

override_dh_auto_build:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	LC_ALL=C ./drake tests:run_unit
endif

	./drake

override_dh_install:
	./drake install DESTDIR=$(CURDIR)/debian/tmp
	install -m 755 -t $(CURDIR)/debian/tmp/usr/bin $(patsubst %,src/tools/%,bluray_dump ebml_validator hevcc_dump xyzvc_dump)

	dh_install -Xorg.bunkus.mkvtoolnix-gui.xml
	dh_missing --fail-missing -Xorg.bunkus.mkvtoolnix-gui.xml

override_dh_strip:
	dh_strip -pmkvtoolnix     --dbg-package=mkvtoolnix-dbg
	dh_strip -pmkvtoolnix-gui --dbg-package=mkvtoolnix-gui-dbg

override_dh_installchangelogs:
	dh_installchangelogs NEWS.md

override_dh_builddeb:
	case $(shell uname -m) in \
		i*86) dh_builddeb -- -Zxz     ;; \
		*)    dh_builddeb -- -Zxz -z9 ;; \
	esac
