#!/usr/bin/make -f

export DH_VERBOSE=1

export AUTOHEADER=true

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

ifeq (,$(filter terse,$(DEB_BUILD_OPTIONS)))
    PMAKEFLAGS += V=1
endif

package = xfsprogs
develop = xfslibs-dev
bootpkg = xfsprogs-udeb

include /usr/share/dpkg/architecture.mk

version = $(shell dpkg-parsechangelog | grep ^Version: | cut -d ' ' -f 2 | cut -d '-' -f 1)
target ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
udebpkg = $(bootpkg)_$(version)_$(target).udeb

dirme  = debian/$(package)
dirdev = debian/$(develop)
dirdi  = debian/$(bootpkg)
pkgme  = DIST_ROOT=$(CURDIR)/$(dirme);  export DIST_ROOT;
pkgdev = DIST_ROOT=$(CURDIR)/$(dirdev); export DIST_ROOT;
pkgdi  = DIST_ROOT=$(CURDIR)/$(dirdi); export DIST_ROOT;
stdenv = @GZIP=-q; export GZIP;

configure_options = \
	--build=$(DEB_BUILD_GNU_TYPE) \
	--with-multiarch=$(DEB_HOST_MULTIARCH) \
	--host=$(DEB_HOST_GNU_TYPE) \
	--disable-ubsan \
	--disable-addrsan \
	--disable-threadsan \
	--enable-lto \
	--localstatedir=/var

options = export DEBUG=-DNDEBUG DISTRIBUTION=debian \
	  INSTALL_USER=root INSTALL_GROUP=root LDFLAGS='$(LDFLAGS)' \
	  LOCAL_CONFIGURE_OPTIONS="$(configure_options) --enable-editline=yes --enable-blkid=yes" ;
diopts  = $(options) \
	  export OPTIMIZER=-Os LOCAL_CONFIGURE_OPTIONS="$(configure_options) --enable-gettext=no" ;

%:
	dh $@

override_dh_auto_configure:
	dh_testdir
	touch .gitcensus

override_dh_auto_build:
	@echo "== dpkg-buildpackage: installer" 1>&2
	if [ ! -f mkfs/mkfs.xfs-$(bootpkg) ]; then \
		$(diopts) $(MAKE) include/builddefs; \
		mkdir -p include/xfs; \
		for dir in include libxfs; do \
			$(MAKE) $(PMAKEFLAGS) -C $$dir NODEP=1 install-headers; \
		done; \
		for dir in include libxfs libxcmd libfrog mkfs; do \
			$(MAKE) $(PMAKEFLAGS) $$dir; \
		done; \
		mv mkfs/mkfs.xfs mkfs/mkfs.xfs-$(bootpkg); \
		$(MAKE) distclean; \
	fi
	@echo "== dpkg-buildpackage: configure" 1>&2
	# runs configure with $(options)
	$(options) $(MAKE) $(PMAKEFLAGS) include/builddefs
	cp -f include/install-sh .
	@echo "== dpkg-buildpackage: build" 1>&2
	$(MAKE) $(PMAKEFLAGS) default

execute_before_dh_clean:
	@echo "== dpkg-buildpackage: clean" 1>&2
	dh_testdir
	-rm -f built .gitcensus mkfs/mkfs.xfs-$(bootpkg)
	$(MAKE) distclean
	-rm -rf $(dirme) $(dirdev) $(dirdi)

override_dh_auto_install:
	@echo "== dpkg-buildpackage: binary-arch" 1>&2
	-rm -rf $(dirme) $(dirdev) $(dirdi)
	dh_testdir
	$(pkgme)  $(MAKE) -C . install
	$(pkgdev) $(MAKE) -C . install-dev
	$(pkgdi)  $(MAKE) -C debian install-d-i
	install -D -m 0755 debian/local/initramfs.hook debian/xfsprogs/usr/share/initramfs-tools/hooks/xfs
	rm -f debian/xfslibs-dev/usr/lib/$(DEB_HOST_MULTIARCH)/libhandle.la
	rm -f debian/xfslibs-dev/usr/lib/$(DEB_HOST_MULTIARCH)/libhandle.a

override_dh_installdocs:
	dh_installdocs -XCHANGES

override_dh_installsystemd:
	dh_installsystemd -p xfsprogs --no-restart-after-upgrade --no-stop-on-upgrade system-xfs_scrub.slice xfs_scrub_all.timer
