#!/usr/bin/make

PACKAGE         := tiramisu

INSTALL         := install
INSTALL_DATA    := install -m 644
INSTALL_PROGRAM := install -m 755
INSTALL_DIR     := install -m 755 -d

TRADUC_DIR       = translations
TRADUC_DEST	 = $(DESTDIR)/usr/share/locale

PYTHON_OPTS      =
ifneq ($(DESTDIR),)
PYTHON_OPTS     += --root $(DESTDIR)
endif

LAST_TAG        := $(shell git describe --tags --abbrev=0)
VERSION         := $(shell echo $(LAST_TAG) | awk -F'/' '{print $$2}' || true)
VERSION_FILE    := version.in

# Build translation files
define build_translation
    if [ -d ${1} ]; then                                            \
	for f in `find ${1} -name "*.po"`; do                       \
	    msgfmt -o `dirname $$f`/`basename -s ".po" $$f`.mo $$f || true; \
	done;                                                       \
    fi
endef

# Install Traduction
define install_translation
    if [ -d ${1} ]; then                          \
	for file in `find ${1} -name "*.mo"`; do  \
	   $(INSTALL_DIR) $(TRADUC_DEST)/`echo $$file | cut -d '/' -f 2` || true;                     \
	   $(INSTALL_DIR) $(TRADUC_DEST)/`echo $$file | cut -d '/' -f 2`/LC_MESSAGES || true;         \
	   $(INSTALL_DATA) $$file $(TRADUC_DEST)/`echo $$file | cut -d '/' -f 2`/LC_MESSAGES || true; \
	done;                                     \
    fi
endef

all:

clean:
	$(RM) -r build
	$(RM) -r tiramisu.egg-info/
	$(RM) -r $(TRADUC_DIR)/*/*.mo

#test: clean
#	py.test

build-lang:
	$(call build_translation, $(TRADUC_DIR))

install-lang: build-lang
	$(INSTALL_DIR) $(TRADUC_DEST)
	$(call install_translation, $(TRADUC_DIR))

install: version.in install-lang
	python setup.py install --no-compile $(PYTHON_OPTS)

# List in .PHONY to force generation at each call
version.in:
	@if test -n $(VERSION) ; then \
		echo -n $(VERSION) > $(VERSION_FILE) ; \
	fi
	@if test ! -s $(VERSION_FILE); then \
		echo -n '0.0-dev' > $(VERSION_FILE); \
	fi

dist: version.in
	git archive --format=tar --prefix $(PACKAGE)-$(VERSION)/ -o $(PACKAGE)-$(VERSION).tar $(LAST_TAG) \
	  && tar --xform "s,\(.*\),$(PACKAGE)-$(VERSION)/\1," -f $(PACKAGE)-$(VERSION).tar -r version.in \
	  && gzip -9 $(PACKAGE)-$(VERSION).tar

.PHONY: all clean test install version.in dist