#!/usr/bin/make -f
# -*- makefile -*-

QMAKE = qmake

CFLAGS = -Wall -g
BUILD_ROOT = $(CURDIR)
WRT_HOME = $(CURDIR)/work

DEVICE_API_INSTALL_DIR = /usr/share/wrt/data/widgets_21D_4C7/lib/nokia/device

# detect target architecture
# DEB_BUILD_ARCH seems to be defined only for dpkg-buildpackage
arch := $(DEB_BUILD_ARCH)
ifeq (,$(arch))
  arch := $(SBOX_DPKG_INST_ARCH)
endif
ifeq (,$(arch))
  #keep this in sync with cwrt-maemo.pri
  arch := $(shell dpkg-architecture -qDEB_HOST_ARCH)
endif
ifeq (,$(arch))
  #FIXME: how to cancel make 
  arch := $(shell echo "Error: could not detect build architecture. Define DEB_BUILD_ARCH")
  exit 1
endif

######################################################

clone-wrt-home-stamp:
	rm -rf $(WRT_HOME)
	mkdir -p $(WRT_HOME)/wrt
	cp -p $(BUILD_ROOT)/src/*.pri $(WRT_HOME)/
	cp -p $(BUILD_ROOT)/src/wrt/*.pri $(WRT_HOME)/wrt/
	cp -pr $(BUILD_ROOT)/src/wrt/serviceproviders $(WRT_HOME)/wrt/
	cp -pr $(BUILD_ROOT)/src/wrt/jsapi $(WRT_HOME)/wrt/
	touch clone-wrt-home-stamp

configure: configure-stamp
configure-stamp: clone-wrt-home-stamp
	dh_testdir
	cd $(WRT_HOME)/wrt/serviceproviders && $(QMAKE) INSTALL_PREFIX=/usr CONFIG-=debug CONFIG+=release CONFIG+=maemo CONFIG+=maemo5 CONFIG+=cwrt-services
	touch configure-stamp

build: build-stamp
build-stamp: configure-stamp
	dh_testdir
	cd $(WRT_HOME)/wrt/serviceproviders && $(MAKE) -j4 CFLAGS="$(CFLAGS)" all
	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp configure-stamp clone-wrt-home-stamp

	cd $(WRT_HOME)/wrt/serviceproviders && $(MAKE) distclean || true
	rm -rf $(WRT_HOME) WrtBuild/

	dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_installdirs

	# Cleanup
	rm -rf $(BUILD_ROOT)/debian/tmp/usr/share/cwrt/tests/cjse
	rm -rf $(BUILD_ROOT)/debian/tmp$(DEVICE_API_INSTALL_DIR)/device

	# Make install
	cd $(WRT_HOME)/wrt/serviceproviders/ && INSTALL_ROOT=$(BUILD_ROOT)/debian/tmp $(MAKE) install

	# Generate Framework API and test widgets
	cd $(WRT_HOME)/wrt/jsapi/cjse/ && ./generator.pl maemo-new

	# Install Framework API
	mkdir -p $(BUILD_ROOT)/debian/tmp$(DEVICE_API_INSTALL_DIR)
	cp -pr $(WRT_HOME)/wrt/jsapi/cjse/release/*.js $(BUILD_ROOT)/debian/tmp$(DEVICE_API_INSTALL_DIR)

	# Install test widgets
#	mkdir -p $(BUILD_ROOT)/debian/tmp/usr/share/cwrt/tests
#	cp -pr $(WRT_HOME)/wrt/jsapi/cjse/wgtwidgets $(BUILD_ROOT)/debian/tmp/usr/share/cwrt/tests/cjse

	# Add directory listing in the build log
#	ls -R $(BUILD_ROOT)/debian/tmp/


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

# Build architecture-dependent files here.
binary-arch: install
	dh_testdir
	dh_testroot
	dh_installchangelogs #CHANGELOGS#
	dh_installdocs
	dh_installexamples
	dh_install --sourcedir=debian/tmp
#	dh_installmenu
#	dh_installdebconf
#	dh_installlogrotate
#	dh_installemacsen
#	dh_installpam
#	dh_installmime
#	dh_python
#	dh_installinit
#	dh_installcron
#	dh_installinfo
	dh_installman
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
#	dh_perl
	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

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