#!/usr/bin/make -f
#
# Finally switching to debhelper.
#
# Not using debhelper was an exercise suggested to me by my AM (Gergely
# Nagy). It was educating at the time but I finally decided that the
# exercise is over now.
#

export PYTHON = python3

# Include the bitlbee-libpurple variant and OTR plugin by default.
BITLBEE_LIBPURPLE ?= 1
BITLBEE_OTR ?= plugin
BITLBEE_CONFIGURE_FLAGS ?=
DEBUG ?= 0

ifndef BITLBEE_VERSION
# Want to use the full package version number instead of just the release.
BITLBEE_CONFIGURE_VERSION ?= BITLBEE_VERSION="$(shell dpkg-parsechangelog | awk '/^Version:/ {print $$2}')"
endif

ifneq ($(BITLBEE_LIBPURPLE),1)
DH_OPTIONS += -Nbitlbee-libpurple
endif

ifneq ($(BITLBEE_OTR),plugin)
DH_OPTIONS += -Nbitlbee-plugin-otr
endif

CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS)
CFLAGS:=$(shell dpkg-buildflags --get CFLAGS)
LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS)

CONFIGURE_OVERRIDES:=CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"

HAS_DH_SYSTEMD:=$(shell dpkg-query -W -f='$${Status}' dh-systemd 2>/dev/null | grep -c "ok installed")

build-arch: build

build: build-stamp
build-stamp:
	dh_testdir

	mkdir -p debian/build-native
	ROOT=$$PWD; cd debian/build-native; $(BITLBEE_CONFIGURE_VERSION) $(CONFIGURE_OVERRIDES) $$ROOT/configure --debug=$(DEBUG) --prefix=/usr --etcdir=/etc/bitlbee --events=libevent --otr=$(BITLBEE_OTR) --systemdsystemunitdir=/lib/systemd/system --pcdir=/usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig $(BITLBEE_CONFIGURE_FLAGS)
	$(MAKE) -C debian/build-native

ifeq ($(BITLBEE_LIBPURPLE),1)
	mkdir -p debian/build-libpurple
	ROOT=$$PWD; cd debian/build-libpurple; $(BITLBEE_CONFIGURE_VERSION) $(CONFIGURE_OVERRIDES) $$ROOT/configure --debug=$(DEBUG) --prefix=/usr --etcdir=/etc/bitlbee --systemdsystemunitdir=/lib/systemd/system --pcdir=/usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig --purple=1 $(BITLBEE_CONFIGURE_FLAGS)
	$(MAKE) -C debian/build-libpurple
endif

	$(MAKE) -C doc
	$(MAKE) -C doc/user-guide

	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp

	rm -rf build-arch-stamp debian/build-* debian/bitlbee-libpurple.prerm
	$(MAKE) distclean

	dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

	$(MAKE) -C debian/build-native install-bin DESTDIR=`pwd`/debian/bitlbee
	$(MAKE) -C debian/build-native install-etc install-doc DESTDIR=`pwd`/debian/bitlbee-common
	$(MAKE) -C debian/build-native install-dev DESTDIR=`pwd`/debian/bitlbee-dev
	$(MAKE) -C debian/build-native install-plugin-otr DESTDIR=`pwd`/debian/bitlbee-plugin-otr

ifeq ($(HAS_DH_SYSTEMD),1)
	$(MAKE) -C debian/build-native install-systemd DESTDIR=`pwd`/debian/bitlbee-common
endif

ifeq ($(BITLBEE_LIBPURPLE),1)
	$(MAKE) -C debian/build-libpurple install-bin DESTDIR=`pwd`/debian/bitlbee-libpurple
	ln -sf debian/bitlbee.prerm debian/bitlbee-libpurple.prerm
endif

	patch debian/bitlbee-common/etc/bitlbee/bitlbee.conf debian/patches/bitlbee.conf.diff
	chmod 640 debian/bitlbee-common/etc/bitlbee/bitlbee.conf

binary-common:
	dh_testdir
	dh_testroot

	dh_installexamples
	dh_installdocs --link-doc=bitlbee-common
	dh_installchangelogs doc/CHANGES
	dh_installdebconf
ifeq ($(HAS_DH_SYSTEMD),1)
	dh_systemd_enable -p bitlbee-common --no-enable bitlbee.socket
	dh_systemd_enable -p bitlbee-common bitlbee.service
	dh_installinit -p bitlbee-common --init-script=bitlbee
	dh_systemd_start -p bitlbee-common
else
	dh_installinit -p bitlbee-common --init-script=bitlbee
endif
	dh_installman
	dh_lintian
	dh_strip
	dh_link
	dh_compress
	dh_fixperms
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary-arch: build install
	DH_OPTIONS=-a $(MAKE) -f debian/rules binary-common

binary-%: build install
	DH_OPTIONS=-p$* $(MAKE) -f debian/rules binary-common

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