#!/usr/bin/make -f

-include /usr/share/dpkg/default.mk

%:
	dh $@ --with autoreconf

binaries := $(shell dh_listpackages)
fake_rpath :=  /_ORIGIN_/__/lib/${DEB_HOST_MULTIARCH}
real_rpath := $${ORIGIN}/../lib/${DEB_HOST_MULTIARCH}
confflags = \
	--disable-Werror \
	--disable-silent-rules \
	--enable-host-prefix=$(DEB_HOST_MULTIARCH)- \
	--enable-tools-rpath='${fake_rpath}' \
	--libexecdir=\$${exec_prefix}/lib/libcapsule \
	$(NULL)

ifneq ($(filter libcapsule-doc,$(binaries)),)
confflags += --enable-gtk-doc
else
confflags += --disable-gtk-doc
endif

ifeq ($(DEB_HOST_ARCH),amd64)
confflags += --with-glib
else
confflags += --without-glib
endif

override_dh_auto_configure:
	dh_auto_configure -- $(confflags)

proxy_vars = \
	CAPSULE_CFLAGS="-I$(CURDIR)" \
	CAPSULE_LIBS="-L$(CURDIR)/.libs -lcapsule" \
	CAPSULE_MKINC="$(CURDIR)/data" \
	CAPSULE_MKSTUBLIB_TOOL="$(CURDIR)/data/capsule-mkstublib" \
	CAPSULE_SYMBOLS_TOOL="$(CURDIR)/capsule-symbols" \
	CAPSULE_VERSION_TOOL="$(CURDIR)/capsule-version" \
	$(NULL)

override_dh_auto_build:
	dh_auto_build
	$(proxy_vars) ./data/capsule-init-project \
		--capsule-pkgdatadir="$(CURDIR)/data" \
		--destination="$(CURDIR)/debian/libGL-proxy" \
		--no-autoreconf \
		--package-name=libGL-proxy \
		--search-tree=/nonexistent \
		--symbols-from-dir="$(CURDIR)/examples/shim" \
		libGL.so.1/1 \
		libX11.so.6/6 \
		libXext.so.6/6 \
		libXi.so.6/6 \
		libxcb-dri2.so.0/0 \
		libxcb-glx.so.0/0 \
		libxcb-present.so.0/0 \
		libxcb-sync.so.1/1 \
		libxcb.so.1/1 \
		$(NULL)
	# Copy it, so we can install the original source as an example
	cp -a debian/libGL-proxy debian/libGL-proxy-build
	cd debian/libGL-proxy-build && autoreconf -fi -I $(CURDIR)/m4
	cd debian/libGL-proxy-build && ./configure --prefix=/usr $(proxy_vars)
	$(MAKE) -C debian/libGL-proxy-build V=1 $(proxy_vars)

override_dh_auto_install:
	dh_auto_install
	if [ $(DEB_HOST_MULTIARCH) != $(DEB_HOST_GNU_TYPE) ]; then \
		set -e; \
		cd debian/tmp/usr/bin; \
		for bin in $(DEB_HOST_MULTIARCH)-*; do \
			tail="$${bin#$(DEB_HOST_MULTIARCH)-}"; \
			ln -s "$$bin" "$(DEB_HOST_GNU_TYPE)-$$tail"; \
		done; \
	fi
	install -d debian/tmp/usr/lib/libcapsule/relocatable
	cp -a \
		debian/tmp/usr/bin/*-capsule-capture-libs \
		debian/tmp/usr/bin/*-capsule-elf-dump \
		debian/tmp/usr/bin/*-capsule-symbols \
		debian/tmp/usr/bin/*-capsule-version \
		debian/tmp/usr/lib/libcapsule/relocatable
	set -e; for bin in debian/tmp/usr/bin/$(DEB_HOST_MULTIARCH)-*; do \
		case "$$bin" in \
			(*-capsule-mkstublib) \
				;; \
			(*) \
				chrpath -d "$$bin"; \
				chrpath -l "$$bin" || :; \
				;; \
		esac; \
	done
	chrpath -r '${real_rpath}' \
		debian/tmp/usr/lib/libcapsule/relocatable/$(DEB_HOST_MULTIARCH)-*
	chrpath -l debian/tmp/usr/lib/libcapsule/relocatable/*
	$(MAKE) -C debian/libGL-proxy-build install V=1 $(proxy_vars) \
		DESTDIR=$(CURDIR)/debian/libGL-proxy-build/shims
	install -d debian/tmp/usr/lib/libcapsule/shims/lib/$(DEB_HOST_MULTIARCH)
	mv debian/libGL-proxy-build/shims/usr/lib/* \
		debian/tmp/usr/lib/libcapsule/shims/lib/$(DEB_HOST_MULTIARCH)

override_dh_install:
	rm -f debian/tmp/usr/lib/*/*.la
	rm -f debian/tmp/usr/lib/libcapsule/shims/lib/*/*.la
	find debian/tmp/usr/lib/libcapsule/installed-tests -name '*.la' -print -delete
	# Only keep the architecture-qualified version, delete the unprefixed
	# version, so we can be Multi-Arch: same
	rm -f debian/tmp/usr/bin/capsule-capture-libs
	rm -f debian/tmp/usr/bin/capsule-elf-dump
	rm -f debian/tmp/usr/bin/capsule-symbols
	rm -f debian/tmp/usr/bin/capsule-version
	dh_install --fail-missing

override_dh_autoreconf:
	NOCONFIGURE=1 dh_autoreconf ./autogen.sh -- $(confflags)