intermediate check in
[gnupg.git] / acinclude.m4
index 9c1486c..5f7c562 100644 (file)
 dnl macros to configure g10
 
-AC_PREREQ(2.5)
-
-AC_DEFUN(md_TYPE_PTRDIFF_T,
-  [AC_CACHE_CHECK([for ptrdiff_t], ac_cv_type_ptrdiff_t,
-     [AC_TRY_COMPILE(stddef.h, [ptrdiff_t p], ac_cv_type_ptrdiff_t=yes,
-                    ac_cv_type_ptrdiff_t=no)])
-   if test $ac_cv_type_ptrdiff_t = yes; then
-     AC_DEFINE(HAVE_PTRDIFF_T)
-   fi
-])
 
-AC_DEFUN(md_PATH_PROG,
-  [AC_PATH_PROG($1,$2,$3)dnl
-   if echo $$1 | grep openwin > /dev/null; then
-     echo "WARNING: Do not use OpenWin's $2.  (Better remove it.) >&AC_FD_MSG"
-     ac_cv_path_$1=$2
-     $1=$2
-   fi
+dnl WK_MSG_PRINT(STRING)
+dnl print a message
+dnl
+define(WK_MSG_PRINT,
+  [ echo $ac_n "$1"" $ac_c" 1>&AC_FD_MSG
+  ])
+
+
+dnl WK_CHECK_TYPEDEF(TYPE, HAVE_NAME)
+dnl Check whether a typedef exists and create a #define $2 if it exists
+dnl
+AC_DEFUN(WK_CHECK_TYPEDEF,
+  [ AC_MSG_CHECKING(for $1 typedef)
+    AC_CACHE_VAL(wk_cv_typedef_$1,
+    [AC_TRY_COMPILE([#include <stdlib.h>
+    #include <sys/types.h>], [
+    #undef $1
+    int a = sizeof($1);
+    ], wk_cv_typedef_$1=yes, wk_cv_typedef_$1=no )])
+    AC_MSG_RESULT($wk_cv_typedef_$1)
+    if test "$wk_cv_typedef_$1" = yes; then
+       AC_DEFINE($2)
+    fi
+  ])
+
+
+
+dnl WK_LINK_FILES( SRC, DEST )
+dnl same as AC_LINK_FILES, but collect the files to link in
+dnl some special variables and do the link
+dnl when WK_DO_LINK_FILES is called
+dnl This is a workaround for AC_LINK_FILES, because it does not work
+dnl correct when using a caching scheme
+dnl
+define(WK_LINK_FILES,
+  [ if test "x$wk_link_files_src" = "x"; then
+       wk_link_files_src="$1"
+       wk_link_files_dst="$2"
+    else
+       wk_link_files_src="$wk_link_files_src $1"
+       wk_link_files_dst="$wk_link_files_dst $2"
+    fi
+  ])
+define(WK_DO_LINK_FILES,
+  [ AC_LINK_FILES( $wk_link_files_src, $wk_link_files_dst )
+  ])
+
+
+dnl WK_CHECK_ENDIAN
+dnl define either LITTLE_ENDIAN_HOST or BIG_ENDIAN_HOST
+dnl
+define(WK_CHECK_ENDIAN,
+  [ if test "$cross_compiling" = yes; then
+       AC_MSG_WARN(cross compiling; assuming little endianess)
+    fi
+    AC_MSG_CHECKING(endianess)
+    AC_CACHE_VAL(wk_cv_c_endian,
+      [ wk_cv_c_endian=unknown
+       # See if sys/param.h defines the BYTE_ORDER macro.
+       AC_TRY_COMPILE([#include <sys/types.h>
+       #include <sys/param.h>], [
+       #if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
+        bogus endian macros
+       #endif], [# It does; now see whether it defined to BIG_ENDIAN or not.
+       AC_TRY_COMPILE([#include <sys/types.h>
+       #include <sys/param.h>], [
+       #if BYTE_ORDER != BIG_ENDIAN
+        not big endian
+       #endif], wk_cv_c_endian=big, wk_cv_c_endian=little)])
+       if test "$wk_cv_c_endian" = unknown; then
+           AC_TRY_RUN([main () {
+             /* Are we little or big endian?  From Harbison&Steele.  */
+             union
+             {
+               long l;
+               char c[sizeof (long)];
+             } u;
+             u.l = 1;
+             exit (u.c[sizeof (long) - 1] == 1);
+             }],
+             wk_cv_c_endian=little,
+             wk_cv_c_endian=big,
+             wk_cv_c_endian=little
+           )
+       fi
+      ])
+    AC_MSG_RESULT([$wk_cv_c_endian])
+    if test "$wk_cv_c_endian" = little; then
+      AC_DEFINE(LITTLE_ENDIAN_HOST)
+    else
+      AC_DEFINE(BIG_ENDIAN_HOST)
+    fi
+  ])
+
+dnl WK_CHECK_CACHE
+dnl
+define(WK_CHECK_CACHE,
+  [ AC_MSG_CHECKING(cached information)
+    wk_hostcheck="$target"
+    AC_CACHE_VAL(wk_cv_hostcheck, [ wk_cv_hostcheck="$wk_hostcheck" ])
+    if test "$wk_cv_hostcheck" != "$wk_hostcheck"; then
+       AC_MSG_RESULT(changed)
+       AC_MSG_WARN(config.cache exists!)
+       AC_MSG_ERROR(you must do 'make distclean' first to compile for
+                different target or different parameters.)
+    else
+       AC_MSG_RESULT(ok)
+    fi
+  ])
+
+
+
+
+######################################################################
+# Check for SysV IPC  (from GIMP)
+######################################################################
+dnl WK_CHECK_IPC
+dnl
+define(WK_CHECK_IPC,
+  [ AC_CHECK_HEADERS(sys/ipc.h sys/shm.h)
+    if test "$ac_cv_header_sys_shm_h" = "yes"; then
+      AC_MSG_CHECKING(whether shmctl IPC_RMID allowes subsequent attaches)
+      AC_TRY_RUN([
+           #include <sys/types.h>
+           #include <sys/ipc.h>
+           #include <sys/shm.h>
+           int main()
+           {
+             int id;
+             char *shmaddr;
+           id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0777);
+           if (id == -1)
+             exit (2);
+             shmaddr = shmat (id, 0, 0);
+             shmctl (id, IPC_RMID, 0);
+             if ((char*) shmat (id, 0, 0) == (char*) -1)
+             {
+               shmdt (shmaddr);
+               exit (1);
+             }
+             shmdt (shmaddr);
+             shmdt (shmaddr);
+             exit (0);
+           }
+       ],
+       AC_DEFINE(IPC_RMID_DEFERRED_RELEASE)
+       AC_MSG_RESULT(yes),
+       AC_MSG_RESULT(no),
+       AC_MSG_RESULT(assuming no))
+    fi
+  ])
+
+
+######################################################################
+# progtest.m4 from gettext 0.32
+######################################################################
+# 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 1
+
+dnl 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=[$]2
+AC_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]); do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if [$3]; then
+       ac_cv_path_$1="$ac_dir/$ac_word"
+       break
+      fi
+    fi
+  done
+  IFS="$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"; then
+  AC_MSG_RESULT([$]$1)
+else
+  AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
 ])
 
-dnl Check NLS options
 
-AC_DEFUN(ud_LC_MESSAGES,
+######################################################################
+# lcmessage.m4 from gettext 0.32
+######################################################################
+# 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 1
+
+AC_DEFUN(AM_LC_MESSAGES,
   [if test $ac_cv_header_locale_h = yes; then
-    AC_CACHE_CHECK([for LC_MESSAGES], ud_cv_val_LC_MESSAGES,
+    AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
       [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
-       ud_cv_val_LC_MESSAGES=yes, ud_cv_val_LC_MESSAGES=no)])
-    if test $ud_cv_val_LC_MESSAGES = yes; then
+       am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
+    if test $am_cv_val_LC_MESSAGES = yes; then
       AC_DEFINE(HAVE_LC_MESSAGES)
     fi
   fi])
 
-AC_DEFUN(ud_WITH_NLS,
+
+
+######################################################################
+# gettext.m4 from gettext 0.32
+######################################################################
+# 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 3
+
+AC_DEFUN(AM_WITH_NLS,
   [AC_MSG_CHECKING([whether NLS is requested])
     dnl Default is enabled NLS
     AC_ARG_ENABLE(nls,
       [  --disable-nls          do not use Native Language Support],
-      nls_cv_use_nls=$enableval, nls_cv_use_nls=yes)
-    AC_MSG_RESULT($nls_cv_use_nls)
+      USE_NLS=$enableval, USE_NLS=yes)
+    AC_MSG_RESULT($USE_NLS)
+    AC_SUBST(USE_NLS)
+
+    USE_INCLUDED_LIBINTL=no
 
     dnl If we use NLS figure out what method
-    if test "$nls_cv_use_nls" = "yes"; then
+    if test "$USE_NLS" = "yes"; then
       AC_DEFINE(ENABLE_NLS)
-      AC_MSG_CHECKING([for explicitly using GNU gettext])
-      AC_ARG_WITH(gnu-gettext,
-       [  --with-gnu-gettext      use the GNU gettext library],
+      AC_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)
 
-      if test "$nls_cv_force_use_gnu_gettext" = "yes"; then
-       nls_cv_use_gnu_gettext=yes
-      else
+      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 gettext or catgets are available (in this order) we
        dnl use this.  Else we have to fall back to GNU NLS library.
-       AC_CHECK_LIB(intl, main)
-       AC_CHECK_LIB(i, main)
+       dnl catgets is only used if permitted by option --with-catgets.
+       nls_cv_header_intl=
+       nls_cv_header_libgt=
        CATOBJEXT=NONE
 
-       dnl Debian 1.3.1 does not have libintl.h but libintl.a
-       AC_CHECK_HEADER(libintl.h, [ AC_DEFINE(HAVE_LIBINTL_H) ])
-       if    test "$ac_cv_lib_intl_main" = yes \
-          && test "$ac_cv_header_libintl_h" != "yes" ; then
-           nls_cv_use_gnu_gettext=yes
-       else
-           AC_CHECK_FUNC(gettext,
-             [AC_DEFINE(HAVE_GETTEXT)
-              md_PATH_PROG(MSGFMT, msgfmt, no)dnl
-              if test "$MSGFMT" != "no"; then
-                AC_CHECK_FUNCS(dcgettext)
-                md_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-                md_PATH_PROG(XGETTEXT, xgettext, xgettext)
-                CATOBJEXT=.mo
-                INSTOBJEXT=.mo
-                DATADIRNAME=lib
-                if test "$ac_cv_lib_intl[_]main" = yes; then
-                  INTLLIBS=-lintl
-                elif test "$ac_cv_lib_i[_]main" = yes; then
-                  INTLLIBS=-li
+       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"; then
+            AC_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)])])
+          fi
+
+          if test "$gt_cv_func_gettext_libc" = "yes" \
+             || test "$gt_cv_func_gettext_libintl" = "yes"; then
+             AC_DEFINE(HAVE_GETTEXT)
+             AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+               [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
+             if test "$MSGFMT" != "no"; then
+               AC_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=.gmo
+                  DATADIRNAME=share],
+                 [CATOBJEXT=.mo
+                  DATADIRNAME=lib])
+               INSTOBJEXT=.mo
+             fi
+           fi
+       ])
+
+       if test "$CATOBJEXT" = "NONE"; then
+         AC_MSG_CHECKING([whether catgets can be used])
+         AC_ARG_WITH(catgets,
+           [  --with-catgets          use catgets functions if available],
+           nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
+         AC_MSG_RESULT($nls_cv_use_catgets)
+
+         if test "$nls_cv_use_catgets" = "yes"; then
+           dnl No gettext in C library.  Try catgets next.
+           AC_CHECK_LIB(i, main)
+           AC_CHECK_FUNC(catgets,
+             [AC_DEFINE(HAVE_CATGETS)
+              INTLOBJS="\$(CATOBJS)"
+              AC_PATH_PROG(GENCAT, gencat, no)dnl
+              if test "$GENCAT" != "no"; then
+                AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
+                if test "$GMSGFMT" = "no"; then
+                  AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
+                   [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
                 fi
+                AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+                  [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+                USE_INCLUDED_LIBINTL=yes
+                CATOBJEXT=.cat
+                INSTOBJEXT=.cat
+                DATADIRNAME=lib
+                INTLDEPS='$(top_builddir)/intl/libintl.a'
+                INTLLIBS=$INTLDEPS
+                LIBS=`echo $LIBS | sed -e 's/-lintl//'`
+                nls_cv_header_intl=intl/libintl.h
+                nls_cv_header_libgt=intl/libgettext.h
               fi])
-
-           if test "$CATOBJEXT" = "NONE"; then
-             dnl No gettext in C library.  Try catgets next.
-             AC_CHECK_FUNC(catgets,
-               [AC_DEFINE(HAVE_CATGETS)
-                INTLOBJS="\$(CATOBJS)"
-                AC_PATH_PROG(GENCAT, gencat, no)dnl
-                if test "$GENCAT" != "no"; then
-                  AC_PATH_PROGS(GMSGFMT, [gmsgfmt msgfmt], msgfmt)
-                  md_PATH_PROG(XGETTEXT, xgettext, xgettext)
-                  CATOBJEXT=.cat
-                  INSTOBJEXT=.cat
-                  DATADIRNAME=lib
-                  INTLDEPS="\${top_srcdir}/intl/libintl.a"
-                  INTLLIBS=$INTLDEPS
-                  LIBS=`echo $LIBS | sed -e 's/-lintl//'`
-                  nls_cv_header_intl=libintl.h
-                  nls_cv_header_libgt=intl/libgettext.h
-                fi])
-           fi
+         fi
        fi
 
        if test "$CATOBJEXT" = "NONE"; then
@@ -114,29 +355,51 @@ AC_DEFUN(ud_WITH_NLS,
       if test "$nls_cv_use_gnu_gettext" = "yes"; then
        dnl Mark actions used to generate GNU NLS library.
        INTLOBJS="\$(GETTOBJS)"
-       md_PATH_PROG(MSGFMT, msgfmt, msgfmt)
-       md_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-       md_PATH_PROG(XGETTEXT, xgettext, xgettext)
+       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=yes
        CATOBJEXT=.gmo
        INSTOBJEXT=.mo
        DATADIRNAME=share
-       INTLDEPS="\${top_srcdir}/intl/libintl.a"
+       INTLDEPS='$(top_builddir)/intl/libintl.a'
        INTLLIBS=$INTLDEPS
        LIBS=`echo $LIBS | sed -e 's/-lintl//'`
-       nls_cv_header_intl=libintl.h
+       nls_cv_header_intl=intl/libintl.h
        nls_cv_header_libgt=intl/libgettext.h
       fi
 
-      # We need to process the intl/ and po/ directory.
-      INTLSUB=intl
+      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 2> /dev/null; then
+         : ;
+       else
+         AC_MSG_RESULT(
+           [found xgettext programs is not GNU xgettext; ignore it])
+         XGETTEXT=":"
+       fi
+      fi
+
+      # We need to process the po/ directory.
       POSUB=po
     else
       DATADIRNAME=share
-      nls_cv_header_intl=libintl.h
+      nls_cv_header_intl=intl/libintl.h
       nls_cv_header_libgt=intl/libgettext.h
     fi
 
+    # 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; then
+      USE_NLS=yes
+      USE_INCLUDED_LIBINTL=yes
+    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.
@@ -146,6 +409,7 @@ AC_DEFUN(ud_WITH_NLS,
     done
 
     dnl Make all variables we use known to autoconf.
+    AC_SUBST(USE_INCLUDED_LIBINTL)
     AC_SUBST(CATALOGS)
     AC_SUBST(CATOBJEXT)
     AC_SUBST(DATADIRNAME)
@@ -154,7 +418,6 @@ AC_DEFUN(ud_WITH_NLS,
     AC_SUBST(INTLDEPS)
     AC_SUBST(INTLLIBS)
     AC_SUBST(INTLOBJS)
-    AC_SUBST(INTLSUB)
     AC_SUBST(POFILES)
     AC_SUBST(POSUB)
   ])
@@ -163,6 +426,7 @@ AC_DEFUN(AM_GNU_GETTEXT,
   [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
    AC_REQUIRE([AC_PROG_CC])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
@@ -171,8 +435,10 @@ AC_DEFUN(AM_GNU_GETTEXT,
    AC_REQUIRE([AC_FUNC_ALLOCA])dnl
    AC_REQUIRE([AC_FUNC_MMAP])dnl
 
-   AC_CHECK_HEADERS([limits.h locale.h nl_types.h malloc.h string.h unistd.h values.h])
-   AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp])
+   AC_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"; then
      AC_CHECK_FUNCS(stpcpy)
@@ -181,8 +447,8 @@ AC_DEFUN(AM_GNU_GETTEXT,
      AC_DEFINE(HAVE_STPCPY)
    fi
 
-   ud_LC_MESSAGES
-   ud_WITH_NLS
+   AM_LC_MESSAGES
+   AM_WITH_NLS
 
    if test "x$CATOBJEXT" != "x"; then
      if test "x$ALL_LINGUAS" = "x"; then
@@ -205,9 +471,20 @@ AC_DEFUN(AM_GNU_GETTEXT,
      fi
    fi
 
+   dnl The reference to <locale.h> in the installed <libintl.h> file
+   dnl must be resolved because we cannot expect the users of this
+   dnl to define HAVE_LOCALE_H.
+   if test $ac_cv_header_locale_h = yes; then
+     INCLUDE_LOCALE_H="#include <locale.h>"
+   else
+     INCLUDE_LOCALE_H="\
+/* The system does not provide the header <locale.h>.  Take care yourself.  */"
+   fi
+   AC_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 and the normal X/Open format
+   dnl  Linux libc-5 and the normal X/Open format
    test -d intl || mkdir intl
    if test "$CATOBJEXT" = ".cat"; then
      AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
@@ -220,6 +497,35 @@ AC_DEFUN(AM_GNU_GETTEXT,
    sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
      $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
 
+   dnl In the intl/Makefile.in we have a special dependency which makes
+   dnl only sense for gettext. We comment this out for non-gettext
+   dnl packages.
+   if test "$PACKAGE" = "gettext"; then
+     GT_NO="#NO#"
+     GT_YES=
+   else
+     GT_NO=
+     GT_YES="#YES#"
+   fi
+   AC_SUBST(GT_NO)
+   AC_SUBST(GT_YES)
+
+   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 *** 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 will
    dnl be included in po/Makefile.
    test -d po || mkdir po
@@ -232,125 +538,10 @@ AC_DEFUN(AM_GNU_GETTEXT,
    else
      posrcprefix="../"
    fi
+   rm -f po/POTFILES
    sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
        < $srcdir/po/POTFILES.in > po/POTFILES
   ])
 
 
 
-dnl --------------------------------------------------
-dnl G10 stuff
-dnl --------------------------------------------------
-
-
-dnl WK_MSG_PRINT(STRING)
-dnl print a message
-dnl
-define(WK_MSG_PRINT,
-  [ echo $ac_n "$1"" $ac_c" 1>&AC_FD_MSG
-  ])
-
-
-dnl WK_CHECK_TYPEDEF(TYPE, HAVE_NAME)
-dnl Check wether a typedef exists and create a #define $2 if it exists
-dnl
-AC_DEFUN(WK_CHECK_TYPEDEF,
-  [ AC_MSG_CHECKING(for $1 typedef)
-    AC_CACHE_VAL(wk_cv_typedef_$1,
-    [AC_TRY_COMPILE([#include <stdlib.h>
-    #include <sys/types.h>], [
-    #undef $1
-    int a = sizeof($1);
-    ], wk_cv_typedef_$1=yes, wk_cv_typedef_$1=no )])
-    AC_MSG_RESULT($wk_cv_typedef_$1)
-    if test "$wk_cv_typedef_$1" = yes; then
-       AC_DEFINE($2)
-    fi
-  ])
-
-
-
-dnl WK_LINK_FILES( SRC, DEST )
-dnl same as AC_LINK_FILES, but collect the files to link in
-dnl some special variables and do the link
-dnl when WK_DO_LINK_FILES is called
-dnl This is a workaround for AC_LINK_FILES, because it does not work
-dnl correct when using a caching scheme
-dnl
-define(WK_LINK_FILES,
-  [ if test "x$wk_link_files_src" = "x"; then
-       wk_link_files_src="$1"
-       wk_link_files_dst="$2"
-    else
-       wk_link_files_src="$wk_link_files_src $1"
-       wk_link_files_dst="$wk_link_files_dst $2"
-    fi
-  ])
-define(WK_DO_LINK_FILES,
-  [ AC_LINK_FILES( $wk_link_files_src, $wk_link_files_dst )
-  ])
-
-
-dnl WK_CHECK_ENDIAN
-dnl define either LITTLE_ENDIAN_HOST or BIG_ENDIAN_HOST
-dnl
-define(WK_CHECK_ENDIAN,
-  [ if test "$cross_compiling" = yes; then
-       AC_MSG_WARN(cross compiling; assuming little endianess)
-    fi
-    AC_MSG_CHECKING(endianess)
-    AC_CACHE_VAL(wk_cv_c_endian,
-      [ wk_cv_c_endian=unknown
-       # See if sys/param.h defines the BYTE_ORDER macro.
-       AC_TRY_COMPILE([#include <sys/types.h>
-       #include <sys/param.h>], [
-       #if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
-        bogus endian macros
-       #endif], [# It does; now see whether it defined to BIG_ENDIAN or not.
-       AC_TRY_COMPILE([#include <sys/types.h>
-       #include <sys/param.h>], [
-       #if BYTE_ORDER != BIG_ENDIAN
-        not big endian
-       #endif], wk_cv_c_endian=big, wk_cv_c_endian=little)])
-       if test "$wk_cv_c_endian" = unknown; then
-           AC_TRY_RUN([main () {
-             /* Are we little or big endian?  From Harbison&Steele.  */
-             union
-             {
-               long l;
-               char c[sizeof (long)];
-             } u;
-             u.l = 1;
-             exit (u.c[sizeof (long) - 1] == 1);
-             }],
-             wk_cv_c_endian=little,
-             wk_cv_c_endian=big,
-             wk_cv_c_endian=little
-           )
-       fi
-      ])
-    AC_MSG_RESULT([$wk_cv_c_endian])
-    if test "$wk_cv_c_endian" = little; then
-      AC_DEFINE(LITTLE_ENDIAN_HOST)
-    else
-      AC_DEFINE(BIG_ENDIAN_HOST)
-    fi
-  ])
-
-dnl WK_CHECK_CACHE
-dnl
-define(WK_CHECK_CACHE,
-  [ AC_MSG_CHECKING(cached information)
-    wk_hostcheck="$target"
-    AC_CACHE_VAL(wk_cv_hostcheck, [ wk_cv_hostcheck="$wk_hostcheck" ])
-    if test "$wk_cv_hostcheck" != "$wk_hostcheck"; then
-       AC_MSG_RESULT(changed)
-       AC_MSG_WARN(config.cache exists!)
-       AC_MSG_ERROR(you must do 'make distclean' first to compile for
-                different target or different parameters.)
-    else
-       AC_MSG_RESULT(ok)
-    fi
-  ])
-
-