#!/usr/bin/make -f
#export DH_VERBOSE=1

DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)

MAIN_VERSION = $(shell head -n 1 debian/changelog | cut '-d ' -f 2 | sed 's/[()]//g')
BUILD_VERSION = $(shell head -n 1 debian/changelog | cut '-d ' -f 2 | sed 's/^[()]//' | sed 's/-.*//' | sed 's/~.*//' | sed 's/+.*//')

INFILES   := $(wildcard debian/*.desktop.in)
OUTFILES  := $(INFILES:.desktop.in=.desktop)
MANPTOFIX := $(addprefix debian/tmp/usr/share/man/man1/, $(notdir $(basename $(wildcard doc/C/preformatted/*.1.in))))
OBJDIR    := $(CURDIR)/tmp.build

%.desktop: %.desktop.in
	intltool-merge -d debian/po $< $@

%:
	dh --builddirectory=$(OBJDIR) $@

CFLAGS = -Wall -g -Werror-implicit-function-declaration
LDFLAGS = -Wl,--no-add-needed

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -O0
else
	CFLAGS += -O2
endif
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
	NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
	MAKEFLAGS += -j$(NUMJOBS)
endif

CONFIGURE_FLAGS = \
		CFLAGS="$(CFLAGS)" \
		CXXFLAGS="$(CXXFLAGS)" \
		LDFLAGS="$(LDFLAGS)" \
		--host=$(DEB_HOST_GNU_TYPE) \
		--build=$(DEB_BUILD_GNU_TYPE) \
		--prefix=/usr \
		--sysconfdir=/etc \
		--disable-testsuite \
		--without-swfdec-testsuite \
		--without-ming \
		--disable-dependency-tracking \
		--disable-rpath \
		--enable-cygnal \
		--enable-python \
		--enable-jemalloc \
		--enable-hwaccel=none \
		--enable-media='gst,ffmpeg' \
		--enable-gui='gtk,kde4' \
		--enable-renderer=all \
		--enable-docbook \
		--enable-extensions=fileio,lirc,mysql \
		--with-npapi-plugindir=/usr/lib/gnash \
		--with-plugins-install=system \
		--enable-shared=yes \
		--without-included-ltdl

override_dh_auto_configure:
	./autogen.sh
	mkdir -p $(OBJDIR)
	cd $(OBJDIR) && ../configure VERSION="$(BUILD_VERSION)" $(CONFIGURE_FLAGS)

override_dh_auto_build: $(OUTFILES)
	$(MAKE) -C $(OBJDIR) VERSION="$(BUILD_VERSION)"
	$(MAKE) -C $(OBJDIR) apidoc
	cd debian && for i in *.sng; do sng "$$i"; done

override_dh_auto_test:
	$(MAKE) -C $(OBJDIR) check
	$(MAKE) -C $(OBJDIR) anal

override_dh_auto_install:
	$(MAKE) -C $(OBJDIR) install VERSION="$(BUILD_VERSION)" DESTDIR=$(CURDIR)/debian/tmp
	$(MAKE) -C $(OBJDIR) install-plugins VERSION="$(BUILD_VERSION)" DESTDIR=$(CURDIR)/debian/tmp
	dh_installchangelogs NEWS

	# dh_buildinfo output only in gnash-common
	dh_buildinfo -pgnash-common

	# lintian: hyphen-used-as-minus-sign
	for manfile in $(MANPTOFIX); do \
			sed -i '2,$$s/[:alnum:\\]\?\-/\\\-/g' $$manfile; \
	done

	cd $(CURDIR)/debian/overrides/ && for i in *; do \
		echo "Installing Lintian override file for \"$$i\"" ; \
		mkdir -p $(CURDIR)/debian/$$i/usr/share/lintian/overrides/ ; \
		cp $$i $(CURDIR)/debian/$$i/usr/share/lintian/overrides/ ; \
	done

	printf "\n == LIST OF FILES =============================================== \n\n"
	cd $(CURDIR)/debian/tmp && find
	printf "\n -------------------------------------- End of LIST OF FILES ---- \n\n"

override_dh_strip:
	dh_strip --dbg-package=gnash-dbg

override_dh_gencontrol:
	dh_gencontrol -Nswfdec-gnome
	# add epoch to swfdec-gnome for transition
	dh_gencontrol -pswfdec-gnome -- -v1:$(MAIN_VERSION)

override_dh_makeshlibs:
	dh_makeshlibs -n

override_dh_auto_clean:
	rm -f config.guess config.sub configure ltmain.sh gnashconfig.h.in
	rm -f debian/gnash.png $(OUTFILES)
	rm -rf autom4te.cache libltdl $(OBJDIR) 
	rm -f aclocal.m4 macros/argz.m4 macros/libtool.m4 macros/lt*.m4
	find . -name Makefile.in -delete
	dh_clean

update-po:
	ls $(INFILES) | sed 's#^#../#' >debian/po/POTFILES.in
	cd debian/po && intltool-update -g debian --pot && \
		for i in *.po; do intltool-update -g debian --dist $${i%.po}; done
	rm -f debian/po/POTFILES.in

VER = $(BUILD_VERSION)~git$(shell date -u '+%Y%m%d')
TMPDIR = gnash-$(VER)
get-git-source:
	@echo Git cloning gnash $(VER)...
	git clone git://git.savannah.gnu.org/gnash.git $(TMPDIR)
	cd $(TMPDIR) && tar --exclude .git -zcf ../../gnash_$(VER).orig.tar.gz .
	rm -rf $(TMPDIR) && dch -v $(VER)-1 "Git snapshot."
