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