#!/usr/bin/make -f
# -*- makefile -*-

version = 2.1.4
cvsdate = 20071113

DIR=$(CURDIR)/debian/tmp

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

%:
	dh $@

override_dh_auto_clean:
	[ ! -f Makefile ] || $(MAKE) distclean
	rm -f test.setup

override_dh_auto_configure:
	CFLAGS="$(CFLAGS) -DSSL_STATIC_BUILD=1 -D_XOPEN_SOURCE" \
	SHLIB_SUFFIX=.so \
	no_zlibtcl=true \
	dh_auto_configure -- \
		--with-tcl=/usr/lib \
		--with-tclinclude=/usr/include/tcl \
		--enable-static-zlib \
		--enable-static-bzlib \
		--enable-static-md5 \
		--with-ssl-include-dir=/usr/include/openssl \
		--with-ssl-lib-dir=/usr/lib/$(DEB_HOST_MULTIARCH) \
		--with-zlib-include-dir=/usr/include \
		--with-zlib-lib-dir=/usr/lib/$(DEB_HOST_MULTIARCH) \
		--with-bz2-include-dir=/usr/include \
		--with-bz2-lib-dir=/usr/lib/$(DEB_HOST_MULTIARCH) \
		--enable-threads

override_dh_auto_build:
	$(MAKE) LIBS="-lz -lbz2 -lcrypt -lcrypto"

override_dh_auto_install:
	$(MAKE) install DESTDIR=$(DIR)
	install -m 755 -d $(DIR)/usr/lib/tcltk/$(DEB_HOST_MULTIARCH)
	mv $(DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/Trf* $(DIR)/usr/lib/tcltk/$(DEB_HOST_MULTIARCH)
	#
	mkdir -p $(DIR)/usr/share/doc/html $(DIR)/usr/share/doc/man
	# Cleanup manpages
	cd doc/man && \
	  for f in *.n ; do \
	    sed -e'/^\.so man.macros/ d' \
	    	-e'/^\.BS/ d' \
	    	-e'/^\.BE/ d' \
	    	-e's/^\.TH \([^ ]\+\) n/.TH \1 3trf/' \
		$$f >$(DIR)/usr/share/doc/man/`basename $$f .n`.3trf || exit 1; \
	  done
	#
	# Cleanup docs
	cd doc/html && \
	  for f in *.html ; do \
	    sed -e's/(n)/(3trf)/g' $$f >$(DIR)/usr/share/doc/html/$$f || exit 1; \
	  done
	#
	# c2man is outdated and removed from Debian. So, a pregenerated manpages
	# and HTML docs are used.
	# A liitle hack to make c2man working
	#cd generic && c2man -D__builtin_va_list=int -DBUFSIZ -I/usr/include/tcl -o../doc/capi/man -Tn transform.h
	#cd generic && c2man -D__builtin_va_list=int -DBUFSIZ -I/usr/include/tcl -o../doc/capi/html -Th transform.h
	#
	# Generate documentation indices
	tclsh debian/gen_index.tcl $(DIR)/usr/share/doc/html doc/capi/html \
	      >$(DIR)/usr/share/doc/html/index.html

override_dh_auto_test:
	# make test doesn't work currently.

override_dh_shlibdeps:
	tcltk-depends -a
	dh_shlibdeps -a

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

get-orig-source-release:
	CURDIR=`pwd` && TMPDIR=`mktemp -d /tmp/tcltrf.XXXXXX` && \
	cd $$TMPDIR && \
	wget -O - http://heanet.dl.sourceforge.net/sourceforge/tcltrf/trf$(version).tar.gz | tar zx && \
	rm -rfv trf$(version)/generic/haval \
		trf$(version)/generic/haval.1996 \
		trf$(version)/generic/ripemd \
		trf$(version)/win/msvcrt.dll \
		trf$(version)/doc/painless-guide-to-crc.txt && \
	tar -zcf $$CURDIR/tcltrf_$(version)-dfsg3.orig.tar.gz trf$(version) && \
	rm -rf $$TMPDIR

get-orig-source-cvs:
	CURDIR=`pwd` && \
	TMPDIR=`mktemp -d /tmp/tcltrf.XXXXXX` && \
	SCRDIR=`dirname $(MAKEFILE_LIST)` && \
	expect $$SCRDIR/checkout \
	       :pserver:anonymous@tcltrf.cvs.sourceforge.net:/cvsroot/tcltrf \
	       trf \
	       $$TMPDIR "$(cvsdate)T23:59:59" && \
	echo "Removing CVS stuff and non-free files" && \
	find $$TMPDIR -name '*.orig' \
		      -o -name CVS \
		      -o -name msvcrt.dll \
		      -o -name mpexpand \
		      -o -name patches \
		      -o -name zlib.vc \
		      -o -name painless-guide-to-crc.txt \
		      -o -name haval \
		      -o -name haval.1996 \
		      -o -name ripemd \
		      -o -name mails | xargs rm -rvf && \
	cd $$TMPDIR && \
	tar -zcf $$CURDIR/tcltrf_$(version)~$(cvsdate)-dfsg3.orig.tar.gz . && \
	rm -rf $$TMPDIR

.PHONY: override_dh_auto_clean override_dh_auto_configure override_dh_auto_install override_dh_auto_test \
	override_dh_shlibdeps get-orig-source get-orig-source-release get-orig-source-cvs
