]>
Commit | Line | Data |
---|---|---|
688903eb | 1 | # Copyright (C) 1996-2018 Free Software Foundation, Inc. |
ce4d8b66 RM |
2 | # This file is part of the GNU C Library. |
3 | ||
4 | # The GNU C Library is free software; you can redistribute it and/or | |
41bdb6e2 AJ |
5 | # modify it under the terms of the GNU Lesser General Public |
6 | # License as published by the Free Software Foundation; either | |
7 | # version 2.1 of the License, or (at your option) any later version. | |
ce4d8b66 RM |
8 | |
9 | # The GNU C Library is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
41bdb6e2 | 12 | # Lesser General Public License for more details. |
ce4d8b66 | 13 | |
41bdb6e2 | 14 | # You should have received a copy of the GNU Lesser General Public |
59ba27a6 PE |
15 | # License along with the GNU C Library; if not, see |
16 | # <http://www.gnu.org/licenses/>. | |
0c5ecdc4 UD |
17 | |
18 | # Makefile for installing libc message catalogs. | |
ce4d8b66 RM |
19 | |
20 | subdir := po | |
21 | ||
a5f891ac JM |
22 | include ../Makeconfig |
23 | ||
bf1097cb | 24 | # Add names of the languages with broken .po files here. |
9de06f3c | 25 | BROKEN_LINGUAS = |
c5196097 | 26 | |
ce4d8b66 | 27 | # List of languages for which we have message catalogs of translations. |
c5196097 | 28 | ALL_LINGUAS := $(filter-out $(BROKEN_LINGUAS),$(basename $(wildcard *.po))) |
ce4d8b66 RM |
29 | |
30 | # You can override this in configparms or the make command line to limit | |
31 | # the languages which get installed. | |
32 | ifdef LINGUAS | |
33 | LINGUAS := $(filter $(addsuffix %,$(LINGUAS)),$(ALL_LINGUAS)) | |
34 | else | |
35 | LINGUAS = $(ALL_LINGUAS) | |
36 | endif | |
37 | ||
38 | # Text domain name to install under; must match ../locale/SYS_libc.c string. | |
8ca5c11b | 39 | domainname = libc |
ce4d8b66 | 40 | |
ce4d8b66 | 41 | # Pattern for where message catalog object for language % gets installed. |
314f6dee | 42 | mo-installed = $(inst_localedir)/%/LC_MESSAGES/$(domainname).mo |
ce4d8b66 RM |
43 | |
44 | # Files to install: a $(domainname).mo file for each language. | |
45 | install-others = $(LINGUAS:%=$(mo-installed)) | |
46 | ||
f2da2fd8 JM |
47 | generated += $(ALL_LINGUAS:%=%.mo) |
48 | ||
ce4d8b66 | 49 | |
c17097f1 | 50 | include ../Rules |
ce4d8b66 | 51 | |
9de06f3c | 52 | # Generate the translation template from all the source files. |
cd6701cf | 53 | libc.pot: pot.header libc.pot.files |
9de06f3c RM |
54 | @rm -f $@.new |
55 | set `date -R`; disp="$$6"; \ | |
56 | sed -e 's/VERSION/$(version)/' \ | |
57 | -e "s/DATE/`date +'%Y-%m-%d %H:%M'$$disp`/" \ | |
771766df | 58 | -e "s/CHARSET/UTF-8/" \ |
9de06f3c | 59 | $< > $@.new |
41fce8bd | 60 | egrep -v '\.ksh$$' $(word 2,$^) > $(objdir)/tmp-libc.pot-files |
9de06f3c RM |
61 | cd ..; $(XGETTEXT) --keyword=_ --keyword=N_ \ |
62 | --add-comments=TRANS --flag=error:3:c-format \ | |
51f8846e | 63 | --flag=f_print:2:c-format \ |
9de06f3c | 64 | --sort-by-file --omit-header -E -n -d - \ |
41fce8bd UD |
65 | -f $(objdir)/tmp-libc.pot-files >> po/$@.new |
66 | egrep '\.ksh$$' $(word 2,$^) > $(objdir)/tmp-libc.pot-files | |
67 | cd ..; $(XGETTEXT) --add-comments=TRANS --language=Shell \ | |
68 | --sort-by-file --omit-header -E -n -o po/$@.new -j \ | |
69 | -f $(objdir)/tmp-libc.pot-files po/$@.new | |
70 | rm $(objdir)/tmp-libc.pot-files | |
9de06f3c | 71 | mv -f $@.new $@ |
9de06f3c | 72 | |
977e7f71 | 73 | po-sed-cmd = \ |
41fce8bd | 74 | '/\/tst-/d;$(foreach S,[ch] cxx sh ksh bash,$(subst .,\.,/.$S\(.in\)*$$/p;))' |
977e7f71 | 75 | |
9de06f3c RM |
76 | # Omit tst-* files, and get only files with the given suffixes. |
77 | libc.pot.files: FORCE | |
977e7f71 | 78 | $(..)scripts/list-sources.sh .. | sed -n $(po-sed-cmd) > $@.new |
9de06f3c | 79 | mv -f $@.new $@ |
ce4d8b66 RM |
80 | |
81 | .SUFFIXES: .mo .po .pot | |
82 | ||
83 | # Compile the binary message object files from the portable object source | |
84 | # files of translations for each language. | |
f2da2fd8 JM |
85 | $(objpfx)%.mo: %.po |
86 | $(make-target-directory) | |
ce4d8b66 RM |
87 | $(MSGFMT) -o $@ $< |
88 | ||
8ca5c11b | 89 | # Install the message object files as libc.po in the language directory. |
f2da2fd8 | 90 | $(mo-installed): $(objpfx)%.mo $(+force); $(do-install) || exit 0 |
ce4d8b66 | 91 | \f |
56009aa3 SP |
92 | # Update translations from the translation project. |
93 | TRANSLATIONS_URL = https://translationproject.org/latest/libc | |
94 | WGET = wget | |
95 | ||
96 | update-translations: | |
97 | $(WGET) -qO- $(TRANSLATIONS_URL) | sed -n 's|.*href="\([^"]\+po\)".*|\1|p' | \ | |
98 | while read f; do \ | |
99 | $(WGET) -O $(objdir)/$$f-tmp $(TRANSLATIONS_URL)/$$f && \ | |
100 | mv -f $(objdir)/$$f-tmp $$f; \ | |
101 | done |