diff options
author | Luotao Fu <l.fu@pengutronix.de> | 2007-01-09 16:33:09 +0000 |
---|---|---|
committer | Luotao Fu <l.fu@pengutronix.de> | 2007-01-09 16:33:09 +0000 |
commit | f506059831e8916a8b3722023ceff7053b3e1d06 (patch) | |
tree | dd698d20ca34f508f48d1733ec5180b4e11843e4 /scripts/make_locale.sh | |
parent | b93390c08b4bafbe13441fcc93eb61e05d14d377 (diff) | |
download | ptxdist-f506059831e8916a8b3722023ceff7053b3e1d06.tar.gz ptxdist-f506059831e8916a8b3722023ceff7053b3e1d06.tar.xz |
added locale generatio script
git-svn-id: https://svn.pengutronix.de/svn/ptxdist/trunks/ptxdist-trunk@6800 33e552b5-05e3-0310-8538-816dae2090ed
Diffstat (limited to 'scripts/make_locale.sh')
-rwxr-xr-x | scripts/make_locale.sh | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/scripts/make_locale.sh b/scripts/make_locale.sh new file mode 100755 index 000000000..2c993325e --- /dev/null +++ b/scripts/make_locale.sh @@ -0,0 +1,77 @@ +#!/bin/bash + +if test -z "${PTXDIST_TOPDIR}"; then + echo PTXDIST_TOPDIR is unset + exit +fi + +. ${PTXDIST_TOPDIR}/scripts/ptxdist_vars.sh +. ${SCRIPTSDIR}/libptxdist.sh +. ${SCRIPTSDIR}/install_copy_toolchain.sh + +usage() { + echo + echo "usage: $0 <args>" + echo + echo " Arguments:" + echo + echo " -f charmap character map file" + echo " -i definition locale definitionfile" + echo " -p prefix prefix dir" + echo " -n name locale name" + exit 1 +} + +_ptxd_get_sysroot_usr_by_sysroot() { + local sysroot + + sysroot="`echo 'int main(void){return 0;}' | \ + ${CC} -x c -o /dev/null -v - 2>&1 | \ + sed -ne \"/.*collect2.*/s,.*--sysroot=\([^[:space:]]*\).*,\1,p\"`" + + test -n "${sysroot}" || return 1 + + echo "`ptxd_abspath ${sysroot}/usr`" +} + +add_locale() { + local CHARMAP LOCALE_DEF PREF SYSROOT_USR LOCALE_NAME + while getopts "f:i:p:n::" opt; do + case "${opt}" in + f) + CHARMAP="${OPTARG}" + ;; + i) + LOCALE_DEF="${OPTARG}" + ;; + p) + PREF="${OPTARG}" + ;; + n) + LOCALE_NAME="${OPTARG}" + ;; + *) + usage + ;; + esac + done + SYSROOT_USR=`ptxd_get_sysroot_usr` + [ ! -d ${SYSROOT_USR} ] && { echo "Toolchain sysroot dir not found"; exit 1; } + + + if [ ! -d ${PREF}/usr/lib/locale ]; then + mkdir -p ${PREF}/usr/lib/locale + [ $? -ne 0 ] && { echo "Could not create temporary locales directory ${PREF}/usr/lib/locale"; exit 1; } + fi + + echo "${SYSROOT_USR} localedef -i $LOCALE_DEF -f $CHARMAP $LOCALE_NAME --prefix=${PREF}" + I18NPATH=${SYSROOT_USR}/share/i18n \ + localedef -i $LOCALE_DEF -f $CHARMAP $LOCALE_NAME --prefix=${PREF} + + [ $? -ne 0 ] && { echo "calling localedef binary failed"; exit 1; } + + [ ! -n ${PREF}/usr/lib/locale/locale-archive ] && { echo "locale archive generation failed"; exit 1; } +} + +add_locale "${@}" +exit 0 |