#!/usr/bin/make -f

LOGROTATE_VER=$(shell LC_ALL=C apt-cache policy logrotate | awk '/Candidate:/ { print $$2 }')
LOGROTATE38=$(shell dpkg --compare-versions $(LOGROTATE_VER) ge 3.8 && echo yes)
SRCDIR = $(CURDIR)
include /usr/share/postgresql-common/pgxs_debian_control.mk

supported_versions := $(shell pg_buildext supported-versions $(CURDIR))

%:
	dh $@ --with autotools_dev

clean: debian/control prep
.PHONY: debian/control

.PHONY: prep
prep:
	rm -f debian/postgresql-?.?-slony1-2.install
	for v in $(supported_versions); do echo "usr/lib/postgresql/$$v/lib/" >debian/postgresql-$$v-slony1-2.install || exit; done

common_configure_options = --with-pgsharedir=/usr/share/slony1 --sysconfdir=/etc/slony1

override_dh_auto_configure:
	dh_auto_configure -- $(common_configure_options) --with-docs --with-docdir=/NOTUSED --with-perltools --with-perlsharedir=/usr/share/slony1 --with-pgpkglibdir=/tmp
	for v in $(supported_versions); do ( mkdir -p build-$$v/src/backend && ln -s $(CURDIR)/src/backend/Makefile build-$$v/src/backend/ && cd build-$$v/ && ../configure $(common_configure_options) --with-pgconfigdir=/usr/lib/postgresql/$$v/bin --with-pgpkglibdir=/usr/lib/postgresql/$$v/lib ) || exit; done

altperl_scripts = slon_kill slon_start slon_status slon_watchdog slon_watchdog2 slonik_build_env \
	slonik_add_node slonik_create_set slonik_drop_node slonik_drop_sequence slonik_drop_set slonik_drop_table slonik_execute_script \
	slonik_failover slonik_init_cluster slonik_merge_sets slonik_move_set slonik_print_preamble slonik_restart_node \
	slonik_store_node slonik_subscribe_set slonik_uninstall_nodes slonik_unsubscribe_set slonik_update_nodes \
	slony_show_configuration

override_dh_auto_build:
	+dh_auto_build
	for v in $(supported_versions); do $(MAKE) -C build-$$v/src/backend slony1_funcs.so VPATH=$(CURDIR)/src/backend || exit; done
	for f in $(altperl_scripts); do \
	  sed "s/@program@/$$f/g;s/@PROGRAM@/\U$$f/g" debian/altperl.1.in >debian/$$f.1 || exit $?; \
	done

override_dh_auto_clean:
	test ! -f GNUmakefile || $(MAKE) distclean
	rm -f doc/adminguide/slony.xml
	rm -f $(altperl_scripts:%=debian/%.1)
	for v in $(supported_versions); do rm -rf build-$$v/ || exit; done
	rm -f tests/random_number tests/random_string

override_dh_auto_install:
	+dh_auto_install
	for v in $(supported_versions); do install -D $(CURDIR)/build-$$v/src/backend/slony1_funcs.so $(CURDIR)/debian/tmp/usr/lib/postgresql/$$v/lib/slony1_funcs.so || exit; done
	(echo -n "module:Recommends="; for v in $(supported_versions); do echo -n "postgresql-$$v-slony1-2 |"; done) >>debian/slony1-2-bin.substvars

override_dh_installinit:
	dh_installinit --name=slony1

override_dh_installlogrotate:
	dh_installlogrotate --name=slony1
ifeq ($(LOGROTATE38),)
	sed -i -e 's/	su/	#su/' debian/slony1-2-bin/etc/logrotate.d/slony1
endif

override_dh_installdocs:
	dh_installdocs $(addprefix -X,[^1]\.1 [^7]\.7 \.dia \.dsl \.sgml \.sql \.xml \.xsl HTML\.index Makefile)

override_dh_compress:
	dh_compress -X\.pl -X\.sh

override_dh_gencontrol:
ifeq ($(LOGROTATE38),yes)
	# logrotate >= 3.8: depend on new logrotate version
	dh_gencontrol -- -Vlogrotate:version="(>= 3.8)"
else
	# logrotate < 3.8: depend on logrotate, and declare breaks new version
	dh_gencontrol -- -Vlogrotate:breaks="logrotate (>= 3.8)"
endif
