#!/usr/bin/make -f

export DH_VERBOSE=1

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

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

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=`pwd`/$(dirme);  export DIST_ROOT;
pkgdev = DIST_ROOT=`pwd`/$(dirdev); export DIST_ROOT;
pkgdi  = DIST_ROOT=`pwd`/$(dirdi); export DIST_ROOT;
stdenv = @GZIP=-q; export GZIP;

options = export DEBUG=-DNDEBUG DISTRIBUTION=debian \
	  INSTALL_USER=root INSTALL_GROUP=root \
	  LOCAL_CONFIGURE_OPTIONS="--enable-editline=yes --enable-blkid=yes --disable-ubsan --disable-addrsan --disable-threadsan --enable-lto" ;
diopts  = $(options) \
	  export OPTIMIZER=-Os LOCAL_CONFIGURE_OPTIONS="--enable-gettext=no --disable-ubsan --disable-addrsan --disable-threadsan --enable-lto" ;
checkdir = test -f debian/rules

build: build-arch build-indep
build-arch: built
build-indep: built
built: dibuild config
	@echo "== dpkg-buildpackage: build" 1>&2
	$(MAKE) $(PMAKEFLAGS) default
	touch built

config: .census
.census:
	@echo "== dpkg-buildpackage: configure" 1>&2
	$(checkdir)
	AUTOHEADER=/bin/true dh_autoreconf
	$(options) $(MAKE) $(PMAKEFLAGS) include/platform_defs.h
	touch .census

dibuild:
	$(checkdir)
	@echo "== dpkg-buildpackage: installer" 1>&2
	if [ ! -f mkfs/mkfs.xfs-$(bootpkg) ]; then \
		$(diopts) $(MAKE) include/platform_defs.h; \
		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

clean:
	@echo "== dpkg-buildpackage: clean" 1>&2
	$(checkdir)
	-rm -f built .census mkfs/mkfs.xfs-$(bootpkg)
	$(MAKE) distclean
	-rm -rf $(dirme) $(dirdev) $(dirdi)
	-rm -f debian/*substvars debian/files* debian/*.debhelper
	dh_autoreconf_clean
	dh_clean

binary-indep:

binary-arch: checkroot built
	@echo "== dpkg-buildpackage: binary-arch" 1>&2
	$(checkdir)
	-rm -rf $(dirme) $(dirdev) $(dirdi)
	$(pkgme)  $(MAKE) -C . install
	$(pkgdev) $(MAKE) -C . install-dev
	$(pkgdi)  $(MAKE) -C debian install-d-i
	$(pkgme)  $(MAKE) dist
	install -D -m 0755 debian/local/initramfs.hook debian/xfsprogs/usr/share/initramfs-tools/hooks/xfs
	rmdir debian/xfslibs-dev/usr/share/doc/xfsprogs
	rm -f debian/xfslibs-dev/lib/libhandle.la
	rm -f debian/xfslibs-dev/lib/libhandle.a
	rm -fr debian/xfslibs-dev/usr/lib
	dh_installdocs
	dh_installchangelogs
	dh_strip
	dh_compress
	dh_fixperms
	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary: binary-indep binary-arch

checkroot:
	test 0 -eq `id -u`

.PHONY: binary binary-arch binary-indep clean checkroot
