an OptionDescription can be serialized
[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 VERSION         := 1.0rc
19 VERSION_FILE    := version.in
20
21 # Build translation files
22 define build_translation
23     if [ -d ${1} ]; then                                            \
24         for f in `find ${1} -name "*.po"`; do                       \
25             msgfmt -o `dirname $$f`/`basename -s ".po" $$f`.mo $$f || true; \
26         done;                                                       \
27     fi
28 endef
29
30 # Install Traduction
31 define install_translation
32     if [ -d ${1} ]; then                          \
33         for file in `find ${1} -name "*.mo"`; do  \
34            $(INSTALL_DIR) $(TRADUC_DEST)/`echo $$file | cut -d '/' -f 2` || true;                     \
35            $(INSTALL_DIR) $(TRADUC_DEST)/`echo $$file | cut -d '/' -f 2`/LC_MESSAGES || true;         \
36            $(INSTALL_DATA) $$file $(TRADUC_DEST)/`echo $$file | cut -d '/' -f 2`/LC_MESSAGES || true; \
37         done;                                     \
38     fi
39 endef
40
41 all: build-lang
42
43 clean:
44         $(RM) -r build
45         $(RM) -r $(PACKAGE).egg-info/
46         $(RM) -r $(VERSION_FILE)
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 $(PACKAGE).pot `find $(PACKAGE)/ -name "*.py"`
55
56 build-lang:
57         $(call build_translation, $(TRADUC_DIR))
58
59 install-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         echo -n $(VERSION) > $(VERSION_FILE)
69
70 dist:
71         git archive --format=tar --prefix $(PACKAGE)-$(VERSION)/ HEAD | gzip -9 > $(PACKAGE)-$(VERSION).tar.gz
72
73 .PHONY: all clean build-pot build-lang install-lang install version.in dist