]>
Commit | Line | Data |
---|---|---|
1 | #!/bin/sh | |
2 | # Generate test locale files. | |
3 | # Copyright (C) 2000-2019 Free Software Foundation, Inc. | |
4 | # This file is part of the GNU C Library. | |
5 | ||
6 | # The GNU C Library is free software; you can redistribute it and/or | |
7 | # modify it under the terms of the GNU Lesser General Public | |
8 | # License as published by the Free Software Foundation; either | |
9 | # version 2.1 of the License, or (at your option) any later version. | |
10 | ||
11 | # The GNU C Library is distributed in the hope that it will be useful, | |
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 | # Lesser General Public License for more details. | |
15 | ||
16 | # You should have received a copy of the GNU Lesser General Public | |
17 | # License along with the GNU C Library; if not, see | |
18 | # <https://www.gnu.org/licenses/>. | |
19 | ||
20 | set -e | |
21 | ||
22 | common_objpfx="$1"; shift | |
23 | localedef_before_env="$1"; shift | |
24 | run_program_env="$1"; shift | |
25 | localedef_after_env="$1"; shift | |
26 | locfile="$1"; shift | |
27 | ||
28 | generate_locale () | |
29 | { | |
30 | charmap=$1 | |
31 | input=$2 | |
32 | out=$3 | |
33 | flags=$4 | |
34 | ret=0 | |
35 | ${localedef_before_env} ${run_program_env} I18NPATH=../localedata \ | |
36 | ${localedef_after_env} $flags -f $charmap -i $input \ | |
37 | ${common_objpfx}localedata/$out || ret=$? | |
38 | if [ $ret -eq 0 ]; then | |
39 | # The makefile checks the timestamp of the LC_CTYPE file, | |
40 | # but localedef won't have touched it if it was able to | |
41 | # hard-link it to an existing file. | |
42 | touch ${common_objpfx}localedata/$out/LC_CTYPE | |
43 | else | |
44 | echo "Charmap: \"${charmap}\" Inputfile: \"${input}\"" \ | |
45 | "Outputdir: \"${out}\" failed" | |
46 | exit 1 | |
47 | fi | |
48 | } | |
49 | ||
50 | locfile=`echo $locfile|sed 's|.*/\([^/]*/LC_CTYPE\)|\1|'` | |
51 | locale=`echo $locfile|sed 's|\([^.]*\)[.].*/LC_CTYPE|\1|'` | |
52 | charmap=`echo $locfile|sed 's|[^.]*[.]\([^@ ]*\)\(@[^ ]*\)\?/LC_CTYPE|\1|'` | |
53 | modifier=`echo $locfile|sed 's|[^.]*[.]\([^@ ]*\)\(@[^ ]*\)\?/LC_CTYPE|\2|'` | |
54 | ||
55 | echo "Generating locale $locale.$charmap: this might take a while..." | |
56 | ||
57 | # Run quietly and force output. | |
58 | flags="--quiet -c" | |
59 | ||
60 | # For SJIS the charmap is SHIFT_JIS. We just want the locale to have | |
61 | # a slightly nicer name instead of using "*.SHIFT_SJIS", but that | |
62 | # means we need a mapping here. | |
63 | charmap_real="$charmap" | |
64 | if [ "$charmap" = "SJIS" ]; then | |
65 | charmap_real="SHIFT_JIS" | |
66 | fi | |
67 | ||
68 | # In addition to this the SHIFT_JIS character maps are not ASCII | |
69 | # compatible so we must use `--no-warnings=ascii' to disable the | |
70 | # warning. See localedata/Makefile $(INSTALL-SUPPORTED-LOCALES) | |
71 | # for the same logic. | |
72 | if [ "$charmap_real" = 'SHIFT_JIS' ] \ | |
73 | || [ "$charmap_real" = 'SHIFT_JISX0213' ]; then | |
74 | flags="$flags --no-warnings=ascii" | |
75 | fi | |
76 | ||
77 | generate_locale $charmap_real $locale$modifier $locale.$charmap$modifier "$flags" |