* w32installer.nsi: Allow including of WINPT source. Include
[gnupg.git] / configure.ac
index 0e32609..7c91ddc 100644 (file)
@@ -1,6 +1,6 @@
-dnl Configure.ac script for GnuPG
-dnl Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
-dnl               2004 Free Software Foundation, Inc.
+dnl configure.ac script for GnuPG
+dnl Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+dnl               2005 Free Software Foundation, Inc.
 dnl
 dnl This file is part of GnuPG.
 dnl
 dnl
 dnl This file is part of GnuPG.
 dnl
@@ -22,19 +22,19 @@ dnl (Process this file with autoconf to produce a configure script.)
 dnlAC_REVISION($Revision$)dnl
 
 AC_PREREQ(2.59)
 dnlAC_REVISION($Revision$)dnl
 
 AC_PREREQ(2.59)
-min_automake_version="1.7.9"
+min_automake_version="1.9.3"
 
 # Remember to change the version number immediately *after* a release
 # and remove the "-cvs" or "rc" suffix immediately *before* a release.
 
 # Remember to change the version number immediately *after* a release
 # and remove the "-cvs" or "rc" suffix immediately *before* a release.
-AC_INIT(gnupg, 1.3.91-cvs, bug-gnupg@gnu.org)
+AC_INIT(gnupg, 1.4.2-cvs, bug-gnupg@gnu.org)
 # Set development_version to yes if the minor number is odd or you
 # feel that the default check for a development version is not
 # sufficient.
 # Set development_version to yes if the minor number is odd or you
 # feel that the default check for a development version is not
 # sufficient.
-development_version=yes
+development_version=no
 
 AC_CONFIG_AUX_DIR(scripts)
 AC_CONFIG_SRCDIR(g10/g10.c)
 
 AC_CONFIG_AUX_DIR(scripts)
 AC_CONFIG_SRCDIR(g10/g10.c)
-AC_CANONICAL_TARGET
+AC_CANONICAL_HOST
 AM_INIT_AUTOMAKE([std-options])
 AM_CONFIG_HEADER(config.h)
 
 AM_INIT_AUTOMAKE([std-options])
 AM_CONFIG_HEADER(config.h)
 
@@ -102,6 +102,18 @@ if test "$use_m_guard" = yes ; then
     AC_DEFINE(M_GUARD,1,[Define to use the (obsolete) malloc guarding feature])
 fi
 
     AC_DEFINE(M_GUARD,1,[Define to use the (obsolete) malloc guarding feature])
 fi
 
+# We don't have a test to check whetyer as(1) knows about the
+# non executable stackioption.  Thus we provide an option to enable
+# it.
+AC_MSG_CHECKING([whether non excutable stack support is requested])
+AC_ARG_ENABLE(noexecstack,
+              AC_HELP_STRING([--enable-noexecstack],
+                             [enable non executable stack support (gcc only)]),
+              noexecstack_support=$enableval, noexecstack_support=no)
+AC_MSG_RESULT($noexecstack_support)
+
+# SELinux support includes tracking of sensitive files to avoid
+# leaking their contents through processing these files by gpg itself
 AC_MSG_CHECKING([whether SELinux support is requested])
 AC_ARG_ENABLE(selinux-support,
               AC_HELP_STRING([--enable-selinux-support],
 AC_MSG_CHECKING([whether SELinux support is requested])
 AC_ARG_ENABLE(selinux-support,
               AC_HELP_STRING([--enable-selinux-support],
@@ -109,6 +121,7 @@ AC_ARG_ENABLE(selinux-support,
               selinux_support=$enableval, selinux_support=no)
 AC_MSG_RESULT($selinux_support)
 
               selinux_support=$enableval, selinux_support=no)
 AC_MSG_RESULT($selinux_support)
 
+
 AC_MSG_CHECKING([whether OpenPGP card support is requested])
 AC_ARG_ENABLE(card-support,
               AC_HELP_STRING([--disable-card-support],
 AC_MSG_CHECKING([whether OpenPGP card support is requested])
 AC_ARG_ENABLE(card-support,
               AC_HELP_STRING([--disable-card-support],
@@ -116,14 +129,19 @@ AC_ARG_ENABLE(card-support,
               card_support=$enableval, card_support=yes)
 AC_MSG_RESULT($card_support)
 
               card_support=$enableval, card_support=yes)
 AC_MSG_RESULT($card_support)
 
-AC_MSG_CHECKING([whether readline support is requested])
-AC_ARG_WITH(readline,
-              AC_HELP_STRING([--without-readline],
-                             [do not support fancy command line editing]),
-              [readline_support="$withval"], [readline_support=yes])  
-case "$readline_support" in yes);; no);; *)readline_support=yes;; esac
-AC_MSG_RESULT($readline_support)
+AC_MSG_CHECKING([whether the new iconv based code is requested])
+AC_ARG_ENABLE(gnupg-iconv,
+              AC_HELP_STRING([--disable-gnupg-iconv],
+                             [disable the new iconv code]),
+              gnupg_use_iconv=$enableval, gnupg_use_iconv=yes)
+AC_MSG_RESULT($gnupg_use_iconv)
 
 
+AC_MSG_CHECKING([whether to enable the experimental backsigs code])
+AC_ARG_ENABLE(backsigs,
+              AC_HELP_STRING([--enable-backsigs],
+                             [enable the experimental backsigs code]),
+              do_backsigs=$enableval, do_backsigs=no)
+AC_MSG_RESULT($do_backsigs)
 
 dnl See if we are disabling any algorithms or features for a smaller
 dnl binary
 
 dnl See if we are disabling any algorithms or features for a smaller
 dnl binary
@@ -292,51 +310,61 @@ if test "$use_exec" = yes ; then
   AC_MSG_RESULT($enableval)
 
   if test "$gnupg_cv_enable_keyserver_helpers" = yes ; then
   AC_MSG_RESULT($enableval)
 
   if test "$gnupg_cv_enable_keyserver_helpers" = yes ; then
+dnl LDAP is defined only after we confirm the library is available later
     AC_MSG_CHECKING([whether LDAP keyserver support is requested])
     AC_ARG_ENABLE(ldap,
     AC_MSG_CHECKING([whether LDAP keyserver support is requested])
     AC_ARG_ENABLE(ldap,
-    [  --disable-ldap          disable LDAP keyserver interface],
-        try_ldap=$enableval, try_ldap=yes)
+      AC_HELP_STRING([--disable-ldap],[disable LDAP keyserver interface only]),
+      try_ldap=$enableval, try_ldap=yes)
     AC_MSG_RESULT($try_ldap)
 
     AC_MSG_CHECKING([whether HKP keyserver support is requested])
     AC_ARG_ENABLE(hkp,
     AC_MSG_RESULT($try_ldap)
 
     AC_MSG_CHECKING([whether HKP keyserver support is requested])
     AC_ARG_ENABLE(hkp,
-    [  --disable-hkp           disable HKP keyserver interface],
-        try_hkp=$enableval, try_hkp=yes)
+      AC_HELP_STRING([--disable-hkp],[disable HKP keyserver interface only]),
+      try_hkp=$enableval, try_hkp=yes)
     AC_MSG_RESULT($try_hkp)
 
     AC_MSG_CHECKING([whether HTTP key fetching support is requested])
     AC_ARG_ENABLE(http,
       AC_HELP_STRING([--disable-http],[disable HTTP key fetching interface]),
     AC_MSG_RESULT($try_hkp)
 
     AC_MSG_CHECKING([whether HTTP key fetching support is requested])
     AC_ARG_ENABLE(http,
       AC_HELP_STRING([--disable-http],[disable HTTP key fetching interface]),
-        try_http=$enableval, try_http=yes)
+      try_http=$enableval, try_http=yes)
     AC_MSG_RESULT($try_http)
 
     AC_MSG_RESULT($try_http)
 
-    AC_MSG_CHECKING([whether Finger key fetching support is requested])
+    AC_MSG_CHECKING([whether finger key fetching support is requested])
     AC_ARG_ENABLE(finger,
       AC_HELP_STRING([--disable-finger],
     AC_ARG_ENABLE(finger,
       AC_HELP_STRING([--disable-finger],
-                     [disable Finger key fetching interface]),
-        try_finger=$enableval, try_finger=yes)
+        [disable finger key fetching interface only]),
+      try_finger=$enableval, try_finger=yes)
     AC_MSG_RESULT($try_finger)
 
     AC_MSG_RESULT($try_finger)
 
+    AC_MSG_CHECKING([whether ftp key fetching support is requested])
+    AC_ARG_ENABLE(ftp,
+      AC_HELP_STRING([--disable-ftp],
+        [disable ftp key fetching interface only]),
+      try_ftp=$enableval, try_ftp=yes)
+    AC_MSG_RESULT($try_ftp)
+
     AC_MSG_CHECKING([whether email keyserver support is requested])
     AC_ARG_ENABLE(mailto,
     AC_MSG_CHECKING([whether email keyserver support is requested])
     AC_ARG_ENABLE(mailto,
-    [  --disable-mailto        disable email keyserver interface],
-        try_mailto=$enableval, try_mailto=yes)
+      AC_HELP_STRING([--enable-mailto],
+       [enable email keyserver interface only]),
+      try_mailto=$enableval, try_mailto=no)
     AC_MSG_RESULT($try_mailto)
     fi
 
     AC_MSG_CHECKING([whether keyserver exec-path is enabled])
     AC_ARG_ENABLE(keyserver-path,
     AC_MSG_RESULT($try_mailto)
     fi
 
     AC_MSG_CHECKING([whether keyserver exec-path is enabled])
     AC_ARG_ENABLE(keyserver-path,
-        [  --disable-keyserver-path disable the exec-path option for keyserver helpers],
-        [if test "$enableval" = no ; then
+      AC_HELP_STRING([--disable-keyserver-path],
+        [disable the exec-path option for keyserver helpers]),
+      [if test "$enableval" = no ; then
         AC_DEFINE(DISABLE_KEYSERVER_PATH,1,[define to disable exec-path for keyserver helpers])
         AC_DEFINE(DISABLE_KEYSERVER_PATH,1,[define to disable exec-path for keyserver helpers])
-        fi],enableval=yes)
+      fi],enableval=yes)
     AC_MSG_RESULT($enableval)
   fi
 
 AC_MSG_CHECKING([whether the included zlib is requested])
 AC_ARG_WITH(included-zlib,
     [  --with-included-zlib    use the zlib code included here],
     AC_MSG_RESULT($enableval)
   fi
 
 AC_MSG_CHECKING([whether the included zlib is requested])
 AC_ARG_WITH(included-zlib,
     [  --with-included-zlib    use the zlib code included here],
-[g10_force_zlib=yes], [g10_force_zlib=no] )
+[g10_force_zlib="$withval"], [g10_force_zlib=no] )
 AC_MSG_RESULT($g10_force_zlib)
 
 dnl
 AC_MSG_RESULT($g10_force_zlib)
 
 dnl
@@ -373,6 +401,12 @@ AC_ARG_WITH(capabilities,
 [use_capabilities="$withval"],[use_capabilities=no])
 AC_MSG_RESULT($use_capabilities)
 
 [use_capabilities="$withval"],[use_capabilities=no])
 AC_MSG_RESULT($use_capabilities)
 
+# To avoid double inclusion of config.h which might happen at some
+# places, we add the usual double inclusion protection.
+AH_TOP([
+#ifndef GNUPG_CONFIG_H_INCLUDED
+#define GNUPG_CONFIG_H_INCLUDED
+])
 
 AH_BOTTOM([
 #if !(defined(HAVE_FORK) && defined(HAVE_PIPE) && defined(HAVE_WAITPID))
 
 AH_BOTTOM([
 #if !(defined(HAVE_FORK) && defined(HAVE_PIPE) && defined(HAVE_WAITPID))
@@ -384,6 +418,8 @@ AH_BOTTOM([
 #define GNUPG_MAJOR_VERSION 1
 
 #include "g10defs.h"
 #define GNUPG_MAJOR_VERSION 1
 
 #include "g10defs.h"
+
+#endif /*GNUPG_CONFIG_H_INCLUDED*/
 ])
 
 
 ])
 
 
@@ -407,7 +443,6 @@ AC_PATH_PROG(PERL,"perl")
 AC_ISC_POSIX
 AC_SYS_LARGEFILE
 AC_PROG_INSTALL
 AC_ISC_POSIX
 AC_SYS_LARGEFILE
 AC_PROG_INSTALL
-AC_PROG_LN_S
 AC_PROG_AWK
 AC_CHECK_PROG(DOCBOOK_TO_MAN, docbook-to-man, yes, no)
 AM_CONDITIONAL(HAVE_DOCBOOK_TO_MAN, test "$ac_cv_prog_DOCBOOK_TO_MAN" = yes)
 AC_PROG_AWK
 AC_CHECK_PROG(DOCBOOK_TO_MAN, docbook-to-man, yes, no)
 AM_CONDITIONAL(HAVE_DOCBOOK_TO_MAN, test "$ac_cv_prog_DOCBOOK_TO_MAN" = yes)
@@ -416,12 +451,11 @@ GNUPG_CHECK_DOCBOOK_TO_TEXI
 
 MPI_OPT_FLAGS=""
 
 
 MPI_OPT_FLAGS=""
 
-
 try_gettext=yes
 have_dosish_system=no
 need_dlopen=yes
 try_gettext=yes
 have_dosish_system=no
 need_dlopen=yes
-case "${target}" in
-    *-*-mingw32*)
+case "${host}" in
+    *-mingw32*)
         # special stuff for Windoze NT
         ac_cv_have_dev_random=no
         AC_DEFINE(USE_ONLY_8DOT3,1,
         # special stuff for Windoze NT
         ac_cv_have_dev_random=no
         AC_DEFINE(USE_ONLY_8DOT3,1,
@@ -432,10 +466,11 @@ case "${target}" in
                   [because the Unix gettext has too much overhead on
                    MingW32 systems and these systems lack Posix functions,
                    we use a simplified version of gettext])
                   [because the Unix gettext has too much overhead on
                    MingW32 systems and these systems lack Posix functions,
                    we use a simplified version of gettext])
+        AC_DEFINE(HAVE_W32_SYSTEM,1,
+                  [Defined if we run on a W32 API based system])
         have_dosish_system=yes
         need_dlopen=no
         try_gettext="no"
         have_dosish_system=yes
         need_dlopen=no
         try_gettext="no"
-       LDAPLIBS="-lwldap32"
         ;;
     i?86-emx-os2 | i?86-*-os2*emx )
         # OS/2 with the EMX environment
         ;;
     i?86-emx-os2 | i?86-*-os2*emx )
         # OS/2 with the EMX environment
@@ -502,10 +537,6 @@ if test x"$try_hkp" = xyes ; then
   AC_SUBST(GPGKEYS_HKP,"gpgkeys_hkp$EXEEXT")
 fi
 
   AC_SUBST(GPGKEYS_HKP,"gpgkeys_hkp$EXEEXT")
 fi
 
-if test x"$try_http" = xyes ; then
-  AC_SUBST(GPGKEYS_HTTP,"gpgkeys_http$EXEEXT")
-fi
-
 if test x"$try_finger" = xyes ; then
   AC_SUBST(GPGKEYS_FINGER,"gpgkeys_finger$EXEEXT")
 fi
 if test x"$try_finger" = xyes ; then
   AC_SUBST(GPGKEYS_FINGER,"gpgkeys_finger$EXEEXT")
 fi
@@ -554,60 +585,59 @@ if (test x"$try_hkp" = xyes || test x"$try_http" = xyes) && test x"$use_dns_srv"
   if test x"$use_dns_srv" = xyes ; then
      AC_DEFINE(USE_DNS_SRV,1,[define to use DNS SRV])
      SRVLIBS=$LIBS
   if test x"$use_dns_srv" = xyes ; then
      AC_DEFINE(USE_DNS_SRV,1,[define to use DNS SRV])
      SRVLIBS=$LIBS
-  else
-     AC_MSG_NOTICE([Resolver functions not found or not usable.  Disabling DNS SRV.])
   fi
   fi
+
   LIBS=$_srv_save_libs
 fi
 
 AC_SUBST(SRVLIBS)
 
   LIBS=$_srv_save_libs
 fi
 
 AC_SUBST(SRVLIBS)
 
-# Try and link a LDAP test program to weed out unusable LDAP
-# libraries.  -lldap [-llber [-lresolv]] is for older OpenLDAPs.
-# OpenLDAP, circa 1999, was terrible with creating weird dependencies.
-# This seems to have all been resolved, so I'm simplifying this code
-# significantly.  If all else fails, the user can play
-# guess-the-dependency by using something like ./configure
-# LDAPLIBS="-Lfoo -lbar"
+# Check for LDAP
 
 if test "$try_ldap" = yes ; then
 
 if test "$try_ldap" = yes ; then
-  for MY_LDAPLIBS in ${LDAPLIBS+"$LDAPLIBS"} "-lldap" "-lldap -llber" "-lldap -llber -lresolv"; do
-    _ldap_save_libs=$LIBS
-    LIBS="$MY_LDAPLIBS $NETLIBS $LIBS"
-
-    AC_MSG_CHECKING([whether LDAP via \"$MY_LDAPLIBS\" is present and sane])
-    AC_TRY_LINK([#include <ldap.h>],[ldap_open("foobar",1234);],
-                [gnupg_cv_func_ldap_init=yes],[gnupg_cv_func_ldap_init=no])
-    AC_MSG_RESULT([$gnupg_cv_func_ldap_init])
-
-    if test "$gnupg_cv_func_ldap_init" = yes ; then
-       LDAPLIBS=$MY_LDAPLIBS
-       GPGKEYS_LDAP="gpgkeys_ldap$EXEEXT"
-
-       AC_CHECK_FUNCS(ldap_get_option ldap_set_option ldap_start_tls_s)
-
-       if test "$ac_cv_func_ldap_get_option" != yes ; then
-          AC_MSG_CHECKING([whether LDAP supports ld_errno])
-         AC_TRY_LINK([#include <ldap.h>],[LDAP *ldap; ldap->ld_errno;],
-            [gnupg_cv_func_ldap_ld_errno=yes],
-            [gnupg_cv_func_ldap_ld_errno=no])
-          AC_MSG_RESULT([$gnupg_cv_func_ldap_ld_errno])
-
-         if test "$gnupg_cv_func_ldap_ld_errno" = yes ; then
-            AC_DEFINE(HAVE_LDAP_LD_ERRNO,1,[Define if the LDAP library supports ld_errno])
-          fi
-       fi
-    fi
+   GNUPG_CHECK_LDAP($NETLIBS)
+fi
 
 
-    LIBS=$_ldap_save_libs
+# Special hack to test curl
 
 
-    if test "$GPGKEYS_LDAP" != "" ; then break; fi
-  done
+AC_ARG_ENABLE(fake-curl,
+   AC_HELP_STRING([--enable-fake-curl],[enable EXPERIMENTAL no-curl HTTP code]),fake_curl=$enableval,fake_curl=no)
+
+AM_CONDITIONAL(FAKE_CURL,test x"$fake_curl" = xyes)
+
+if test x"$fake_curl" = xyes ; then
+   libcurl_protocol_HTTP=yes
+else
+   # If we have neither FTP or HTTP defined, then don't bother to check
+   # for curl.
+   if test x"$try_ftp" = xyes || test x"$try_http" = xyes ; then
+      LIBCURL_CHECK_CONFIG([no])
+   fi
 fi
 
 fi
 
-AC_SUBST(GPGKEYS_LDAP)
-AC_SUBST(LDAPLIBS)
-AM_CONDITIONAL(GPGKEYS_LDAP, test "$GPGKEYS_LDAP" != "")
+# Are we doing HTTP?
+
+if test x"$try_http" = xyes ; then
+   if test x$libcurl_protocol_HTTP = xyes ; then
+      AC_SUBST(GPGKEYS_CURL,"gpgkeys_curl$EXEEXT")
+      AC_DEFINE(HTTP_VIA_LIBCURL,1,[Define if HTTP is handled via libcurl])
+      if test x$libcurl_protocol_HTTPS = xyes ; then
+         AC_DEFINE(HTTPS_VIA_LIBCURL,1,[Define if HTTPS is handled via libcurl])
+      fi
+   else
+      AC_SUBST(GPGKEYS_HTTP,"gpgkeys_http$EXEEXT")
+   fi
+fi
+
+# Are we doing FTP?  We only do FTP if we have libcurl.
+
+if test x"$try_ftp" = xyes && test x$libcurl_protocol_FTP = xyes ; then
+   AC_SUBST(GPGKEYS_CURL,"gpgkeys_curl$EXEEXT")
+   AC_DEFINE(FTP_VIA_LIBCURL,1,[Define if FTP is handled via libcurl])
+   if test x$libcurl_protocol_FTPS = xyes ; then
+      AC_DEFINE(FTPS_VIA_LIBCURL,1,[Define if FTPS is handled via libcurl])
+   fi
+fi
 
 dnl This isn't necessarily sendmail itself, but anything that gives a
 dnl sendmail-ish interface to the outside world.  That includes qmail,
 
 dnl This isn't necessarily sendmail itself, but anything that gives a
 dnl sendmail-ish interface to the outside world.  That includes qmail,
@@ -631,8 +661,8 @@ fi
 
 AC_SUBST(GPGKEYS_MAILTO)
 
 
 AC_SUBST(GPGKEYS_MAILTO)
 
-case "${target}" in
-    *-*-mingw32*)
+case "${host}" in
+    *-mingw32*)
         PRINTABLE_OS_NAME="MingW32"
         ;;
     *-*-cygwin*)
         PRINTABLE_OS_NAME="MingW32"
         ;;
     *-*-cygwin*)
@@ -661,7 +691,7 @@ AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME",
 #
 NAME_OF_DEV_RANDOM="/dev/random"
 NAME_OF_DEV_URANDOM="/dev/urandom"
 #
 NAME_OF_DEV_RANDOM="/dev/random"
 NAME_OF_DEV_URANDOM="/dev/urandom"
-case "${target}" in
+case "${host}" in
     *-openbsd*)
         NAME_OF_DEV_RANDOM="/dev/srandom"
         NAME_OF_DEV_URANDOM="/dev/urandom"
     *-openbsd*)
         NAME_OF_DEV_RANDOM="/dev/srandom"
         NAME_OF_DEV_URANDOM="/dev/urandom"
@@ -732,12 +762,23 @@ if test "$selinux_support" = yes ; then
   AC_DEFINE(ENABLE_SELINUX_HACKS,1,[Define to enable SELinux support])
 fi
 
   AC_DEFINE(ENABLE_SELINUX_HACKS,1,[Define to enable SELinux support])
 fi
 
+if test "$gnupg_use_iconv" = yes ; then
+  AC_DEFINE(USE_GNUPG_ICONV,1,[Define to use the new iconv based code])
+fi
+
+if test "$do_backsigs" = yes ; then
+  AC_DEFINE(DO_BACKSIGS,1,[Define to enable the experimental backsigs code])
+fi
+
 AM_CONDITIONAL(ENABLE_CARD_SUPPORT, test "$card_support" = yes)
 
 dnl Checks for header files.
 AC_HEADER_STDC
 AM_CONDITIONAL(ENABLE_CARD_SUPPORT, test "$card_support" = yes)
 
 dnl Checks for header files.
 AC_HEADER_STDC
-AC_CHECK_HEADERS(unistd.h langinfo.h termio.h locale.h getopt.h)
+AC_CHECK_HEADERS([unistd.h langinfo.h termio.h locale.h getopt.h])
 
 
+# Note that we do not check for iconv here because this is done anyway
+# by the gettext checks and thus it allows us to disable the use of
+# iconv by using --disable-nls.
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
@@ -762,8 +803,9 @@ AC_CHECK_SIZEOF(unsigned long)
 AC_CHECK_SIZEOF(unsigned long long)
 
 # Ensure that we have UINT64_C before we bother to check for uint64_t
 AC_CHECK_SIZEOF(unsigned long long)
 
 # Ensure that we have UINT64_C before we bother to check for uint64_t
-AC_CACHE_CHECK([for UINT64_C],[gnupg_cv_uint64_c_works],
-   AC_COMPILE_IFELSE(AC_LANG_PROGRAM([#include <inttypes.h>
+gt_HEADER_INTTYPES_H
+AC_CACHE_CHECK([for UINT64_C], [gnupg_cv_uint64_c_works],
+               AC_COMPILE_IFELSE(AC_LANG_PROGRAM([
 uint64_t foo=UINT64_C(42);]),gnupg_cv_uint64_c_works=yes,gnupg_cv_uint64_c_works=no))
 
 if test "$gnupg_cv_uint64_c_works" = "yes" ; then
 uint64_t foo=UINT64_C(42);]),gnupg_cv_uint64_c_works=yes,gnupg_cv_uint64_c_works=no))
 
 if test "$gnupg_cv_uint64_c_works" = "yes" ; then
@@ -799,7 +841,7 @@ AC_CHECK_FUNCS(memmove gettimeofday getrusage setrlimit clock_gettime)
 AC_CHECK_FUNCS(atexit raise getpagesize strftime nl_langinfo setlocale)
 AC_CHECK_FUNCS(waitpid wait4 sigaction sigprocmask rand pipe stat getaddrinfo)
 AC_REPLACE_FUNCS(mkdtemp timegm)
 AC_CHECK_FUNCS(atexit raise getpagesize strftime nl_langinfo setlocale)
 AC_CHECK_FUNCS(waitpid wait4 sigaction sigprocmask rand pipe stat getaddrinfo)
 AC_REPLACE_FUNCS(mkdtemp timegm)
-AC_REPLACE_FUNCS(vasprintf)
+
 AC_CHECK_TYPES([struct sigaction, sigset_t],,,[#include <signal.h>])
 
 # See if getopt is in libiberty.  This is of course not optimal since
 AC_CHECK_TYPES([struct sigaction, sigset_t],,,[#include <signal.h>])
 
 # See if getopt is in libiberty.  This is of course not optimal since
@@ -916,8 +958,8 @@ if test "$use_static_rnd" = default; then
      if test "$ac_cv_have_dev_random" = yes; then
         random_modules="rndlinux"
      else
      if test "$ac_cv_have_dev_random" = yes; then
         random_modules="rndlinux"
      else
-         case "${target}" in
-            *-*-mingw32*|*-*-cygwin*)
+         case "${host}" in
+            *-mingw32*|*-*-cygwin*)
                 random_modules="rndw32"
                 ;;
             i?86-emx-os2|i?86-*-os2*emx)
                 random_modules="rndw32"
                 ;;
             i?86-emx-os2|i?86-*-os2*emx)
@@ -1000,15 +1042,16 @@ AC_SUBST(MPI_SFLAGS)
 
 AC_MSG_CHECKING([whether regular expression support is requested])
 AC_ARG_ENABLE(regex,
 
 AC_MSG_CHECKING([whether regular expression support is requested])
 AC_ARG_ENABLE(regex,
-[  --disable-regex         do not handle regular expressions in trust sigs],
-     use_regex=$enableval, use_regex=yes)
+  AC_HELP_STRING([--disable-regex],
+    [do not handle regular expressions in trust signatures]),
+  use_regex=$enableval, use_regex=yes)
 AC_MSG_RESULT($use_regex)
 
 if test "$use_regex" = yes ; then
   AC_MSG_CHECKING([whether the included regex lib is requested])
   AC_ARG_WITH(included-regex,
       [  --with-included-regex   use the included GNU regex library],
 AC_MSG_RESULT($use_regex)
 
 if test "$use_regex" = yes ; then
   AC_MSG_CHECKING([whether the included regex lib is requested])
   AC_ARG_WITH(included-regex,
       [  --with-included-regex   use the included GNU regex library],
-      [gnupg_cv_included_regex=yes],[gnupg_cv_included_regex=no])
+      [gnupg_cv_included_regex="$withval"],[gnupg_cv_included_regex=no])
   AC_MSG_RESULT($gnupg_cv_included_regex)
 
   if test $gnupg_cv_included_regex = no ; then
   AC_MSG_RESULT($gnupg_cv_included_regex)
 
   if test $gnupg_cv_included_regex = no ; then
@@ -1107,29 +1150,11 @@ fi
 AM_CONDITIONAL(ENABLE_BZIP2_SUPPORT,test x"$have_bz2" = "xyes")
 AC_SUBST(ZLIBS)
 
 AM_CONDITIONAL(ENABLE_BZIP2_SUPPORT,test x"$have_bz2" = "xyes")
 AC_SUBST(ZLIBS)
 
-
-#
 # libusb allows us to use the integrated CCID smartcard reader driver.
 # libusb allows us to use the integrated CCID smartcard reader driver.
-#
-LIBUSB_LIBS=""
-if test "$card_support" = yes; then
-    AC_CHECK_LIB(usb, usb_bulk_write,
-                 [ LIBUSB_LIBS="$LIBUSB_LIBS -lusb"
-                   AC_DEFINE(HAVE_LIBUSB,1,
-                   [defined if libusb is available])
-                 ])
-fi
-AC_SUBST(LIBUSB_LIBS)
-AC_CHECK_FUNCS(usb_get_busses)
+GNUPG_CHECK_LIBUSB
 
 
-#
 # Check for readline support
 # Check for readline support
-#
-if test "$readline_support" = yes ; then
-    AC_CHECK_LIB(readline, add_history)
-    AC_CHECK_HEADERS([readline/readline.h])
-fi
-
+GNUPG_CHECK_READLINE
 
 # Allow users to append something to the version string without
 # flagging it as development version.  The user version parts is
 
 # Allow users to append something to the version string without
 # flagging it as development version.  The user version parts is
@@ -1149,12 +1174,11 @@ fi
 
 AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
 
 
 AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
 
-GNUPG_CHECK_GNUMAKE
 
 # add some extra libs here so that previous tests don't fail for
 # mysterious reasons - the final link step should bail out. 
 
 # add some extra libs here so that previous tests don't fail for
 # mysterious reasons - the final link step should bail out. 
-case "${target}" in
-    *-*-mingw32*)
+case "${host}" in
+    *-mingw32*)
 dnl      NETLIBS="$NETLIBS -lwsock32"
        W32LIBS="-lwsock32"
         ;;
 dnl      NETLIBS="$NETLIBS -lwsock32"
        W32LIBS="-lwsock32"
         ;;
@@ -1165,14 +1189,26 @@ esac
 AC_SUBST(NETLIBS)
 AC_SUBST(W32LIBS)
 
 AC_SUBST(NETLIBS)
 AC_SUBST(W32LIBS)
 
+# Special options used fith gcc.
 if test "$GCC" = yes; then
 if test "$GCC" = yes; then
+    # Note that it is okay to use CFLAGS here because this are just
+    # warning options and the user should have a chance of overriding
+    #them.
     if test "$USE_MAINTAINER_MODE" = "yes"; then
         CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
         CFLAGS="$CFLAGS -Wformat-nonliteral"
     else
         CFLAGS="$CFLAGS -Wall"
     fi
     if test "$USE_MAINTAINER_MODE" = "yes"; then
         CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
         CFLAGS="$CFLAGS -Wformat-nonliteral"
     else
         CFLAGS="$CFLAGS -Wall"
     fi
+
+    # Non exec stack hack.  Fixme: Write a test to check whether as
+    # can cope with it and use the enable-noexecstack option only to
+    # disable it in case it is required on sime platforms.
+    if test "$noexecstack_support" = yes; then
+        NOEXECSTACK_FLAGS="-Wa,--noexecstack"
+    fi
 fi
 fi
+AC_SUBST(NOEXECSTACK_FLAGS)
 
 
 if test "$print_egd_warning" = yes; then
 
 
 if test "$print_egd_warning" = yes; then
@@ -1278,7 +1314,7 @@ AC_OUTPUT
 
 # Give some feedback
 echo
 
 # Give some feedback
 echo
-echo   "                Configured for: $PRINTABLE_OS_NAME ($target)"
+echo   "                Configured for: $PRINTABLE_OS_NAME ($host)"
 if test -n "$show_extraasm"; then
   echo "  Extra cpu specific functions:$show_extraasm"
 fi
 if test -n "$show_extraasm"; then
   echo "  Extra cpu specific functions:$show_extraasm"
 fi