⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gettext.m4

📁 mutt-1.5.12 源代码。linux 下邮件接受的工具。
💻 M4
字号:
# Macro to add for using GNU gettext.# Ulrich Drepper <drepper@cygnus.com>, 1995.## Slightly modified by Thomas Roessler <roessler@does-not-exist.org># Updated to gettext-0.10.38 by Edmund Grimley Evans <edmundo@rano.org># Updated to gettext-0.10.40 by Andrew W. Nosenko <awn@bcs.zp.ua>## 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 or the GNU Library General Public License but which still want# to provide support for the GNU gettext functionality.# Please note that the actual code of the GNU gettext library is covered# by the GNU Library General Public License, and the rest of the GNU# gettext package package is covered by the GNU General Public License.# They are *not* in the public domain.# serial 10dnl Usage: MUTT_AM_WITH_NLS([TOOLSYMBOL], [NEEDSYMBOL], [LIBDIR]).dnl If TOOLSYMBOL is specified and is 'use-libtool', then a libtool librarydnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,dnl    depending on --{enable,disable}-{shared,static} and on the presence ofdnl    AM-DISABLE-SHARED). Otherwise, a static librarydnl    $(top_builddir)/intl/libintl.a will be created.dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettextdnl    implementations (in libc or libintl) without the ngettext() functiondnl    will be ignored.dnl LIBDIR is used to find the intl libraries.  If empty,dnl    the value `$(top_builddir)/intl/' is used.dnldnl The result of the configuration is one of three cases:dnl 1) GNU gettext, as included in the intl subdirectory, will be compileddnl    and used.dnl    Catalog format: GNU --> install in $(datadir)dnl    Catalog extension: .mo after installation, .gmo in source treednl 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 treednl 3) No internationalization, always use English msgid.dnl    Catalog format: nonednl    Catalog extension: nonednl The use of .gmo is historical (it was needed to avoid overwriting thednl 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 thednl maintainers.dnlAC_DEFUN([MUTT_AM_WITH_NLS],  [AC_MSG_CHECKING([whether NLS is requested])    dnl Default is enabled NLS    AC_ARG_ENABLE(nls,      AC_HELP_STRING([--disable-nls], [Do not use Native Language Support]),      USE_NLS=$enableval, USE_NLS=yes)    AC_MSG_RESULT($USE_NLS)    AC_SUBST(USE_NLS)    BUILD_INCLUDED_LIBINTL=no    USE_INCLUDED_LIBINTL=no    INTLLIBS=    dnl If we use NLS figure out what method    if test "$USE_NLS" = "yes"; then      AC_DEFINE(ENABLE_NLS, 1,        [Define to 1 if translation of program messages to the user's native language   is requested.])      AC_MSG_CHECKING([whether included gettext is requested])      AC_ARG_WITH(included-gettext,        AC_HELP_STRING([--with-included-gettext], [Use the GNU gettext library included here]),        nls_cv_force_use_gnu_gettext=$withval,        nls_cv_force_use_gnu_gettext=no)      AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then        dnl User does not insist on using GNU NLS library.  Figure out what        dnl to use.  If GNU gettext is available we use this.  Else we have        dnl to fall back to GNU NLS library.	CATOBJEXT=NONE        dnl Add a version number to the cache macros.        define(gt_cv_func_gnugettext_libc, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libc])        define(gt_cv_func_gnugettext_libintl, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libintl])	AC_CHECK_HEADER(libintl.h,	  [AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,	    [AC_TRY_LINK([#include <libintl.h>extern int _nl_msg_cat_cntr;],	       [bindtextdomain ("", "");return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],	       gt_cv_func_gnugettext_libc=yes,	       gt_cv_func_gnugettext_libc=no)])	   if test "$gt_cv_func_gnugettext_libc" != "yes"; then	     AC_CACHE_CHECK([for GNU gettext in libintl],	       gt_cv_func_gnugettext_libintl,	       [gt_save_LIBS="$LIBS"		LIBS="$LIBS -lintl $LIBICONV"		AC_TRY_LINK([#include <libintl.h>extern int _nl_msg_cat_cntr;],		  [bindtextdomain ("", "");return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],		  gt_cv_func_gnugettext_libintl=yes,		  gt_cv_func_gnugettext_libintl=no)		LIBS="$gt_save_LIBS"])	   fi	   dnl If an already present or preinstalled GNU gettext() is found,	   dnl use it.  But if this macro is used in GNU gettext, and GNU	   dnl gettext is already preinstalled in libintl, we update this	   dnl libintl.  (Cf. the install rule in intl/Makefile.in.)	   if test "$gt_cv_func_gnugettext_libc" = "yes" \	      || { test "$gt_cv_func_gnugettext_libintl" = "yes" \		   && test "$PACKAGE" != gettext; }; then	     AC_DEFINE(HAVE_GETTEXT, 1,               [Define if the GNU gettext() function is already present or preinstalled.])	     if test "$gt_cv_func_gnugettext_libintl" = "yes"; then	       dnl If iconv() is in a separate libiconv library, then anyone	       dnl linking with libintl{.a,.so} also needs to link with	       dnl libiconv.	       INTLLIBS="-lintl $LIBICONV"	     fi	     gt_save_LIBS="$LIBS"	     LIBS="$LIBS $INTLLIBS"	     AC_CHECK_FUNCS(dcgettext)	     LIBS="$gt_save_LIBS"	     dnl Search for GNU msgfmt in the PATH.	     MUTT_AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,	       [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)	     AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)	     dnl Search for GNU xgettext in the PATH.	     MUTT_AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,	       [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)	     CATOBJEXT=.gmo	   fi	])        if test "$CATOBJEXT" = "NONE"; then	  dnl GNU gettext is not found in the C library.	  dnl Fall back on GNU gettext library.	  nls_cv_use_gnu_gettext=yes        fi      fi      if test "$nls_cv_use_gnu_gettext" = "yes"; then        dnl Mark actions used to generate GNU NLS library.        INTLOBJS="\$(GETTOBJS)"        MUTT_AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,	  [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)        AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)        MUTT_AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,	  [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)        AC_SUBST(MSGFMT)	BUILD_INCLUDED_LIBINTL=yes	USE_INCLUDED_LIBINTL=yes        CATOBJEXT=.gmo	INTLLIBS="ifelse([$3],[],\$(top_builddir)/intl,[$3])/libintl.ifelse([$1], use-libtool, [l], [])a $LIBICONV"	LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`      fi      dnl This could go away some day; the MUTT_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 MUTT_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      dnl We need to process the po/ directory.      POSUB=po    fi    AC_OUTPUT_COMMANDS(     [for ac_file in $CONFIG_FILES; do        # Support "outfile[:infile[:infile...]]"        case "$ac_file" in          *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;        esac        # PO directories have a Makefile.in generated from Makefile.in.in.        case "$ac_file" in */Makefile.in)          # Adjust a relative srcdir.          ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`          ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"          ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`          # In autoconf-2.13 it is called $ac_given_srcdir.          # In autoconf-2.50 it is called $srcdir.          test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"          case "$ac_given_srcdir" in            .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;            /*) top_srcdir="$ac_given_srcdir" ;;            *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;          esac          if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then            rm -f "$ac_dir/POTFILES"            test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"            sed -e "/^#/d" -e "/^[ 	]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES"            test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"            sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"          fi          ;;        esac      done])    dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL    dnl to 'yes' because some of the testsuite requires it.    if test "$PACKAGE" = gettext; then      BUILD_INCLUDED_LIBINTL=yes    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"      POFILES="$POFILES $lang.po"    done    dnl Make all variables we use known to autoconf.    AC_SUBST(BUILD_INCLUDED_LIBINTL)    AC_SUBST(USE_INCLUDED_LIBINTL)    AC_SUBST(CATALOGS)    AC_SUBST(CATOBJEXT)    AC_SUBST(GMOFILES)    AC_SUBST(INTLLIBS)    AC_SUBST(INTLOBJS)    AC_SUBST(POFILES)    AC_SUBST(POSUB)    dnl For backward compatibility. Some configure.ins may be using this.    nls_cv_header_intl=    nls_cv_header_libgt=    dnl For backward compatibility. Some Makefiles may be using this.    DATADIRNAME=share    AC_SUBST(DATADIRNAME)    dnl For backward compatibility. Some Makefiles may be using this.    INSTOBJEXT=.mo    AC_SUBST(INSTOBJEXT)    dnl For backward compatibility. Some Makefiles may be using this.    GENCAT=gencat    AC_SUBST(GENCAT)  ])dnl Usage: Just like MUTT_AM_WITH_NLS, which see.AC_DEFUN([MUTT_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([MUTT_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])   MUTT_AM_ICONV   MUTT_AM_LANGINFO_CODESET   MUTT_AM_LC_MESSAGES   MUTT_AM_WITH_NLS([$1],[$2],[$3])   if test "x$CATOBJEXT" != "x"; then     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$CATOBJEXT"; done     fi   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)  ])

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -