* keygen.c (generate_keypair): Create an AUTHKEYTYPE entry for cards.
[gnupg.git] / configure.ac
index bcc4a41..b02e55f 100644 (file)
-dnl Configure.ac script for GnuPG
-dnl Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
-dnl
-dnl This file is part of GnuPG.
-dnl
-dnl GnuPG is free software; you can redistribute it and/or modify
-dnl it under the terms of the GNU General Public License as published by
-dnl the Free Software Foundation; either version 2 of the License, or
-dnl (at your option) any later version.
-dnl 
-dnl GnuPG is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-dnl GNU General Public License for more details.
-dnl 
-dnl You should have received a copy of the GNU General Public License
-dnl along with this program; if not, write to the Free Software
-dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-dnl
-dnl (Process this file with autoconf to produce a configure script.)
-dnlAC_REVISION($Revision$)dnl
-
+# configure.ac - for GnuPG 1.9
+# Copyright (C) 1998, 1999, 2000, 2001, 2002,
+#               2003 Free Software Foundation, Inc.
+# 
+# This file is part of GnuPG.
+# 
+# GnuPG is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# GnuPG is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+# Process this file with autoconf to produce a configure script.
 AC_PREREQ(2.52)
-
-# Please enter the version number here and 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.
-AC_INIT(gnupg, 1.1.92, bug-gnupg@gnu.org)
+# Version number: Remember to change it immediately *after* a release.
+#                 Add a "-cvs" prefix for non-released code.
+AC_INIT(gnupg, 1.9.0-cvs, gnupg-devel@gnupg.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.
 development_version=yes
+NEED_LIBGCRYPT_VERSION=1.1.8
+NEED_LIBASSUAN_VERSION=0.0.1
+NEED_KSBA_VERSION=0.4.6
+NEED_OPENSC_VERSION=0.7.0
 
-ALL_LINGUAS="ca cs da de eo el es et fr gl id it ja nl pl pt_BR pt sv tr"
 
 PACKAGE=$PACKAGE_NAME
 VERSION=$PACKAGE_VERSION
 
+AM_GNU_GETTEXT_VERSION(0.11.5)
+
 AC_CONFIG_AUX_DIR(scripts)
-AC_CONFIG_SRCDIR(g10/g10.c)
+AC_CONFIG_SRCDIR(sm/gpgsm.c)
+AM_CONFIG_HEADER(config.h)
 AC_CANONICAL_TARGET()
 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
-AM_CONFIG_HEADER(config.h)
+
+AC_GNU_SOURCE
+
+# Some status variables to give feedback at the end of a configure run
+habe_libassuan=no
+have_ksba=no
+have_opensc=no
+have_pth=no
+
+GNUPG_BUILD_PROGRAM(gpg, yes)
+GNUPG_BUILD_PROGRAM(gpgsm, yes)
+GNUPG_BUILD_PROGRAM(agent, yes)
+GNUPG_BUILD_PROGRAM(scdaemon, yes)
+
 
 AC_SUBST(PACKAGE)
 AC_SUBST(VERSION)
 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package])
 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version of this package])
-AC_DEFINE(_GNU_SOURCE,1,[Some tests rely on this (stpcpy) and it should be used for new programs anyway])
-
-dnl
-dnl  Check for random module options
-dnl
-AC_MSG_CHECKING([which random module to use])
-AC_ARG_ENABLE(static-rnd,
-    [  --enable-static-rnd=[egd|unix|linux|none]  ],
-[use_static_rnd=$enableval], [use_static_rnd=default] )
-
-if test "$use_static_rnd" = no; then
-    use_static_rnd=default
+AC_DEFINE_UNQUOTED(PACKAGE_BUGREPORT, "$PACKAGE_BUGREPORT",
+                                        [Bug report address])
+AC_DEFINE_UNQUOTED(NEED_LIBGCRYPT_VERSION, "$NEED_LIBGCRYPT_VERSION",
+                                       [Required version of Libgcrypt])
+AC_DEFINE_UNQUOTED(NEED_KSBA_VERSION, "$NEED_KSBA_VERSION",
+                                       [Required version of Libksba])
+
+
+
+
+# I know that it is in general not a good idea to evaluate bindir in
+# the configuration but we want to hard code the defaults into some of
+# the programs and doing this during a make install is not a good
+# idea.  We also have the problem that 2 of the programs are included
+# in the package but the others are distributed in other packages.
+eval my_default_bindir=${exec_prefix}
+test "x${my_default_bindir}" = xNONE && my_default_bindir=${ac_default_prefix}
+my_default_bindir=${my_default_bindir}/bin
+
+# Same goes for the pkglibdir which is used to call the gpg-protect-tool.
+eval my_default_pkglibdir=${exec_prefix}
+test "x${my_default_pkglibdir}" = xNONE && my_default_pkglibdir=${ac_default_prefix}
+my_default_pkglibdir=${my_default_pkglibdir}/lib/${PACKAGE_NAME}
+
+AC_ARG_WITH(agent-pgm,
+    [  --with-agent-pgm=PATH  Use PATH as the default for the gpg-agent)],
+          gnupg_agent_pgm="$withval",
+          gnupg_agent_pgm="${my_default_bindir}/gpg-agent" )
+AC_DEFINE_UNQUOTED(GNUPG_DEFAULT_AGENT, "$gnupg_agent_pgm",
+                   [Default location of the gpg-agent program])
+AC_ARG_WITH(pinentry-pgm,
+    [  --with-pinentry-pgm=PATH  Use PATH as the default for the pinentry)],
+          gnupg_pinentry_pgm="$withval", gnupg_pinentry_pgm="" )
+if test -z "$gnupg_pinentry_pgm"; then
+  gnupg_pinentry_pgm=${my_default_bindir}/pinentry
 fi
-
-case "$use_static_rnd" in
-    egd | linux | unix | default )
-      AC_MSG_RESULT($use_static_rnd)
-      ;;
-    * )
-      AC_MSG_RESULT(invalid argument)
-      AC_MSG_ERROR(there is no random module rnd$use_static_rnd)
-      ;;
-esac
-
-AC_ARG_WITH(egd-socket,
-    [  --with-egd-socket=NAME  use NAME for the EGD socket],
-            egd_socket_name="$withval", egd_socket_name="" )
-AC_DEFINE_UNQUOTED(EGD_SOCKET_NAME, "$egd_socket_name",
-                   [Define if you don't want the default EGD socket name.
-                    For details see cipher/rndegd.c])
-
-
-dnl
-dnl See whether the user wants to disable checking for /dev/random
-
-AC_MSG_CHECKING([whether use of /dev/random is requested])
-AC_ARG_ENABLE(dev-random,
-[  --disable-dev-random    disable the use of dev random],
-    try_dev_random=$enableval, try_dev_random=yes)
-AC_MSG_RESULT($try_dev_random)
-
-
-dnl
-dnl  Check other options
-dnl
-
-# We don't need idea but some people claim that they need it for
-# research etc., so we allow to place an idea source code into the
-# cipher directory and statically link it if available, otherwise we
-# link to a stub.  We don't use AC_CHECK_FILE to avoid caching.
-AC_MSG_CHECKING(for extra cipher modules)
-tmp=""
-if test -f $srcdir/cipher/idea.c; then 
-   IDEA_O=idea.o
-   tmp=idea
-else
-   IDEA_O=idea-stub.o
-   tmp=no
+AC_DEFINE_UNQUOTED(GNUPG_DEFAULT_PINENTRY, "$gnupg_pinentry_pgm",
+                   [Default location of the pinentry program])
+AC_ARG_WITH(scdaemon-pgm,
+    [  --with-scdaemon-pgm=PATH  Use PATH as the default for the scdaemon)],
+          gnupg_scdaemon_pgm="$withval", gnupg_scdaemon_pgm="" )
+if test -z "$gnupg_scdaemon_pgm"; then
+  gnupg_scdaemon_pgm=${my_default_bindir}/scdaemon
 fi
-AC_SUBST(IDEA_O)
-AC_MSG_RESULT($tmp)
-
-# if the static idea is present, disable dynload.
-if test "$IDEA_O" = idea-stub.o ; then
-  AC_MSG_CHECKING([whether use of extensions is requested])
-  AC_ARG_ENABLE(dynload,
-  [  --disable-dynload       disable use of extensions],
-      try_dynload=$enableval, try_dynload=yes)
-  AC_MSG_RESULT($try_dynload)
-else
-  try_dynload=no
+AC_DEFINE_UNQUOTED(GNUPG_DEFAULT_SCDAEMON, "$gnupg_scdaemon_pgm",
+                   [Default location of the scdaemon program])
+AC_ARG_WITH(dirmngr-pgm,
+    [  --with-dirmngr-pgm=PATH  Use PATH as the default for the dirmngr)],
+          gnupg_dirmngr_pgm="$withval", gnupg_dirmngr_pgm="" )
+if test -z "$gnupg_dirmngr_pgm"; then
+  gnupg_dirmngr_pgm=${my_default_bindir}/dirmngr
 fi
-
-AC_MSG_CHECKING([whether assembler modules are requested])
-AC_ARG_ENABLE(asm,
-[  --disable-asm           do not use assembler modules],
-     try_asm_modules=$enableval, try_asm_modules=yes)
-AC_MSG_RESULT($try_asm_modules)
-
-AC_MSG_CHECKING([whether memory guard is requested])
-AC_ARG_ENABLE(m-guard,
-    [  --enable-m-guard        enable memory guard facility],
-    use_m_guard=$enableval, use_m_guard=no)
-AC_MSG_RESULT($use_m_guard)
-if test "$use_m_guard" = yes ; then
-    AC_DEFINE(M_GUARD,1,[Define to use the (obsolete) malloc guarding feature])
+AC_DEFINE_UNQUOTED(GNUPG_DEFAULT_DIRMNGR, "$gnupg_dirmngr_pgm",
+                   [Default location of the dirmngr program])
+
+AC_ARG_WITH(protect-tool,
+    [  --with-protect-tool=PATH  Use PATH as the protect-tool)],
+          gnupg_protect_tool="$withval", gnupg_protect_tool="" )
+if test -z "$gnupg_protect_tool"; then
+  gnupg_protect_tool=${my_default_pkglibdir}/gpg-protect-tool
 fi
+AC_DEFINE_UNQUOTED(GNUPG_PROTECT_TOOL, "$gnupg_protect_tool",
+                   [Name of the protect tool program])
+
 
-AC_MSG_CHECKING([whether to enable experimental TIGER digest support])
-AC_ARG_ENABLE(tiger,
-    [  --enable-tiger          enable experimental TIGER digest support],
-    use_tiger=$enableval, use_tiger=no)
-AC_MSG_RESULT($use_tiger)
-if test "$use_tiger" = yes ; then
-    AC_SUBST(TIGER_O,tiger.o)
-    AC_DEFINE(USE_TIGER,1,[Define to include experimental TIGER digest support])
-fi
 
 AC_MSG_CHECKING([whether to enable external program execution])
 AC_ARG_ENABLE(exec,
-    [  --disable-exec          disable all external program execution],
-    use_exec=$enableval, use_exec=yes)
+    AC_HELP_STRING([--disable-exec],[disable all external program execution]),
+    use_exec=$enableval)
 AC_MSG_RESULT($use_exec)
 if test "$use_exec" = no ; then
     AC_DEFINE(NO_EXEC,1,[Define to disable all external program execution])
@@ -190,15 +177,14 @@ if test "$use_exec" = yes ; then
         try_ldap=$enableval, try_ldap=yes)
     AC_MSG_RESULT($try_ldap)
 
-    AC_MSG_CHECKING([whether experimental external hkp keyserver support is requested])
-    AC_ARG_ENABLE(external-hkp,
-    [  --enable-external-hkp   enable experimental external HKP keyserver interface],
-        try_hkp=$enableval, try_hkp=no)
+    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_MSG_RESULT($try_hkp)
 
     if test "$try_hkp" = yes ; then
-      GPGKEYS_HKP="gpgkeys_hkp"
-      AC_DEFINE(USE_EXTERNAL_HKP,1,[define to use the experimental external HKP keyserver interface])
+      AC_SUBST(GPGKEYS_HKP,"gpgkeys_hkp$EXEEXT")
     fi
 
     AC_MSG_CHECKING([whether email keyserver support is requested])
@@ -217,13 +203,12 @@ if test "$use_exec" = yes ; then
     AC_MSG_RESULT($enableval)
   fi
 
-AC_MSG_CHECKING([whether included zlib is requested])
+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] )
 AC_MSG_RESULT($g10_force_zlib)
 
-
 dnl
 dnl Check whether we want to use Linux capabilities
 dnl
@@ -235,18 +220,28 @@ AC_MSG_RESULT($use_capabilities)
 
 
 AH_BOTTOM([
+/* Some global constants. */
+#ifdef HAVE_DRIVE_LETTERS
+#define GNUPG_DEFAULT_HOMEDIR "c:/gnupg"
+#else
+#define GNUPG_DEFAULT_HOMEDIR "~/.gnupg2"
+#endif 
+#define GNUPG_PRIVATE_KEYS_DIR "private-keys-v1.d"
+
 #if !(defined(HAVE_FORK) && defined(HAVE_PIPE) && defined(HAVE_WAITPID))
 #define EXEC_TEMPFILE_ONLY
 #endif
 
+/* Tell libgcrypt not to use its own libgpg-error implementation. */
+#define USE_LIBGPG_ERROR 1
+
 #include "g10defs.h"
-])
 
+])
 
 AM_MAINTAINER_MODE
 
-dnl Checks for programs.
-
+# Checks for programs.
 AC_PROG_MAKE_SET
 AM_SANITY_CHECK
 missing_dir=`cd $ac_aux_dir && pwd`
@@ -255,45 +250,45 @@ AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
+AC_PROG_AWK
 AC_PROG_CC
 AC_PROG_CPP
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_MAKE_SET
+AC_PROG_RANLIB
+AC_CHECK_TOOL(AR, ar, :)
 AC_PATH_PROG(PERL,"perl")
 AC_ISC_POSIX
 AC_SYS_LARGEFILE
-AC_PROG_INSTALL
-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)
 GNUPG_CHECK_FAQPROG
 GNUPG_CHECK_DOCBOOK_TO_TEXI
 
-MPI_OPT_FLAGS=""
-
 
 try_gettext=yes
+have_dosish_system=no
 case "${target}" in
-    *-*-mingw32*|*-*-cygwin*)
+    *-*-mingw32*)
         # special stuff for Windoze NT
         ac_cv_have_dev_random=no
         AC_DEFINE(USE_ONLY_8DOT3,1,
                   [set this to limit filenames to the 8.3 format])
         AC_DEFINE(HAVE_DRIVE_LETTERS,1,
                   [defined if we must run on a stupid file system])
-        AC_DEFINE(HAVE_DOSISH_SYSTEM,1,
-                  [defined if we run on some of the PCDOS like systems 
-                   (DOS, Windoze. OS/2) with special properties like
-                    no file modes])
         AC_DEFINE(USE_SIMPLE_GETTEXT,1,
                   [because the Unix gettext has too much overhead on
                    MingW32 systems and these systems lack Posix functions,
                    we use a simplified version of gettext])
+        have_dosish_system=yes
         try_gettext="no"
         ;;
     i?86-emx-os2 | i?86-*-os2*emx )
         # OS/2 with the EMX environment
         ac_cv_have_dev_random=no
         AC_DEFINE(HAVE_DRIVE_LETTERS)
-        AC_DEFINE(HAVE_DOSISH_SYSTEM)
+        have_dosish_system=yes
         try_gettext="no"
         ;;
 
@@ -301,7 +296,7 @@ case "${target}" in
         # DOS with the DJGPP environment
         ac_cv_have_dev_random=no
         AC_DEFINE(HAVE_DRIVE_LETTERS)
-        AC_DEFINE(HAVE_DOSISH_SYSTEM)
+        have_dosish_system=yes
         try_gettext="no"
         ;;
 
@@ -338,8 +333,118 @@ case "${target}" in
        ;;
 esac
 
-AC_SUBST(MPI_OPT_FLAGS)
-GNUPG_SYS_SYMBOL_UNDERSCORE
+if test "$have_dosish_system" = yes; then
+   AC_DEFINE(HAVE_DOSISH_SYSTEM,1,
+             [defined if we run on some of the PCDOS like systems 
+              (DOS, Windoze. OS/2) with special properties like
+              no file modes])
+fi
+AM_CONDITIONAL(HAVE_DOSISH_SYSTEM, test "$have_dosish_system" = yes)
+
+
+#
+# Checks for libraries.
+#
+
+#
+# Libgcrypt is our generic crypto library
+#
+#AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config)
+#if test -n "$LIBGCRYPT_CONFIG"; then
+#      LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags`
+#      LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs`
+#else
+#    AC_MSG_ERROR([[
+#***
+#*** You need libgcrypt to build this program.
+#*** It should be available at the same place you 
+#*** got this software.
+#***]])
+#fi
+#AC_SUBST(LIBGCRYPT_CFLAGS)
+#AC_SUBST(LIBGCRYPT_LIBS)
+AM_PATH_LIBGCRYPT("$NEED_LIBGCRYPT_VERSION",,
+       AC_MSG_ERROR([[
+***  
+*** libgcrypt was not found. You may want to get it from
+*** ftp://ftp.gnupg.org/pub/gcrypt/alpha/libgcrypt/
+***
+]]))
+
+
+#
+# libassuan is used for IPC
+#
+AM_PATH_LIBASSUAN("$NEED_LIBASSUAN_VERSION",
+                  have_libasssuan=yes,have_libasssun=no)
+if test "$have_libassuan" = "no"; then
+    AC_MSG_ERROR([[
+***
+*** You need libassuan to build this program..
+*** It should be available at the same place you 
+*** got this software.
+***]])
+fi
+
+
+#
+# libksba is our X.509 support library
+#
+AM_PATH_KSBA("$NEED_KSBA_VERSION",have_ksba=yes,have_ksba=no)
+if test "$have_ksba" = "no"; then
+    AC_MSG_ERROR([[
+***
+*** You need libksba to build this program..
+*** It should be available at the same place you 
+*** got this software.
+***]])
+fi
+
+
+#
+# OpenSC is needed by the SCdaemon - if it is not availbale we can only
+# build a limited SCdaemon
+#
+AM_PATH_OPENSC("$NEED_OPENSC_VERSION",have_opensc=yes,have_opensc=no)
+if test $have_opensc = yes; then
+  AC_DEFINE(HAVE_OPENSC,1,
+            [defined if the OpenSC library is available])
+fi
+
+
+#
+# Check whether the (highly desirable) GNU Pth library is available
+#
+AC_ARG_WITH(pth-prefix,
+            AC_HELP_STRING([--with-pth-prefix=PFX],
+                           [prefix where GNU Pth is installed (optional)]),
+     pth_config_prefix="$withval", pth_config_prefix="")
+if test x$pth_config_prefix != x ; then
+   PTH_CONFIG="$pth_config_prefix/bin/pth-config"
+fi
+AC_PATH_PROG(PTH_CONFIG, pth-config, no)
+if test "$PTH_CONFIG" = "no"; then
+    AC_MSG_WARN([[
+***
+*** To support concurrent access to the gpg-agent and the SCdaemon
+*** we need the support of the GNU Portable Threads Library.
+*** Download it from ftp://ftp.gnu.org/gnu/pth/
+*** On a Debian GNU/Linux system you might want to try 
+***   apt-get install libpth-dev
+***]])
+else
+  GNUPG_PTH_VERSION_CHECK(1.3.7)
+  if test $have_pth = yes; then      
+     PTH_CFLAGS=`$PTH_CONFIG --cflags`
+     PTH_LIBS=`$PTH_CONFIG --ldflags`
+     PTH_LIBS="$PTH_LIBS `$PTH_CONFIG --libs`"
+     AC_DEFINE(USE_GNU_PTH, 1,
+              [Defined if the GNU Portable Thread Library should be used])
+  fi
+fi
+AC_SUBST(PTH_CFLAGS)
+AC_SUBST(PTH_LIBS)
+
 
 dnl Must check for network library requirements before doing link tests
 dnl for ldap, for example. If ldap libs are static (or dynamic and without
@@ -351,16 +456,46 @@ AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, gethostbyname,
 AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt,
        [NETLIBS="-lsocket $NETLIBS"]))
 
+dnl Now try for the resolver functions so we can use DNS SRV
+
+AC_ARG_ENABLE(dns-srv,
+   AC_HELP_STRING([--disable-dns-srv],[disable the use of DNS SRV in HKP]),
+   use_dns_srv=$enableval,use_dns_srv=yes)
+
+if test x"$try_hkp" = xyes && test x"$use_dns_srv" = xyes ; then
+  _srv_save_libs=$LIBS
+  LIBS=""
+  # the double underscore thing is a glibc-ism?
+  AC_SEARCH_LIBS(res_query,resolv bind,,
+                 AC_SEARCH_LIBS(__res_query,resolv bind,,use_dns_srv=no))
+  AC_SEARCH_LIBS(dn_expand,resolv bind,,
+                 AC_SEARCH_LIBS(__dn_expand,resolv bind,,use_dns_srv=no))
+  AC_SEARCH_LIBS(dn_skipname,resolv bind,,
+                 AC_SEARCH_LIBS(__dn_skipname,resolv bind,,use_dns_srv=no))
+
+  if test x"$use_dns_srv" = xyes ; then
+     AC_DEFINE(USE_DNS_SRV,1,[define to use DNS SRV])
+     SRVLIBS=$LIBS
+  else
+     AC_MSG_WARN([Resolver functions not found.  Disabling DNS SRV.])
+  fi
+  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 OpenLDAP.  -lldapssl41 is
-# for Mozilla LDAP.
+# libraries.  -lldap [-llber [-lresolv]] is for OpenLDAP.  OpenLDAP in
+# general is terrible with creating weird dependencies.  If all else
+# fails, the user can play guess-the-dependency by using something
+# like ./configure LDAPLIBS="-Lfoo -lbar"
 
 if test "$try_ldap" = yes ; then
-  for LDAPLIBS in "-lldap -llber -lresolv" "-lldapssl41"; do
+  for MY_LDAPLIBS in ${LDAPLIBS+"$LDAPLIBS"} "-lldap" "-lldap -llber" "-lldap -llber -lresolv"; do
     _ldap_save_libs=$LIBS
-    LIBS="$LDAPLIBS $NETLIBS $LIBS"
+    LIBS="$MY_LDAPLIBS $NETLIBS $LIBS"
 
-    AC_MSG_CHECKING([whether LDAP via \"$LDAPLIBS\" is present and sane])
+    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])
@@ -379,7 +514,48 @@ if test "$try_ldap" = yes ; then
 
     if test "$gnupg_cv_func_ldap_init" = yes || \
        test "$gnupg_cv_func_ldaplber_init" = yes ; then
-       GPGKEYS_LDAP="gpgkeys_ldap"
+       LDAPLIBS=$MY_LDAPLIBS
+       GPGKEYS_LDAP="gpgkeys_ldap$EXEEXT"
+
+       AC_MSG_CHECKING([whether LDAP supports ldap_get_option])
+
+       if test "$gnupg_cv_func_ldap_init" = yes ; then
+         AC_TRY_LINK([#include <ldap.h>],
+            [ldap_get_option((void *)0,0,(void *)0);],
+            [gnupg_cv_func_ldap_get_option=yes],
+            [gnupg_cv_func_ldap_get_option=no])
+       else
+         AC_TRY_LINK([#include <lber.h>
+#include <ldap.h>],[ldap_get_option((void *)0,0,(void *)0);],
+            [gnupg_cv_func_ldap_get_option=yes],
+            [gnupg_cv_func_ldap_get_option=no])
+       fi
+
+       AC_MSG_RESULT([$gnupg_cv_func_ldap_get_option])
+
+       if test "$gnupg_cv_func_ldap_get_option" = yes ; then
+          AC_DEFINE(HAVE_LDAP_GET_OPTION,1,[Define if the LDAP library has ldap_get_option])
+       else
+          AC_MSG_CHECKING([whether LDAP supports ld_errno])
+
+         if test "$gnupg_cv_func_ldap_init" = yes ; then
+           AC_TRY_COMPILE([#include <ldap.h>],
+              [LDAP *ldap; ldap->ld_errno;],
+              [gnupg_cv_func_ldap_ld_errno=yes],
+              [gnupg_cv_func_ldap_ld_errno=no])
+          else
+           AC_TRY_LINK([#include <lber.h>
+#include <ldap.h>],[LDAP *ldap; ldap->ld_errno;],
+              [gnupg_cv_func_ldap_ld_errno=yes],
+              [gnupg_cv_func_ldap_ld_errno=no])
+          fi
+
+          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
 
     LIBS=$_ldap_save_libs
@@ -412,14 +588,13 @@ if test "$try_mailto" = yes ; then
 fi
 
 AC_SUBST(GPGKEYS_MAILTO)
-AC_SUBST(GPGKEYS_HKP)
 
 case "${target}" in
     *-*-mingw32*)
         PRINTABLE_OS_NAME="MingW32"
         ;;
     *-*-cygwin*)
-        PRINTABLE_OS_NAME="Cygwin32"
+        PRINTABLE_OS_NAME="Cygwin"
         ;;
     i?86-emx-os2 | i?86-*-os2*emx )
         PRINTABLE_OS_NAME="OS/2"
@@ -443,28 +618,14 @@ AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME",
                    [A human readable text with the name of the OS])
 
 
-#
-# 1. Set names of random devices
-#
-NAME_OF_DEV_RANDOM="/dev/random"
-NAME_OF_DEV_URANDOM="/dev/urandom"
-case "${target}" in
-    *-openbsd* | *-netbsd*)
-        NAME_OF_DEV_RANDOM="/dev/srandom"
-        NAME_OF_DEV_URANDOM="/dev/urandom"
-        ;;
-esac
-AC_DEFINE_UNQUOTED(NAME_OF_DEV_RANDOM, "$NAME_OF_DEV_RANDOM",
-                   [defined to the name of the strong random device])
-AC_DEFINE_UNQUOTED(NAME_OF_DEV_URANDOM, "$NAME_OF_DEV_URANDOM",
-                   [defined to the name of the weaker random device])
-AC_SUBST(MPI_OPT_FLAGS)
-
+if test "$try_gettext" = yes; then
+  AM_GNU_GETTEXT(,[need-ngettext])
 
-dnl Checks for libraries.
+  # gettext requires some extra checks.  These really should be part of
+  # the basic AM_GNU_GETTEXT macro.  TODO: move other gettext-specific
+  # function checks to here.
 
-if test "$try_gettext" = yes; then
-  AM_GNU_GETTEXT
+  AC_CHECK_FUNCS(strchr)
 else
   USE_NLS=no
   USE_INCLUDED_LIBINTL=no
@@ -474,33 +635,11 @@ else
   AC_SUBST(BUILD_INCLUDED_LIBINTL)
 fi
 
-
-if test "$try_dynload" = yes ; then
-  AC_CHECK_LIB(dl,dlopen)
-  if test "$ac_cv_lib_dl_dlopen" = "yes"; then
-    AC_DEFINE(USE_DYNAMIC_LINKING,1,
-              [define to enable the use of extensions])
-    AC_DEFINE(HAVE_DL_DLOPEN,1,
-              [Defined when the dlopen function family is available])
-  else
-    AC_CHECK_FUNCS(dlopen)
-    if test "$ac_cv_func_dlopen" = "yes"; then
-      AC_DEFINE(USE_DYNAMIC_LINKING)
-      AC_DEFINE(HAVE_DL_DLOPEN)
-    fi
-  fi
-else
-  AC_MSG_CHECKING(for dynamic loading)
-  DYNLINK_LDFLAGS=
-  DYNLINK_MOD_CFLAGS=
-  AC_MSG_RESULT(has been disabled)
-fi
-
-dnl Checks for header files.
+# Checks for header files.
 AC_HEADER_STDC
-AC_CHECK_HEADERS(unistd.h langinfo.h termio.h locale.h)
+AC_CHECK_HEADERS(string.h unistd.h langinfo.h termio.h locale.h)
 
-dnl Checks for typedefs, structures, and compiler characteristics.
+# Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
 AC_C_INLINE
 AC_TYPE_SIZE_T
@@ -509,17 +648,17 @@ AC_DECL_SYS_SIGLIST
 
 GNUPG_CHECK_ENDIAN
 
-
 GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
 GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
 GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
 GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
 GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
 
-AC_CHECK_SIZEOF(unsigned short, 2)
-AC_CHECK_SIZEOF(unsigned int, 4)
-AC_CHECK_SIZEOF(unsigned long, 4)
-AC_CHECK_SIZEOF(unsigned long long, 0)
+AC_CHECK_SIZEOF(unsigned short)
+AC_CHECK_SIZEOF(unsigned int)
+AC_CHECK_SIZEOF(unsigned long)
+AC_CHECK_SIZEOF(unsigned long long)
+AC_CHECK_SIZEOF(uint64_t)
 
 if test "$ac_cv_sizeof_unsigned_short" = "0" \
    || test "$ac_cv_sizeof_unsigned_int" = "0" \
@@ -527,16 +666,53 @@ if test "$ac_cv_sizeof_unsigned_short" = "0" \
     AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
 fi
 
-dnl Checks for library functions.
+dnl Do we have any 64-bit data types?
+if test "$ac_cv_sizeof_unsigned_int" != "8" \
+   && test "$ac_cv_sizeof_unsigned_long" != "8" \
+   && test "$ac_cv_sizeof_unsigned_long_long" != "8" \
+   && test "$ac_cv_sizeof_uint64_t" != "8"; then
+    AC_MSG_WARN([No 64-bit types.  Disabling TIGER/192, SHA-384, and SHA-512])
+else
+  if test x"$use_tiger192" = xyes ; then
+     AC_SUBST(TIGER_O,tiger.o)
+     AC_DEFINE(USE_TIGER192,1,[Define to include the TIGER/192 digest])
+  fi
+
+  if test "$use_old_tiger192" = yes ; then
+     AC_SUBST(TIGER_O,tiger.o)
+     AC_DEFINE(USE_TIGER192,1,[Define to include the TIGER/192 digest])
+     AC_DEFINE(USE_OLD_TIGER,1,[Define to use the old fake OID for TIGER/192 digest support])
+  fi
+
+  if test x"$use_sha512" = xyes ; then
+     AC_SUBST(SHA512_O,sha512.o)
+     AC_DEFINE(USE_SHA512,1,[Define to include the SHA-384 and SHA-512 digests])
+  fi
+fi
+
+GNUPG_SYS_SO_PEERCRED
+
+# Checks for library functions.
 AC_FUNC_FSEEKO
 AC_FUNC_VPRINTF
 AC_FUNC_FORK
 AC_CHECK_FUNCS(strerror stpcpy strsep strlwr tcgetattr strtoul mmap)
-AC_CHECK_FUNCS(strcasecmp strncasecmp)
+AC_CHECK_FUNCS(strcasecmp strncasecmp ctermid times)
 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)
+
+# These are needed by libjnlib - fixme: we should have a macros for them
+AC_CHECK_FUNCS(memicmp stpcpy strlwr strtoul memmove stricmp strtol)
+AC_CHECK_FUNCS(getrusage setrlimit stat setlocale)
+AC_CHECK_FUNCS(flockfile funlockfile)
+
+AC_REPLACE_FUNCS(vasprintf)
+AC_REPLACE_FUNCS(fopencookie)
 AC_REPLACE_FUNCS(mkdtemp)
+AC_REPLACE_FUNCS(fseeko ftello)
+AC_REPLACE_FUNCS(isascii)
+AC_REPLACE_FUNCS(putc_unlocked)
 
 #
 # check for gethrtime and run a testprogram to see whether
@@ -589,7 +765,7 @@ if test "$ac_cv_header_sys_capability_h" = "yes" ; then
   if test "$ac_cv_lib_cap_cap_init" = "yes"; then
      AC_DEFINE(USE_CAPABILITIES,1,
                [define if capabilities should be used])
-     LIBS="$LIBS -lcap"
+     AC_SUBST(CAPLIBS,"-lcap")
      use_capabilities=yes
   fi
 fi
@@ -608,119 +784,50 @@ fi
 fi
 
 
-GNUPG_CHECK_IPC
-if test "$ac_cv_header_sys_shm_h" = "yes"; then
-  AC_DEFINE(USE_SHM_COPROCESSING,1,
-            [define if the shared memory interface should be made available])
-fi
+# Sanity check regex.  Tests adapted from mutt.
 
-dnl
-dnl check whether we have a random device
-dnl
-if test "$try_dev_random" = yes ; then
-    AC_CACHE_CHECK(for random device, ac_cv_have_dev_random,
-    [if test -r "$NAME_OF_DEV_RANDOM" && test -r "$NAME_OF_DEV_URANDOM" ; then
-      ac_cv_have_dev_random=yes; else ac_cv_have_dev_random=no; fi])
-    if test "$ac_cv_have_dev_random" = yes; then
-        AC_DEFINE(HAVE_DEV_RANDOM,1,
-                 [defined if the system supports a random device] )
-    fi
-else
-    AC_MSG_CHECKING(for random device)
-    ac_cv_have_dev_random=no
-    AC_MSG_RESULT(has been disabled)
-fi
+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_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])
+  AC_MSG_RESULT($gnupg_cv_included_regex)
 
-dnl
-dnl Figure out the default random module.
-dnl
-static_random_module=""
-if test "$use_static_rnd" = default; then
-  if test "$ac_cv_have_dev_random" = yes; then
-      static_random_module="rndlinux"
-  else
-      case "${target}" in
-          *-*-mingw32*|*-*-cygwin*)
-              static_random_module="rndw32"
-              ;;
-          i?86-emx-os2|i?86-*-os2*emx)
-              static_random_module="rndos2"
-              ;;
-          m68k-atari-mint)
-              static_random_module="rndatari"
-              ;;
-          i?86-*-msdosdjgpp*)
-              :
-              ;;
-          *)
-              static_random_module="rndunix"
-             ;;
-      esac
+  if test $gnupg_cv_included_regex = no ; then
+     # Does the system have regex functions at all?
+     AC_CHECK_FUNC(regcomp,gnupg_cv_included_regex=no,
+                          gnupg_cv_included_regex=yes)
+  fi
+
+  if test $gnupg_cv_included_regex = no ; then
+     AC_CACHE_CHECK([whether your system's regexp library is broken],
+       [gnupg_cv_regex_broken],
+       AC_TRY_RUN([
+#include <unistd.h>
+#include <regex.h>
+main() { regex_t blah ; regmatch_t p; p.rm_eo = p.rm_eo; return regcomp(&blah, "foo.*bar", REG_NOSUB) || regexec (&blah, "foobar", 0, NULL, 0); }],
+       gnupg_cv_regex_broken=no, gnupg_cv_regex_broken=yes, gnupg_cv_regex_broken=yes))
+
+     if test $gnupg_cv_regex_broken = yes ; then
+      AC_MSG_WARN(your regex is broken - using the included GNU regex instead.)
+      gnupg_cv_included_regex=yes
+     fi
   fi
-fi
-case "$static_random_module" in
-  rndlinux)
-      AC_DEFINE(USE_RNDLINUX,1, 
-                  [Defined if the /dev/random based RNG shoudl be used.])
-        ;;
-  rndunix)
-       AC_DEFINE(USE_RNDUNIX,1, 
-                  [Defined if the default Unix RNG should be used.])
-       AC_MSG_WARN([[
-***
-*** The performance of the UNIX random gatherer module is not very good
-*** and it does not keep the entropy pool over multiple invocations of
-*** GnuPG.  The suggested way to overcome this problem is to use the
-***
-***               Entropy Gathering Daemon (EGD)
-***
-*** which provides a entropy source for the whole system.  It is written
-*** in Perl and available at the GnuPG FTP servers.  For more information
-*** consult the GnuPG webpages:
-***
-***           http://www.gnupg.org/download.html#egd
-***
-*** You may want to run ./configure with --enable-static-rnd=egd to use it.
-***]])
-        ;;
-  rndegd)
-       AC_DEFINE(USE_RNDEGD,1, 
-                  [Defined if the EGD based RNG shoudl be used.])
-        ;;
-  rndw32)
-       AC_DEFINE(USE_RNDW32,1, 
-                  [Defined if the Windows specific RNG should be used.])
-        ;;
-   *)
-       AC_MSG_ERROR(no random module available)
-        ;;
-esac
 
-dnl setup assembler stuff
-AC_MSG_CHECKING(for mpi assembler functions)
-if test -f $srcdir/mpi/config.links ; then
-    . $srcdir/mpi/config.links
-    AC_CONFIG_LINKS("$mpi_ln_list")
-    ac_cv_mpi_extra_asm_modules="$mpi_extra_modules"
-    ac_cv_mpi_sflags="$mpi_sflags"
-    ac_cv_mpi_config_done="yes"
-    AC_MSG_RESULT(done)
+  if test $gnupg_cv_included_regex = yes; then
+     AC_DEFINE(USE_GNU_REGEX,1,[ Define if you want to use the included regex lib ])
+     AC_SUBST(REGEX_O,regex.o)
+  fi
 else
-    AC_MSG_RESULT(failed)
-    AC_MSG_ERROR([mpi/config.links missing!])
-fi
-MPI_EXTRA_ASM_OBJS=""
-show_extraasm=""
-if test "$ac_cv_mpi_extra_asm_modules" != ""; then
-for i in $ac_cv_mpi_extra_asm_modules; do
-    show_extraasm="$show_extraasm $i"
-    MPI_EXTRA_ASM_OBJS="$MPI_EXTRA_ASM_OBJS $i.o"
-done
+
+  AC_DEFINE(DISABLE_REGEX,1,[ Define to disable regular expression support ])
 fi
-AC_SUBST(MPI_EXTRA_ASM_OBJS)
-MPI_SFLAGS="$ac_cv_mpi_sflags"
-AC_SUBST(MPI_SFLAGS)
 
 dnl Do we have zlib? Must do it here because Solaris failed
 dnl when compiling a conftest (due to the "-lz" from LIBS).
@@ -757,7 +864,6 @@ else
 fi
 AC_SUBST(ZLIBS)
 
-
 # Allow users to append something to the version string without
 # flagging it as development version.  The user version parts is
 # considered everything after a dash. 
@@ -799,29 +905,69 @@ fi
 
 AC_SUBST(NETLIBS)
 
-# Note the \\\\ for backslashes.  Autoconf eats one layer, leaving \\
 
-AC_SUBST(GNUPG_LIBEXECDIR,"${libexecdir}/gnupg")
+# We use jnlib, so tell other modules about it
+AC_DEFINE(HAVE_JNLIB_LOGGING, 1,
+        [Defined if jnlib style logging fucntions are available])
+
+#
+# Decide what to build
+#
+if test $have_ksba = no; then
+  build_gpgsm=no
+  build_scdaemon=no
+fi
+
+build_agent_threaded=""
+if test "$build_agent" = "yes"; then
+  if test $have_pth = no; then
+     build_agent_threaded="(not multi-threaded)"
+  fi
+fi
+
+build_scdaemon_extra=""
+if test "$build_scdaemon" = "yes"; then
+  tmp=""
+  if test $have_pth = no; then
+     build_scdaemon_extra="not multi-threaded"
+     tmp=", "
+  fi
+  if test $have_opensc = no; then
+     build_scdaemon_extra="${build_scdaemon_extra}${tmp}no pkcs#15"
+     tmp=", "
+  fi      
+  if test -n "$build_scdaemon_extra"; then
+     build_scdaemon_extra="(${build_scdaemon_extra})"
+  fi
+fi
+
+
+AM_CONDITIONAL(BUILD_GPG,   test "$build_gpg" = "yes")
+AM_CONDITIONAL(BUILD_GPGSM, test "$build_gpgsm" = "yes")
+AM_CONDITIONAL(BUILD_AGENT, test "$build_agent" = "yes")
+AM_CONDITIONAL(BUILD_SCDAEMON, test "$build_scdaemon" = "yes")
+
 
 AC_CONFIG_COMMANDS(g10defs.h,[[
 cat >g10defs.tmp <<G10EOF
 /* Generated automatically by configure */
+/* FIXME: Shouldn't we replace GNUPG_HOMEDIR by GNUPG_DEFAULT_HOMEDIR
+   and we propably can get rid of g10defs.h */
 #ifdef HAVE_DRIVE_LETTERS
-  #define G10_LOCALEDIR     "c:\\\\lib\\\\gnupg\\\\locale"
-  #define GNUPG_LIBDIR      "c:\\\\lib\\\\gnupg"
-  #define GNUPG_LIBEXECDIR  "c:\\\\lib\\\\gnupg"
-  #define GNUPG_DATADIR     "c:\\\\lib\\\\gnupg"
-  #define GNUPG_HOMEDIR     "c:\\\\gnupg"
+/*#define G10_LOCALEDIR     "c:\\\\lib\\\\gnupg\\\\locale"*/
+#define GNUPG_LIBDIR      "c:\\\\lib\\\\gnupg"
+#define GNUPG_LIBEXECDIR  "c:\\\\lib\\\\gnupg"
+#define GNUPG_DATADIR     "c:\\\\lib\\\\gnupg"
+#define GNUPG_HOMEDIR     "c:\\\\gnupg"
 #else
-  #define G10_LOCALEDIR     "${datadir}/locale"
-  #define GNUPG_LIBDIR      "${libdir}/gnupg"
-  #define GNUPG_LIBEXECDIR  "${libexecdir}/gnupg"
-  #define GNUPG_DATADIR     "${datadir}/gnupg"
-  #ifdef __VMS
-    #define GNUPG_HOMEDIR "/SYS\$LOGIN/gnupg" 
-  #else
-    #define GNUPG_HOMEDIR "~/.gnupg" 
-  #endif
+/*#define G10_LOCALEDIR     "${datadir}/locale"*/
+#define GNUPG_LIBDIR      "${libdir}/gnupg"
+#define GNUPG_DATADIR     "${datadir}/gnupg"
+#ifdef __VMS
+#define GNUPG_HOMEDIR "/SYS\$LOGIN/gnupg" 
+#else
+#define GNUPG_HOMEDIR "~/.gnupg2" 
+#endif
 #endif
 /* those are here to be redefined by handcrafted g10defs.h.
    Please note that the string version must not contain more
@@ -837,8 +983,12 @@ cat >g10defs.tmp <<G10EOF
 #define DIRSEP_S "/"
 #define EXTSEP_S "."
 #endif
+/* This is the same as VERSION, but should be overridden if the
+   platform cannot handle things like dots '.' in filenames. */
+#define SAFE_VERSION VERSION
 G10EOF
-cat mpi/mpi-asm-defs.h >>g10defs.tmp 
+## Do we really need the following?  It defines BYTES_PER-MPI_LIMB
+## cat mpi/mpi-asm-defs.h >>g10defs.tmp 
 if cmp -s g10defs.h g10defs.tmp 2>/dev/null; then
     echo "g10defs.h is unchanged"
     rm -f g10defs.tmp
@@ -856,29 +1006,37 @@ datadir=$datadir
 DATADIRNAME=$DATADIRNAME
 ]])
 
-
-AC_CONFIG_FILES([
+AC_CONFIG_FILES([ m4/Makefile 
 Makefile
-intl/Makefile
 po/Makefile.in
-util/Makefile
-mpi/Makefile
-cipher/Makefile
+intl/Makefile
+jnlib/Makefile
+common/Makefile
+kbx/Makefile
 g10/Makefile
-keyserver/Makefile
-keyserver/gpgkeys_mailto
-keyserver/gpgkeys_test
+sm/Makefile
+agent/Makefile
+scd/Makefile
 doc/Makefile
-tools/Makefile
-zlib/Makefile
-checks/Makefile
+tests/Makefile
 ])
 AC_OUTPUT
 
-# Give some feedback
-echo
-echo   "                Configured for: $PRINTABLE_OS_NAME ($target)"
-if test -n "$show_extraasm"; then
-  echo "  Extra cpu specific functions:$show_extraasm"
-fi
-echo
+
+echo "
+        GnuPG v${VERSION} has been configured as follows:
+        
+        Platform:  $PRINTABLE_OS_NAME ($target)
+
+        OpenPGP:   $build_gpg
+        S/MIME:    $build_gpgsm
+        Agent:     $build_agent $build_agent_threaded
+        Smartcard: $build_scdaemon $build_scdaemon_extra
+
+        Protect tool:     $gnupg_protect_tool
+        Default agent:    $gnupg_agent_pgm
+        Default pinentry: $gnupg_pinentry_pgm
+        Default scdaemon: $gnupg_scdaemon_pgm
+        Default dirmngr:  $gnupg_dirmngr_pgm
+"
+