#!/usr/bin/make -f
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
#export DH_OPTIONS=-v

# Hardening
export DEB_BUILD_MAINT_OPTIONS = hardening=+all

# Multiarch support
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

%:
	dh  $@ --with autotools-dev

# Obtaining the source
version=0.9.0

get-orig-source: get-orig-source-release

get-orig-source-release:
	wget -O tdom_$(version).orig.tar.gz \
		http://tdom.org/downloads/tdom-$(version)-src.tgz


# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)

CFLAGS = -Wall -g

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -O0
else
	CFLAGS += -O2
endif
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
	INSTALL_PROGRAM += -s
endif

# Extract version information from autoconf meta-data

VERSION=$(shell grep -m 1 AC_INIT configure.in | sed -e 's/AC_INIT(\[tdom\], \[//g' -e 's/\])//g')
DEV=$(CURDIR)/debian/tdom-dev
ARCH_DEPENDENT=$(CURDIR)/debian/tdom/usr/lib/tcltk/$(DEB_HOST_MULTIARCH)

override_dh_auto_configure:
	# Add here commands to configure the package.
	( cd unix ; ../configure --host=$(DEB_HOST_GNU_TYPE) \
		--build=$(DEB_BUILD_GNU_TYPE) \
		--prefix=$(CURDIR)/debian/tdom/usr \
		--mandir=\$${prefix}/share/man \
		--infodir=\$${prefix}/share/info \
		--with-tcl=/usr/lib/$(DEB_HOST_MULTIARCH)/ \
		--libdir=\$${prefix}/lib/tcltk/$(DEB_HOST_MULTIARCH) \
		--enable-threads \
		--includedir=$(DEV)/usr/include/tdom \
		--with-expat=/usr \
		--enable-html5 )

	( cd extensions/tnc ; ./configure \
		--host=$(DEB_HOST_GNU_TYPE) \
		--build=$(DEB_BUILD_GNU_TYPE) \
		--prefix=$(CURDIR)/debian/tdom/usr \
		--mandir=\$${prefix}/share/man \
		--infodir=\$${prefix}/share/info \
		--with-tcl=/usr/lib/$(DEB_HOST_MULTIARCH)/ \
		--libdir=\$${prefix}/lib/tcltk/$(DEB_HOST_MULTIARCH) \
		--enable-threads \
		--includedir=$(DEV)/usr/include/tdom )

	( cd extensions/tdomhtml ; ./configure \
		--host=$(DEB_HOST_GNU_TYPE) \
		--build=$(DEB_BUILD_GNU_TYPE) \
		--prefix=$(CURDIR)/debian/tdom/usr \
		--mandir=\$${prefix}/share/man \
		--infodir=\$${prefix}/share/info \
		--libdir=\$${prefix}/lib/tcltk/$(DEB_HOST_MULTIARCH) \
		--includedir=$(DEV)/usr/include/tdom )

override_dh_auto_build: 
	# Add here commands to compile the package.
	( cd unix ; $(MAKE) )
	( cd extensions/tnc ; $(MAKE) )
	( cd extensions/tdomhtml ; $(MAKE) )
	#/usr/bin/docbook-to-man debian/tdom.sgml > tdom.1
	touch build-stamp

override_dh_clean: 
	rm -f build-stamp 

	# Add here commands to clean up after the build process.
	-( cd unix; [ ! -f Makefile ] || $(MAKE) distclean; )
	-( cd extensions/tnc; [ ! -f Makefile ] || $(MAKE) distclean; )
	-( cd extensions/tdomhtml; [ ! -f Makefile ] || $(MAKE) distclean; )

	dh_clean config.log config.status config.cache config.guess config.sub

override_dh_auto_install:
	# Add here commands to install the package into debian/tdom.
	# ( cd unix/ ; $(MAKE) install DESTDIR=$(CURDIR)/debian/tdom/ )
	( cd unix/ ; $(MAKE) install )
	( cd extensions/tnc ; $(MAKE) install )
	( cd extensions/tdomhtml ; $(MAKE) install)

	# remove >empty< man page for tdomhtml extension (note, there
	# is no --without-man target available)
	rm -f $(CURDIR)/debian/tdom/usr/share/man/mann/tdomhtml.n

	# fix man pages (mann > man3)
	mv $(CURDIR)/debian/tdom/usr/share/man/mann \
	$(CURDIR)/debian/tdom/usr/share/man/man3
	(cd $(CURDIR)/debian/tdom/usr/share/man/man3 && \
		for f in ./*; do \
		     	f2=$$(echo $$f | sed -e 's/\.n/\.3tcl/'); \
		 	cat $$f | sed -e 's/^\.TH \([^ ]\+\|"[^"]\+"\) \(3\|n\)/.TH \1 3tcl/' > $$f2; \
			rm $$f; \
		done)
	# tdom-dev
	# install -d -m 755 -o root -g root $(DEV)/usr/include/tdom
	# cp -R $(TARGET)/usr/include/tdom/* $(DEV)/usr/include/tdom

	# move and fix tdomConfig.sh
	install -d -m 755 -o root -g root $(DEV)/usr/lib/tcltk/$(DEB_HOST_MULTIARCH)/tdom$(VERSION)
	mv $(ARCH_DEPENDENT)/tdomConfig.sh $(DEV)/usr/lib/tcltk/$(DEB_HOST_MULTIARCH)/tdom$(VERSION)/

	perl -i -p \
	-e "s|^(TDOM_BUILD_STUB_LIB_SPEC)=.*$$|\1='-L/usr/lib/tcltk/$(DEB_HOST_MULTIARCH)/tdom$(VERSION) -ltdomstub$(VERSION)'|;" \
	-e "s|^(TDOM_BUILD_STUB_LIB_PATH)=.*$$|\1='/usr/lib/tcltk/$(DEB_HOST_MULTIARCH)/tdom$(VERSION)/libtdomstub$(VERSION).a'|;" \
	-e "s|^(TDOM_STUB_LIB_SPEC)=.*$$|\1='-L/usr/lib/tcltk/$(DEB_HOST_MULTIARCH)/tdom$(VERSION) -ltdomstub$(VERSION)'|;" \
	-e "s|^(TDOM_STUB_LIB_PATH)=.*$$|\1='/usr/lib/tcltk/$(DEB_HOST_MULTIARCH)/tdom$(VERSION)/libtdomstub$(VERSION).a'|;" \
	$(DEV)/usr/lib/tcltk/$(DEB_HOST_MULTIARCH)/tdom$(VERSION)/tdomConfig.sh

	#install -d -m 755 -o root -g root $(DEV)/usr/lib/tcltk/tdom$(VERSION)

	# `- provide symlinks 
	(cd $(DEV)/usr/lib/$(DEB_HOST_MULTIARCH); \
	ln -sf ../../lib/tcltk/$(DEB_HOST_MULTIARCH)/tdom$(VERSION)/tdomConfig.sh;)

	# move tDOM stub library
	mv $(ARCH_DEPENDENT)/tdom$(VERSION)/*.a $(DEV)/usr/lib/tcltk/$(DEB_HOST_MULTIARCH)/tdom$(VERSION)/

override_dh_installchangelogs:
	dh_installchangelogs ChangeLog
	
override_dh_installdeb:
	dh_installdeb
	tcltk-depends

override_dh_auto_test:
	(cd unix/; $(MAKE) test)
