#!/usr/bin/make -f

include /usr/share/dpkg/architecture.mk
include /usr/share/dpkg/pkg-info.mk

CONFOPTS = --with-slang
CONFOPTS += --enable-line
CONFOPTS += --libdir=/lib/$(DEB_HOST_MULTIARCH)
CONFOPTS += --libexecdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH)

ifeq ($(DEB_HOST_ARCH_OS),linux)
CONFOPTS += --enable-raw
CONFOPTS += --with-selinux
CONFOPTS += --enable-partx
CONFOPTS += --with-systemd
CONFOPTS += --enable-tunelp
else
CONFOPTS += --disable-pivot_root
endif

CONFOPTS += --localstatedir=/run
CONFOPTS += --disable-silent-rules
CONFOPTS += --without-python

# disable utilities shipped by other packages
# => login
CONFOPTS += --disable-login
CONFOPTS += --disable-nologin
CONFOPTS += --disable-su
# => sysvinit-utils
CONFOPTS += --disable-sulogin
CONFOPTS += --disable-last
CONFOPTS += --disable-mesg
# => procps
CONFOPTS += --disable-kill
# => eject
CONFOPTS += --disable-eject
# => passwd
CONFOPTS += --disable-chfn-chsh

ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
	CROSS :=
else
	CROSS := CC=$(DEB_HOST_GNU_TYPE)-gcc
endif

%:
	dh $@ --with autoreconf,systemd

override_dh_autoreconf:
	AM_OPTS=--copy LT_OPTS=--copy dh_autoreconf ./autogen.sh

override_dh_auto_configure:
	dh_auto_configure -- $(CONFOPTS) $(CROSS)

override_dh_auto_build:
	dh_auto_build -- $(CROSS)

override_dh_auto_install:
	dh_auto_install
	#
	# XXX - push things to where debian has always(?) had them...
ifeq ($(DEB_HOST_ARCH_OS),linux)
	mv debian/tmp/usr/sbin/*part* debian/tmp/usr/bin
	mv debian/tmp/usr/share/man/man8/linux32.8 \
		debian/tmp/usr/share/man/man1/linux32.1
	mv debian/tmp/usr/share/man/man8/linux64.8 \
		debian/tmp/usr/share/man/man1/linux64.1
endif
	mv debian/tmp/usr/bin/tailf debian/tmp/bin
	mv debian/tmp/usr/bin/isosize debian/tmp/sbin
	# initscripts delivers this
	rm -f debian/tmp/bin/mountpoint debian/tmp/usr/share/man/man1/mountpoint.1*
	# the version in bsdmainutils seems newer.
	rm -f debian/tmp/usr/bin/look debian/tmp/usr/share/man/man1/look.1
	rm -f debian/tmp/usr/bin/hexdump debian/tmp/usr/share/man/man1/hexdump.1
	# and it's less pain to just let bsmainutils deliver col for now.
	rm -f debian/tmp/usr/bin/col* debian/tmp/usr/share/man/man1/col*.1
	rm -f debian/tmp/usr/bin/ul debian/tmp/usr/share/man/man1/ul*.1
	rm -f debian/tmp/usr/bin/cal debian/tmp/usr/share/man/man1/cal.1
	# remove *.la files
	rm -f debian/tmp/usr/lib/*/*.la
	# perl gets to do rename, not us.
	mv debian/tmp/usr/bin/rename debian/tmp/usr/bin/rename.ul
	mv debian/tmp/usr/share/man/man1/rename.1 debian/tmp/usr/share/man/man1/rename.ul.1
	#
	#
	if [ -f debian/tmp/sbin/hwclock ] ; then \
	    install -m 644 debian/hwclock.5 debian/tmp/usr/share/man/man5; \
	    mkdir -p debian/tmp/lib/udev/rules.d/; \
	    install -m 644 debian/hwclock.rules debian/tmp/lib/udev/rules.d/85-hwclock.rules; \
	    install -m 755 debian/hwclock-set debian/tmp/lib/udev/hwclock-set; \
	fi

override_dh_install:
	cat debian/util-linux.install debian/util-linux.install.linux-only > debian/util-linux.install.linux
	dh_install \
		-Nfdisk-udeb -Ncfdisk-udeb -Nlibblkid1-udeb \
		-Nlibsmartcols1-udeb -Nlibuuid1-udeb -Nutil-linux-udeb
	dh_install --remaining-packages
	rm debian/util-linux.install.linux
	#
	# Architecture specific installs...
	#
	# only install i386 on any-x86 and x86_64 on amd64.
ifneq (,$(filter $(DEB_HOST_ARCH),amd64 i386))
	dh_install --package=util-linux --autodest \
		debian/tmp/usr/bin/i386
endif
ifeq ($(DEB_HOST_ARCH),amd64)
	dh_install --package=util-linux --autodest \
		debian/tmp/usr/bin/x86_64
endif
	# Rename fdisk to ddisk on PowerPC
ifneq (,$(filter $(DEB_HOST_ARCH),powerpc powerpcspe ppc64 ppc64el))
	mv -f debian/util-linux/sbin/fdisk debian/util-linux/sbin/ddisk
endif
	# Use agetty for getty, except on Hurd.
ifneq ($(DEB_HOST_ARCH_OS),hurd)
	cd debian/util-linux/sbin ; ln agetty getty
endif
	# Use agetty for getty, except on Hurd.
ifneq ($(DEB_HOST_ARCH_OS),linux)
	cd debian/util-linux/sbin ; mv mkswap mkswap.linux
endif
	# install uuidd systemd unit files on linux
ifeq ($(DEB_HOST_ARCH_OS),linux)
	dh_install --package=uuid-runtime --autodest \
		debian/tmp/lib/systemd/system/uuidd.*
endif
	# Install bash-completions only for binaries we ship
	for PACKAGE in util-linux uuid-runtime bsdutils mount; do \
	for BINARY in debian/$$PACKAGE/bin/* debian/$$PACKAGE/sbin/* \
			debian/$$PACKAGE/usr/bin/* \
			debian/$$PACKAGE/usr/sbin/* ; \
	do \
		BASENAME=$$(basename $$BINARY); \
		BCNAME=usr/share/bash-completion/completions/$$BASENAME ; \
		if [ "$$BASENAME" != '*' ] && [ -e "debian/tmp/$$BCNAME" ]; \
		then \
			echo "$$PACKAGE: Installing $$BCNAME"; \
			dh_install --package=$$PACKAGE --autodest $$BCNAME; \
		fi; \
	done; \
	done
	# Removed these conflicting ones for now, see Bug#755986
	rm -f debian/util-linux/usr/share/bash-completion/completions/dmesg
	rm -f debian/bsdutils/usr/share/bash-completion/completions/renice
	#
	rm -rf debian/*-udeb/usr/share/doc

override_dh_installman:
	cat debian/util-linux.manpages debian/util-linux.manpages.linux-only > debian/util-linux.manpages.linux
	dh_installman --language=C
	rm debian/util-linux.manpages.linux
	#
	# Architecture specific installs...
	#
	# only install i386 on any-x86 and x86_64 on amd64.
ifneq (,$(filter $(DEB_HOST_ARCH),amd64 i386))
	dh_installman --package=util-linux \
		debian/tmp/usr/share/man/man8/i386.8
endif
ifeq ($(DEB_HOST_ARCH),amd64)
	dh_installman --package=util-linux \
		debian/tmp/usr/share/man/man8/x86_64.8
endif
	# Rename fdisk to ddisk on PowerPC
ifneq (,$(filter $(DEB_HOST_ARCH),powerpc powerpcspe ppc64 ppc64el))
	cd debian/util-linux/usr/share/man/man8/ && mv fdisk.8 ddisk.8
endif
	# Use agetty for getty, except on Hurd.
ifneq ($(DEB_HOST_ARCH_OS),hurd)
	cd debian/util-linux/usr/share/man/man8 && ln agetty.8 getty.8
endif
	# Rename mkswap to mkswap.linux on non-linux.
ifneq ($(DEB_HOST_ARCH_OS),linux)
	cd debian/util-linux/usr/share/man/man8 && mv mkswap.8 mkswap.linux.8
endif

override_dh_gencontrol:
	dh_gencontrol --package=bsdutils -- -v1:$(DEB_VERSION_UPSTREAM_REVISION)
	dh_gencontrol --remaining-packages

override_dh_installinit:
	# install /etc/init.d/hwclock.sh
	# - update-rc.d manually handled in maintainers scripts as there
	#   is special per-arch considerations.
	dh_installinit --name=hwclock.sh --noscripts
	# install /etc/default/hwclock
	dh_installinit --name=hwclock
	# install uuidd sysvinit script
	make misc-utils/uuidd.rc
	ln -s ../misc-utils/uuidd.rc debian/uuid-runtime.uuidd.init
	dh_installinit --name=uuidd
	rm -f debian/uuid-runtime.uuidd.init

override_dh_installpam:
	dh_installpam --package=util-linux --name=runuser
	dh_installpam --package=util-linux --name=runuser-l

override_dh_makeshlibs:
	dh_makeshlibs -N libsmartcols1 -N libblkid1 -N libuuid1
	dh_makeshlibs -plibsmartcols1 -V \
		--add-udeb=libsmartcols1-udeb
	dh_makeshlibs -plibblkid1 -V \
		--add-udeb=libblkid1-udeb
	dh_makeshlibs -plibuuid1 -V \
		--add-udeb=libuuid1-udeb

override_dh_fixperms:
	dh_fixperms -i -s -Xusr/bin/wall -Xbin/mount -Xbin/umount

override_dh_auto_test:
	TERM=xterm dh_auto_test || true

