#!/usr/bin/make -f
# debian/rules that uses debhelper.

include /usr/share/dpkg/architecture.mk

destdir=debian/tmp
mandir=/usr/share/man
docdir=/usr/share/doc/tcllib
exampledir=$(docdir)/examples
tcllibcdir=debian/tcllib-critcl/usr/lib/tcltk/tcllibc

%:
	dh $@

override_dh_clean:
	dh_testdir
	dh_testroot
	#
	[ ! -f Makefile ] || $(MAKE) distclean
	#
	rm -f config.cache config.status
	dh_clean

# Build-arch works with the critcl part
override_dh_auto_build-arch:
	dh_testdir
	#
	$(MAKE) critcl

# Build-indep mostly covers docs and such
override_dh_auto_build-indep:
	dh_testdir
	#
	$(MAKE) html-doc
	#
	# Remove doc for non-existent module
	rm doc/html/exif.html
	#
	# Fix broken examples permissions
	chmod 644 examples/csv/bench_join
	chmod 644 examples/logger/snit-logger.tcl
	chmod 644 examples/logger/xotcl-logger.tcl
	chmod 644 examples/mapproj/*

override_dh_auto_test:
	# Disable tests (TODO: add all required packages to build dependencies
	# and enable tests)

override_dh_auto_install-arch:

override_dh_auto_install-indep:
	dh_testdir
	#
	$(MAKE) DESTDIR=$(destdir) install 
	#
	# remove the critcl package from the arch-indep package
	find $(destdir) -name tcllibc -type d -prune -exec rm -rf \{\} \;
	#
	# install the mpexpand script, which doesn't otherwise get installed.
	install -p -m 755 modules/doctools/mpexpand $(destdir)/usr/bin
	#
	# now set the permissions properly, since the Makefile doesn't bother
	cd $(destdir)/usr/lib && \
		find . -type f -print | xargs chmod 644
	#
	# move scripts to /usr/share
	#mv $(destdir)/usr/lib/* $(destdir)/usr/share/tcltk
	#rmdir $(destdir)/usr/lib
	#
	# rename the man pages into section 3
	#mv $(destdir)$(mandir)/mann $(destdir)$(mandir)/man3
	#
	# move the man pages for command line utilities to section 1
	#mkdir $(destdir)$(mandir)/man1
	#for f in dtplite mpexpand nns nnsd nnslog page tcldocstrip ; do \
	#    mv $(destdir)$(mandir)/man3/$$f.n $(destdir)$(mandir)/man1 ; \
	#done
	#
	# cleanup manpages
	cd $(destdir)$(mandir)/mann && \
	  for f in dtplite mpexpand nns nnsd nnslog page tcldocstrip ; do \
	    sed -e'/\.so man.macros/ d' \
	    	-e's/^\.TH \([^ ]\+\) n/.TH \1 1/' \
	    	-e's/(n)/(3tcl)/g' \
	    	-e's/^\.dtx/\\\&.dtx/' \
	    	-e's/^\.\.\(.\)/\\\&..\1/' \
		$$f.n > $$f.1; \
	    rm $$f.n; \
	  done
	#
	cd $(destdir)$(mandir)/mann && \
	  for f in *.n ; do \
	    sed -e'/\.so man.macros/ d' \
	    	-e's/^\.TH "math::roman"  1/.TH "math::roman" 3tcl 1/' \
	    	-e's/^\.TH "tcl::transform::zlib" [in] /.TH "tcl::transform::zlib" 3tcllib /' \
	    	-e's/^\.TH \(.\+\) [in] /.TH \1 3tcl /' \
	    	-e's/send(n)/send(3tk)/g' \
	    	-e's/(n)/(3tcl)/g' \
	    	-e's/^\.RE\([^ ]\)/.RE\n\1/' \
	    	-e's/^\.dtx/\\\&.dtx/' \
	    	-e's/^\.sppp/.sp/' \
	    	-e's/^\.plot/\\\&.plot/' \
	    	-e's/^\.sp /.sp\n/' \
		-e's/\xf6/\\[:o]/g' \
		-e"s/\xe9/\\['e]/g" \
	    	-e's/^\.\.\(.\)/\\\&..\1/' \
	    	-e's/^\.ddt/\\\&.ddt/' \
	    	-e's/^\. It/\\\&. It/' \
	    	-e's/^\.text/\\\&.text/' \
	    	-e's/^\.IP,/\\.IP/' \
	    	-e's/^\.mycombo/\\\&.mycombo/' \
		$$f > `basename $$f .n`.3tcl; \
	    rm $$f; \
	  done
	#
	# cleanup docs
	cd doc/html && \
	  for f in *.html ; do \
	    sed -i -e's/\(^\|[^:]\+\)send(n)/\1send(3tk)/g' \
	    	-e's/math::roman()/math::roman(3tcl)/' \
	    	-e's/(n)/(3tcl)/g' $$f; \
	  done
	#
	# generate documentation index
	tclsh debian/gen_index.tcl doc/html >$(destdir)/index.html

override_dh_install-arch:
	dh_install -a
	#
	# remove unneded files
	rm $(tcllibcdir)/license.terms
	rm $(tcllibcdir)/teapot.txt
	#
	# relocate library file
	find $(tcllibcdir) -name '*.so' -exec mv \{\} $(tcllibcdir)/ \;
	find $(tcllibcdir) -name pkgIndex.tcl -exec mv \{\} $(tcllibcdir)/ \;
	sed -i -e 's/file join \$$path/file join \$$dir/' $(tcllibcdir)/pkgIndex.tcl
	#
	# move all the library
	mkdir debian/tcllib-critcl/usr/lib/tcltk/$(DEB_HOST_MULTIARCH)
	mv $(tcllibcdir) debian/tcllib-critcl/usr/lib/tcltk/$(DEB_HOST_MULTIARCH)
	#
	# cleanup
	find debian/tcllib-critcl -type d -empty -delete

override_dh_compress:
	dh_compress -Xusr/share/doc/tcllib/examples/ \
		    -Xusr/share/doc/tcllib/html/

override_dh_gencontrol:
	tcltk-depends
	dh_gencontrol

v=1.19

get-orig-source:
	CURDIR=`pwd` && \
	TMPDIR=`mktemp -d /tmp/tcllib.XXXXXX` && \
	cd $$TMPDIR && \
	wget -O - \
	    http://downloads.sourceforge.net/project/tcllib/tcllib/$(v)/tcllib-$(v).tar.gz | tar -zx && \
	for f in `grep -rl '^Network Working Group' *` ; do \
	    echo "REMOVING NON-FREE RFC $$f" ; rm -f $$f ; \
	done && \
	tar -Jcf $$CURDIR/tcllib_$(v)-dfsg.orig.tar.xz tcllib-$(v) && \
	rm -rf $$TMPDIR

.PHONY: override_dh_clean
	override_dh_auto_build-arch override_dh_auto_install-arch override_dh_install-arch \
	override_dh_auto_build-indep override_dh_auto_install-indep \
	override_dh_compress override_dh_gencontrol get-orig-source
