aclocal.m4
上传用户:xxcykj
上传日期:2007-01-04
资源大小:727k
文件大小:12k
源码类别:

Email客户端

开发平台:

Unix_Linux

  1. # Search path for a program which passes the given test.
  2. # Ulrich Drepper <drepper@cygnus.com>, 1996.
  3. #
  4. # This file can be copied and used freely without restrictions.  It can
  5. # be used in projects which are not available under the GNU Public License
  6. # but which still want to provide support for the GNU gettext functionality.
  7. # Please note that the actual code is *not* freely available.
  8. # serial 1
  9. dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
  10. dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
  11. AC_DEFUN(AM_PATH_PROG_WITH_TEST,
  12. [# Extract the first word of "$2", so it can be a program name with args.
  13. set dummy $2; ac_word=[$]2
  14. AC_MSG_CHECKING([for $ac_word])
  15. AC_CACHE_VAL(ac_cv_path_$1,
  16. [case "[$]$1" in
  17.   /*)
  18.   ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
  19.   ;;
  20.   *)
  21.   IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
  22.   for ac_dir in ifelse([$5], , $PATH, [$5]); do
  23.     test -z "$ac_dir" && ac_dir=.
  24.     if test -f $ac_dir/$ac_word; then
  25.       if [$3]; then
  26. ac_cv_path_$1="$ac_dir/$ac_word"
  27. break
  28.       fi
  29.     fi
  30.   done
  31.   IFS="$ac_save_ifs"
  32. dnl If no 4th arg is given, leave the cache variable unset,
  33. dnl so AC_PATH_PROGS will keep looking.
  34. ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
  35. ])dnl
  36.   ;;
  37. esac])dnl
  38. $1="$ac_cv_path_$1"
  39. if test -n "[$]$1"; then
  40.   AC_MSG_RESULT([$]$1)
  41. else
  42.   AC_MSG_RESULT(no)
  43. fi
  44. AC_SUBST($1)dnl
  45. ])
  46. # Check whether LC_MESSAGES is available in <locale.h>.
  47. # Ulrich Drepper <drepper@cygnus.com>, 1995.
  48. #
  49. # This file can be copied and used freely without restrictions.  It can
  50. # be used in projects which are not available under the GNU Public License
  51. # but which still want to provide support for the GNU gettext functionality.
  52. # Please note that the actual code is *not* freely available.
  53. # serial 1
  54. AC_DEFUN(AM_LC_MESSAGES,
  55.   [if test $ac_cv_header_locale_h = yes; then
  56.     AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
  57.       [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
  58.        am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
  59.     if test $am_cv_val_LC_MESSAGES = yes; then
  60.       AC_DEFINE(HAVE_LC_MESSAGES)
  61.     fi
  62.   fi])
  63. # Macro to add for using GNU gettext.
  64. # Ulrich Drepper <drepper@cygnus.com>, 1995.
  65. #
  66. # This file can be copied and used freely without restrictions.  It can
  67. # be used in projects which are not available under the GNU Public License
  68. # but which still want to provide support for the GNU gettext functionality.
  69. # Please note that the actual code is *not* freely available.
  70. # NOTE: This version has been hacked to reverse the obnoxious 'yes' default.
  71. # serial 5
  72. AC_DEFUN(AM_WITH_NLS,
  73.   [AC_MSG_CHECKING([whether NLS is requested])
  74.     dnl Default is enabled NLS
  75.     AC_ARG_ENABLE(nls,
  76.       [  --disable-nls           do not use Native Language Support],
  77.       USE_NLS=$enableval, USE_NLS=no)
  78.     AC_MSG_RESULT($USE_NLS)
  79.     AC_SUBST(USE_NLS)
  80.     USE_INCLUDED_LIBINTL=no
  81.     dnl If we use NLS figure out what method
  82.     if test "$USE_NLS" = "yes"; then
  83.       AC_DEFINE(ENABLE_NLS)
  84.       AC_MSG_CHECKING([whether included gettext is requested])
  85.       AC_ARG_WITH(included-gettext,
  86.         [  --with-included-gettext use the GNU gettext library included here],
  87.         nls_cv_force_use_gnu_gettext=$withval,
  88.         nls_cv_force_use_gnu_gettext=no)
  89.       AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
  90.       nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
  91.       if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
  92.         dnl User does not insist on using GNU NLS library.  Figure out what
  93.         dnl to use.  If gettext or catgets are available (in this order) we
  94.         dnl use this.  Else we have to fall back to GNU NLS library.
  95. dnl catgets is only used if permitted by option --with-catgets.
  96. nls_cv_header_intl=
  97. nls_cv_header_libgt=
  98. CATOBJEXT=NONE
  99. AC_CHECK_HEADER(libintl.h,
  100.   [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
  101.     [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
  102.        gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
  103.    if test "$gt_cv_func_gettext_libc" != "yes"; then
  104.      AC_CHECK_LIB(intl, bindtextdomain,
  105.        [AC_CACHE_CHECK([for gettext in libintl],
  106.  gt_cv_func_gettext_libintl,
  107.  [AC_CHECK_LIB(intl, gettext,
  108.   gt_cv_func_gettext_libintl=yes,
  109.   gt_cv_func_gettext_libintl=no)],
  110.  gt_cv_func_gettext_libintl=no)])
  111.    fi
  112.    if test "$gt_cv_func_gettext_libc" = "yes" 
  113.       || test "$gt_cv_func_gettext_libintl" = "yes"; then
  114.       AC_DEFINE(HAVE_GETTEXT)
  115.       AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
  116. [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
  117.       if test "$MSGFMT" != "no"; then
  118. AC_CHECK_FUNCS(dcgettext)
  119. AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
  120. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
  121.   [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
  122. AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
  123.        return _nl_msg_cat_cntr],
  124.   [CATOBJEXT=.gmo
  125.    DATADIRNAME=share],
  126.   [CATOBJEXT=.mo
  127.    DATADIRNAME=lib])
  128. INSTOBJEXT=.mo
  129.       fi
  130.     fi
  131. ])
  132.         if test "$CATOBJEXT" = "NONE"; then
  133.   AC_MSG_CHECKING([whether catgets can be used])
  134.   AC_ARG_WITH(catgets,
  135.     [  --with-catgets          use catgets functions if available],
  136.     nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
  137.   AC_MSG_RESULT($nls_cv_use_catgets)
  138.   if test "$nls_cv_use_catgets" = "yes"; then
  139.     dnl No gettext in C library.  Try catgets next.
  140.     AC_CHECK_LIB(i, main)
  141.     AC_CHECK_FUNC(catgets,
  142.       [AC_DEFINE(HAVE_CATGETS)
  143.        INTLOBJS="$(CATOBJS)"
  144.        AC_PATH_PROG(GENCAT, gencat, no)dnl
  145.        if test "$GENCAT" != "no"; then
  146.  AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
  147.  if test "$GMSGFMT" = "no"; then
  148.    AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
  149.     [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
  150.  fi
  151.  AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
  152.    [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
  153.  USE_INCLUDED_LIBINTL=yes
  154.  CATOBJEXT=.cat
  155.  INSTOBJEXT=.cat
  156.  DATADIRNAME=lib
  157.  INTLDEPS='$(top_builddir)/intl/libintl.a'
  158.  INTLLIBS=$INTLDEPS
  159.  LIBS=`echo $LIBS | sed -e 's/-lintl//'`
  160.  nls_cv_header_intl=intl/libintl.h
  161.  nls_cv_header_libgt=intl/libgettext.h
  162.        fi])
  163.   fi
  164.         fi
  165.         if test "$CATOBJEXT" = "NONE"; then
  166.   dnl Neither gettext nor catgets in included in the C library.
  167.   dnl Fall back on GNU gettext library.
  168.   nls_cv_use_gnu_gettext=yes
  169.         fi
  170.       fi
  171.       if test "$nls_cv_use_gnu_gettext" = "yes"; then
  172.         dnl Mark actions used to generate GNU NLS library.
  173.         INTLOBJS="$(GETTOBJS)"
  174.         AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
  175.   [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
  176.         AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
  177.         AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
  178.   [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
  179.         AC_SUBST(MSGFMT)
  180. USE_INCLUDED_LIBINTL=yes
  181.         CATOBJEXT=.gmo
  182.         INSTOBJEXT=.mo
  183.         DATADIRNAME=share
  184. INTLDEPS='$(top_builddir)/intl/libintl.a'
  185. INTLLIBS=$INTLDEPS
  186. LIBS=`echo $LIBS | sed -e 's/-lintl//'`
  187.         nls_cv_header_intl=intl/libintl.h
  188.         nls_cv_header_libgt=intl/libgettext.h
  189.       fi
  190.       dnl Test whether we really found GNU xgettext.
  191.       if test "$XGETTEXT" != ":"; then
  192. dnl If it is no GNU xgettext we define it as : so that the
  193. dnl Makefiles still can work.
  194. if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
  195.   : ;
  196. else
  197.   AC_MSG_RESULT(
  198.     [found xgettext program is not GNU xgettext; ignore it])
  199.   XGETTEXT=":"
  200. fi
  201.       fi
  202.       # We need to process the po/ directory.
  203.       POSUB=po
  204.     else
  205.       DATADIRNAME=share
  206.       nls_cv_header_intl=intl/libintl.h
  207.       nls_cv_header_libgt=intl/libgettext.h
  208.     fi
  209.     AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
  210.     AC_OUTPUT_COMMANDS(
  211.      [case "$CONFIG_FILES" in *po/Makefile.in*)
  212.         sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
  213.       esac])
  214.     # If this is used in GNU gettext we have to set USE_NLS to `yes'
  215.     # because some of the sources are only built for this goal.
  216.     if test "$PACKAGE" = gettext; then
  217.       USE_NLS=yes
  218.       USE_INCLUDED_LIBINTL=yes
  219.     fi
  220.     dnl These rules are solely for the distribution goal.  While doing this
  221.     dnl we only have to keep exactly one list of the available catalogs
  222.     dnl in configure.in.
  223.     for lang in $ALL_LINGUAS; do
  224.       GMOFILES="$GMOFILES $lang.gmo"
  225.       POFILES="$POFILES $lang.po"
  226.     done
  227.     dnl Make all variables we use known to autoconf.
  228.     AC_SUBST(USE_INCLUDED_LIBINTL)
  229.     AC_SUBST(CATALOGS)
  230.     AC_SUBST(CATOBJEXT)
  231.     AC_SUBST(DATADIRNAME)
  232.     AC_SUBST(GMOFILES)
  233.     AC_SUBST(INSTOBJEXT)
  234.     AC_SUBST(INTLDEPS)
  235.     AC_SUBST(INTLLIBS)
  236.     AC_SUBST(INTLOBJS)
  237.     AC_SUBST(POFILES)
  238.     AC_SUBST(POSUB)
  239.   ])
  240. AC_DEFUN(AM_GNU_GETTEXT,
  241.   [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
  242.    AC_REQUIRE([AC_PROG_CC])dnl
  243.    AC_REQUIRE([AC_PROG_RANLIB])dnl
  244.    AC_REQUIRE([AC_ISC_POSIX])dnl
  245.    AC_REQUIRE([AC_HEADER_STDC])dnl
  246.    AC_REQUIRE([AC_C_CONST])dnl
  247.    AC_REQUIRE([AC_C_INLINE])dnl
  248.    AC_REQUIRE([AC_TYPE_OFF_T])dnl
  249.    AC_REQUIRE([AC_TYPE_SIZE_T])dnl
  250.    AC_REQUIRE([AC_FUNC_ALLOCA])dnl
  251.    AC_REQUIRE([AC_FUNC_MMAP])dnl
  252.    AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h 
  253. unistd.h sys/param.h])
  254.    AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp 
  255. strdup __argz_count __argz_stringify __argz_next])
  256.    if test "${ac_cv_func_stpcpy+set}" != "set"; then
  257.      AC_CHECK_FUNCS(stpcpy)
  258.    fi
  259.    if test "${ac_cv_func_stpcpy}" = "yes"; then
  260.      AC_DEFINE(HAVE_STPCPY)
  261.    fi
  262.    AM_LC_MESSAGES
  263.    AM_WITH_NLS
  264.    if test "x$CATOBJEXT" != "x"; then
  265.      if test "x$ALL_LINGUAS" = "x"; then
  266.        LINGUAS=
  267.      else
  268.        AC_MSG_CHECKING(for catalogs to be installed)
  269.        NEW_LINGUAS=
  270.        for lang in ${LINGUAS=$ALL_LINGUAS}; do
  271.          case "$ALL_LINGUAS" in
  272.           *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
  273.          esac
  274.        done
  275.        LINGUAS=$NEW_LINGUAS
  276.        AC_MSG_RESULT($LINGUAS)
  277.      fi
  278.      dnl Construct list of names of catalog files to be constructed.
  279.      if test -n "$LINGUAS"; then
  280.        for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
  281.      fi
  282.    fi
  283.    dnl The reference to <locale.h> in the installed <libintl.h> file
  284.    dnl must be resolved because we cannot expect the users of this
  285.    dnl to define HAVE_LOCALE_H.
  286.    if test $ac_cv_header_locale_h = yes; then
  287.      INCLUDE_LOCALE_H="#include <locale.h>"
  288.    else
  289.      INCLUDE_LOCALE_H="
  290. /* The system does not provide the header <locale.h>.  Take care yourself.  */"
  291.    fi
  292.    AC_SUBST(INCLUDE_LOCALE_H)
  293.    dnl Determine which catalog format we have (if any is needed)
  294.    dnl For now we know about two different formats:
  295.    dnl   Linux libc-5 and the normal X/Open format
  296.    test -d intl || mkdir intl
  297.    if test "$CATOBJEXT" = ".cat"; then
  298.      AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
  299.      dnl Transform the SED scripts while copying because some dumb SEDs
  300.      dnl cannot handle comments.
  301.      sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
  302.    fi
  303.    dnl po2tbl.sed is always needed.
  304.    sed -e '/^#.*[^\]$/d' -e '/^#$/d' 
  305.      $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
  306.    dnl In the intl/Makefile.in we have a special dependency which makes
  307.    dnl only sense for gettext.  We comment this out for non-gettext
  308.    dnl packages.
  309.    if test "$PACKAGE" = "gettext"; then
  310.      GT_NO="#NO#"
  311.      GT_YES=
  312.    else
  313.      GT_NO=
  314.      GT_YES="#YES#"
  315.    fi
  316.    AC_SUBST(GT_NO)
  317.    AC_SUBST(GT_YES)
  318.    dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
  319.    dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
  320.    dnl Try to locate is.
  321.    MKINSTALLDIRS=
  322.    if test -n "$ac_aux_dir"; then
  323.      MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
  324.    fi
  325.    if test -z "$MKINSTALLDIRS"; then
  326.      MKINSTALLDIRS="$(top_srcdir)/mkinstalldirs"
  327.    fi
  328.    AC_SUBST(MKINSTALLDIRS)
  329.    dnl *** For now the libtool support in intl/Makefile is not for real.
  330.    l=
  331.    AC_SUBST(l)
  332.    dnl Generate list of files to be processed by xgettext which will
  333.    dnl be included in po/Makefile.
  334.    test -d po || mkdir po
  335.    if test "x$srcdir" != "x."; then
  336.      if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
  337.        posrcprefix="$srcdir/"
  338.      else
  339.        posrcprefix="../$srcdir/"
  340.      fi
  341.    else
  342.      posrcprefix="../"
  343.    fi
  344.    rm -f po/POTFILES
  345.    sed -e "/^#/d" -e "/^$/d" -e "s,.*, $posrcprefix& \\," -e "$s/(.*) \\/1/" 
  346. < $srcdir/po/POTFILES.in > po/POTFILES
  347.   ])