1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
#####################
# Makefile support
# (C) 2012 Paul W. Frields <stickster@gmail.com>
# Licensed uner the GNU General Public License, v2 or later.
#
#####################
# Vars
ifndef LANGUAGES
LANGUAGES:=$(shell ls po/*.po | sed 's/po\/\(.*\).po/\1/')
endif
DOMAIN=pulsecaster
PYTHON=$(shell which python)
TX=$(shell which tx)
PWD=$(shell pwd)
GIT=$(shell which git)
LATEST_TAG=$(shell git describe --tags --abbrev=0)
LATEST_VERSION=$(shell $(PYTHON) -c 'from pulsecaster.config import VERSION; print "%s" % (VERSION)')
#####################
# Initial stuff
.PHONY:: all clean vars
all::
vars::
@echo LATEST_TAG = $(LATEST_TAG)
@echo LATEST_VERSION = $(LATEST_VERSION)
#####################
#####################
# L10n support
.PHONY:: tx-pull
tx-pull::
$(TX) pull -a
.PHONY:: po
po: tx-pull $(foreach L,$(LANGUAGES),po/$(L).po)
define PO_template =
PO_FILES+= po/$(1).po
po/$(1).po: po/$(DOMAIN).pot
$(TX) pull -l $(1)
$(PYTHON) setup.py update_catalog -l $(1) -i po/$(DOMAIN).pot -o po/$(1).po -D $(DOMAIN) >/dev/null
endef
$(foreach L,$(LANGUAGES),$(eval $(call PO_template,$(L))))
vars::
@echo PO_FILES = $(PO_FILES)
.PHONY:: mo
all:: mo
mo: $(foreach L,$(LANGUAGES),po/$(L).mo)
define MO_template =
MO_FILES+= po/$(1).mo
po/$(1).mo: po/$(1).po
mkdir -p locale/$(1)/LC_MESSAGES && $(PYTHON) setup.py compile_catalog -l $(1) -i po/$(1).po -o po/$(1).mo -D $(DOMAIN) >/dev/null
clean::
rm -f po/$(1).mo
endef
$(foreach L,$(LANGUAGES),$(eval $(call MO_template,$(L))))
vars::
@echo MO_FILES = $(MO_FILES)
.PHONY:: stats
define STATS_template =
stats:: stats-$(1)
stats-$(1): po/$(1).po
@echo -n "$(1): " && msgfmt --statistics po/$(1).po
endef
$(foreach L,$(LANGUAGES),$(eval $(call STATS_template,$(L))))
#####################
#####################
# Release stuff
.PHONY:: release
release:: $(DOMAIN)-$(LATEST_VERSION).tar.gz
$(DOMAIN)-$(LATEST_VERSION).tar.gz:: po
ifneq ($(LATEST_TAG),$(LATEST_VERSION))
@echo Version=$(LATEST_VERSION), latest git tag=$(LATEST_TAG), either fix config.py or tag repo
else
$(PYTHON) setup.py sdist
@echo Tarball is in dist/$@
endif
|