#!/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)))
NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
else
NUMJOBS=1
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=tdb:1.2.1,talloc:2.0.1
	touch $@

build: build-stamp
build-stamp: configure
	dh_testdir
	cd $(SOURCEPATH) && $(WAF) -j $(NUMJOBS) build
	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: build install
	dh_installdocs -i
	dh_installchangelogs -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: build
	dh_installdirs
	mkdir -p $(DESTDIR)/usr/share/man/man1
	mkdir -p $(DESTDIR)/etc/samba
	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/net $(DESTDIR)/usr/bin/net.samba4
	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-tdb
	rm $(DESTDIR)/usr/lib/python*/*-packages/tdb.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
	mv $(DESTDIR)/usr/lib/samba/ldb $(DESTDIR)/usr/lib/ldb
	ln -sf ../ldb $(DESTDIR)/usr/lib/samba/ldb
	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
	dh_install --sourcedir=$(DESTDIR) --list-missing --fail-missing

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

binary-arch: build install
	dh_installdocs -a $(SOURCEPATH)/NEWS
	dh_installchangelogs -a
	dh_strip -a
	dh_perl -a
	dh_pycentral -a
	dh_compress -a
	dh_fixperms -a
	dh_makeshlibs -a
	dh_link -plibsamba-hostconfig0 usr/lib/libsamba-hostconfig.so.0.0.1 usr/lib/libsamba-hostconfig.so.0
	dh_link -plibndr0 usr/lib/libndr.so.0.0.1 usr/lib/libndr.so.0
	dh_link -plibndr-standard0 usr/lib/libndr_standard.so.0.0.1 usr/lib/libndr_standard.so.0
	dh_link -plibregistry0 usr/lib/libregistry.so.0.0.1 usr/lib/libregistry.so.0
	dh_link -plibdcerpc0 usr/lib/libdcerpc.so.0.0.1 usr/lib/libdcerpc.so.0 \
						 usr/lib/libdcerpc_samr.so.0.0.1 usr/lib/libdcerpc_samr.so.0 \
						 usr/lib/libdcerpc_atsvc.so.0.0.1 usr/lib/libdcerpc_atsvc.so.0
	dh_link -plibgensec0 usr/lib/libgensec.so.0.0.1 usr/lib/libgensec.so.0
	dh_link -plibtorture0 usr/lib/libtorture.so.0.0.1 usr/lib/libtorture.so.0
	dh_link -plibsamba-util0 usr/lib/libsamba-util.so.0.0.1 usr/lib/libsamba-util.so.0
	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
	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
