#!/usr/bin/make -f
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess.

DDIR=$(shell pwd)/debian/tmp
DDIR_ALSA=$(shell pwd)/debian/tmp-alsa

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

CONFIGOPTS = --enable-gcc \
	     --enable-shared \
	     --build=$(DEB_BUILD_GNU_TYPE) \
	     --host=$(DEB_HOST_GNU_TYPE) \
	     --with-tcl=/usr/lib \
	     --with-tk=/usr/lib \
	     --prefix=/usr \
	     --with-ogg-include=/usr/include \
	     --with-ogg-lib=/usr/lib

CONFIGOPTS_ALSA = $(CONFIGOPTS) --enable-alsa

BUILD_ALSA := $(shell if [ `uname -s` = Linux ] ; then echo yes ; else echo no ; fi)

ifeq ($(BUILD_ALSA), no)
install_target:=install-stamp
binary_targets:=binary-oss
else
install_target:=install-alsa-stamp
binary_targets:=binary-oss binary-alsa
endif

clean: clean-build
	dh_testdir
	dh_testroot
	rm -rf $(DDIR_ALSA)
	rm -f build-stamp build-alsa-stamp
	rm -f install-stamp install-alsa-stamp
	rm -f clean-stamp
	dh_clean

clean-build:
	dh_testdir
	[ ! -f unix/Makefile ] || $(MAKE) -C unix distclean
	cd unix ; rm -f libsnackogg.so libsnackmpg.so libsnacksphere.so libsnackstub2.2.a
	cd unix ; rm -f snackConfig.sh pkgIndex.tcl
	cd python; rm -rf build

build: build-arch build-indep
build-arch: $(install_target)
build-indep: $(install_target)

build-stamp:
	dh_testdir
	cd unix && ./configure $(CONFIGOPTS)
	DEB_CFLAGS="$(CFLAGS)" \
	$(MAKE) -C unix all libsnackogg.so libsnackmpg.so # libsnacksphere.so
	touch build-stamp

install-stamp: build-stamp
	dh_testdir
	dh_installdirs
	$(MAKE) -C unix SNACK_INSTALL_PATH=$(DDIR)/usr/lib install
	touch install-stamp

clean-stamp: install-stamp
	dh_testdir
	[ ! -f unix/Makefile ] || $(MAKE) -C unix distclean
	cd unix ; rm -f libsnackogg.so libsnackmpg.so libsnacksphere.so libsnackstub2.2.a
	cd unix ; rm -f snackConfig.sh pkgIndex.tcl
	cd python; rm -rf build
	touch clean-stamp

build-alsa-stamp: clean-stamp
	dh_testdir
	cd unix && ./configure $(CONFIGOPTS_ALSA)
	DEB_CFLAGS="$(CFLAGS)" \
	$(MAKE) -C unix all libsnackogg.so libsnackmpg.so # libsnacksphere.so
	touch build-alsa-stamp

install-alsa-stamp: build-alsa-stamp
	dh_testdir
	dh_installdirs
	$(MAKE) -C unix SNACK_INSTALL_PATH=$(DDIR_ALSA)/usr/lib install
	touch install-alsa-stamp

install-indep: build-stamp
	dh_testdir
	dh_testroot
	dh_prep
	cd python ; \
	set -e ; for python in `py3versions -s` ; do \
	    $$python setup.py install \
		--no-compile \
		--install-layout=deb \
		--root=$(DDIR) ; \
	done

# Build architecture-dependent files here.
binary-oss: install-stamp
	dh_testdir -a -Nlibsnack-alsa
	dh_testroot -a -Nlibsnack-alsa
	dh_installdirs -a -Nlibsnack-alsa
	dh_install -a -Nlibsnack-alsa
	dh_installdocs -a -Nlibsnack-alsa -A README debian/README.Debian
	dh_installexamples -a -Nlibsnack-alsa
	dh_installmenu -a -Nlibsnack-alsa
	dh_installman -a -Nlibsnack-alsa
	dh_installchangelogs -a -Nlibsnack-alsa -A changes
	dh_link -a -Nlibsnack-alsa
	dh_strip -a -Nlibsnack-alsa
	dh_compress -a -Nlibsnack-alsa -X.tcl -X.wav -X.py -X.plg -X.phn
	dh_fixperms -a -Nlibsnack-alsa
	chmod a-x debian/*/usr/lib/tcltk/snack*/*
	dh_makeshlibs -a -Nlibsnack-alsa
	dh_installdeb -a -Nlibsnack-alsa
	dh_shlibdeps -a -Nlibsnack-alsa
	tcltk-depends -a -Nlibsnack-alsa
	dh_gencontrol -a -Nlibsnack-alsa
	dh_md5sums -a -Nlibsnack-alsa
	dh_builddeb -a -Nlibsnack-alsa

binary-alsa: install-alsa-stamp
	dh_testdir -plibsnack-alsa
	dh_testroot -plibsnack-alsa
	dh_installdirs -plibsnack-alsa
	dh_install -plibsnack-alsa
	dh_installdocs -plibsnack-alsa -A README debian/README.Debian
	dh_installexamples -plibsnack-alsa
	dh_installmenu -plibsnack-alsa
	dh_installman -plibsnack-alsa
	dh_installchangelogs -plibsnack-alsa -A changes
	dh_link -plibsnack-alsa
	dh_strip -plibsnack-alsa
	dh_compress -plibsnack-alsa -X.tcl -X.wav -X.py -X.plg -X.phn
	dh_fixperms -plibsnack-alsa
	chmod a-x debian/*/usr/lib/tcltk/snack*/*
	dh_makeshlibs -plibsnack-alsa
	dh_installdeb -plibsnack-alsa
	dh_shlibdeps -plibsnack-alsa
	tcltk-depends -plibsnack-alsa
	dh_gencontrol -plibsnack-alsa
	dh_md5sums -plibsnack-alsa
	dh_builddeb -plibsnack-alsa

binary-arch: $(binary_targets)

binary-indep: install-indep
	dh_testdir -i
	dh_testroot -i
	dh_installdirs -i
	dh_install -i
	dh_installdocs -i -A README debian/README.Debian
	dh_installchangelogs -i -A changes
	dh_link -i
	dh_strip -i
	dh_compress -i -X.tcl -X.wav -X.py -X.plg -X.phn
	dh_fixperms -i
	chmod a-x debian/tcl-snack-doc/usr/share/doc/tcl-snack-doc/examples/tcl/*
	chmod a+x debian/tcl-snack-doc/usr/share/doc/tcl-snack-doc/examples/tcl/*.tcl
	chmod a-x debian/tcl-snack-doc/usr/share/doc/tcl-snack-doc/examples/python/*
	chmod a+x debian/tcl-snack-doc/usr/share/doc/tcl-snack-doc/examples/python/*.py
	chmod a-x debian/tcl-snack-doc/usr/share/doc/tcl-snack-doc/examples/python/tkSnack.py
	dh_python3 -ppython3-tksnack
	dh_installdeb -i
	tcltk-depends -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

# DvL: order is important!
binary: binary-arch binary-indep

version=2.2.10
date=20090623

get-orig-source:
	CURDIR=`pwd` && \
	TMPDIR=`mktemp -d /tmp/snack.XXXXXX` && \
	cd $$TMPDIR && \
	cvs -d:pserver:anonymous@wize.cvs.sourceforge.net:/cvsroot/wize export -D $(date) wize2/wize/snack$(version) && \
	cd wize2/wize/snack$(version) && \
	for f in `find . -name tclkit-linux-x86 -o -name sdx -o -name snack.mcp.sit.hqx -o -name right_back.shape` ; do \
	    echo "REMOVING BINARY WITHOUT A SOURCE $$f" ; rm -f $$f ; \
	done && \
	rm -v win/Makefile win/config.log win/config.status win/snackConfig.sh && \
	rm -v unix/Makefile unix/config.log unix/config.status unix/snackConfig.sh && \
	rm -v generic/SnackMp3.c generic/jkFormatMP3.c generic/jkFormatMP3.h && \
	rm -v pkgIndex.tcl unix/pkgIndex.tcl && \
	cd .. && \
	tar -Jcf $$CURDIR/snack_$(version).$(date)-dfsg.orig.tar.xz snack$(version) && \
	rm -rf $$TMPDIR

.PHONY: build build-arch build-indep clean clean-build clean-intermediate binary-oss binary-alsa \
	binary-indep binary-arch binary install-indep get-orig-source
