#!/usr/bin/make -f

DEB_BUILD_MAINT_OPTIONS = hardening=+all
DEB_CFLAGS_MAINT_PREPEND = -Wall

include /usr/share/dpkg/default.mk

ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
  conf_gnu_type += --build $(DEB_HOST_GNU_TYPE)
else
  conf_gnu_type += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
endif

# Override default upstream setuid mode, as they rejected this change.
SUIDMODE="-m 4755"

# Set proper Provides
ifeq ($(DEB_HOST_ARCH_OS),linux)
  syslogd_provides = linux-kernel-log-daemon
endif
ifeq ($(DEB_HOST_ARCH_OS),hurd)
  tools_provides = net-tools
endif

D = $(CURDIR)/debian/tmp
M = $(CURDIR)/debian/local/man
mandir = usr/share/man
man1dir = $(mandir)/man1
man5dir = $(mandir)/man5
man8dir = $(mandir)/man8

configure: configure.ac
	dh_testdir
	
	autoreconf -i -Im4 -Iam

config.status: configure
	dh_testdir
	dh_update_autotools_config
	
	./configure \
	  CPPFLAGS="$(CPPFLAGS)" \
	  CFLAGS="$(CFLAGS)" \
	  LDFLAGS="$(LDFLAGS)" \
	  $(conf_gnu_type) \
	  --disable-silent-rules \
	  --prefix=/usr \
	  --sysconfdir=/etc \
	  --localstatedir=/var \
	  --libexecdir=\$${prefix}/sbin \
	  --mandir=\$${prefix}/share/man \
	  --infodir=\$${prefix}/share/info \
	  --with-shishi \
	  --with-wrap \
	  --with-pam

build-indep:

build-arch: build-arch-stamp
build-arch-stamp: config.status
	dh_testdir
	
ifneq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	$(MAKE)
else
	$(MAKE) VERBOSE=1 check
endif
	touch $@

build: build-indep build-arch

clean:
	dh_testdir
	dh_testroot
	
	[ ! -f Makefile ] || $(MAKE) distclean
	
	# Cleanup the mess after having run autoreconf ...
	find -name Makefile.in | xargs rm -f
	rm -f aclocal.m4 config.hin configure
	
	rm -f build-arch-stamp
	
	dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs -a
	
	$(MAKE) install DESTDIR=$(D) SUIDMODE=$(SUIDMODE)
	
	# Create man page directories
	mkdir -p $(D)/$(man1dir)
	mkdir -p $(D)/$(man5dir)
	mkdir -p $(D)/$(man8dir)
	
	# Move ping to /bin
	mkdir -p $(D)/bin
	mv $(D)/usr/bin/ping $(D)/bin/
	
	# Rename ifconfig to not break existing systems using net-tools
	mv $(D)/usr/bin/ifconfig $(D)/usr/bin/inetutils-ifconfig
	cp $(M)/ifconfig.1 $(D)/usr/share/man/man1/inetutils-ifconfig.1
	
	# Rename inetd to be able to coexist with not purged netkit-inetd
	mv $(D)/usr/sbin/inetd $(D)/usr/sbin/inetutils-inetd
	cp $(M)/inetd.8 $(D)/$(man8dir)/inetutils-inetd.8
	
	# Needed to enable alternatives
	mv $(D)/usr/bin/telnet $(D)/usr/bin/inetutils-telnet
	cp $(M)/telnet.1 $(D)/$(man1dir)/inetutils-telnet.1
	mv $(D)/usr/bin/ftp $(D)/usr/bin/inetutils-ftp
	cp $(M)/ftp.1 $(D)/$(man1dir)/inetutils-ftp.1
	cp $(M)/netrc.5 $(D)/$(man5dir)/inetutils-netrc.5
	mv $(D)/usr/bin/talk $(D)/usr/bin/inetutils-talk
	cp $(M)/talk.1 $(D)/$(man1dir)/inetutils-talk.1
	mv $(D)/usr/bin/traceroute $(D)/usr/bin/inetutils-traceroute
	cp $(M)/traceroute.1 $(D)/$(man1dir)/inetutils-traceroute.1

binary-indep:
# Nothing to do.

binary-arch: install
	dh_testdir
	dh_testroot
	
	dh_install -a --sourcedir=$(D)
	# Install ping6 only if built
	if [ -x $(D)/usr/bin/ping6 ]; then \
	  cp -a $(D)/usr/bin/ping6 \
	        $(CURDIR)/debian/inetutils-ping/bin/; \
	fi
	dh_installdebconf -a
	dh_installdocs -a -A NEWS AUTHORS THANKS
	dh_installexamples -a
	dh_installinit -pinetutils-syslogd -- defaults 10 90
	dh_installinit -a -Ninetutils-syslogd
	dh_installpam -pinetutils-ftpd --name ftp
	dh_installlogrotate -a
	dh_installman -a
	dh_installinfo -a
	dh_installchangelogs -a ChangeLog
	dh_lintian
	dh_link -a
	dh_strip -a
	dh_compress -a
	# pings and traceroute are setuid
	dh_fixperms -a -Xbin/ping -Xbin/ping6 -Xusr/bin/inetutils-traceroute
	dh_installdeb -a
	dh_shlibdeps -a
	dh_gencontrol -a -pinetutils-syslogd -- \
	  -Vsyslogd:Provides="$(syslogd_provides)"
	dh_gencontrol -a -Ninetutils-syslogd -- \
	  -Vtools:Provides="$(tools_provides)"
	dh_md5sums -a
	dh_builddeb -a

binary: binary-indep binary-arch

.PHONY: build-indep build-arch build build-udeb
.PHONY: clean install binary-indep binary-arch binary
