#!/usr/bin/make -f

DEB_DESTDIR = $(CURDIR)/debian/tmp

# Python definitions
PYVER=2.5
PYTHON=python$(PYVER)

# Installation directories
USR_DIR=/usr
BIN_DIR=$(USR_DIR)/bin
SHARE_DIR=$(USR_DIR)/share
PIXMAPS_DIR=$(SHARE_DIR)/pixmaps
ICONS_DIR=$(SHARE_DIR)/icons/hicolor
DESKTOP_DIR=$(SHARE_DIR)/applications/hildon/
DBUS_SERVICES_DIR=$(SHARE_DIR)/dbus-1/services

ETC_DIR=/etc
BACKUP_DIR=$(ETC_DIR)/osso-backup/applications/

CNL_SHARE_DIR=$(SHARE_DIR)/canola
CNL_THEMES_DIR=$(CNL_SHARE_DIR)/themes
CNL_PLUGINS_DIR=$(CNL_SHARE_DIR)/plugins

# Other plugin definitions:
CNL_COLLECTION_NAME=canola-core

build: build-stamp
build-stamp:
	dh_testdir
	#
	# Compile themes
	#
	for THEME_DIR in $(CURDIR)/data/themes/*; do \
		THEME=`basename $$THEME_DIR`; \
		cd $$THEME_DIR && \
	        edje_cc $$THEME.edc; \
    done
	#
	# Compile etk-themes
	#
	for THEME_DIR in $(CURDIR)/data/etk-themes/*; do \
		THEME=`basename $$THEME_DIR`; \
		cd $$THEME_DIR && \
	        edje_cc -id images $$THEME.edc conf.edj; \
    done
	#
	# Compile sources
	#
	$(PYTHON) -OO -m compileall -d $(CNL_COLLECTION_NAME) $(CURDIR)/plugins/$(CNL_COLLECTION_NAME)
	#
	# Build plugin package
	#
	cd $(CURDIR)/plugins/ && \
		zip -q -0 $(CNL_COLLECTION_NAME).zip $(CNL_COLLECTION_NAME)/plugins.info `find ./$(CNL_COLLECTION_NAME) -name "*.pyo"`
	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	#
	# Remove built themes
	#
	find $(CURDIR)/data/themes/ -name "*.edj" | xargs rm -f
	find $(CURDIR)/data/etk-themes/ -name "*.edj" | xargs rm -f
	#
	# Remove built sources
	#
	find $(CURDIR)/plugins/$(CNL_COLLECTION_NAME) -name "*.pyc" | xargs rm -f
	find $(CURDIR)/plugins/$(CNL_COLLECTION_NAME) -name "*.pyo" | xargs rm -f
	#
	# Remove plugin package
	#
	rm -f $(CURDIR)/plugins/$(CNL_COLLECTION_NAME).zip
	rm -f build-stamp
	rm -rf $(DEB_DESTDIR)
	dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_installdirs
	#
	# Install themes
	#
	for THEME in $(CURDIR)/data/*themes/*/*.edj; do \
		install -D -m 644 $$THEME $(DEB_DESTDIR)/$(CNL_THEMES_DIR)/`basename $$THEME`; \
	done
	rm -f $(DEB_DESTDIR)/$(CNL_THEMES_DIR)/checker.edj
	#
	# Install plugin package
	#
	install -D -m 644 $(CURDIR)/plugins/$(CNL_COLLECTION_NAME).zip $(DEB_DESTDIR)/$(CNL_PLUGINS_DIR)/$(CNL_COLLECTION_NAME).zip
	#
	# Install icons
	#
	install -D -m 644 $(CURDIR)/data/icons/26x26.png $(DEB_DESTDIR)/$(PIXMAPS_DIR)/canola.png
	install -D -m 644 $(CURDIR)/data/icons/26x26.png $(DEB_DESTDIR)/$(ICONS_DIR)/26x26/hildon/canola.png
	install -D -m 644 $(CURDIR)/data/icons/scalable.png $(DEB_DESTDIR)/$(ICONS_DIR)/scalable/hildon/canola.png
	install -D -m 644 $(CURDIR)/data/icons/scalable.png $(DEB_DESTDIR)/$(ICONS_DIR)/40x40/hildon/canola.png
	#
	# Install canola.conf file
	#
	install -D -m 644 $(CURDIR)/data/canola.conf $(DEB_DESTDIR)/$(ETC_DIR)/canola.conf
	#
	# Install .desktop file
	#
	install -D -m 644 $(CURDIR)/data/canola.desktop $(DEB_DESTDIR)/$(DESKTOP_DIR)/canola.desktop
	#
	# Install D-Bus .service file
	#
	install -D -m 644 $(CURDIR)/data/canola.service $(DEB_DESTDIR)/$(DBUS_SERVICES_DIR)/org.openbossa.canola.service
	#
	# Install backup .conf file
	#
	install -D -m 644 $(CURDIR)/data/canola-backup.conf $(DEB_DESTDIR)/$(BACKUP_DIR)/canola2.conf
	#
	# Install canola.presets file
	#
	install -D -m 644 $(CURDIR)/data/canola.presets $(DEB_DESTDIR)/$(CNL_SHARE_DIR)/canola.presets
	#
	# Install binaries
	#
	for FILE in canola cnl-wrapper; do \
		install -D -m 755 $(CURDIR)/bin/$$FILE $(DEB_DESTDIR)/$(BIN_DIR)/`basename $$FILE`; \
	done
	dh_install --sourcedir=$(DEB_DESTDIR) --fail-missing

binary: build install
	dh_testdir
	dh_testroot
	dh_installdocs
	dh_installdebconf
	dh_installchangelogs
	dh_strip
	dh_link
	dh_compress
	dh_fixperms
	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

.PHONY: build clean install binary
