1#!/bin/sh 2# Generate test locale files. 3# Copyright (C) 2000-2022 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# Do not force output with '-c', all locales should compile without 58# warning or errors. There is likewise no need to run quietly with 59# '--quiet' since all locales should compile without additional 60# diagnostics. If there are messages printed then we want to see 61# them, fix them, and the associated error or warning. During 62# development it may be beneficialy to put '--quiet -c' here to allow 63# you to develop in-progress locales. 64flags="" 65 66# For SJIS the charmap is SHIFT_JIS. We just want the locale to have 67# a slightly nicer name instead of using "*.SHIFT_SJIS", but that 68# means we need a mapping here. 69charmap_real="$charmap" 70if [ "$charmap" = "SJIS" ]; then 71 charmap_real="SHIFT_JIS" 72fi 73 74# In addition to this the SHIFT_JIS character maps are not ASCII 75# compatible so we must use `--no-warnings=ascii' to disable the 76# warning. See localedata/Makefile $(INSTALL-SUPPORTED-LOCALES) 77# for the same logic. 78if [ "$charmap_real" = 'SHIFT_JIS' ] \ 79 || [ "$charmap_real" = 'SHIFT_JISX0213' ]; then 80 flags="$flags --no-warnings=ascii" 81fi 82 83generate_locale $charmap_real $locale$modifier $locale.$charmap$modifier "$flags" 84