#!/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
libpcp_import_perl = libpcp-import-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
libpcp_import = libpcp-import1
libpcp_importdev = libpcp-import1-dev
pcp_import_sar = pcp-import-sar2pcp
pcp_import_mrtg = pcp-import-mrtg2pcp
pcp_import_sheet = pcp-import-sheet2pcp
pcp_import_iostat = pcp-import-iostat2pcp

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)
dirlibpcp_import_perl = debian/$(libpcp_import_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)
dirlibpcp_import = debian/$(libpcp_import)
dirlibpcp_importdev = debian/$(libpcp_importdev)
dirpcp_import_sar = debian/$(pcp_import_sar)
dirpcp_import_mrtg = debian/$(pcp_import_mrtg)
dirpcp_import_sheet = debian/$(pcp_import_sheet)
dirpcp_import_iostat = debian/$(pcp_import_iostat)
allperldir = $(dirlibpcp_pmda_perl) $(dirlibpcp_import_perl) \
		$(dirpcp_logsummary_perl) $(dirlibpcp_mmv_perl)
alldir = $(dirpcp) $(dirlibpcp) $(dirlibpcpdev) $(allperldir) \
		$(dirlibpcp_pmda) $(dirlibpcp_pmdadev) \
		$(dirlibpcp_trace) $(dirlibpcp_tracedev) \
		$(dirlibpcp_gui) $(dirlibpcp_guidev) \
		$(dirlibpcp_import) $(dirlibpcp_importdev) \
		$(dirlibpcp_mmv) $(dirlibpcp_mmvdev) \
		$(dirpcp_import_sar) $(dirpcp_import_mrtg) \
		$(dirpcp_import_sheet) $(dirpcp_import_iostat) \

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_import = $(zip); export DIST_ROOT=`pwd`/$(dirlibpcp_import);
pkglibpcp_mmv_perl = $(zip); export DIST_ROOT=`pwd`/$(dirlibpcp_mmv_perl);
pkglibpcp_pmda_perl = $(zip); export DIST_ROOT=`pwd`/$(dirlibpcp_pmda_perl);
pkglibpcp_import_perl = $(zip); export DIST_ROOT=`pwd`/$(dirlibpcp_import_perl);
pkgpcp_logsummary_perl = $(zip); export DIST_ROOT=`pwd`/$(dirpcp_logsummary_perl);
pkgpcp_import_sar = $(zip); export DIST_ROOT=`pwd`/$(dirpcp_import_sar);
pkgpcp_import_mrtg = $(zip); export DIST_ROOT=`pwd`/$(dirpcp_import_mrtg);
pkgpcp_import_sheet = $(zip); export DIST_ROOT=`pwd`/$(dirpcp_import_sheet);
pkgpcp_import_iostat = $(zip); export DIST_ROOT=`pwd`/$(dirpcp_import_iostat);

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
unrpathperl = find $(allperldir) -name \*.so | xargs chrpath -d

build: build-arch build-indep
build-arch: built
build-indep: 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
	$(pkglibpcp_import_perl) $(MAKE) -C src/cpan/LogImport install_perl
	$(pkgpcp_logsummary_perl) $(MAKE) -C src/cpan/LogSummary install_perl
	$(pkgpcp_import_sar) $(MAKE) -C src/pmimport/sar2pcp install
	$(pkgpcp_import_mrtg) $(MAKE) -C src/pmimport/mrtg2pcp install
	$(pkgpcp_import_sheet) $(MAKE) -C src/pmimport/sheet2pcp install
	$(pkgpcp_import_iostat) $(MAKE) -C src/pmimport/iostat2pcp install

	dh_installdocs
	dh_installchangelogs
	dh_strip
	dh_compress
	dh_fixperms
	dh_installdirs
	dh_install --sourcedir=debian/$(pcp)
	@$(uninstall)
	@$(uninstalld)
	@$(unrpathperl)
	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_import)
	dh_makeshlibs --package $(libpcp_import)
	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 $(libpcp_import_perl)
	dh_perl -p $(pcp_logsummary_perl)
	dh_perl -p $(pcp_import_sar)
	dh_perl -p $(pcp_import_mrtg)
	dh_perl -p $(pcp_import_sheet)
	dh_perl -p $(pcp_import_iostat)
	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
