]>
Commit | Line | Data |
---|---|---|
818ff145 VS |
1 | # this is the makefile for generating wxstd.po message catalog file and |
2 | # building lang.mo files from the translated lang.po catalogs | |
3 | ||
4 | # this makefile may be invoked to build either wxstd.po or any lang.mo | |
5 | ||
6 | # Autodetect the languages we support. Currently this relies on make | |
7 | # being called with this dir as the cwd, but if we generate this file | |
8 | # with configure an explicit path should be specified -- RL. | |
9 | ||
10 | WX_LINGUAS := `cd @srcdir@ ; ls *.po 2> /dev/null | sed -n 's/\(wxstd\)\?\.po//p'` | |
11 | LINGUAS_TARGETS := $(shell cd @srcdir@ ; ls *.po 2> /dev/null | sed -e 's/wxstd\.po//' | sed -e 's/po/mo/') | |
12 | ||
13 | # the programs we use (TODO: use configure to detect them) | |
14 | MSGFMT=msgfmt --verbose | |
15 | MSGMERGE=msgmerge | |
16 | XGETTEXT=xgettext | |
17 | XARGS=xargs | |
18 | ||
19 | # common xgettext args: C++ syntax, use the specified macro names as markers | |
20 | XGETTEXT_ARGS=-C -k_ -kwxGetTranslation -kwxTRANSLATE -s -j | |
21 | ||
22 | # default target | |
23 | all: allmo | |
24 | ||
25 | clean: | |
26 | $(RM) $(LINGUAS_TARGETS) | |
27 | ||
28 | # implicit rules | |
29 | %.mo: @srcdir@/%.po | |
30 | $(MSGFMT) -o $@ $< | |
31 | ||
32 | # a PO file must be updated from wxstd.po to include new translations | |
33 | @srcdir@/%.po: @srcdir@/wxstd.po | |
34 | if [ -f $@ ]; then $(MSGMERGE) $@ @srcdir@/wxstd.po > $@.new && mv $@.new $@; else cp @srcdir@/wxstd.po $@; fi | |
35 | ||
36 | @srcdir@/wxstd.po: | |
37 | touch $@ | |
38 | find @top_srcdir@/include -name "*.h" | $(XARGS) $(XGETTEXT) $(XGETTEXT_ARGS) -o $@ | |
39 | find @top_srcdir@/src -name "*.cpp" | $(XARGS) $(XGETTEXT) $(XGETTEXT_ARGS) -o $@ | |
40 | find @top_srcdir@/contrib/include -name "*.h" | $(XARGS) $(XGETTEXT) $(XGETTEXT_ARGS) -o $@ | |
41 | find @top_srcdir@/contrib/src -name "*.cpp" | $(XARGS) $(XGETTEXT) $(XGETTEXT_ARGS) -o $@ | |
42 | ||
43 | allpo: force-update | |
44 | @-for t in $(WX_LINGUAS); do $(MAKE) @srcdir@/$$t.po; done | |
45 | ||
46 | allmo: $(LINGUAS_TARGETS) | |
47 | ||
48 | force-update: | |
49 | $(RM) @srcdir@/wxstd.po | |
50 | ||
51 | # targets depending on this one will be always remade | |
52 | FORCE: | |
53 | ||
54 | .PHONY: all allpo allmo force-update | |
55 | ||
56 | # $Id$ |