#!/usr/bin/make -f
# -*- makefile -*-
export DH_VERBOSE=1
# export DH_OPTIONS="-p sogo"

DESTDIR=$(CURDIR)/debian/tmp
DIST_CODENAME=$(shell lsb_release -cs)

# Debian 6
ifeq ($(DIST_CODENAME), squeeze)
SAML2_CONFIG=--enable-saml2
SODIUM_CONFIG=--disable-sodium
endif

# Debian 7
ifeq ($(DIST_CODENAME), wheezy)
SODIUM_CONFIG=--disable-sodium
endif

# Debian 8
ifeq ($(DIST_CODENAME), jessie)
SODIUM_CONFIG=--disable-sodium
endif

# Debian 9
ifeq ($(DIST_CODENAME), stretch)
MFA_CONFIG=--enable-mfa
endif

# Debian 10
ifeq ($(DIST_CODENAME), buster)
MFA_CONFIG=--enable-mfa
endif

# Ubuntu 12.04
ifeq ($(DIST_CODENAME), precise)
SODIUM_CONFIG=--disable-sodium
endif

# Ubuntu 14.04
ifeq ($(DIST_CODENAME), trusty)
SODIUM_CONFIG=--disable-sodium
endif

# Ubuntu 16.04
ifeq ($(DIST_CODENAME), xenial)
MFA_CONFIG=--enable-mfa
SODIUM_CONFIG=--disable-sodium
endif

# Ubuntu 18.04
ifeq ($(DIST_CODENAME), bionic)
MFA_CONFIG=--enable-mfa
endif

# Ubuntu 20.04
ifeq ($(DIST_CODENAME), focal)
MFA_CONFIG=--enable-mfa
endif

include /etc/GNUstep/GNUstep.conf
include /usr/share/GNUstep/Makefiles/common.make

config.make: configure
	dh_testdir
	./configure $(SAML2_CONFIG) $(MFA_CONFIG) $(SODIUM_CONFIG)

#Architecture
build: build-arch

build-arch: build-arch-stamp
build-arch-stamp:  config.make
#	 Add here commands to compile the arch part of the package.
	$(MAKE)
	(cd ActiveSync && $(MAKE))
	touch $@

clean:
	dh_testdir
	dh_testroot
	rm -f build-arch-stamp
	( cd Tests/Integration; make clean )
	rm -f Tests/Integration/config.py
	-find Tests -name "*.pyc" -exec rm -f {} \;
	if [ -f config.make ]; \
	then \
	  $(MAKE) clean; \
	fi
	-rm -f config.make
	(cd ActiveSync; $(MAKE) clean); \
	dh_clean

install: install-arch
	dh_testdir
	dh_testroot
#	dh_prep -i
#	dh_installdirs -i
#	dh_install -i

install-arch: build-arch
	dh_testdir
	dh_testroot
	dh_prep
#	dh_installdirs -s

	$(MAKE) DESTDIR=$(DESTDIR) GNUSTEP_INSTALLATION_DOMAIN=SYSTEM install
	(cd ActiveSync; $(MAKE) DESTDIR=$(DESTDIR) GNUSTEP_INSTALLATION_DOMAIN=SYSTEM install)

	install -D -m 644 Scripts/sogo-default debian/tmp/etc/default/sogo
	install -D -m 644 debian/sogo.overrides debian/tmp/usr/share/lintian/overrides/sogo
	install -D -m 644 Apache/SOGo.conf debian/tmp/etc/apache2/conf.d/SOGo.conf
	install -D -m 644 Scripts/sogo.cron debian/tmp/etc/cron.d/sogo
	install -D -m 644 Scripts/logrotate debian/tmp/etc/logrotate.d/sogo
	install -d -m 750 debian/tmp/etc/sogo/
	install -D -m 640 Scripts/sogo.conf debian/tmp/etc/sogo/sogo.conf

# Build architecture dependant packages using the common target.
binary-arch: build-arch install-arch
	dh_testdir
	dh_testroot
	dh_installinit -R
	dh_installcron
	dh_installchangelogs ChangeLog
	dh_installdocs
#	dh_installexamples
	dh_installman
	dh_install
	dh_link
	dh_strip --dbg-package=sogo-dbg
#	workaround for http://sourceware.org/bugzilla/show_bug.cgi?id=9538
#	to let gdb find the symbols for libSOGo
	( cd debian/sogo-dbg/usr/lib/debug/usr/lib/; \
	  ln -s GNUstep/Frameworks/SOGo.framework/Versions/*/libSOGo* ./ )
	dh_compress -X.py -X.sh
	dh_fixperms
	dh_makeshlibs -X/usr/lib/mapistore_backends
	dh_shlibdeps
	dh_installdeb
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary-indep: build install
# We have nothing to do by default.

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