#!/usr/bin/make -f

package = shadow

# set up environment so that dpkg --build runs our tar wrapper
TAR_WRAPPER_SETUP = REAL_TAR=`command -p -v tar` PATH=`cd debian && pwd`:$$PATH

build:
	$(checkdir)
	# shared lib support is untested, so...
	./configure --disable-shared
	$(MAKE)
	gcc -O2 -Wall -o debian/tar debian/tar.c
	touch build

clean:
	$(checkdir)
	rm -f build debian/tar
	-$(MAKE) -i distclean
	rm -rf {libmisc,lib,src}/.deps
	rm -rf debian/tmp{-l,-p,-s} debian/{files*,substvars}
	find . -name '*~' -print0 | xargs -0 rm -f

binary-indep:	checkroot build
	$(checkdir)

binary-arch:	binary-login binary-passwd binary-su

binary-login:	checkroot build
	$(checkdir)
	-rm -rf debian/tmp-l
	install -d debian/tmp-l/{DEBIAN,bin,etc/init.d,usr/{bin,man/man{1,5,8},doc/login,sbin}}
	install -s -m4755 src/login debian/tmp-l/bin/
	install -s -m4755 src/newgrp debian/tmp-l/usr/bin/
	install -s src/{faillog,lastlog} debian/tmp-l/usr/bin/
	install -s src/logoutd debian/tmp-l/usr/sbin/
	install -m644 man/{login.1,newgrp.1} debian/tmp-l/usr/man/man1/
	install -m644 man/{login.defs.5,login.access.5,porttime.5,faillog.5,limits.5} debian/tmp-l/usr/man/man5/
	install -m644 man/{faillog.8,logoutd.8,lastlog.8} debian/tmp-l/usr/man/man8/
	ln -s newgrp debian/tmp-l/usr/bin/sg
	ln -s newgrp.1.gz debian/tmp-l/usr/man/man1/sg.1.gz
	install -m644 etc/login.defs.linux debian/tmp-l/etc/login.defs
	install -m644 etc/{login.access,limits} debian/{securetty,porttime} debian/tmp-l/etc/
	install debian/logoutd debian/tmp-l/etc/init.d/
	install -m644 debian/changelog debian/tmp-l/usr/doc/login/changelog.Debian
	install -m644 doc/CHANGES debian/tmp-l/usr/doc/login/
	find debian/tmp-l/usr/{doc,man} -type f | xargs gzip -9
	install -m644 debian/login.copyright debian/tmp-l/usr/doc/login/copyright
	install debian/login.preinst debian/tmp-l/DEBIAN/preinst
	install debian/login.postinst debian/tmp-l/DEBIAN/postinst
	install debian/login.prerm    debian/tmp-l/DEBIAN/prerm
	install debian/login.postrm   debian/tmp-l/DEBIAN/postrm
	install -m644 debian/login.conffiles debian/tmp-l/DEBIAN/conffiles
	dpkg-shlibdeps debian/tmp-l/{bin/*,usr/bin/*,usr/sbin/*}
	dpkg-gencontrol -isp -plogin -Pdebian/tmp-l
	./debian/checksums debian/tmp-l
	$(TAR_WRAPPER_SETUP) dpkg --build debian/tmp-l ..

binary-passwd:	checkroot build
	$(checkdir)
	-rm -rf debian/tmp-p
	install -d debian/tmp-p/{DEBIAN,etc,usr/{sbin,bin,man/{man1,man5,man8},doc/passwd}}
	install -m644 etc/shells debian/tmp-p/etc/
	install -s -m4755 src/{chage,chfn,chsh,expiry,gpasswd,passwd} debian/tmp-p/usr/bin/
	install -s src/{chpasswd,groupadd,groupdel,groupmod,grpck,grpconv,grpunconv} \
	  src/{newusers,pwck,pwconv,pwunconv,useradd,userdel} \
	  src/{dpasswd,usermod,vipw} debian/tmp-p/usr/sbin/
	install -m644 man/{chage.1,chfn.1,chsh.1,gpasswd.1,passwd.1} \
	  debian/tmp-p/usr/man/man1/
	install -m644 man/{chpasswd.8,groupadd.8,groupdel.8,groupmod.8,grpck.8} \
	  man/{newusers.8,pwck.8,dpasswd.8} \
	  man/{useradd.8,userdel.8,usermod.8,vipw.8,shadowconfig.8,pwconv.8} \
	  debian/tmp-p/usr/man/man8/
	install -m644 man/{passwd.5,shadow.5} debian/tmp-p/usr/man/man5/
	ln -s vipw debian/tmp-p/usr/sbin/vigr
	ln -s vipw.8.gz debian/tmp-p/usr/man/man8/vigr.8.gz
	for i in pwunconv.8.gz grpconv.8.gz grpunconv.8.gz ; do \
	  ln -s pwconv.8.gz debian/tmp-p/usr/man/man8/$$i ; done
	install -m644 debian/changelog debian/tmp-p/usr/doc/passwd/changelog.Debian
	install -m644 doc/{CHANGES,README,README.limits,README.linux,README.debian} \
	  debian/tmp-p/usr/doc/passwd/
	find debian/tmp-p/usr/{doc,man} -type f | xargs gzip -9f
	install -m644 debian/passwd.copyright debian/tmp-p/usr/doc/passwd/copyright
	install debian/login.preinst debian/tmp-p/DEBIAN/preinst
	install debian/passwd.postinst debian/tmp-p/DEBIAN/postinst
	install -m644 debian/passwd.conffiles debian/tmp-p/DEBIAN/conffiles
	dpkg-shlibdeps debian/tmp-p/usr/{bin/*,sbin/*}
	# dpkg-shlibdeps fails on scripts, so install them now...
	install src/shadowconfig.sh debian/tmp-p/usr/sbin/shadowconfig
	dpkg-gencontrol -isp -ppasswd -Pdebian/tmp-p
	./debian/checksums debian/tmp-p
	$(TAR_WRAPPER_SETUP) dpkg --build debian/tmp-p ..

binary-su: checkroot build
	$(checkdir)
	-rm -rf debian/tmp-s
	install -d debian/tmp-s/{DEBIAN,etc,bin,usr/{doc/secure-su,man/man{1,5}}}
	install -s -m4755 src/su debian/tmp-s/bin/
	install -m644 etc/suauth debian/tmp-s/etc/
	install -m644 man/suauth.5 debian/tmp-s/usr/man/man5/
	install -m644 man/su.1 debian/tmp-s/usr/man/man1/
	install -m644 debian/secure-su.README debian/tmp-s/usr/doc/secure-su/README
	install -m644 debian/changelog debian/tmp-s/usr/doc/secure-su/
	find debian/tmp-s/usr/{doc,man} -type f | xargs gzip -9f
	install -m644 debian/secure-su.copyright debian/tmp-s/usr/doc/secure-su/copyright
	install debian/secure-su.preinst debian/tmp-s/DEBIAN/preinst
	install debian/secure-su.postrm debian/tmp-s/DEBIAN/postrm
	install -m644 debian/secure-su.conffiles debian/tmp-s/DEBIAN/conffiles
	dpkg-shlibdeps debian/tmp-s/bin/su
	dpkg-gencontrol -isp -psecure-su -Pdebian/tmp-s
	./debian/checksums debian/tmp-s
	$(TAR_WRAPPER_SETUP) dpkg --build debian/tmp-s ..

define checkdir
	test -f lib/shadow.c -a -f debian/rules
endef


binary:		binary-indep binary-arch

source diff:
	@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false

checkroot:
	$(checkdir)
#	test root = "`whoami`"

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

# Local Variables:
# mode:Makefile
