#!/usr/bin/make -f

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1


CFLAGS = -Wall -g

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -O0
else
	CFLAGS += -O2
endif

build-indep: build-stamp

build-arch:

build: build-indep build-arch

build-stamp:
	dh_testdir
	docbook-to-man debian/fretsonfire.sgml > fretsonfire.6
	find data -name "*.svg" | sed -e "s/.svg$$/.png/" | while read l; do if ! test -f "$$l"; then echo "Missing $$l"; exit 1; fi; done

	# rename and mode these here so that dh_install can do it's magic
	cp debian/fretsonfire.sh fretsonfire
	chmod 755 fretsonfire
	cp data/icon.png fretsonfire.png
	chmod 755 src/FretsOnFire.py

	mkdir translations
	cp data/translations/*.po translations/
	cp data/translations/*.py translations/
	if test $(ls debian/translations/* -1 | wc -l) -ne 0; then \
		cp debian/translations/* translations/ ; \
		fi
	cd translations && python update.py

	touch $@

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp configure-stamp
	rm -rf translations
	rm -rf `find . -name "*.pyc"`
	rm -f fretsonfire.6 fretsonfire fretsonfire.png
	dh_clean 

install: build
	dh_testdir
	dh_testroot
	dh_clean -k 
	dh_installdirs

	# symlink fonts
	ln -sf ../../../fonts/truetype/ttf-dejavu/DejaVuSans.ttf $(CURDIR)/debian/fretsonfire-game/usr/share/games/fretsonfire/data/international.ttf 
	ln -sf ../../../fonts/truetype/mgopen/MgOpenCosmeticaRegular.ttf $(CURDIR)/debian/fretsonfire-game/usr/share/games/fretsonfire/data/title.ttf
	ln -sf ../../../fonts/truetype/mgopen/MgOpenCosmeticaRegular.ttf $(CURDIR)/debian/fretsonfire-game/usr/share/games/fretsonfire/data/default.ttf

	# other installation done with dh_install 

# Build architecture-independent files here.
binary-indep: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs 
	dh_installdocs
	dh_installmenu
	dh_installman -pfretsonfire-game fretsonfire.6
	dh_install -pfretsonfire-game
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
	#dh_python2
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb -- -Zbzip2

# Build architecture-dependent files here.
binary-arch: build install

binary: binary-indep binary-arch

ORIG_VERSION=$(shell dpkg-parsechangelog | sed -n '/^Version/s/[^:].*: \(.*\).dfsg-[^-]*$$/\1/p')
print-orig-version:
	echo $(ORIG_VERSION)

../FretsOnFire-$(ORIG_VERSION).tar.gz:
	wget http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/f/fr/fretsonfire/FretsOnFire-$(ORIG_VERSION).tar.gz --directory-prefix=../

extract_translation_source:
	# get the translation template (needs gettext)
	cd fretsonfire-$(ORIG_VERSION).dfsg/src && \
		xgettext -o ../data/translations/fretsonfire.pot \
			`grep -r "_(\".*\")" * | awk -F: '{print $$1}' | sort --unique`

	cat fretsonfire-$(ORIG_VERSION).dfsg/data/songs/tutorial/script.txt | \
		awk '{ print NR "|" $$0 }' | grep " text " | sed 's/ text */|/g' | \
		awk -F"|" '{ print "\n#: data/songs/tutorial/script.txt:" $$1 " \nmsgid \"" $$3 "\"\nmsgstr \"\""}' \
			>> fretsonfire-$(ORIG_VERSION).dfsg/data/translations/fretsonfire.pot

	msguniq -o fretsonfire-$(ORIG_VERSION).dfsg/data/translations/fretsonfire.pot \
		fretsonfire-$(ORIG_VERSION).dfsg/data/translations/fretsonfire.pot

	# get the source from the translation files (needs gettext)
	cd fretsonfire-$(ORIG_VERSION).dfsg/data/translations && \
		for i in *.mo; do \
			msgunfmt $$i > `echo $$i | sed -e "s/.mo/.po/"` ; \
		done

	# merge the obtained the translation files with the template (needs gettext)
	cd fretsonfire-$(ORIG_VERSION).dfsg/data/translations && \
		for i in *.po; do \
			msgmerge -o $$i $$i fretsonfire.pot ; \
		done

get-orig-source: ../FretsOnFire-$(ORIG_VERSION).tar.gz 
	# clean old builds;
	rm -rf "FretsOnFire-src-$(ORIG_VERSION)/" "Frets on Fire-$(ORIG_VERSION)/" "FretsOnFire/" "fretsonfire-$(ORIG_VERSION).dfsg"

	# extract source and data
	tar xvzf "../FretsOnFire-$(ORIG_VERSION).tar.gz"

	mkdir -p "fretsonfire-$(ORIG_VERSION).dfsg/data"

	# we want all the source 
	cp -va "Frets on Fire-$(ORIG_VERSION)/doc" "Frets on Fire-$(ORIG_VERSION)/src" "fretsonfire-$(ORIG_VERSION).dfsg/"
	cp -v "Frets on Fire-$(ORIG_VERSION)"/* "fretsonfire-$(ORIG_VERSION).dfsg/" || true

	# copy the data, without the songs, but with the tutorial
	cp -v "Frets on Fire-$(ORIG_VERSION)/data"/* "fretsonfire-$(ORIG_VERSION).dfsg/data/" || true
	rm -f "fretsonfire-$(ORIG_VERSION).dfsg/data"/*.ttf
	cp -va "Frets on Fire-$(ORIG_VERSION)/data/mods" "fretsonfire-$(ORIG_VERSION).dfsg/data/"
	cp -va "Frets on Fire-$(ORIG_VERSION)/data/translations" "fretsonfire-$(ORIG_VERSION).dfsg/data/"
	mkdir -p "fretsonfire-$(ORIG_VERSION).dfsg/data/songs"
	cp -av "Frets on Fire-$(ORIG_VERSION)/data/songs/tutorial" "fretsonfire-$(ORIG_VERSION).dfsg/data/songs/"

	# get translation sources (requires subversion)
	svn co https://fretsonfire.svn.sourceforge.net/svnroot/fretsonfire/trunk/data/translations _translations
	mv _translations/* "fretsonfire-$(ORIG_VERSION).dfsg/data/translations/"
	rm -rf _translations

	# turn off the execute bit on all the random files
	find "fretsonfire-$(ORIG_VERSION).dfsg" -type f | xargs chmod -x

	# build the tarball and clean up
	tar cvfz "../fretsonfire_$(ORIG_VERSION).dfsg.orig.tar.gz" "fretsonfire-$(ORIG_VERSION).dfsg"
	rm -rf "Frets on Fire-$(ORIG_VERSION)/" "FretsOnFire-src-$(ORIG_VERSION)/" "FretsOnFire/" "fretsonfire-$(ORIG_VERSION).dfsg"

.PHONY: build clean binary-indep binary-arch binary install configure
