#!/usr/bin/make -f
# -*- makefile -*-
# Uncomment this to turn on verbose mode.
export DH_VERBOSE=1

DEBDIR = ..

comma :=,
empty :=
space := $(empty) $(empty)

MAKEDOCS = 1

ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
    INSTALL_PROGRAM += -s
endif

TMP_BUILD_OPTS = $(subst $(comma),$(space),$(DEB_BUILD_OPTIONS))

ifneq (,$(filter parallel=%,$(TMP_BUILD_OPTS)))
    NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(TMP_BUILD_OPTS)))
    PARALLEL_MAKEFLAGS += -j$(NUMJOBS)
endif


# Enable instrumentation by setting DEB_BUILD_OPTION=coverage,...
ifneq (,$(filter coverage,$(TMP_BUILD_OPTS)))
    OPTIONS += -coverage
endif

# Enable build for n900
ifneq (,$(filter n900,$(TMP_BUILD_OPTS)))
    OPTIONS += -n900
endif

# Enable instrumentation by setting DEB_BUILD_OPTION=timestamps,...
ifneq (,$(filter timestamps,$(TMP_BUILD_OPTS)))
    OPTIONS += -timestamps
endif

# Disable building of tests by setting DEB_BUILD_OPTION=notests,...
ifneq (,$(filter notests,$(TMP_BUILD_OPTS)))
    OPTIONS += -nomake tests
endif

# Disable building of benchmarks by setting DEB_BUILD_OPTION=nobenchmarks,...
ifneq (,$(filter nobenchmarks,$(TMP_BUILD_OPTS)))
    OPTIONS += -nomake benchmarks
endif

# Disable building of demos by setting DEB_BUILD_OPTION=nodemos,...
ifneq (,$(filter nodemos,$(TMP_BUILD_OPTS)))
    OPTIONS += -nomake demos
endif

# When doing official releases, set TESTABILITY to off. Defaults to on now
# because integration cannot pass DEB_BUILD_OPTIONS.
ifeq (,$(findstring notestability,$(DEB_BUILD_OPTIONS)))
     OPTIONS += -testable
endif

#disable plain qt by setting DEB_BUILD_OPTION=noplainqt,...
ifneq (,$(findstring noplainqt,$(DEB_BUILD_OPTIONS)))
     OPTIONS += -no-plainqt
endif

# Perform a minimal build by setting DEB_BUILD_OPTION=minimal,...
ifeq (,$(findstring minimal,$(DEB_BUILD_OPTIONS)))
     OPTIONS += -make "tests benchmarks"
else
     OPTIONS += -minimal
     MAKEDOCS = 0
endif

# Don't build documentation by setting DEB_BUILD_OPTION=nodocs,...
ifneq (,$(findstring nodocs,$(DEB_BUILD_OPTIONS)))
     MAKEDOCS = 0
endif

BUILD_DIR=build-$(shell dpkg-architecture -qDEB_BUILD_ARCH)

configure: configure-stamp
configure-stamp:
	dh_testdir

	mkdir -p $(BUILD_DIR)
	cd $(BUILD_DIR) && ../configure --prefix=/usr -release $(OPTIONS)

	touch configure-stamp

build: build-stamp
build-stamp: configure-stamp
	dh_testdir

	cd $(BUILD_DIR) && make $(PARALLEL_MAKEFLAGS)

	touch build-stamp

clean:
	dh_testdir
	dh_testroot

	rm -f build-stamp configure-stamp

	rm -rf $(BUILD_DIR)

	dh_clean

install: build
	dh_testdir
	dh_testroot
ifeq (,$(filter n900,$(TMP_BUILD_OPTS))) #fremantle debhelper is older..
	dh_prep
else
	dh_clean -k
endif
	dh_installdirs

	# Add here commands to install the package into debian/tmp

	#libmeegotouch-doc package
ifneq (0,$(MAKEDOCS))
	cd $(BUILD_DIR) && make $(PARALLEL_MAKEFLAGS) doc
endif

	cd $(BUILD_DIR) && INSTALL_ROOT=$(CURDIR)/debian/tmp GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 make $(PARALLEL_MAKEFLAGS) install

	install -m 644 -D -p $(BUILD_DIR)/demos/widgetsgallery/translations/widgetsgallery.ts $(CURDIR)/debian/tmp/usr/share/doc/meegotouch-demos-widgetsgallery-l10n-engineering-english/widgetsgallery.ts

	install -m 644 -D -p $(BUILD_DIR)/src/translations/libmeegotouch.ts $(CURDIR)/debian/tmp/usr/share/doc/libmeegotouch-l10n-engineering-english/libmeegotouch.ts

# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs
	dh_installdocs
	dh_install --sourcedir=debian/tmp -v
	# print warnings for not installed files
	dh_install --sourcedir=debian/tmp/ --list-missing
	dh_link
	dh_strip -p libmeegotouchcore0 --dbg-package=libmeegotouchcore0
	dh_strip -p libmeegotouchextensions0 --dbg-package=libmeegotouchextensions0
	dh_strip -p libmeegotouchsettings0 --dbg-package=libmeegotouchsettings0
	dh_strip -p libmeegotouchviews0 --dbg-package=libmeegotouchviews0
	dh_strip -p libmeegotouch-bin --dbg-package=libmeegotouch-bin
	dh_strip -p meegotouch-dev-tools --dbg-package=meegotouch-dev-tools
	dh_strip -p meegotouch-demos-widgetsgallery --dbg-package=meegotouch-demos-widgetsgallery
	dh_strip -p meegotouch-demos-plainqt --dbg-package=meegotouch-demos-plainqt
	dh_strip -p meegotouch-demos-appletinstallationsource --dbg-package=meegotouch-demos-appletinstallationsource
	dh_strip -p meegotouch-demos-applicationextension --dbg-package=meegotouch-demos-applicationextension
	dh_strip -p libmeegotouch-tests --dbg-package=libmeegotouch-tests
	dh_strip -p libmeegotouch-benchmarks --dbg-package=libmeegotouch-benchmarks
	dh_strip -p meegotouch-qt-style --dbg-package=meegotouch-qt-style
	dh_compress
	dh_fixperms
	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps -V
	dh_gencontrol
	dh_md5sums
	dh_builddeb --destdir=$(DEBDIR)

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