#!/usr/bin/make -f

pcp = pcp
libpcp = libpcp3
libpcpdev = libpcp3-dev
libpcp_pmda = libpcp-pmda3
libpcp_pmdadev = libpcp-pmda3-dev
libpcp_pmda_perl = libpcp-pmda-perl
pcp_logsummary_perl = libpcp-logsummary-perl
libpcp_gui = libpcp-gui2
libpcp_guidev = libpcp-gui2-dev
libpcp_mmv = libpcp-mmv1
libpcp_mmvdev = libpcp-mmv1-dev
libpcp_mmv_perl = libpcp-mmv-perl
libpcp_trace = libpcp-trace2
libpcp_tracedev = libpcp-trace2-dev

dirpcp = debian/$(pcp)
dirlibpcp = debian/$(libpcp)
dirlibpcpdev = debian/$(libpcpdev)
dirlibpcp_pmda = debian/$(libpcp_pmda)
dirlibpcp_pmdadev = debian/$(libpcp_pmdadev)
dirlibpcp_pmda_perl = debian/$(libpcp_pmda_perl)
dirpcp_logsummary_perl = debian/$(pcp_logsummary_perl)
dirlibpcp_gui = debian/$(libpcp_gui)
dirlibpcp_guidev = debian/$(libpcp_guidev)
dirlibpcp_mmv = debian/$(libpcp_mmv)
dirlibpcp_mmvdev = debian/$(libpcp_mmvdev)
dirlibpcp_mmv_perl = debian/$(libpcp_mmv_perl)
dirlibpcp_trace = debian/$(libpcp_trace)
dirlibpcp_tracedev = debian/$(libpcp_tracedev)
alldir = $(dirpcp) $(dirlibpcp) $(dirlibpcpdev) \
		$(dirlibpcp_pmda) $(dirlibpcp_pmdadev) $(dirlibpcp_pmda_perl) \
		$(dirlibpcp_trace) $(dirlibpcp_tracedev) \
		$(dirlibpcp_gui) $(dirlibpcp_guidev) \
		$(dirlibpcp_mmv) $(dirlibpcp_mmvdev) $(dirlibpcp_mmv_perl) \
		$(dirpcp_logsummary_perl)

zip = @export GZIP=-9q
pkgpcp = $(zip); export DIST_ROOT=`pwd`/$(dirpcp);
pkglibpcp = $(zip); export DIST_ROOT=`pwd`/$(dirlibpcp);
pkglibpcp_gui = $(zip); export DIST_ROOT=`pwd`/$(dirlibpcp_gui);
pkglibpcp_mmv = $(zip); export DIST_ROOT=`pwd`/$(dirlibpcp_mmv);
pkglibpcp_pmda = $(zip); export DIST_ROOT=`pwd`/$(dirlibpcp_pmda);
pkglibpcp_trace = $(zip); export DIST_ROOT=`pwd`/$(dirlibpcp_trace);
pkglibpcp_mmv_perl = $(zip); export DIST_ROOT=`pwd`/$(dirlibpcp_mmv_perl);
pkglibpcp_pmda_perl = $(zip); export DIST_ROOT=`pwd`/$(dirlibpcp_pmda_perl);
pkgpcp_logsummary_perl = $(zip); export DIST_ROOT=`pwd`/$(dirpcp_logsummary_perl);

options = export DEBUG=-DNDEBUG AWK=gawk;
checkdir = test -f debian/rules
uninstall = cat debian/*.install | sed -e "s,^,debian/$(pcp)/," | xargs rm -f
uninstalld = rmdir debian/$(pcp)/usr/include/pcp debian/$(pcp)/usr/include

build: built
built: config
	@echo "== dpkg-buildpackage: build" 1>&2
	$(MAKE) default
	touch built

config: .census
.census:
	@echo "== dpkg-buildpackage: configure" 1>&2
	$(checkdir)
	$(options) $(MAKE) configure_pcp
	touch .census

clean:
	@echo "== dpkg-buildpackage: clean" 1>&2
	$(checkdir)
	-rm -f built .census
	$(MAKE) realclean
	-rm -rf $(alldir)
	-rm -f debian/*substvars debian/files* debian/*.debhelper

binary-indep:

binary-arch: checkroot built
	@echo "== dpkg-buildpackage: binary-arch" 1>&2
	$(checkdir)
	-rm -rf $(alldir)
	$(pkgpcp) $(MAKE) -C . install
	$(pkgpcp) $(MAKE) -C build pcp.src
	$(pkglibpcp_mmv_perl) $(MAKE) -C src/cpan/MMV install_perl
	$(pkglibpcp_pmda_perl) $(MAKE) -C src/cpan/PMDA install_perl
	$(pkgpcp_logsummary_perl) $(MAKE) -C src/cpan/LogSummary install_perl

	dh_installdocs
	dh_installchangelogs
	dh_strip
	dh_compress
	dh_fixperms
	dh_installdirs
	dh_install --sourcedir=debian/$(pcp)
	@$(uninstall)
	@$(uninstalld)
	dh_makeshlibs -N $(libpcp)
	dh_makeshlibs --package $(libpcp)
	dh_makeshlibs -N $(libpcp_pmda)
	dh_makeshlibs --package $(libpcp_pmda)
	dh_makeshlibs -N $(libpcp_trace)
	dh_makeshlibs --package $(libpcp_trace)
	dh_makeshlibs -N $(libpcp_gui)
	dh_makeshlibs --package $(libpcp_gui)
	dh_makeshlibs -N $(libpcp_mmv)
	dh_makeshlibs --package $(libpcp_mmv)
	dh_perl -p $(libpcp_mmv_perl)
	dh_perl -p $(libpcp_pmda_perl)
	dh_perl -p $(pcp_logsummary_perl)
	dh_installdeb
	dh_shlibdeps 2>/dev/null	# squash bogus and harmless warnings
	dh_gencontrol

	dh_md5sums
	dh_builddeb

binary: binary-indep binary-arch

checkroot:
	test 0 -eq `id -u`

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