#!/usr/bin/make -f
# debian/rules for arb using quilt

# Uncomment this to turn on verbose mode. 
#export DH_VERBOSE=1

pkg := $(shell dpkg-parsechangelog | sed -n 's/^Source: //p')
pkgcom=$(pkg)-common
pkgdoc=$(pkg)-doc
common=debian/$(pkgcom)

ARBHOME=$(CURDIR)

BITARCH := $(shell dpkg-architecture -qDEB_BUILD_ARCH_BITS)
ifeq ($(BITARCH),64)
    ARB_64:=1
else
    ARB_64:=0
endif

%:
	dh $@

override_dh_auto_build:
	mkdir -p LIBLINK MAKEBIN lib/help
	export LC_ALL=C ; \
	export PATH=$(ARBHOME)/bin:$${PATH} ; \
	export LD_LIBRARY_PATH=$(ARBHOME)/lib:$${LD_LIBRARY_PATH} && \
	  $(MAKE) DEBIAN=1 ARBHOME=$(ARBHOME) ARB_64=$(ARB_64) \
	  CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" -lm \
	  all && \
	export LD_LIBRARY_PATH=$(ARBHOME)/lib:$${LD_LIBRARY_PATH} && \
	  $(MAKE) DEBIAN=1 ARBHOME=$(ARBHOME) ARB_64=$(ARB_64) \
	  CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" -lm \
	  arbxtras
	export LD_LIBRARY_PATH=$(ARBHOME)/lib:$${LD_LIBRARY_PATH}; \
	  cd HELP_SOURCE; $(MAKE) ARBHOME=$(ARBHOME) html
	#Ensure arb_edit4 was actually built
	ls bin/arb_edit4

# Remove links inside these directories because Makefile does not really clean
# these directories
DIRSTOREMOVELINKS=AWT ARBDBS ARBDB2 EDIT4 LIBLINK MAKEBIN NALIGNER NAMES_COM ORS_COM PROBE PROBE_COM PROBE_SERVER TOOLS bin lib/inputMasks lib/help
# The following subdirectorys where created at compile time in some directories
# but will not be removed by clean target
SUBDIRSTOREMOVE=GENC GENH O
# Sometimes clean target does not work as expected.  Try to clean some dirs manually
DIRSTOCLEAN=AISC AISC_MKPTPS SOURCE_TOOLS

RemoveFromSourceAndBuild=PERL2ARB/Makefile PERL2ARB/ARB.c HELP_SOURCE/date.xsl \
                         lib/arb_tcp.dat lib/ARB.pm \
			 *.last_gcc TEMPLATES/arb_build.h \
			 GDE/MOLPHY/prot_tml.h \
			 PERL2ARB/perlmain.c \
			 PERL2ARB/ARB.bs PERL_SCRIPTS/test/test.stamp PERL2ARB/MYMETA.yml
FILESTOREMOVE=libXm.so.3 NALIGNER/NALIGNER.com lib/nas/names.dat $(RemoveFromSourceAndBuild)
DIRSTOREMOVE=INCLUDE HELP_SOURCE/Xml lib/help lib/help_html PERL5 lib/perl5 PROBE_SERVER/bin PERL2ARB/blib/man3 PROBE_SET/bin
DirsToKeepOnlyMAKEFILE=bin

override_dh_auto_clean:
	# Make does only work if config.makefile exists which is only the
	# case when quilt has installed the patches.  So there is neither
	# a need nor the expection of success if config.makefile is missing
	[ ! -f config.makefile ] || $(MAKE) DEBIAN=1 ARBHOME=$(ARBHOME) clean
	
	# fix broken clean process
	find . -type f -name "*.a"  -delete
	find . -type f -name "*.o"  -delete
	find . -type f -name "*.so" -delete
	rm -f `find bin -name "arb*" | grep -v ".pl$$"`
	rm -f `find $(DIRSTOREMOVELINKS) -type l`
	rm -f `find . -type f -name ".depends"`
	for dir in $(SUBDIRSTOREMOVE) ; do \
	   rm -rf `find . -name $${dir} -type d` ; \
	done
	rm -f `find $(DirsToKeepOnlyMAKEFILE) -maxdepth 1 -type f | grep -v Makefile`
	rm -f `find PROBE_WEB/CLIENT -name \*.class -type f`
	rm -f `find PROBE_WEB/CLIENT -name \*.jar -type f`
	rm -f $(FILESTOREMOVE)
	rm -fr $(DIRSTOREMOVE)
	for dtc in $(DIRSTOCLEAN); do if [ -d $${dtc} ] ; then cd $${dtc}; make clean ; fi; done
	find . -name "*.stamp" -o -name "*.bs" -o -name ".exists" -delete

override_dh_install:
	dh_install
	# remove files from arb package which are in arb-nas
	if [ -s debian/arb-nas.install ] ; then \
	    for arbfile in `sed 's?^bin/\([^[:space:]]\+\)[[:space:]]\+\(.\+\)?debian/$(pkg)/\2/\1?' debian/arb-nas.install | grep debian/$(arb)` ; do \
		rm -f $${arbfile} ; \
	    done ; \
	fi

	# the check is needed to make sure it will not fail when doing binary-arch only builds
	if [ -e debian/$(pkgcom)/usr/lib/arb/SH/arb_create_debian_conffile ] ; then \
	    # Move SH/README to docs \
	    cp -a SH/README debian/$(pkgcom)/usr/share/doc/arb/README_SH ; \
	    # Fix permission of scripts \
	    chmod a+x debian/$(pkgcom)/usr/lib/arb/SH/arb_create_debian_conffile ; \
	    chmod a+x debian/$(pkgcom)/usr/lib/arb/lib/macro.head ; \
	fi

	# Man page is not really needed and throws just a lintian warning
	# mkdir `pwd`/debian/$(pkg)/usr/share/man/man3
	# perldoc PERL2ARB/ARB.pm > `pwd`/debian/$(pkg)/usr/share/man/man3/ARB.3pm


override_dh_strip:
	# Fix rpath issue (once libarb is installed)
	if [ -e debian/libarb/usr/lib/arb/lib/ARB.so ] ; then \
	    chrpath --delete debian/libarb/usr/lib/arb/lib/ARB.so ; \
	fi
	dh_strip

override_dh_shlibdeps:
	dh_shlibdeps -a -l debian/libarb/usr/lib

override_dh_builddeb:
	dh_builddeb -- -Z xz

# To update po files as recommended in po-debconf(7) 
debian/po/templates.pot: debian/arb-common.templates
	@debconf-updatepo
