test more sloted options
[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-lang:
53         $(call build_translation, $(TRADUC_DIR))
54
55 install-lang: build-lang
56         $(INSTALL_DIR) $(TRADUC_DEST)
57         $(call install_translation, $(TRADUC_DIR))
58
59 install: version.in install-lang
60         python setup.py install --no-compile $(PYTHON_OPTS)
61
62 # List in .PHONY to force generation at each call
63 version.in:
64         @if test -n $(VERSION) ; then \
65                 echo -n $(VERSION) > $(VERSION_FILE) ; \
66         fi
67         @if test ! -s $(VERSION_FILE); then \
68                 echo -n '0.0-dev' > $(VERSION_FILE); \
69         fi
70
71 dist: version.in
72         git archive --format=tar --prefix $(PACKAGE)-$(VERSION)/ -o $(PACKAGE)-$(VERSION).tar $(LAST_TAG) \
73           && tar --xform "s,\(.*\),$(PACKAGE)-$(VERSION)/\1," -f $(PACKAGE)-$(VERSION).tar -r version.in \
74           && gzip -9 $(PACKAGE)-$(VERSION).tar
75
76 .PHONY: all clean test install version.in dist