summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2020-05-02 17:23:01 +0200
committerBruno Haible <bruno@clisp.org>2020-05-02 17:23:01 +0200
commitacf8596eab886e80dcbca6bc8b8b28218cfce6ac (patch)
tree45cecf7d48b1f0229241885468fa0f71b14db2fc /m4
parent0ed596dfa4990aa25378bb09e4217f9f50f13973 (diff)
downloadgnulib-acf8596eab886e80dcbca6bc8b8b28218cfce6ac.tar.gz
bison-i18n: Add support for cross-compilation.
Reported by Hongxu Jia <hongxu.jia@windriver.com> in <https://lists.gnu.org/archive/html/bison-patches/2016-02/msg00000.html> via Akim Demaille <akim@lrde.epita.fr>. * m4/bison-i18n.m4 (BISON_I18N): Accept a configure option --with-bison-prefix=PREFIX and use it to determine BISON_LOCALEDIR. Don't use bison's --print-localedir option when cross-compiling. Also, fix an error message and a comment.
Diffstat (limited to 'm4')
-rw-r--r--m4/bison-i18n.m437
1 files changed, 26 insertions, 11 deletions
diff --git a/m4/bison-i18n.m4 b/m4/bison-i18n.m4
index 0abdcc42ce..6a5c27df55 100644
--- a/m4/bison-i18n.m4
+++ b/m4/bison-i18n.m4
@@ -1,4 +1,4 @@
-# bison-i18n.m4 serial 3
+# bison-i18n.m4 serial 4
dnl Copyright (C) 2005-2006, 2009-2020 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -15,31 +15,46 @@ dnl and defines YYENABLE_NLS if there are bison-runtime.mo files at all.
AC_DEFUN([BISON_I18N],
[
if test -z "$USE_NLS"; then
- echo "The BISON-I18N macro is used without being preceded by AM-GNU-GETTEXT." 1>&2
+ echo "The BISON-I18N macro is used without being preceded by AM-GNU-GETTEXT." | sed -e 's/-/_/g' 1>&2
exit 1
fi
BISON_LOCALEDIR=
BISON_USE_NLS=no
if test "$USE_NLS" = yes; then
dnl Determine bison's localedir.
- dnl AC_PROG_YACC sets the YACC variable; other macros set the BISON variable.
- dnl But even is YACC is called "yacc", it may be a script that invokes bison
- dnl and accepts the --print-localedir option.
- dnl YACC's default value is empty; BISON's default value is :.
- if (${YACC-${BISON-:}} --print-localedir) >/dev/null 2>&1; then
- BISON_LOCALEDIR=`${YACC-${BISON-:}} --print-localedir`
+ dnl Generally, accept an option --with-bison-prefix=PREFIX to indicate where
+ dnl find bison's runtime data. Additionally, for users who have installed
+ dnl bison in user directories, query the 'bison' program found in $PATH
+ dnl (but not when cross-compiling).
+ dnl Usually ${prefix}/share/locale, but can be influenced by the configure
+ dnl options --datarootdir and --localedir.
+ BISON_LOCALEDIR="${localedir}"
+ AC_ARG_WITH([bison-prefix],
+ [[ with-bison-prefix=DIR search for bison's runtime data in DIR/share]],
+ [if test "X$withval" != "X" && test "X$withval" != "Xno"; then
+ BISON_LOCALEDIR="$withval/share/locale"
+ fi
+ ])
+ if test $cross_compiling != yes; then
+ dnl AC_PROG_YACC sets the YACC variable; other macros set the BISON
+ dnl variable. But even is YACC is called "yacc", it may be a script that
+ dnl invokes bison and accepts the --print-localedir option.
+ dnl YACC's default value is empty; BISON's default value is :.
+ if (${YACC-${BISON-:}} --print-localedir) >/dev/null 2>&1; then
+ BISON_LOCALEDIR=`${YACC-${BISON-:}} --print-localedir`
+ fi
fi
- AC_SUBST([BISON_LOCALEDIR])
if test -n "$BISON_LOCALEDIR"; then
dnl There is no need to enable internationalization if the user doesn't
dnl want message catalogs. So look at the language/locale names for
- dnl which the user wants message catalogs. This is $LINGUAS. If unset
- dnl or empty, he wants all of them.
+ dnl which the user wants message catalogs. This is $LINGUAS. If unset,
+ dnl he wants all of them; if non-empty, he wants some of them.
USER_LINGUAS="${LINGUAS-%UNSET%}"
if test -n "$USER_LINGUAS"; then
BISON_USE_NLS=yes
fi
fi
+ AC_SUBST([BISON_LOCALEDIR])
fi
if test $BISON_USE_NLS = yes; then
AC_DEFINE([YYENABLE_NLS], [1],