source: projects/vbootstrap/trunk/po/Makefile @ 2517

Revision 2517, 3.4 KB checked in by munepi, 13 years ago (diff)

updated projects/vbootstrap: gettext 対応

Line 
1NAME=vbootstrap
2
3GETTEXT_PACKAGE = ${NAME}
4
5srcdir = .
6top_srcdir = ..
7
8prefix = /usr
9datadir = ${prefix}/share
10
11gnulocaledir = $(datadir)/locale
12
13DESTDIR=
14
15GMSGFMT = /usr/bin/msgfmt
16XGETTEXT = /usr/bin/xgettext
17
18LANGS=ja
19POFILES=$(shell for lang in "$(LANGS)"; do printf "$$lang.po "; done)
20GMOFILES=$(shell for lang in "$(LANGS)"; do printf "$$lang.gmo "; done;)
21
22CATALOGS=$(GMOFILES)
23CATOBJEXT = .gmo
24INSTOBJEXT = .mo
25
26.SUFFIXES: .po .pox .gmo .mo .msg .cat
27
28.po.gmo:
29        file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
30          && rm -f $$file && $(GMSGFMT) -c -o $$file $<
31
32all: $(CATALOGS)
33
34$(GETTEXT_PACKAGE).pot: $(srcdir)/$(GETTEXT_PACKAGE).pot
35$(srcdir)/$(GETTEXT_PACKAGE).pot:
36        $(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) --directory=$(top_srcdir) \
37          --add-comments --from-code=UTF-8 --keyword=_ --keyword=N_ \
38          --flag=g_strdup_printf:1:c-format \
39          --flag=g_string_printf:2:c-format \
40          --flag=g_string_append_printf:2:c-format \
41          --flag=g_error_new:3:c-format \
42          --flag=g_set_error:4:c-format \
43          --flag=g_markup_printf_escaped:1:c-format \
44          --flag=g_log:3:c-format \
45          --flag=g_print:1:c-format \
46          --flag=g_printerr:1:c-format \
47          --flag=g_printf:1:c-format \
48          --flag=g_fprintf:2:c-format \
49          --flag=g_sprintf:2:c-format \
50          --flag=g_snprintf:3:c-format \
51          --flag=g_scanner_error:2:c-format \
52          --flag=g_scanner_warn:2:c-format \
53          --files-from=$(srcdir)/POTFILES.in \
54        && test ! -f $(GETTEXT_PACKAGE).po \
55           || ( rm -f $(srcdir)/$(GETTEXT_PACKAGE).pot \
56                && mv $(GETTEXT_PACKAGE).po $(srcdir)/$(GETTEXT_PACKAGE).pot )
57
58install: all
59        @mkdir -p $(DESTDIR)$(datadir)
60        @catalogs='$(CATALOGS)'; \
61        for cat in $$catalogs; do \
62          cat=`basename $$cat`; \
63          destdir=$(gnulocaledir); \
64          lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
65          dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \
66          mkdir -p $$dir; \
67          install -m0644 $$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \
68          echo "installing $$cat as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \
69        done
70
71update-po: Makefile
72        $(MAKE) $(GETTEXT_PACKAGE).pot
73        tmpdir=`pwd`; \
74        cd $(srcdir); \
75        catalogs='$(CATALOGS)'; \
76        for cat in $$catalogs; do \
77          cat=`basename $$cat`; \
78          lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
79          echo "$$lang:"; \
80          if $(MSGMERGE) $$lang.po $(GETTEXT_PACKAGE).pot -o $$tmpdir/$$lang.new.po; then \
81            if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
82              rm -f $$tmpdir/$$lang.new.po; \
83            else \
84              if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
85                :; \
86              else \
87                echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
88                rm -f $$tmpdir/$$lang.new.po; \
89                exit 1; \
90              fi; \
91            fi; \
92          else \
93            echo "msgmerge for $$cat failed!"; \
94            rm -f $$tmpdir/$$lang.new.po; \
95          fi; \
96        done
97
98# POTFILES is created from POTFILES.in by stripping comments, empty lines
99# and Intltool tags (enclosed in square brackets), and appending a full
100# relative path to them
101POTFILES: POTFILES.in
102        ( if test 'x$(srcdir)' != 'x.'; then \
103            posrcprefix='$(top_srcdir)/'; \
104          else \
105            posrcprefix="../"; \
106          fi; \
107          rm -f $@-t $@ \
108            && (sed -e '/^#/d'                                          \
109                    -e "s/^\[.*\] +//"                                  \
110                    -e '/^[     ]*$$/d'                                 \
111                    -e "s@.*@   $$posrcprefix& \\\\@" < $(srcdir)/$@.in \
112                | sed -e '$$s/\\$$//') > $@-t \
113            && chmod a-w $@-t \
114            && mv $@-t $@ )
115
116clean:
117        rm -f *~ *.gmo
Note: See TracBrowser for help on using the repository browser.