#!/usr/bin/make -f

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

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

ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
       export ac_cv_func_strtod=yes
       export tcl_cv_strtod_buggy=1
endif

ifeq (, $(findstring debug, $(DEB_BUILD_OPTIONS)))
# See bug #446335 for -fno-unit-at-a-time
ifeq ($(DEB_HOST_ARCH), hppa)
# Disable stack checking for hppa (it doesn't work properly yet)
CFLAGS += -fno-unit-at-a-time -DTCL_NO_STACK_CHECK=1
else
CFLAGS += -fno-unit-at-a-time
endif
endif

%:
	dh $@

override_dh_auto_clean:
	[ ! -f unix/Makefile ] || $(MAKE) -C unix distclean

override_dh_auto_configure:
	# So so ugly but it works...
	touch generic/tclStubInit.c
	TCL_LIBRARY="/usr/share/tcltk/tcl$(v)" \
	TCL_PACKAGE_PATH="/usr/local/lib/tcltk /usr/local/share/tcltk \
			  /usr/lib/tcltk/$(DEB_HOST_MULTIARCH) /usr/lib/tcltk /usr/share/tcltk \
			  /usr/lib" \
	CFLAGS="$(CFLAGS)" \
	CPPFLAGS="$(CPPFLAGS)" \
	TCL_SHLIB_LD_EXTRAS="-Wl,-soname,\$${TCL_LIB_FILE}" \
	dh_auto_configure -Dunix -- \
		      --includedir=/usr/include/tcl$(v) \
		      --enable-shared \
		      --enable-threads \
		      --enable-dll-unloading \
		      --disable-rpath \
		      --without-tzdata \
		      --enable-man-symlinks

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

override_dh_auto_install:
	$(MAKE) -C unix INSTALL_ROOT=$(DIR) \
			MAN_INSTALL_DIR=$(DIR)/usr/share/man \
			MANN_INSTALL_DIR=$(DIR)/usr/share/man/man3 \
			TCL_MODULE_PATH="/usr/lib/tcltk /usr/share/tcltk" \
		install
	# Fix up the modules.
	sed -i -e's:variable paths {}:variable paths {/usr/share/tcltk/tcl$(v)/tcl8}:' \
	    $(DIR)/usr/share/tcltk/tcl$(v)/tm.tcl
	install -d -m 755 $(DIR)/usr/share/tcltk/tcl$(v)/tcl8
	mv $(DIR)/usr/share/tcltk/tcl8/*/* $(DIR)/usr/share/tcltk/tcl$(v)/tcl8
	# Fix up the libraries.
	cp unix/libtcl$(v).a $(DIR)/usr/lib/$(DEB_HOST_MULTIARCH)
	install -d -m 755 $(DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/tcl$(v)
	mv $(DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/*.sh $(DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/tcl$(v)
	install -d -m 755 $(DIR)/usr/share/aclocal
	cp unix/tcl.m4 $(DIR)/usr/share/aclocal/tcl$(v).m4
	rm -f $(DIR)/usr/share/tcltk/tcl$(v)/ldAix
	# Fix up the include files.
	install -d $(DIR)/usr/include/tcl$(v)/tcl-private/generic
	cp generic/*.h $(DIR)/usr/include/tcl$(v)/tcl-private/generic
	install -d $(DIR)/usr/include/tcl$(v)/tcl-private/unix
	cp unix/*.h $(DIR)/usr/include/tcl$(v)/tcl-private/unix
	install -d $(DIR)/usr/include/tcl$(v)/tcl-private/compat
	cp compat/*.h $(DIR)/usr/include/tcl$(v)/tcl-private/compat
	install -d $(DIR)/usr/include/tcl$(v)/tcl-private/libtommath
	cp libtommath/*.h $(DIR)/usr/include/tcl$(v)/tcl-private/libtommath
	#
	# Temporary HACK until all reverse dependencies will be rebuilt
	ln -sf libtcl$(v).so $(DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/libtcl$(v).so.0
	#
	# Fix up the manpages.
	cd $(DIR)/usr/share/man/man1 && \
	  sed -e 's/(n)/(3tcl)/g' tclsh.1 >tclsh$(v).1 && rm tclsh.1
	cd $(DIR)/usr/share/man/man3 && \
	  for f in *.[3n] ; 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 \
		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' \
		    -e 's/^\.de OP$$/.de OOP/' \
		    -e 's/^\.OP /.OOP /' \
		    -e "s/\\N'244'/\\[^o]/g" \
		    $$f >$$f2 ; \
		rm $$f ; \
	     fi ; \
	  done

override_dh_strip:
	dh_strip -plibtcl$(v) --dbg-package=libtcl$(v)-dbg
	dh_strip -a -Nlibtcl$(v)

override_dh_makeshlibs:
	dh_makeshlibs -a -Xtcltest
	echo 'activate-noawait ldconfig' >>debian/libtcl$(v).triggers

override_dh_shlibdeps:
	dh_shlibdeps -a -ldebian/libtcl$(v)/usr/lib/$(DEB_HOST_MULTIARCH)

get-orig-source:
	wget -O tcl$(v)_$(v).19.orig.tar.gz \
	     http://prdownloads.sourceforge.net/tcl/tcl$(v).19-src.tar.gz

.PHONY: override_dh_auto_clean override_dh_auto_configure override_dh_auto_install \
	override_dh_strip override_dh_makeshlibs override_dh_shlibdeps get-orig-source
