#!/usr/bin/make -f
# Made with the aid of dh_make, by Craig Small
# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
# Also some stuff taken from debmake scripts, by Cristoph Lameter.
#
# Taken from Samba package by Eloy Paris, reworked for Samba-TNG

#export DH_VERBOSE := 1
export DH_COMPAT := 2

PWD	:= $(shell pwd)

SOURCE	:= $(PWD)/source
BUILD	:= $(PWD)/debian/build
DESTDIR	:= $(PWD)/debian/tmp
COMPAT	:= $(PWD)/debian/samba-tng-common/usr/local/samba

build: build-stamp
build-stamp:
	dh_testdir

	[ -d $(BUILD) ] || mkdir -p $(BUILD)
	[ -f $(SOURCE)/configure ] || (cd $(SOURCE); $(SHELL) ./autogen.sh)
	[ -f $(BUILD)/Makefile ] || (cd $(BUILD) && $(SOURCE)/configure \
		--prefix=/usr \
		--libdir='$${prefix}/lib/samba-tng' \
		--datadir='$${prefix}/share/samba-tng' \
		--mandir='$${prefix}/share/man' \
		--sysconfdir=/etc/samba-tng \
		--with-privatedir=/etc/samba-tng \
		--localstatedir=/var/lib/samba-tng \
		--with-tmpdir=/var/run/samba-tng \
		--with-logdir=/var/log/samba-tng \
		\
		--with-netatalk --with-pam --with-syslog --with-utmp \
		--with-passdb=ldap,smbpass --with-quotas --without-cups)
	$(MAKE) -C $(BUILD) all bin/tdbtool # smbtorture rpctorture debug2html
	# This needs CFLAGS= due to a bug in pam on
	# debian/stable
	$(MAKE) -C $(BUILD) CFLAGS="" nsswitch

	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	$(RM) build-stamp install-stamp
	$(RM) -r $(BUILD)
	-test -L debian/samba-tng-dual.conffiles && \
	  $(RM) debian/samba-tng-dual.conffiles
	dh_clean

install: install-stamp
install-stamp: build-stamp
	dh_testdir
	dh_testroot
	dh_clean -k
	test -f debian/samba-tng-dual.conffiles || \
	  ln -s samba-tng-common.conffiles debian/samba-tng-dual.conffiles
	dh_installdirs -A
	mkdir -p $(DESTDIR)/etc/samba-tng/netlogon $(DESTDIR)/etc/pam.d \
		 $(DESTDIR)/etc/cron.daily $(DESTDIR)/etc/cron.weekly \
		 $(DESTDIR)/lib/security $(DESTDIR)/etc/ldap/schema

	$(MAKE) -C $(BUILD) install DESTDIR=$(DESTDIR)
	# Install other stuff not installed by "make install"
	install -m 0755 $(SOURCE)/script/mksmbpasswd.sh $(DESTDIR)/usr/sbin/mksmbpasswd
	install -m 0644 $(PWD)/ldap/sambatng.schema-v3 $(DESTDIR)/etc/ldap/schema/samba-tng.schema
#	install -m 0755 $(BUILD)/bin/smbtorture $(DESTDIR)/usr/bin/
#	install -m 0755 debian/samba-tng-configure $(DESTDIR)/usr/sbin/
	# Install man pages for files without man pages in the upstream dist.
	install -m 0644 debian/man/addtosmbpass.8 $(DESTDIR)/usr/share/man/man8/addtosmbpass.8
#	install -m 0644 debian/mksmbpasswd.8 $(DESTDIR)/usr/share/man/man8/mksmbpasswd.8

	# Install some basic winbind things
	install -m 0755 $(BUILD)/bin/winbindd $(DESTDIR)/usr/sbin/
	install -m 0755 $(BUILD)/bin/wbinfo $(DESTDIR)/usr/bin/
	install -m 0644 $(BUILD)/nsswitch/libnss_winbind.so $(DESTDIR)/lib/
	install -m 0644 $(BUILD)/nsswitch/pam_winbind.so $(DESTDIR)/lib/security/

	# Install conffiles
	install -m 0644 examples/smb.conf.example $(DESTDIR)/etc/samba-tng/smb.conf
	install -m 0644 debian/etc/pam.d $(DESTDIR)/etc/pam.d/samba-tng
	install -m 0755 debian/etc/cron.daily $(DESTDIR)/etc/cron.daily/samba-tng
	install -m 0755 debian/etc/cron.weekly $(DESTDIR)/etc/cron.weekly/samba-tng

	dh_movefiles

	# hacks for samba-tng-dual
	while read dir f1 f2; do \
	  mkdir -p debian/samba-tng-dual/$$dir; \
	  eval cp -a debian/samba-tng-common/$$dir/$$f1 debian/samba-tng-dual/$$dir/$$f2; \
	done < debian/samba-tng-dual.commonfiles

	# clean the dirs in 'samba-tng-doc.docs', plus any others...
	find debian/samba-tng* -type d -name CVS | xargs $(RM) -r

	# Compatibility symlinks, so that upstream documentation is correct
	# Note that this violates Debian policy ("don't put things in /usr/local")
	ln -s /usr/bin $(COMPAT)/bin
	ln -s /usr/sbin $(COMPAT)/sbin
	ln -s /usr/lib/samba-tng $(COMPAT)/lib
	ln -s /etc/samba-tng $(COMPAT)/etc
	ln -s /usr/share/man $(COMPAT)/man

	touch install-stamp

# Build architecture-independent files here.
binary-indep: build install
#	dh_testversion
	dh_testdir -i
	dh_testroot -i
	dh_installdocs -i -A docs/textdocs/DIAGNOSIS.txt
	dh_installexamples -i
#	dh_installmenu -i
#	dh_installemacsen -i
#	dh_installinit -i
#	dh_installcron -i
#	dh_installmanpages -i
	dh_undocumented
	dh_installchangelogs -i 
	dh_compress -i
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

# Build architecture-dependent files here.
binary-arch: build install
#	dh_testversion
	dh_testdir -a
	dh_testroot -a
	dh_installdocs -a -A docs/textdocs/DIAGNOSIS.txt
	dh_installexamples -a
#	dh_installmenu -a
#	dh_installemacsen -a
	dh_installinit -a
	dh_installcron -a
#	dh_installmanpages -a
	dh_undocumented
	dh_installchangelogs -a 
	dh_strip -a
	dh_compress -a
	dh_fixperms -a
	dh_installdeb -a
	dh_shlibdeps -a
	dh_gencontrol -a
#	dh_makeshlibs -a
	dh_md5sums -a
	dh_builddeb -a

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

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