#!/usr/bin/make -f
# debian/rules for collectd
#
# Written by Sebastian Harl <sh@tokkee.org>.

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

# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_ARCH      ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)

CFLAGS = -Wall -g -I$(CURDIR)/debian/include

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -O0
else
	CFLAGS += -O2
endif

include /usr/share/dpatch/dpatch.make

confflags = --host=$(DEB_HOST_GNU_TYPE) \
			--build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr \
			--mandir=\$${prefix}/share/man \
			--localstatedir=/var --sysconfdir=/etc \
			--with-perl-bindings="INSTALLDIRS=vendor" \
			--enable-debug

# These plugins do not provide any functionality under Linux.
confflags += --disable-apple_sensors --disable-tape

# The static libraries iptc, netstat and upsclient cannot be used on
# 64bit systems (see bugs #358637 and #419684 for more details).
ifneq (,$(findstring $(DEB_BUILD_ARCH),alpha amd64 hppa ia64 ppc64))
	confflags += --disable-iptables --disable-netlink --disable-nut
endif

config.status: configure $(DPATCH_STAMPFN)
	dh_testdir
	CFLAGS="$(CFLAGS)" ./configure $(confflags)

build: build-stamp

build-stamp: config.status
	dh_testdir
	
	$(MAKE)
	perl ./debian/bin/check_plugins.pl
	
	touch build-stamp

clean: unpatch
	dh_testdir
	dh_testroot
	rm -f build-stamp
	
	[ ! -f Makefile ] || $(MAKE) distclean
	
	rm -f debian/README.Debian.plugins
	
	dh_clean 
	debconf-updatepo

install-indep:
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs -i
	
	include_dir=debian/collectd-dev/usr/include/collectd/ \
		&& mkdir -p $$include_dir \
		&& cp src/*.h $$include_dir

install-arch: build
	dh_testdir
	dh_testroot
	dh_clean -k 
	dh_installdirs -a
	
	$(MAKE) install DESTDIR=$(CURDIR)/debian/collectd
	
	rm -f debian/collectd/usr/lib/collectd/*.la
	
	rm -f debian/collectd/etc/collectd.conf
	install -D -m 0644 debian/collectd.conf \
		debian/collectd/etc/collectd/collectd.conf
	install -m 0644 debian/collection.conf \
		debian/collectd/etc/collectd/collection.conf
	
	mkdir -p debian/collectd/usr/lib/collectd/utils/
	for UTIL in extractDS.px migrate-3-4.px; do \
		cp contrib/$$UTIL debian/collectd/usr/lib/collectd/utils/; \
	done
	
	perl ./debian/bin/gen_plugin_deps.pl
	
	mkdir -p debian/collectd/usr/share/lintian/overrides/
	cp debian/collectd.overrides \
		debian/collectd/usr/share/lintian/overrides/collectd

binary-indep: install-indep
	dh_testdir
	dh_testroot
	dh_installchangelogs -i ChangeLog
	dh_installdocs -A -i debian/README.Debian AUTHORS README TODO
	dh_installexamples -i contrib/examples/myplugin.c \
		contrib/examples/MyPlugin.pm
	dh_compress -i -Xexamples/myplugin.c -Xexamples/MyPlugin.c
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

binary-arch: build install-arch
	dh_testdir
	dh_testroot
	dh_installchangelogs -a ChangeLog
	dh_installdocs -A -a debian/README.Debian AUTHORS README TODO
	dh_installdocs -a debian/NEWS.Debian debian/README.Debian.plugins
	dh_installexamples -a contrib/collectd2html.pl contrib/collection.cgi \
		contrib/exec-munin.conf contrib/exec-munin.px contrib/exec-smartctl \
		contrib/SpamAssassin/ contrib/iptables/ contrib/cussh.pl \
		contrib/snmp-data.conf
	dh_installdebconf -a
	dh_installinit -a -- defaults 95
	dh_installman -a src/collectd.1 src/collectd.conf.5
	dh_link -a
	dh_strip -a --dbg-package=collectd-dbg
	dh_compress -a
	dh_fixperms -a
	dh_installdeb -a
	dpkg-shlibdeps -Tdebian/collectd.substvars \
		-dDepends debian/collectd/usr/bin/* debian/collectd/usr/sbin/* \
		-dRecommends debian/collectd/usr/lib/collectd/*.so
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

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

