|
1 # Copyright (c) 2006, Alex Tingle. $Revision: 184 $ |
|
2 # |
|
3 # This program is free software; you can redistribute it and/or |
|
4 # modify it under the terms of the GNU General Public License |
|
5 # as published by the Free Software Foundation; either version 2 |
|
6 # of the License, or (at your option) any later version. |
|
7 # |
|
8 # This program is distributed in the hope that it will be useful, |
|
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
11 # GNU General Public License for more details. |
|
12 # |
|
13 # You should have received a copy of the GNU General Public License |
|
14 # along with this program; if not, write to the Free Software |
|
15 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA |
|
16 |
|
17 |
|
18 # Generates gettext translation file. |
|
19 # Just drop .po files into the gettext directory and make will do the rest. |
|
20 |
|
21 PHP_FILES := $(wildcard *.php) $(wildcard */*.php) |
|
22 PO_FILES := $(wildcard gettext/ec3-*.po) |
|
23 MO_FILES := $(patsubst %.po,%.mo,$(PO_FILES)) |
|
24 |
|
25 # EventCalendar's PO template |
|
26 POT := gettext/ec3.pot |
|
27 |
|
28 # Working space - The shell command creates this directory. |
|
29 TEMPDIR := $(shell mktemp -t -d eventcalendar.XXXXXXXXXXXXX) |
|
30 # Temporary files, filtered for gettext calls in the 'ec3' domain. |
|
31 XPHP_FILES := $(patsubst %,$(TEMPDIR)/%,$(PHP_FILES)) |
|
32 |
|
33 # xgettext generates a .pot template from souce code. |
|
34 XGETTEXT := xgettext |
|
35 XGETTEXT_OPTIONS := \ |
|
36 --default-domain=ec3 \ |
|
37 --language=php \ |
|
38 --keyword=_x_ \ |
|
39 --from-code=UTF-8 \ |
|
40 --msgid-bugs-address='eventcalendar@firetree.net' \ |
|
41 |
|
42 .PHONY: all |
|
43 all: $(POT) $(MO_FILES) $(TEMPDIR)/delete |
|
44 |
|
45 $(MO_FILES): %.mo: %.po |
|
46 @echo "MSGFMT: $@" |
|
47 msgfmt -o$@ $< |
|
48 |
|
49 $(PO_FILES): %: $(POT) |
|
50 @echo "MSGMERGE: $@" |
|
51 msgmerge -U $@ $(POT) |
|
52 touch $@ |
|
53 |
|
54 $(POT): $(XPHP_FILES) gettext/pot.sed |
|
55 @echo "XGETTEXT: $@" |
|
56 cd $(TEMPDIR) && \ |
|
57 $(XGETTEXT) $(XGETTEXT_OPTIONS) -o- $(PHP_FILES) \ |
|
58 | sed -f $(CURDIR)/gettext/pot.sed \ |
|
59 > $(CURDIR)/$@ |
|
60 |
|
61 .INTERMEDIATE: $(XPHP_FILES) |
|
62 $(XPHP_FILES): $(TEMPDIR)/%: % |
|
63 @echo "SED_FILTER: $<" |
|
64 mkdir -p $(@D) |
|
65 sed "s/_[_e]\(([^)]*,['\"]ec3['\"])\)/_x_\1/" $< > $@ |
|
66 |
|
67 # Force the temporary directory to be deleted when everything is done. |
|
68 $(TEMPDIR)/delete: |
|
69 rm -rf $(TEMPDIR) |
|
70 |
|
71 .PHONY: clean |
|
72 clean: $(TEMPDIR)/delete |
|
73 rm -f $(POT) |
|
74 rm -f $(MO_FILES) |
|
75 |
|
76 .SILENT: |
|
77 .DELETE_ON_ERROR: |