#!/usr/bin/make -f

v = 8.4
DIR = $(shell pwd)/debian/tmp

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

LDFLAGS = $(shell dpkg-buildflags --get LDFLAGS)
export LDFLAGS

ifeq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
# See bug #446335
CFLAGS += -fno-unit-at-a-time
endif

%:
	dh $@

override_dh_auto_configure:
	# So so ugly but it works...
	touch generic/tclStubInit.c
	CC=$(DEB_HOST_GNU_TYPE)-gcc \
	ac_cv_func_strtod=yes \
	tcl_cv_strtod_buggy=1 \
	TCL_LIBRARY="/usr/share/tcltk/tcl$(v)" \
	TCL_PACKAGE_PATH="/usr/local/lib/tcltk /usr/local/share/tcltk /usr/lib/tcltk /usr/share/tcltk /usr/lib" \
	CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" \
	dh_auto_configure -Dunix -- \
			    --includedir=/usr/include/tcl$(v) \
			    --enable-shared \
			    --enable-threads \
			    --enable-man-symlinks \
			    --enable-man-compression=gzip

override_dh_auto_build:
	# Another ugly part
	touch generic/tclStubInit.c && \
	$(MAKE) -C unix
	# Build the static library
	cd unix && \
	  ar cr libtcl$(v).a *.o && \
	  ar d libtcl$(v).a tclAppInit.o && \
	  ranlib libtcl$(v).a

override_dh_auto_install:
	GZIP=-9 \
	$(MAKE) -C unix INSTALL_ROOT=$(DIR) \
			MAN_INSTALL_DIR=$(DIR)/usr/share/man \
			MANN_INSTALL_DIR=$(DIR)/usr/share/man/man3 \
		install
	# Fix up the libraries
	cp unix/libtcl$(v).a debian/tmp/usr/lib
	mv debian/tmp/usr/lib/libtcl$(v).so debian/tmp/usr/lib/libtcl$(v).so.0
	ln -sf libtcl$(v).so.0 debian/tmp/usr/lib/libtcl$(v).so
	mkdir debian/tmp/usr/lib/tcl$(v)
	mv debian/tmp/usr/lib/*.sh debian/tmp/usr/lib/tcl$(v)
	mkdir debian/tmp/usr/share/aclocal
	cp unix/tcl.m4 debian/tmp/usr/share/aclocal/tcl$(v).m4
	rm -f debian/tmp/usr/share/tcltk/tcl$(v)/ldAix
	# Fix up the include files
	install -d debian/tmp/usr/include/tcl$(v)/tcl-private/generic
	cp generic/*.h debian/tmp/usr/include/tcl$(v)/tcl-private/generic
	install -d debian/tmp/usr/include/tcl$(v)/tcl-private/unix
	cp unix/*.h debian/tmp/usr/include/tcl$(v)/tcl-private/unix
	install -d debian/tmp/usr/include/tcl$(v)/tcl-private/compat
	cp compat/*.h debian/tmp/usr/include/tcl$(v)/tcl-private/compat
	# Fix up the manpages
	cd debian/tmp/usr/share/man/man1 && \
	  zcat tclsh.1.gz | sed -e 's/(n)/(3tcl)/g' | gzip -9 > tclsh$(v).1.gz && \
	  rm tclsh.1.gz
	cd debian/tmp/usr/share/man/man3 && \
	  for f in *.[3n].gz ; do \
	     f2=$$(echo $$f | sed -e 's/\.[3n]/.3tcl/') ; \
	     if [ -L $$f ]; then \
		l=$$(readlink -n $$f |sed -e 's/\.[3n]/.3tcl/') ; \
		rm $$f ; \
		ln -sf $$l $$f2 ; \
	     else \
		zcat $$f | sed -e 's/^\.TH \([^ ]\+\|"[^"]\+"\) [3n]/.TH \1 3tcl/' \
			       -e 's/\(Tk_[0-9A-Za-z]*\)(3)/\1(3tk)/g' \
			       -e 's/\([A-Z][0-9A-Za-z_]*\)(3)/\1(3tcl)/g' \
			       -e 's/send(n)/send(3tk)/g' \
			       -e 's/text(n)/text(3tk)/g' \
			       -e 's/tk(n)/tk(3tk)/g' \
			       -e 's/winfo(n)/winfo(3tk)/g' \
			       -e 's/(n)/(3tcl)/g' \
			 | gzip -9 >$$f2 ; \
		rm $$f ; \
	     fi ; \
	  done

override_dh_makeshlibs:
	dh_makeshlibs -V 'tcl$(v) (>= 8.4.16)' -XTcltest

override_dh_shlibdeps:
	dh_shlibdeps -ldebian/tcl$(v)/usr/lib

get-orig-source:
	wget -O tcl8.4_8.4.19.orig.tar.gz \
	     http://prdownloads.sourceforge.net/tcl/tcl8.4.19-src.tar.gz

.PHONY: override_dh_auto_configure override_dh_auto_install override_dh_makeshlibs override_dh_shlibdeps get-orig-source

