203a6b783a7897f427f14711f5e4bd688973c430
[tiramisu.git] / Makefile
1 #!/usr/bin/make
2
3 PACKAGE         := tiramisu
4
5 INSTALL         := install
6 INSTALL_DATA    := install -m 644
7 INSTALL_PROGRAM := install -m 755
8 INSTALL_DIR     := install -m 755 -d
9
10 TRADUC_DIR       = translations
11 TRADUC_DEST      = $(DESTDIR)/usr/share/locale
12
13 PYTHON_OPTS      =
14 ifneq ($(DESTDIR),)
15 PYTHON_OPTS     += --root $(DESTDIR)
16 endif
17
18 LAST_TAG        := $(shell git describe --tags --abbrev=0)
19 VERSION         := $(shell echo $(LAST_TAG) | awk -F'/' '{print $$2}' || true)
20 VERSION_FILE    := version.in
21
22 # Build translation files
23 define build_translation
24     if [ -d ${1} ]; then                                            \
25         for f in `find ${1} -name "*.po"`; do                       \
26             msgfmt -o `dirname $$f`/`basename -s ".po" $$f`.mo $$f || true; \
27         done;                                                       \
28     fi
29 endef
30
31 # Install Traduction
32 define install_translation
33     if [ -d ${1} ]; then                          \
34         for file in `find ${1} -name "*.mo"`; do  \
35            $(INSTALL_DIR) $(TRADUC_DEST)/`echo $$file | cut -d '/' -f 2` || true;                     \
36            $(INSTALL_DIR) $(TRADUC_DEST)/`echo $$file | cut -d '/' -f 2`/LC_MESSAGES || true;         \
37            $(INSTALL_DATA) $$file $(TRADUC_DEST)/`echo $$file | cut -d '/' -f 2`/LC_MESSAGES || true; \
38         done;                                     \
39     fi
40 endef
41
42 all:
43
44 clean:
45         $(RM) -r build
46         $(RM) -r tiramisu.egg-info/
47         $(RM) -r $(TRADUC_DIR)/*/*.mo
48
49 #test: clean
50 #       py.test
51
52 # Build or update Portable Object Base Translation for gettext
53 build-pot:
54         pygettext.py -p translations/ -o tiramisu.pot `find tiramisu/ -name "*.py"`
55
56 build-lang:
57         $(call build_translation, $(TRADUC_DIR))
58
59 install-lang: build-lang
60         $(INSTALL_DIR) $(TRADUC_DEST)
61         $(call install_translation, $(TRADUC_DIR))
62
63 install: version.in install-lang
64         python setup.py install --no-compile $(PYTHON_OPTS)
65
66 # List in .PHONY to force generation at each call
67 version.in:
68         @if test -n $(VERSION) ; then \
69                 echo -n $(VERSION) > $(VERSION_FILE) ; \
70         fi
71         @if test ! -s $(VERSION_FILE); then \
72                 echo -n '0.0-dev' > $(VERSION_FILE); \
73         fi
74
75 dist: version.in
76         git archive --format=tar --prefix $(PACKAGE)-$(VERSION)/ -o $(PACKAGE)-$(VERSION).tar $(LAST_TAG) \
77           && tar --xform "s,\(.*\),$(PACKAGE)-$(VERSION)/\1," -f $(PACKAGE)-$(VERSION).tar -r version.in \
78           && gzip -9 $(PACKAGE)-$(VERSION).tar
79
80 .PHONY: all clean test install version.in dist build-pot