#!/usr/bin/make -f

# SpamAssassin debian/rules
# Duncan Findlay

# Based on sample debian/rules by Joey Hess
# And patches from various people (see changelog)

#export DH_VERBOSE=1

DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk

# The architecture-dependent portion of this package can be built separately
# (i.e. without building the rest).

# Bad things could probably happen if we run this in parallel
.NOTPARALLEL:

ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -g
endif
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
	INSTALL_PROGRAM += -s
endif

# For building both spamc and spamassassin
configure: configure-stamp
configure-stamp:

	dh_testdir

	perl Makefile.PL INSTALLDIRS=vendor \
	 DESTDIR=$(CURDIR)/debian/spamassassin \
	 CONFDIR=/etc/spamassassin LDFLAGS="$(LDFLAGS)" \
	 ENABLE_SSL=yes < /dev/null

	touch configure-stamp

build: build-indep build-arch

install: install-indep install-arch

binary: binary-indep binary-arch

clean: clean1
clean1:
	dh_testdir
	dh_testroot
	rm -f build-indep-stamp build-arch-stamp configure-stamp

	[ ! -f Makefile ] || $(MAKE) veryclean

	rm -f spamd/spamc.1p sa-awl.1p sa-check_spamd.1p
	rm -Rf t/log/*
	rm -f debian/semantic.cache

	dh_clean

#debian/po/templates.pot: debian/spamassassin.templates
#	-debconf-updatepo

# Spamassassin ONLY

build-indep: build-indep-stamp
#build-indep-stamp: configure debian/po/templates.pot
build-indep-stamp: configure-stamp

	dh_testdir

	$(MAKE) CFLAGS="$(CPPFLAGS) $(CFLAGS)" CFCCFLAGS="" CFLIBS=""

ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	$(MAKE) test
endif


	pod2man sa-awl.raw sa-awl.1p
	pod2man sa-check_spamd.raw sa-check_spamd.1p
	touch build-indep-stamp

install-indep: install-spamassassin

# SpamAssassin

install-spamassassin: build-indep
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs -i

	$(MAKE) install DESTDIR=`pwd`/debian/spamassassin


#	Get rid of SPAMC stuff.
	rm debian/spamassassin/usr/bin/spamc debian/spamassassin/usr/share/man/man1/spamc.1p
#	...and sa-compile
	rm debian/spamassassin/usr/bin/sa-compile debian/spamassassin/usr/share/man/man1/sa-compile.1p

	dh_install -psa-compile sa-compile /usr/bin
	install -o root -g root -m664 debian/sa-compile.pre debian/sa-compile/etc/spamassassin
	dh_installman -psa-compile

#	Move spamd to /usr/sbin + fix the man file
	sed 's#SPAMD 1#SPAMD 8#' \
	 debian/spamassassin/usr/share/man/man1/spamd.1p \
	 > debian/spamassassin/usr/share/man/man8/spamd.8p
	rm debian/spamassassin/usr/share/man/man1/spamd.1p

	mv debian/spamassassin/usr/bin/spamd debian/spamassassin/usr/sbin/

#	Install Debian specific files
	cp debian/65_debian.cf debian/spamassassin/etc/spamassassin/65_debian.cf

	install -o root -g root -m644 debian/GPG.KEY debian/spamassassin/usr/share/spamassassin/GPG.KEY

	-rmdir -p debian/spamassassin/usr/lib/perl5

	cp ldap/README debian/spamassassin/usr/share/doc/spamassassin/README.ldap
	cp spamd/README debian/spamassassin/usr/share/doc/spamassassin/README.spamd
	cp pkgrules/* debian/spamassassin/usr/share/spamassassin

binary-indep: build-indep install-indep
	dh_testdir -i
	dh_testroot -i
	dh_installman -i sa-awl.1p sa-check_spamd.1p
	dh_installdocs -i
	dh_installexamples -i
	dh_systemd_enable -i --no-enable
	dh_installinit -i --no-enable --no-start
	dh_systemd_start -i --no-start
	dh_installcron -i
	dh_installchangelogs Changes -i
	dh_lintian
	dh_link -i
	dh_compress -i -XGPG.KEY
	dh_fixperms -i
	dh_installdeb -i
	dh_perl -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

# spamc ONLY

build-arch: build-arch-stamp
#build-arch-stamp: configure debian/po/templates.pot
build-arch-stamp: configure-stamp

	dh_testdir

	-mkdir -p blib/man1

	$(MAKE) CFCCFLAGS="" CFLAGS="$(CPPFLAGS) $(CFLAGS)" \
	  CFLIBS="" spamc/spamc

	pod2man spamc/spamc.pod blib/man1/spamc.1p

	touch build-arch-stamp

install-arch: DH_OPTIONS=
install-arch: build-arch-stamp
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs -a

	cp spamc/spamc debian/spamc/usr/bin/spamc

binary-arch: build-arch-stamp install-arch
	dh_testdir -a
	dh_testroot -a
	dh_installdocs -a
	dh_installman -a
	dh_installchangelogs Changes -a
	dh_strip -a
	dh_compress -a
	dh_fixperms -a
	dh_installdeb -a
	dh_shlibdeps -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

.PHONY: build build-indep build-arch clean clean1 binary-indep binary-arch binary install configure install-indep install-indep-docs install-arch