# This file is derived from `gettext.m4'. The difference is that the# included macros assume Cygnus-style source and build trees.# Macro to add for using GNU gettext.# Ulrich Drepper <drepper@cygnus.com>, 1995.## This file file be copied and used freely without restrictions. It can# be used in projects which are not available under the GNU Public License# but which still want to provide support for the GNU gettext functionality.# Please note that the actual code is *not* freely available.# serial 3AC_DEFUN([CY_WITH_NLS],[AC_MSG_CHECKING([whether NLS is requested])dnl Default is enabled NLSAC_ARG_ENABLE(nls,[ --disable-nls do not use Native Language Support],USE_NLS=$enableval, USE_NLS=yes)AC_MSG_RESULT($USE_NLS)AC_SUBST(USE_NLS)USE_INCLUDED_LIBINTL=nodnl If we use NLS figure out what methodif test "$USE_NLS" = "yes"; thenAC_MSG_CHECKING([whether included gettext is requested])AC_ARG_WITH(included-gettext,[ --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"; thendnl User does not insist on using GNU NLS library. Figure out whatdnl to use. If gettext or catgets are available (in this order) wednl use this. Else we have to fall back to GNU NLS library.dnl catgets is only used if permitted by option --with-catgets.nls_cv_header_intl=nls_cv_header_libgt=CATOBJEXT=AC_CHECK_HEADER(libintl.h,[AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,[AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])if test "$gt_cv_func_gettext_libc" != "yes"; thenAC_CHECK_LIB(intl, bindtextdomain,[AC_CACHE_CHECK([for gettext in libintl],gt_cv_func_gettext_libintl,[AC_TRY_LINK([], [return (int) gettext ("")],gt_cv_func_gettext_libintl=yes,gt_cv_func_gettext_libintl=no)])])fiif test "$gt_cv_func_gettext_libc" = "yes" \|| test "$gt_cv_func_gettext_libintl" = "yes"; thenAC_DEFINE(HAVE_GETTEXT, 1,[Define as 1 if you have gettext and don't want to use GNU gettext.])AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,[test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnlif test "$MSGFMT" != "no"; thenAC_CHECK_FUNCS(dcgettext)AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,[test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;return _nl_msg_cat_cntr],[CATOBJEXT=.gmoDATADIRNAME=share],[CATOBJEXT=.moDATADIRNAME=lib])INSTOBJEXT=.mofifi])dnl In the standard gettext, we would now check for catgets.dnl However, we never want to use catgets for our releases.if test x"$CATOBJEXT" = x && test -d $srcdir/../intl; then# Neither gettext nor catgets in included in the C library.# Fall back on GNU gettext library (assuming it is present).nls_cv_use_gnu_gettext=yesfifiif test "$nls_cv_use_gnu_gettext" = "yes"; thendnl Mark actions used to generate GNU NLS library.INTLOBJS="\$(GETTOBJS)"AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,[test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,[test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)AC_SUBST(MSGFMT)USE_INCLUDED_LIBINTL=yesCATOBJEXT=.gmoINSTOBJEXT=.moDATADIRNAME=shareINTLDEPS='$(top_builddir)/../intl/libintl.a'INTLLIBS=$INTLDEPSLIBS=`echo $LIBS | sed -e 's/-lintl//'`nls_cv_header_intl=libintl.hnls_cv_header_libgt=libgettext.hfidnl Test whether we really found GNU xgettext.if test "$XGETTEXT" != ":"; thendnl If it is no GNU xgettext we define it as : so that thednl Makefiles still can work.if $XGETTEXT --omit-header /dev/null 2> /dev/null; then: ;elseAC_MSG_RESULT([found xgettext programs is not GNU xgettext; ignore it])XGETTEXT=":"fifi# We need to process the po/ directory.POSUB=poelseDATADIRNAME=sharenls_cv_header_intl=libintl.hnls_cv_header_libgt=libgettext.hfi# If this is used in GNU gettext we have to set USE_NLS to `yes'# because some of the sources are only built for this goal.if test "$PACKAGE" = gettext; thenUSE_NLS=yesUSE_INCLUDED_LIBINTL=yesfidnl These rules are solely for the distribution goal. While doing thisdnl we only have to keep exactly one list of the available catalogsdnl in configure.in.for lang in $ALL_LINGUAS; doGMOFILES="$GMOFILES $lang.gmo"POFILES="$POFILES $lang.po"donednl Make all variables we use known to autoconf.AC_SUBST(USE_INCLUDED_LIBINTL)AC_SUBST(CATALOGS)AC_SUBST(CATOBJEXT)AC_SUBST(DATADIRNAME)AC_SUBST(GMOFILES)AC_SUBST(INSTOBJEXT)AC_SUBST(INTLDEPS)AC_SUBST(INTLLIBS)AC_SUBST(INTLOBJS)AC_SUBST(POFILES)AC_SUBST(POSUB)if test "x$CATOBJEXT" != "x"; thenAC_DEFINE(ENABLE_NLS, 1, [Define to 1 if NLS is requested])fi])AC_DEFUN([CY_GNU_GETTEXT],[AC_REQUIRE([AC_PROG_MAKE_SET])dnlAC_REQUIRE([AC_PROG_CC])dnlAC_REQUIRE([AC_PROG_RANLIB])dnlAC_REQUIRE([AC_ISC_POSIX])dnlAC_REQUIRE([AC_HEADER_STDC])dnlAC_REQUIRE([AC_C_CONST])dnlAC_REQUIRE([AC_C_INLINE])dnlAC_REQUIRE([AC_TYPE_OFF_T])dnlAC_REQUIRE([AC_TYPE_SIZE_T])dnlAC_REQUIRE([AC_FUNC_ALLOCA])dnlAC_REQUIRE([AC_FUNC_MMAP])dnlAC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \unistd.h values.h sys/param.h])AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \__argz_count __argz_stringify __argz_next])if test "${ac_cv_func_stpcpy+set}" != "set"; thenAC_CHECK_FUNCS(stpcpy)fiif test "${ac_cv_func_stpcpy}" = "yes"; thenAC_DEFINE(HAVE_STPCPY, 1, [Define if you have the stpcpy function])fiAM_LC_MESSAGESCY_WITH_NLSif test "x$CATOBJEXT" != "x"; thenif test "x$ALL_LINGUAS" = "x"; thenLINGUAS=elseAC_MSG_CHECKING(for catalogs to be installed)NEW_LINGUAS=for lang in ${LINGUAS=$ALL_LINGUAS}; docase "$ALL_LINGUAS" in*$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;esacdoneLINGUAS=$NEW_LINGUASAC_MSG_RESULT($LINGUAS)fidnl Construct list of names of catalog files to be constructed.if test -n "$LINGUAS"; thenfor lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; donefifidnl The reference to <locale.h> in the installed <libintl.h> filednl must be resolved because we cannot expect the users of thisdnl to define HAVE_LOCALE_H.if test $ac_cv_header_locale_h = yes; thenINCLUDE_LOCALE_H="#include <locale.h>"elseINCLUDE_LOCALE_H="\/* The system does not provide the header <locale.h>. Take care yourself. */"fiAC_SUBST(INCLUDE_LOCALE_H)dnl Determine which catalog format we have (if any is needed)dnl For now we know about two different formats:dnl Linux libc-5 and the normal X/Open formatif test -f $srcdir/po2tbl.sed.in; thenif test "$CATOBJEXT" = ".cat"; thenAC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)dnl Transform the SED scripts while copying because some dumb SEDsdnl cannot handle comments.sed -e '/^#/d' $srcdir/$msgformat-msg.sed > po2msg.sedfidnl po2tbl.sed is always needed.sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \$srcdir/po2tbl.sed.in > po2tbl.sedfidnl In the intl/Makefile.in we have a special dependency which makesdnl only sense for gettext. We comment this out for non-gettextdnl packages.if test "$PACKAGE" = "gettext"; thenGT_NO="#NO#"GT_YES=elseGT_NO=GT_YES="#YES#"fiAC_SUBST(GT_NO)AC_SUBST(GT_YES)MKINSTALLDIRS="\$(srcdir)/../../mkinstalldirs"AC_SUBST(MKINSTALLDIRS)dnl *** For now the libtool support in intl/Makefile is not for real.l=AC_SUBST(l)dnl Generate list of files to be processed by xgettext which willdnl be included in po/Makefile. But only do this if the po directorydnl exists in srcdir and contains POTFILES.in.if test -f $srcdir/po/POTFILES.in; thentest -d po || mkdir poif test "x$srcdir" != "x."; thenif test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; thenposrcprefix="$srcdir/"elseposrcprefix="../$srcdir/"fielseposrcprefix="../"firm -f po/POTFILESsed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \< $srcdir/po/POTFILES.in > po/POTFILESfi])# Search path for a program which passes the given test.# Ulrich Drepper <drepper@cygnus.com>, 1996.## This file file be copied and used freely without restrictions. It can# be used in projects which are not available under the GNU Public License# but which still want to provide support for the GNU gettext functionality.# Please note that the actual code is *not* freely available.# serial 1dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])AC_DEFUN([AM_PATH_PROG_WITH_TEST],[# Extract the first word of "$2", so it can be a program name with args.set dummy $2; ac_word=[$]2AC_MSG_CHECKING([for $ac_word])AC_CACHE_VAL(ac_cv_path_$1,[case "[$]$1" in/*)ac_cv_path_$1="[$]$1" # Let the user override the test with a path.;;*)IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"for ac_dir in ifelse([$5], , $PATH, [$5]); dotest -z "$ac_dir" && ac_dir=.if test -f $ac_dir/$ac_word; thenif [$3]; thenac_cv_path_$1="$ac_dir/$ac_word"breakfifidoneIFS="$ac_save_ifs"dnl If no 4th arg is given, leave the cache variable unset,dnl so AC_PATH_PROGS will keep looking.ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"])dnl;;esac])dnl$1="$ac_cv_path_$1"if test -n "[$]$1"; thenAC_MSG_RESULT([$]$1)elseAC_MSG_RESULT(no)fiAC_SUBST($1)dnl])# Check whether LC_MESSAGES is available in <locale.h>.# Ulrich Drepper <drepper@cygnus.com>, 1995.## This file file be copied and used freely without restrictions. It can# be used in projects which are not available under the GNU Public License# but which still want to provide support for the GNU gettext functionality.# Please note that the actual code is *not* freely available.# serial 1AC_DEFUN([AM_LC_MESSAGES],[if test $ac_cv_header_locale_h = yes; thenAC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,[AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])if test $am_cv_val_LC_MESSAGES = yes; thenAC_DEFINE(HAVE_LC_MESSAGES, 1,[Define if your locale.h file contains LC_MESSAGES.])fifi])