#!/usr/bin/make -f

built_binaries := $(shell dh_listpackages)

export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DEB_LDFLAGS_MAINT_APPEND = -Wl,-z,defs

include /usr/share/dpkg/default.mk

export DH_VERBOSE=1

ifeq ($(filter amd64 arm64 armel armhf i386 mips64el ppc64el riscv64 s390x hppa loong64 powerpc ppc64 sh4,$(DEB_HOST_ARCH)),)
SYSPROF = -Dprofiler=disabled
endif

ifneq ($(filter arm64,$(DEB_HOST_ARCH)),)
SYMBOLIC_FUNCTIONS = -Dbsymbolic_functions=false

# The previous parameter is needed in arm now, but it leads to new private
# symbols being exposed, although we don't care about tracking them.
DPKG_GENSYMBOLS_CHECK_LEVEL = 1
endif

%:
	dh $@

override_dh_auto_configure:
	dh_auto_configure -- \
		--unity=on \
		-Dauto_features=enabled \
		$(SYSPROF) \
		$(SYMBOLIC_FUNCTIONS) \
		$(NULL)

execute_after_dh_auto_install:
	rm -f debian/tmp/usr/libexec/installed-tests/gjs/js/modules/*/.eslintrc.yml

override_dh_girepository:
	dh_girepository -l $(BUILDDIR) /usr/lib/$(DEB_HOST_MULTIARCH)/gjs/girepository-1.0

# debhelper >= 13.4 makes all of /usr/libexec executable, which is not
# quite right for installed-tests
override_dh_fixperms:
	dh_fixperms -Xusr/libexec/installed-tests
ifneq ($(filter %-tests,$(built_binaries)),)
	chmod --changes u=rw,og=r debian/*-tests/usr/libexec/installed-tests/gjs/*.so
	chmod --recursive --changes a+rX,u+w,og-w debian/*-tests/usr/libexec/installed-tests
endif

override_dh_auto_test:
	GI_TYPELIB_PATH=$(CURDIR)/obj-$(DEB_HOST_GNU_TYPE) \
	obj-$(DEB_HOST_GNU_TYPE)/gjs-console -c 'print("Smoke-test OK")'
	env \
		TZ=UTC \
	dbus-run-session -- \
	xvfb-run -a \
	dh_auto_test -- -v -C $(CURDIR)/obj-$(DEB_HOST_GNU_TYPE) --timeout-multiplier 4

override_dh_makeshlibs:
	dh_makeshlibs -Xusr/lib/$(DEB_HOST_MULTIARCH)/gjs-1.0 -- -c4
