1#!/bin/sh 2# Generate test locale files. 3# Copyright (C) 2000-2021 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 20set -e 21 22common_objpfx="$1"; shift 23localedef_before_env="$1"; shift 24run_program_env="$1"; shift 25localedef_after_env="$1"; shift 26locfile="$1"; shift 27 28generate_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 50locfile=`echo $locfile|sed 's|.*/\([^/]*/LC_CTYPE\)|\1|'` 51locale=`echo $locfile|sed 's|\([^.]*\)[.].*/LC_CTYPE|\1|'` 52charmap=`echo $locfile|sed 's|[^.]*[.]\([^@ ]*\)\(@[^ ]*\)\?/LC_CTYPE|\1|'` 53modifier=`echo $locfile|sed 's|[^.]*[.]\([^@ ]*\)\(@[^ ]*\)\?/LC_CTYPE|\2|'` 54 55echo "Generating locale $locale.$charmap: this might take a while..." 56 57# Run quietly and force output. 58flags="--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. 63charmap_real="$charmap" 64if [ "$charmap" = "SJIS" ]; then 65 charmap_real="SHIFT_JIS" 66fi 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. 72if [ "$charmap_real" = 'SHIFT_JIS' ] \ 73 || [ "$charmap_real" = 'SHIFT_JISX0213' ]; then 74 flags="$flags --no-warnings=ascii" 75fi 76 77generate_locale $charmap_real $locale$modifier $locale.$charmap$modifier "$flags" 78