#!/usr/bin/make -f

# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk

ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
	NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
	MAKE_FLAGS += $(if $(NUMJOBS),-j$(NUMJOBS))
endif

# main packaging script based on dh7 syntax
%:
	dh $@ --parallel --with quilt --builddirectory=build/

override_dh_clean:
	dh_clean
	rm -rf __pycache__ \
		scripts/__pycache__ \
		external/glslang/build \
		demos/smoke/HelpersDispatchTable.*

build_glslang:
	mkdir -p external/glslang/build \
		external/spirv-tools/build
	cd external/glslang/build && \
	(cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON ..; make $(MAKE_FLAGS))

override_dh_auto_configure: build_glslang
	dh_auto_configure -- \
	-DCMAKE_BUILD_TYPE=Release \
	-DCMAKE_INSTALL_LIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH) \
	-DSPIRV_TOOLS_INCLUDE_DIR=../external/glslang/External/spirv-tools/include \
	-DGLSLANG_VALIDATOR=../external/glslang/build/StandAlone/glslangValidator \
	-DBUILD_TESTS=OFF \
	-DBUILD_VKJSON=OFF \
	-DBUILD_WSI_MIR_SUPPORT=OFF

override_dh_auto_install:
	dh_auto_install --destdir=debian/tmp

	mkdir -p debian/tmp/usr/include
	cp -rp include/vulkan debian/tmp/usr/include

	mkdir -p debian/tmp/usr/share/vulkan/explicit_layer.d
	mkdir -p debian/tmp/usr/share/vulkan/implicit_layer.d
	mv debian/tmp/etc/vulkan/explicit_layer.d/*.json \
	   debian/tmp/usr/share/vulkan/explicit_layer.d

	mv debian/tmp/usr/bin/smoketest debian/tmp/usr/bin/vulkan-smoketest

override_dh_install:
	dh_install --fail-missing

gentarball: SOURCE=vulkan
gentarball: UV=$(shell dpkg-parsechangelog|awk '/^Version:/ {print $$2}'|sed 's/-.*$$//')
gentarball:
	tar --transform 's,^,$(SOURCE)-$(UV)/,' \
		--exclude 'debian' --exclude-vcs \
		-cJf ../$(SOURCE)_$(UV).orig.tar.xz .

