#!/usr/bin/make -f

include /usr/share/dpkg/architecture.mk

# Go 1.26 synctest panics with asynctimerchan!=0 (default).
export GODEBUG := asynctimerchan=0

export DH_GOLANG_GO_GENERATE := 0
export DH_GOLANG_EXCLUDES := \
	kajiya \
	subcmd/collector \
	subcmd/ninja/e2etests \
	reapi/reapitest \
	subcmd/auth \
	subcmd/fetch \
	subcmd/proxy \
	o11y/resultstore \
	o11y/trace
export DH_GOLANG_INSTALL_EXTRA := \
	siso/third_party/material_web_components/components-chromium \
	siso/webui/templates siso/webui/css siso/webui/js \
	siso/subcmd/recall/rusage.go.in \
	siso/build/buildconfig/encoding.star \
	siso/build/buildconfig/path.star \
	siso/build/buildconfig/runtime.star \
	siso/build/buildconfig/struct.star \
	siso/build/buildconfig/lib

BUILDDIR = debian/build/src/go.chromium.org/build

%:
	dh $@ --buildsystem=golang --builddirectory=debian/build

override_dh_auto_build:
	dh_auto_build -- -buildmode=pie
	debian/build/bin/siso man -out debian/siso.1
	cat debian/siso.1.tail >> debian/siso.1

override_dh_auto_install:
	dh_auto_install -- --no-source

NODE_MODULES = $(BUILDDIR)/siso/third_party/material_web_components/components-chromium/node_modules

execute_after_dh_auto_configure:
	# De-vendored JS: copy from Debian-packaged node-lit into build tree
	# (go:embed does not follow symlinks, must be real files)
	for pkg in lit lit-html lit-element; do \
	    cp -a /usr/share/nodejs/$$pkg $(NODE_MODULES)/$$pkg; \
	done
	mkdir -p $(NODE_MODULES)/@lit
	cp -a /usr/share/nodejs/@lit/reactive-element $(NODE_MODULES)/@lit/reactive-element
	cp -a /usr/share/nodejs/@lit-labs $(NODE_MODULES)/@lit-labs

# Go runtime GC crash with 32 MB nodeMap allocation on 32-bit;
# see https://reproduce.debian.net/i386/api/v1/builds/213968/log
ifeq (32,$(DEB_HOST_ARCH_BITS))
override_dh_auto_test:
	DH_GOLANG_EXCLUDES="$(DH_GOLANG_EXCLUDES) toolsupport/ninjautil" \
	    dh_auto_test
endif

override_dh_dwz:
	# dwz cannot process Go binaries with compressed debug sections.
	:
