#!/usr/bin/make -f
# By Jelmer Vernooij <jelmer@samba.org>

SOURCEPATH=./source4
DESTDIR = $(CURDIR)/debian/tmp

CFLAGS = -Wall -O0
LDFLAGS = -Wl,--as-needed

PYVERS=$(shell pyversions -vr)

WAF = ../buildtools/bin/waf

# turn DEB_BUILD_OPTIONS='foo,bar' into DEB_BUILD_OPT_FOO and DEB_BUILD_OPT_BAR
d_b_o:=$(shell echo "$$DEB_BUILD_OPTIONS"|sed 's/[^-[:alnum:]]/ /g'|tr a-z A-Z)
$(foreach o, $(d_b_o), $(eval DEB_BUILD_OPT_$o := 1))

ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
WAF += -j $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
endif

configure: configure-stamp
configure-stamp:
	dh_testdir
	cd $(SOURCEPATH) && CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" $(WAF) configure --enable-fhs \
		--prefix=/usr \
		--mandir=/usr/share/man \
		--sysconfdir=/etc \
		--localstatedir=/var \
		--with-piddir=/var/run \
		--disable-rpath \
		--disable-rpath-install \
		--bundled-libraries=NONE \
		--builtin-libraries=replace \
		--minimum-library-version="$(shell ./debian/autodeps.py --minimum-library-version)"
	touch $@

clean:
	dh_testdir
	dh_testroot
	dh_clean
	$(RM) $(DESTDIR)
	-cd $(SOURCEPATH) && $(WAF) clean
	find . -name "*.pyc" | xargs rm -f
	rm -rf buildtools/bin/.waf-*
	$(RM) build-stamp configure-stamp

binary-indep: install
	dh_installdocs -i
	dh_installchangelogs -i
	dh_lintian -i
	dh_pycentral -i
	dh_compress -i
	dh_fixperms -i
	dh_installdebconf -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

install: configure
	dh_installdirs
	mkdir -p $(DESTDIR)/usr/share/man/man1
	mkdir -p $(DESTDIR)/etc/samba
	cd $(SOURCEPATH) && DESTDIR="$(DESTDIR)" $(WAF)
	cd $(SOURCEPATH) && DESTDIR="$(DESTDIR)" $(WAF) install
	dh_testdir
	dh_testroot
	# Alternatives are used
	mv $(DESTDIR)/usr/bin/nmblookup $(DESTDIR)/usr/bin/nmblookup.samba4
	mv $(DESTDIR)/usr/share/man/man1/nmblookup.1 $(DESTDIR)/usr/share/man/man1/nmblookup.samba4.1
	mv $(DESTDIR)/usr/bin/testparm $(DESTDIR)/usr/bin/testparm.samba4
	# Already provided by samba-common
	rm $(DESTDIR)/usr/share/samba/*.dat
	# Already provided by libparse-yapp-perl
	rm $(DESTDIR)/usr/share/perl5/Parse/Yapp/Driver.pm
	# Binaries not ready for installation
	rm $(DESTDIR)/usr/lib/mit_samba.so
	# Included in python-tevent
	rm $(DESTDIR)/usr/lib/python*/*-packages/_tevent.so
	# Already included in various system packages
	rm -r $(DESTDIR)/usr/lib/python*/*-packages/samba/external
	# Already documented in debian/copyright
	rm $(DESTDIR)/usr/share/samba/setup/ad-schema/licence.txt
	# System ldb loads its modules from a different path
	mkdir -p $(DESTDIR)/usr/lib/ldb/modules
	ln -sf ../../../samba/ldb $(DESTDIR)/usr/lib/ldb/modules/samba
	mkdir -p $(DESTDIR)/lib/security
	mv $(DESTDIR)/usr/lib/pam_winbind.so $(DESTDIR)/lib/security/pam_winbind.so
	mv $(DESTDIR)/usr/sbin/provision $(DESTDIR)/usr/sbin/upgradeprovision $(DESTDIR)/usr/share/samba/setup
	mv $(DESTDIR)/usr/lib/libnss_winbind.so.2 $(DESTDIR)/lib
	# Can't be used yet.
	rm $(DESTDIR)/usr/lib/pkgconfig/samdb.pc
	rm $(DESTDIR)/usr/lib/libsamdb.so
	dh_install --sourcedir=$(DESTDIR) --list-missing --fail-missing

get-orig-source:
	./debian/build-orig.sh

binary-arch: install
	dh_installdocs -a $(SOURCEPATH)/NEWS
	dh_installchangelogs -a
	dh_strip -a
	dh_lintian -a
	dh_perl -a
	dh_pycentral -a
	dh_compress -a
	dh_fixperms -a
	dh_makeshlibs -a
	for pkg in winbind4; do \
		install -m 0644 -D debian/$$pkg.lintian debian/$$pkg/usr/share/lintian/overrides/$$pkg || exit; \
	done
	dh_installinit -a 
	dh_installdebconf -a
	dh_installdeb -a
	LD_LIBRARY_PATH=$(DESTDIR)/usr/lib/samba:$$LD_LIBRARY_PATH dh_shlibdeps -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

binary: binary-arch binary-indep 

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