#!/usr/bin/make -f

include /usr/share/dpkg/buildflags.mk

export DH_VERBOSE = 1

# Full builds:
fs := ufs pcfs udfs

# Only mount:
mount := mntfs lofs objfs ctfs tmpfs dev fd proc sharefs hsfs

# fstyp modules:
fstyp := hsfs zfs

unpack: unpack-stamp
unpack-stamp:
	dh_testdir
	dh_illumos_gate --build \
		usr/src/cmd/fs.d \
		usr/src/cmd/fstyp \
		usr/src/uts/common/fs/ufs/ufs_subr.c \
		usr/src/uts/common/fs/ufs/ufs_tables.c \
		usr/src/man/man1m/clri\* \
		usr/src/man/man1m/fsck\* \
		usr/src/man/man1m/fstyp\* \
		usr/src/man/man1m/mkfs\* \
		usr/src/man/man1m/mount\* \
		usr/src/man/man4/vfstab.4 \
		usr/src/cmd/initpkg/\*mountall.sh

	dh_illumos_gate \
		usr/src/lib/Makefile.lib \

	# Buggy and unused:
	echo > usr/src/Makefile.msg.targ

	# Use GNU ld:
	sed -i '/LD_ALTEXEC/d' usr/env.sh
	echo 'BDIRECT=' >> usr/src/cmd/Makefile.cmd
	echo 'MAPFILE.NES=' >> usr/src/cmd/Makefile.cmd
	echo 'MAPFILE.PGA=' >> usr/src/cmd/Makefile.cmd
	echo 'MAPFILE.NED=' >> usr/src/cmd/Makefile.cmd

	touch $@

patch: patch-stamp
patch-stamp: unpack-stamp
	dh_testdir
	[ ! -f debian/patches/series ] || QUILT_PATCHES=debian/patches quilt push -a || test $$? = 2
	touch $@

unpatch:
	dh_testdir
	[ ! -f debian/patches/series ] || QUILT_PATCHES=debian/patches quilt pop -a -f || test $$? = 2
	rm -f patch-stamp

dirs-stamp: unpack-stamp
	. usr/env.sh; mkdir -p \
		debian/tmp/usr/bin \
		debian/tmp/sbin \
		debian/tmp/usr/sbin \
		$(mount:%=debian/tmp/usr/lib/fs/%) \
		$(fs:%=debian/tmp/usr/lib/fs/%) \
		$(fstyp:%=debian/tmp/usr/lib/fs/%) \

	touch $@

install: install-stamp

install-stamp: build-stamp
	install -m 755 -t debian/tmp/sbin \
		usr/src/cmd/fs.d/mount \
		usr/src/cmd/fs.d/umount
	install -m 755 -t debian/tmp/usr/sbin \
		usr/src/cmd/fs.d/fsck
	install -m 755 -t debian/tmp/usr/sbin \
		usr/src/cmd/fs.d/clri
	for f in mkfs dcopy labelit fsdb fssnap; do \
		ln -sf clri debian/tmp/usr/sbin/$$f; \
	done
	install -m 755 usr/src/cmd/initpkg/mountall.sh \
		debian/tmp/sbin/mountall
	install -m 755 usr/src/cmd/initpkg/umountall.sh \
		debian/tmp/sbin/umountall
	touch $@

build build-arch build-indep: build-stamp

build-stamp: dirs-stamp patch-stamp
	dh_illumos_make --native usr/src/cmd/fs.d -t mount
	dh_illumos_make --native usr/src/cmd/fs.d -t umount
	dh_illumos_make --native usr/src/cmd/fs.d -t fsck
	dh_illumos_make --native usr/src/cmd/fs.d -t clri
	dh_illumos_make --native usr/src/cmd/fstyp
	dh_illumos_make --native $(fs:%=usr/src/cmd/fs.d/%)
	for fs in $(fstyp); do \
		dh_illumos_make --native usr/src/cmd/fs.d/$$fs/fstyp ; \
	done
	for fs in $(mount); do \
		if [ -d usr/src/cmd/fs.d/$$fs/mount ]; then \
			dh_illumos_make --native usr/src/cmd/fs.d/$$fs/mount ; \
		else \
			dh_illumos_make --native usr/src/cmd/fs.d/$$fs ; \
		fi ; \
	done
	touch $@

binary binary-arch binary-indep: binary-stamp
binary-stamp: install-stamp
	dh_testdir
	dh_testroot
	dh_installdirs
	dh_install --list-missing
	dh_strip
	dh_installman
	dh_installdocs
	dh_installexamples
	dh_installchangelogs
	dh_bash-completion
	dh_link
	dh_compress
	dh_fixperms
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb
	touch $@

clean: unpatch
	dh_testdir
	dh_testroot
	dh_clean
	rm -rf usr .pc

