mirror of
https://github.com/rkd77/elinks.git
synced 2024-08-27 22:04:50 -04:00
232 lines
8.7 KiB
Plaintext
232 lines
8.7 KiB
Plaintext
# Macro to add for using GNU gettext.
|
|
# Ulrich Drepper <drepper@cygnus.com>, 1995.
|
|
#
|
|
# This file can be copied and used freely without restrictions. It can
|
|
# be used in projects which are not available under the GNU General Public
|
|
# License but which still want to provide support for the GNU gettext
|
|
# functionality.
|
|
# Please note that the actual code of GNU gettext is covered by the GNU
|
|
# General Public License and is *not* in the public domain.
|
|
|
|
# serial 10
|
|
|
|
dnl Note that we always use own gettext implementation, even if we found
|
|
dnl working system one. We have some own modifications in our implementation
|
|
dnl and we rely on them.
|
|
|
|
dnl Usage: AM_WITH_NLS([TOOLSYMBOL], [NEEDSYMBOL], [LIBDIR]).
|
|
dnl If TOOLSYMBOL is specified and is 'use-libtool', then a libtool library
|
|
dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
|
|
dnl depending on --{enable,disable}-{shared,static} and on the presence of
|
|
dnl AM-DISABLE-SHARED). Otherwise, a static library
|
|
dnl $(top_builddir)/intl/libintl.a will be created.
|
|
dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
|
|
dnl implementations (in libc or libintl) without the ngettext() function
|
|
dnl will be ignored.
|
|
dnl LIBDIR is used to find the intl libraries. If empty,
|
|
dnl the value `$(top_builddir)/intl/' is used.
|
|
dnl
|
|
dnl The result of the configuration is one of three cases:
|
|
dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
|
|
dnl and used.
|
|
dnl Catalog format: GNU --> install in $(datadir)
|
|
dnl Catalog extension: .mo after installation, .gmo in source tree
|
|
dnl 2) GNU gettext has been found in the system's C library.
|
|
dnl Catalog format: GNU --> install in $(datadir)
|
|
dnl Catalog extension: .mo after installation, .gmo in source tree
|
|
dnl 3) No internationalization, always use English msgid.
|
|
dnl Catalog format: none
|
|
dnl Catalog extension: none
|
|
dnl The use of .gmo is historical (it was needed to avoid overwriting the
|
|
dnl GNU format catalogs when building on a platform with an X/Open gettext),
|
|
dnl but we keep it in order not to force irrelevant filename changes on the
|
|
dnl maintainers.
|
|
dnl
|
|
AC_DEFUN([AM_WITH_NLS],
|
|
[AC_MSG_CHECKING([whether NLS is requested])
|
|
dnl Default is enabled NLS
|
|
CONFIG_NLS=yes
|
|
EL_ARG_ENABLE(CONFIG_NLS, nls, [Native Language Support],
|
|
[ --disable-nls do not use Native Language Support])
|
|
|
|
AC_MSG_RESULT($CONFIG_NLS)
|
|
AC_SUBST(CONFIG_NLS)
|
|
|
|
AM_CONDITIONAL(CONFIG_NLS, test "$CONFIG_NLS" = "yes")
|
|
|
|
dnl If we use NLS figure out what method
|
|
if test "$CONFIG_NLS" = "yes"; then
|
|
AC_DEFINE(CONFIG_NLS, 1,
|
|
[Define to 1 if translation of program messages to the user's native language
|
|
is requested.])
|
|
dnl AC_MSG_CHECKING([whether included gettext is requested])
|
|
dnl AC_ARG_WITH(included-gettext,
|
|
dnl [ --with-included-gettext use the GNU gettext library included here],
|
|
dnl nls_cv_force_use_gnu_gettext=$withval,
|
|
dnl nls_cv_force_use_gnu_gettext=no)
|
|
dnl AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
|
|
|
|
nls_cv_force_use_gnu_gettext=yes
|
|
nls_cv_use_gnu_gettext=yes
|
|
|
|
dnl Mark actions used to generate GNU NLS library.
|
|
AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
|
|
[$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
|
|
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
|
|
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
|
|
[$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
|
|
AC_SUBST(MSGFMT)
|
|
LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
|
|
LIBS="$LIBS $LIBICONV"
|
|
|
|
dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
|
|
dnl Test whether we really found GNU msgfmt.
|
|
if test "$GMSGFMT" != ":"; then
|
|
dnl If it is no GNU msgfmt we define it as : so that the
|
|
dnl Makefiles still can work.
|
|
if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then
|
|
: ;
|
|
else
|
|
AC_MSG_RESULT(
|
|
[found msgfmt program is not GNU msgfmt; ignore it])
|
|
GMSGFMT=":"
|
|
fi
|
|
fi
|
|
|
|
dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
|
|
dnl Test whether we really found GNU xgettext.
|
|
if test "$XGETTEXT" != ":"; then
|
|
dnl If it is no GNU xgettext we define it as : so that the
|
|
dnl Makefiles still can work.
|
|
if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then
|
|
: ;
|
|
else
|
|
AC_MSG_RESULT(
|
|
[found xgettext program is not GNU xgettext; ignore it])
|
|
XGETTEXT=":"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
|
|
dnl intl/plural.c is generated from intl/plural.y. It requires bison,
|
|
dnl because plural.y uses bison specific features. It requires at least
|
|
dnl bison-1.26 because earlier versions generate a plural.c that doesn't
|
|
dnl compile.
|
|
dnl bison is only needed for the maintainer (who touches plural.y). But in
|
|
dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
|
|
dnl the rule in general Makefile. Now, some people carelessly touch the
|
|
dnl files or have a broken "make" program, hence the plural.c rule will
|
|
dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
|
|
dnl present or too old.
|
|
AC_CHECK_PROGS([INTLBISON], [bison])
|
|
if test -z "$INTLBISON"; then
|
|
ac_verc_fail=yes
|
|
else
|
|
dnl Found it, now check the version.
|
|
AC_MSG_CHECKING([version of bison])
|
|
changequote(<<,>>)dnl
|
|
ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
|
|
case $ac_prog_version in
|
|
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
|
|
1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
|
|
changequote([,])dnl
|
|
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
|
|
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
|
|
esac
|
|
AC_MSG_RESULT([$ac_prog_version])
|
|
fi
|
|
if test $ac_verc_fail = yes; then
|
|
INTLBISON=:
|
|
fi
|
|
|
|
dnl These rules are solely for the distribution goal. While doing this
|
|
dnl we only have to keep exactly one list of the available catalogs
|
|
dnl in configure.in.
|
|
for lang in $ALL_LINGUAS; do
|
|
GMOFILES="$GMOFILES $lang.gmo"
|
|
done
|
|
|
|
dnl Make all variables we use known to autoconf.
|
|
AC_SUBST(CATALOGS)
|
|
AC_SUBST(GMOFILES)
|
|
|
|
dnl For backward compatibility. Some configure.ins may be using this.
|
|
nls_cv_header_intl=
|
|
nls_cv_header_libgt=
|
|
])
|
|
|
|
dnl Usage: Just like AM_WITH_NLS, which see.
|
|
AC_DEFUN([AM_GNU_GETTEXT],
|
|
[AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
|
AC_REQUIRE([AC_PROG_CC])dnl
|
|
AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
|
AC_REQUIRE([AC_PROG_RANLIB])dnl
|
|
AC_REQUIRE([AC_ISC_POSIX])dnl
|
|
AC_REQUIRE([AC_HEADER_STDC])dnl
|
|
AC_REQUIRE([AC_C_CONST])dnl
|
|
AC_REQUIRE([AC_C_INLINE])dnl
|
|
AC_REQUIRE([AC_TYPE_OFF_T])dnl
|
|
AC_REQUIRE([AC_TYPE_SIZE_T])dnl
|
|
AC_REQUIRE([AC_FUNC_ALLOCA])dnl
|
|
AC_REQUIRE([AC_FUNC_MMAP])dnl
|
|
AC_REQUIRE([jm_GLIBC21])dnl
|
|
|
|
AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
|
|
stdlib.h string.h unistd.h sys/param.h])
|
|
AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getcwd getegid geteuid \
|
|
getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \
|
|
strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
|
|
|
|
AM_ICONV
|
|
AM_LANGINFO_CODESET
|
|
AM_LC_MESSAGES
|
|
AM_WITH_NLS([$1],[$2],[$3])
|
|
|
|
if test "x$ALL_LINGUAS" = "x"; then
|
|
LINGUAS=
|
|
else
|
|
AC_MSG_CHECKING(for catalogs to be installed)
|
|
NEW_LINGUAS=
|
|
for presentlang in $ALL_LINGUAS; do
|
|
useit=no
|
|
for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do
|
|
# Use the presentlang catalog if desiredlang is
|
|
# a. equal to presentlang, or
|
|
# b. a variant of presentlang (because in this case,
|
|
# presentlang can be used as a fallback for messages
|
|
# which are not translated in the desiredlang catalog).
|
|
case "$desiredlang" in
|
|
"$presentlang"*) useit=yes;;
|
|
esac
|
|
done
|
|
if test $useit = yes; then
|
|
NEW_LINGUAS="$NEW_LINGUAS $presentlang"
|
|
fi
|
|
done
|
|
LINGUAS=$NEW_LINGUAS
|
|
AC_MSG_RESULT($LINGUAS)
|
|
fi
|
|
|
|
dnl Construct list of names of catalog files to be constructed.
|
|
if test -n "$LINGUAS"; then
|
|
for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang.gmo"; done
|
|
fi
|
|
|
|
dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
|
|
dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
|
|
dnl Try to locate is.
|
|
MKINSTALLDIRS=
|
|
if test -n "$ac_aux_dir"; then
|
|
MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
|
|
fi
|
|
if test -z "$MKINSTALLDIRS"; then
|
|
MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
|
|
fi
|
|
AC_SUBST(MKINSTALLDIRS)
|
|
|
|
dnl Enable libtool support if the surrounding package wishes it.
|
|
INTL_LIBTOOL_SUFFIX_PREFIX=ifelse([$1], use-libtool, [l], [])
|
|
AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
|
|
])
|