#!/usr/bin/make -f

export DH_VERBOSE=1

export DEB_BUILD_MAINT_OPTIONS = hardening=+all

# TODO - migrate all binary JARs to use the packaged versions instead.
#  activation.jar never used??  Or sould we use the system version?
#  Note activation.jar was included in upstream but unused.
#export CLASSPATH=/usr/share/java/activation.jar:

%:
	dh $@

include /usr/share/dpkg/default.mk
VERSION=$(DEB_VERSION_UPSTREAM)
RENAMED := cons pscan

# Disable java packages on architecture that don't have
# an openjdk port.
nojava_archs = hppa
ifneq (,$(filter $(DEB_HOST_ARCH), $(nojava_archs)))
export DEB_BUILD_PROFILES += nojava
endif

EMBOSS-TMP  = $(CURDIR)/debian/emboss_tmp
EMBOSS      = $(CURDIR)/debian/emboss
EMBOSS-TEST = $(CURDIR)/debian/emboss-test
EMBOSS-LIB  = $(CURDIR)/debian/emboss-lib

CONFFLAGS    = --bindir=/usr/lib/emboss
CONFFLAGS   += --libdir=/usr/lib/emboss/lib
CONFFLAGS   += --includedir=/usr/lib/emboss/include
CONFFLAGS   += --enable-systemlibs

ifeq ($(filter nojava,$(DEB_BUILD_PROFILES)),)
CONFFLAGS   += --with-java=/usr/lib/jvm/default-java/include
CONFFLAGS   += --with-javaos=/usr/lib/jvm/default-java/include/linux
endif

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

DEB_LDFLAGS += -lexpat
DEB_LDFLAGS += $(shell mysql_config --libs)
DEB_LDFLAGS += -lpq
DEB_LDFLAGS += $(shell dpkg-buildflags --get LDFLAGS)
#DEB_LDFLAGS += $(shell pg_config  | grep LIBS | cut -f2 -d=)

override_dh_auto_configure:
	dh_auto_configure -- $(CONFFLAGS)

override_dh_auto_build:
	dh_auto_build -- AJAX_FIXED_ROOT=\\\"/usr/share/EMBOSS\\\" CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(DEB_LDFLAGS)"
ifeq ($(filter nojava,$(DEB_BUILD_PROFILES)),)
	# Add 2 extra files wanted in jemboss.jar
	cd jemboss/lib && make jemboss.jar
	cd jemboss && jar uf lib/jemboss.jar resources/version resources/*.properties
endif

override_dh_clean:
	rm -rf debian/emboss_tmp
	find jemboss/ -type f -name "*.class" -delete
	[ ! -d debian/testbackup ] || ( $(RM) --recursive test ; mv debian/testbackup test )
	dh_clean  --exclude=feattext.html~ config.status test-stamp install-stamp
	rm -f jemboss/runJemboss.sh
	rm -f jemboss/utils/makeJar.csh
	rm -f jemboss/lib/jemboss.jar jemboss/resources/resources.jar jemboss/lib/activation.jar
	find test '(' -name 'Makefile' -o -name 'Makefile.in' ')' -delete
	rm -f config.guess

override_dh_auto_install-arch:
	### Binaries and data go to a temporary dir before being moved to their own package ###
	$(MAKE) -C emboss install DESTDIR=$(EMBOSS-TMP)

	# Make symbolic links from /usr/bin to /usr/lib/emboss
	cd $(EMBOSS)/usr/bin/ ; \
		for i in $(EMBOSS-TMP)/usr/lib/emboss/* ; \
		do ln -sf ../lib/emboss/`basename $$i` . ; \
		done

	### Renaming conflicting binaries (see also in binary-arch) ###
	for i in $(RENAMED) ; \
		do mv $(EMBOSS)/usr/bin/$$i $(EMBOSS)/usr/bin/em_$$i ; \
		done

	### EMBOSS libraries go in the emboss-lib package. ###
	$(MAKE) -C ajax install DESTDIR=$(EMBOSS-LIB)
	$(MAKE) -C nucleus install DESTDIR=$(EMBOSS-LIB)
	$(MAKE) -C plplot install DESTDIR=$(EMBOSS-LIB)
	find $(EMBOSS-LIB)/usr/lib -name '*.la' -exec rm {} \;

	### Documentation goes in emboss-doc. ###
	$(MAKE) -C doc install DESTDIR=$(CURDIR)/debian/emboss-doc
	antiword debian/emboss-doc/usr/share/EMBOSS/doc/manuals/domainatrix.doc > debian/emboss-doc/usr/share/EMBOSS/doc/manuals/domainatrix.txt
	# Remove this file when the relicenced file becomes part of the upstream tarball.
	uudecode -o debian/emboss-doc/usr/share/EMBOSS/doc/manuals/EMBOSS_qg.pdf debian/EMBOSS_qg_new.pdf.uu

override_dh_auto_install-indep:
	### While the next call repeats a statement from install-arch it is needed to get the
	### data dir right into place.  Make should be clever enough to not duplicate the process
	$(MAKE) -C emboss install DESTDIR=$(EMBOSS-TMP)
ifeq ($(filter nojava,$(DEB_BUILD_PROFILES)),)
	$(MAKE) -C jemboss install DESTDIR=$(CURDIR)/debian/jemboss bindir=/usr/bin
	# install target seems to remove executable flag which is claimed by lintian
	find debian/jemboss/usr/share/EMBOSS/jemboss/utils -type f -not -executable -name "*sh" -exec chmod a+x \{\} \;
	# dangling LICEN[CS]E FILE
	rm debian/jemboss/usr/share/EMBOSS/jemboss/LICENSE
	# resources.jar not needed as we use the data files in /usr/share/EMBOSS/data/
	rm -f debian/jemboss/usr/share/EMBOSS/jemboss/resources/resources.jar
endif

	### Installation of the test suite
	cp -a test debian/emboss-test/usr/share/EMBOSS/
	sed -i "/SET emboss_tempdata/cSET emboss_tempdata /usr/share/EMBOSS/test" debian/emboss-test/usr/share/EMBOSS/test/.embossrc
	sed -i "/SET emboss_qadata/cSET emboss_qadata /usr/share/EMBOSS/test" debian/emboss-test/usr/share/EMBOSS/test/.embossrc
	mv debian/emboss-test/usr/share/EMBOSS/test/.embossrc debian/emboss-test/etc/emboss/embossrc.d/emboss-test
	find debian/emboss-test/usr/share/EMBOSS/test/data -executable -type f -exec chmod a-x \{\} \;
	find debian/emboss-test/usr/share/EMBOSS/test -type d -name CVS | xargs rm -rf
	find debian/emboss-test/usr/share/EMBOSS/test -type f -name .cvsignore -delete

override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	$(RM) test-stamp
	[ -d debian/testbackup ] || cp -a test debian/testbackup
	sed -i "/SET emboss_tempdata/cSET emboss_tempdata $(CURDIR)/test" test/.embossrc
	sed -i "/SET emboss_qadata/cSET emboss_qadata $(CURDIR)/test" test/.embossrc
	echo "SET emboss_acdroot $(CURDIR)/emboss/acd" >> test/.embossrc
	echo "SET emboss_data $(CURDIR)/emboss/data" >> test/.embossrc
	echo "SET emboss_docroot $(CURDIR)/doc" >> test/.embossrc
	cd test/qa && LS_COLORS='' EMBOSSRC=$(CURDIR)/test PATH=$(CURDIR)/emboss:$$PATH EMBOSS_ROOT=../../../ ./qatest.csh
endif

override_dh_installchangelogs:
	dh_installchangelogs -k ChangeLog

override_dh_installman-arch:
	dh_installman -a -p emboss
	for i in $(RENAMED) ; \
		do dh_link usr/share/man/man1/$$i.1e.gz usr/share/man/man1/em_$$i.1e.gz ; \
		done

override_dh_builddeb:
	dh_builddeb -- -Z xz


# Target to refresh the manpages; needs libemboss-acd-perl, xsltproc, docbook-xml and docbook-xsl
manpages: debian/manpages/success
debian/manpages/success:
	debian/build-manpages.sh
	echo "The manpages have been sucessfully built" > debian/manpages/success