#!/usr/bin/make -f

# We require some bash features
override SHELL := /bin/bash

DEBIAN_VERSION := $(shell dpkg-parsechangelog | sed -r 's/^Version: //; t; d')
UPSTREAM_VERSION := $(shell echo $(DEBIAN_VERSION) | sed -r 's/^[0-9]*://; s/-[^-]*$$//')

LANGUAGES := en $(patsubst debian/po/%.po,%,$(wildcard debian/po/*.po))

# Distributed files that we regenerate
DIST_REGEN_FILES := list.c Makefile Makefile.cyg Makefile.nestedvm Makefile.osx Makefile.vc Makefile.wce puzzles.txt puzzles.hlp puzzles.cnt HACKING

build: build-indep build-arch

build-indep: build-indep-stamp
build-indep-stamp:
	touch build-indep-stamp

build-arch: build-arch-stamp
build-arch-stamp: Makefile install-po-stamp
	$(MAKE) "VER=-DREVISION=$(UPSTREAM_VERSION)" \
	    "XFLAGS=-DDEBIAN_VERSION=\"\\\"$(DEBIAN_VERSION)\\\"\" -DHELP_BROWSER_PATH=\"\\\"yelp:khelpcenter:sensible-browser\\\"\"" \
	    puzzles
	$(MAKE) -f Makefile.doc
	touch build-arch-stamp

# We patch these sources and so must rebuild the Makefile.
Makefile : backup-regen-stamp mkfiles.pl Recipe
	./mkfiles.pl

binary : binary-arch binary-indep

binary-arch : build
	dh_testroot
	dh_installdirs
	$(MAKE) DESTDIR=debian/sgt-puzzles install
	dh_strip
	dh_shlibdeps
	for lang in $(LANGUAGES); do \
		dh_install doc/html-$$lang/*.html usr/share/sgt-puzzles/help/$$lang \
		|| exit; \
	done
	dh_installchangelogs
	dh_installdocs
	for lang in $(LANGUAGES); do \
		dh_installman --language=$${lang/en/C} doc/man-$$lang/* || exit; \
	done
	dh_install debian/desktop/*.desktop usr/share/applications
	for icon in icons/*-48d24.png; do \
	    base="$$(basename $$icon -48d24.png)" && \
	    if [ $$base = blackbox -o $$base = flip -o $$base = net ]; then \
		base=$${base}game; \
	    fi && \
	    install -m644 $$icon debian/sgt-puzzles/usr/share/icons/hicolor/48x48/apps/$$base.png \
	    || exit; \
	done
	dh_link
	dh_compress
	dh_fixperms
	dh_installmenu
	dh_installdeb
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary-indep :

backup-regen-stamp :
	mkdir -p debian/orig/
	cp $(DIST_REGEN_FILES) debian/orig/
	touch $@

install-po-stamp :
	mkdir -p po/
	cp -p debian/po/*.po po/
	touch $@

clean :
	! [ -f Makefile ] || $(MAKE) clean
	! [ -d debian/orig ] || { $(MAKE) -f Makefile.doc clean && mv debian/orig/* . && rmdir debian/orig ; }
	rm -rf po *-stamp
	dh_clean debian/substvars version2.def wingames.lst

get-orig-source :
	wget -O sgt-puzzles_$(UPSTREAM_VERSION).orig.tar.gz \
	    http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-r$(UPSTREAM_VERSION).tar.gz

.PHONY : build binary binary-arch binary-dep clean get-orig-source
