#!/usr/bin/make -f
# 
# Script for building Zebra from source to .deb-packages.
#
# Created by Adam Dickmeiss, based on script by
# Morten Hendriksen <mgh@dbc.dk>  and from Joey Hess.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

# This is the debhelper compatability version to use.
export DH_COMPAT=2

CONFIG_FLAGS=--with-tclconfig=/usr/lib/tcl8.3 --with-yazconfig=/usr/bin --prefix=/usr

# Enable parallel builds if CONCURRENCY_LEVEL is set
ifdef CONCURRENCY_LEVEL
MCFLAGS=-j$(CONCURRENCY_LEVEL)
else
MCFLAGS=
endif

ZEBRASRCDIR?=$(shell pwd)

# Local library path for linking with right dependencies
LOCAL_LINK=-ldebian/idzebra/usr/lib

$(ZEBRASRCDIR)/configure: $(ZEBRASRCDIR)/configure.in
	cd $(ZEBRASRCDIR); sh buildconf.sh

stamp-configure: $(ZEBRASRCDIR)/configure
	dh_testdir

	-rm -rf build
	mkdir build
	cd build; $(ZEBRASRCDIR)/configure $(CONFIG_FLAGS)
	touch stamp-configure

build: stamp-build
stamp-build: stamp-configure
	dh_testdir

	# Add here commands to compile the package.
	$(MAKE) -C build $(MCFLAGS)

	touch stamp-build

clean:
	dh_testdir
	#dh_testroot
	-rm -f stamp-*
	-rm -rf build

	dh_clean
	-rm -rf debian/idzebra debian/*.debhelper debian/substvars

install: stamp-install
stamp-install: stamp-build
	dh_testdir
	dh_testroot
	dh_clean -k -a
	dh_installdirs -a

	# Add here commands to install the package into debian/tmp.
	-mkdirhier debian/tmp/usr
	$(MAKE) -C build install prefix=`pwd`/debian/tmp/usr

	touch stamp-install

# Build architecture-independent files here.
binary-indep: build install
	dh_testdir
	dh_testroot
	dh_installdocs -p idzebra-doc doc/*.html doc/*.pdf doc/*.png
	dh_installchangelogs -p idzebra-doc
	dh_link -p idzebra-doc
	dh_strip -p idzebra-doc
	dh_compress -p idzebra-doc
	dh_fixperms -p idzebra-doc
	dh_gencontrol -p idzebra-doc
	dh_md5sums -p idzebra-doc

	dh_builddeb -p idzebra-doc

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_movefiles -p idzebra usr/share/idzebra usr/bin

	cp NEWS changelog
	dh_installdocs --all README TODO changelog debian/copyright

	dh_installchangelogs
	dh_link

	dh_installdeb -p idzebra
	dh_installman -p idzebra doc/zebraidx.1 doc/zebrasrv.8

	dh_strip
	dh_compress -a
	dh_fixperms -a

	dh_shlibdeps -p idzebra $(LOCAL_LINK) 

	cat debian/postinst >> debian/idzebra/DEBIAN/postinst
	chmod +x debian/idzebra/DEBIAN/postinst

	dh_gencontrol -p idzebra
	dh_md5sums -p idzebra

	# Go kill those CVS-dirs before build
	-find debian/tmp -type d -name CVS | xargs rm -rf
	# For some reason it is necessary to remove empty-dirs in doc
	-rm -rf debian/tmp/usr/include debian/tmp/usr/share/aclocal debian/tmp/usr/lib debian/tmp/usr/bin \
	        debian/tmp/usr/share/idzebra

	dh_builddeb -p idzebra

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

zebrarelease:
	# Conveniency target for building zebra
	dh_testdir
	dpkg-buildpackage $(EXTRA_OPTS) -rfakeroot
