#!/usr/bin/make -f
# SPDX-License-Identifier: Apache-2.0
# debian/rules for nginx-ipng-stats-plugin
#
# The actual module build is driven by the top-level Makefile, which
# copies /usr/share/nginx/src (from nginx-dev) into a writable
# build/nginx-src/ and runs the out-of-tree --add-dynamic-module dance
# against it. debian/rules just delegates to `make build` and installs
# the resulting .so into the package tree.

export DH_VERBOSE = 1
export DEB_BUILD_MAINT_OPTIONS = hardening=+all

MODULE_NAME := ngx_http_ipng_stats_module
PKG         := libnginx-mod-http-ipng-stats

%:
	dh $@

override_dh_auto_configure:
	# No-op: configure happens inside `make build`.

override_dh_auto_build:
	$(MAKE) build

override_dh_auto_install:
	install -D -m 0644 \
		$(CURDIR)/build/$(MODULE_NAME).so \
		$(CURDIR)/debian/$(PKG)/usr/lib/nginx/modules/$(MODULE_NAME).so
	install -D -m 0644 \
		$(CURDIR)/debian/mod-http-ipng-stats.conf \
		$(CURDIR)/debian/$(PKG)/etc/nginx/modules-available/50-mod-http-ipng-stats.conf

override_dh_auto_clean:
	# Intentionally a no-op: dh_auto_clean would call the top-level
	# Makefile's `clean` target, which wipes build/ wholesale — and
	# that includes build/nginx-asan/ from a prior `make build-asan`.
	# Users who want a fresh reset run `make clean` at the top level.

override_dh_clean:
	# `dh_clean` recurses from the package root to remove junk files
	# (editor backups, autom4te caches, etc.). Two obstacles under
	# build/:
	#   1. `make build-asan` produces build/nginx-asan/{fastcgi,proxy,
	#      scgi,uwsgi,client_body}_temp owned by "nobody" with mode
	#      0700 after the ASan nginx has been run (the 02-asan robot
	#      suite bind-mounts build/nginx-asan/ RW into a container,
	#      and nginx chowns its temp dirs on master startup). The
	#      current user can't traverse them, which makes dh_clean's
	#      `find` abort with EACCES.
	#   2. We don't want to delete anything under build/ anyway — it
	#      holds the ASan build artifacts from a prior `make build-asan`.
	# Clear the unreadable temp dirs first (rm -rf only needs write
	# access to the parent, which we have), then tell dh_clean to
	# exclude build/ entirely.
	rm -rf $(CURDIR)/build/nginx-asan/client_body_temp \
	       $(CURDIR)/build/nginx-asan/fastcgi_temp \
	       $(CURDIR)/build/nginx-asan/proxy_temp \
	       $(CURDIR)/build/nginx-asan/scgi_temp \
	       $(CURDIR)/build/nginx-asan/uwsgi_temp
	dh_clean -X build/
