summaryrefslogtreecommitdiffstats
path: root/Makefile
blob: 075fd2b21922965c4a33567d95e6b3ea307488cd (plain)
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