(libgcrypt_pth_la_LDFLAGS): Removed PTH_CFLAGS cruft.
[libgcrypt.git] / configure.ac
index 41d1464..66b6b55 100644 (file)
@@ -1,5 +1,6 @@
 # Configure.ac script for Libgcrypt
 # Configure.ac script for Libgcrypt
-# Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+# Copyright (C) 1998, 1999, 2000, 2001, 2002
+#               2003 Free Software Foundation, Inc.
 #
 # This file is part of Libgcrypt.
 #
 #
 # This file is part of Libgcrypt.
 #
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
 #
 # (Process this file with autoconf to produce a configure script.)
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
 #
 # (Process this file with autoconf to produce a configure script.)
-AC_REVISION($Revision$)dnl
+AC_REVISION($Revision$)
+AC_PREREQ(2.52)
 
 
-AC_PREREQ(2.53)
-# Version numbers (Remember to change them just before a release)
+# Version number: Remember to change it immediately *after* a release
+# but remove a "-cvs" prefix right *before* a release and append it
+# soon later.
+
+AC_INIT(libgcrypt, 1.1.43-cvs, bug-libgcrypt@gnupg.org)
+
+# LT Version numbers, remember to change them just *before* a release.
 #   (Interfaces removed:    CURRENT++, AGE=0, REVISION=0)
 #   (Interfaces added:      CURRENT++, AGE++, REVISION=0)
 #   (No interfaces changed:                   REVISION++)
 #   (Interfaces removed:    CURRENT++, AGE=0, REVISION=0)
 #   (Interfaces added:      CURRENT++, AGE++, REVISION=0)
 #   (No interfaces changed:                   REVISION++)
-AC_INIT(libgcrypt,1.1.8)
-LIBGCRYPT_LT_CURRENT=5
-LIBGCRYPT_LT_AGE=4
+LIBGCRYPT_LT_CURRENT=7
+LIBGCRYPT_LT_AGE=0
 LIBGCRYPT_LT_REVISION=0
 LIBGCRYPT_LT_REVISION=0
-#-----------------------
 
 PACKAGE=$PACKAGE_NAME
 VERSION=$PACKAGE_VERSION
 
 PACKAGE=$PACKAGE_NAME
 VERSION=$PACKAGE_VERSION
@@ -39,6 +44,7 @@ AC_CONFIG_AUX_DIR(scripts)
 AC_CANONICAL_TARGET()
 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
 AM_CONFIG_HEADER(config.h)
 AC_CANONICAL_TARGET()
 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
 AM_CONFIG_HEADER(config.h)
+AM_MAINTAINER_MODE
 
 AH_TOP([
 /* need this, because some autoconf tests rely on this (e.g. stpcpy)
 
 AH_TOP([
 /* need this, because some autoconf tests rely on this (e.g. stpcpy)
@@ -46,7 +52,6 @@ AH_TOP([
 #define _GNU_SOURCE  1
 ])
 
 #define _GNU_SOURCE  1
 ])
 
-
 AH_BOTTOM([
 #include "gcrypt-defs.h"
 #define _GCRYPT_IN_LIBGCRYPT 1
 AH_BOTTOM([
 #include "gcrypt-defs.h"
 #define _GCRYPT_IN_LIBGCRYPT 1
@@ -57,9 +62,8 @@ AH_VERBATIM([_REENTRANT],
     special features from the library. */
 #ifndef _REENTRANT
 # define _REENTRANT 1
     special features from the library. */
 #ifndef _REENTRANT
 # define _REENTRANT 1
-#endif])
-
-
+#endif
+])
 
 AC_SUBST(LIBGCRYPT_LT_CURRENT)
 AC_SUBST(LIBGCRYPT_LT_AGE)
 
 AC_SUBST(LIBGCRYPT_LT_CURRENT)
 AC_SUBST(LIBGCRYPT_LT_AGE)
@@ -69,147 +73,61 @@ AC_SUBST(VERSION)
 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package])
 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version of this package])
 
 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package])
 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version of this package])
 
-static_modules="sha1 md5 rmd160"
-static_random_module=""
-
-AC_PROG_AWK
-
-MODULES_IN_CIPHER=`$AWK '/^EXTRA_PROGRAMS/ { for(i=3;i<=NF;i++) print $i}' \
-                                              $srcdir/cipher/Makefile.am`
-
-dnl
-dnl  Check for random module options
-dnl
-dnl  Fixme: get the list of available modules from MODULES_IN_CIPHER
-dnl         and check against this list
-
-AC_MSG_CHECKING([which static random module to use])
-AC_ARG_ENABLE(static-rnd,
-    [  --enable-static-rnd=[egd|unix|linux]  ],
-[use_static_rnd=$enableval], [use_static_rnd=default] )
-
-if test "$use_static_rnd" = no; then
-    use_static_rnd=default
-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)
-
+##########################
+## General definitions. ##
+##########################
 
 
-dnl
-dnl  Check other options
-dnl
+# Used by libgcrypt-config
+LIBGCRYPT_CONFIG_LIBS="-lgcrypt"
+LIBGCRYPT_CONFIG_CFLAGS=""
+LIBGCRYPT_CONFIG_LIBS_PTHREAD="-lgcrypt-pthread"
+LIBGCRYPT_CONFIG_CFLAGS_PTHREAD=""
+LIBGCRYPT_CONFIG_LIBS_PTH="-lgcrypt-pth"
+LIBGCRYPT_CONFIG_CFLAGS_PTH=""
 
 
-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)
+# Definitions for symmetric ciphers.
+available_ciphers="arcfour blowfish cast5 des aes twofish serpent"
+enabled_ciphers=""
 
 
-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])
-fi
+# Definitions for public-key ciphers.
+available_pubkey_ciphers="dsa elgamal rsa"
+enabled_pubkey_ciphers=""
 
 
-dnl
-dnl Check whether we want to use Linux capabilities
-dnl
-AC_MSG_CHECKING([whether use of capabilities is requested])
-AC_ARG_WITH(capabilities,
-    [  --with-capabilities     use linux capabilities [default=no]],
-[use_capabilities="$withval"],[use_capabilities=no])
-AC_MSG_RESULT($use_capabilities)
+# Definitions for message digests.
+available_digests="crc md4 md5 rmd160 sha1 sha256"
+available_digests_64="sha512 tiger"
+enabled_digests=""
 
 
+# Definitions for random modules.
+available_random_modules="linux egd unix"
+auto_random_modules="$available_random_modules"
 
 
-AM_MAINTAINER_MODE
+# Supported thread backends.
+LIBGCRYPT_THREAD_MODULES=""
 
 
-dnl Checks for programs.
+# Other definitions.
+print_egd_notice=no
 
 
-dnl
-dnl Setup some stuff depending on host/target.
-dnl
+# Setup some stuff depending on host/target.
 case "${target}" in
     *-*-mingw32*)
 case "${target}" in
     *-*-mingw32*)
-        # special stuff for Windoze NT
-        disallowed_modules="rndunix rndlinux rndegd"
-        ;;
-    *)
-        disallowed_modules="rndw32"
-       ;;
-esac
-
-AC_PROG_MAKE_SET
-AM_SANITY_CHECK
-missing_dir=`cd $ac_aux_dir && pwd`
-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
-dnl AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
-AC_PROG_CC
-AC_PROG_CPP
-AM_PROG_AS
-AC_ISC_POSIX
-AC_PROG_INSTALL
-AC_PROG_AWK
-GPH_PROG_DB2ANY
-
-AM_PROG_LIBTOOL
-
-
-MPI_OPT_FLAGS=""
-
+      available_random_modules="w32"
+      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])
+      ;;
 
 
-try_gettext=no
-case "${target}" in
-    *-*-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])
-        try_gettext="no"
-        ;;
-    i?86-emx-os2 | i?86-*-os2*emx )
+    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)
         # OS/2 with the EMX environment
         ac_cv_have_dev_random=no
         AC_DEFINE(HAVE_DRIVE_LETTERS)
         AC_DEFINE(HAVE_DOSISH_SYSTEM)
-        try_gettext="no"
         ;;
 
     i?86-*-msdosdjgpp*)
         ;;
 
     i?86-*-msdosdjgpp*)
@@ -217,7 +135,6 @@ case "${target}" in
         ac_cv_have_dev_random=no
         AC_DEFINE(HAVE_DRIVE_LETTERS)
         AC_DEFINE(HAVE_DOSISH_SYSTEM)
         ac_cv_have_dev_random=no
         AC_DEFINE(HAVE_DRIVE_LETTERS)
         AC_DEFINE(HAVE_DOSISH_SYSTEM)
-        try_gettext="no"
         ;;
 
     *-*-freebsd*)
         ;;
 
     *-*-freebsd*)
@@ -241,46 +158,44 @@ case "${target}" in
     m68k-atari-mint)
         ;;
     *)
     m68k-atari-mint)
         ;;
     *)
-       ;;
+      ;;
 esac
 
 esac
 
-AC_SUBST(MPI_OPT_FLAGS)
-GNUPG_SYS_SYMBOL_UNDERSCORE
-GNUPG_CHECK_PIC
-#GNUPG_CHECK_EXPORTDYNAMIC
-#if test "$NO_PIC" = yes; then
-#    try_dynload=no
-#fi
-
-
+# For now we hardcode the use of version scripts.  It would be better
+# to write a text for this or even implement this within libtool
+have_ld_version_script=no
 case "${target}" in
     *-*-mingw32*)
         PRINTABLE_OS_NAME="MingW32"
         ;;
 case "${target}" in
     *-*-mingw32*)
         PRINTABLE_OS_NAME="MingW32"
         ;;
+
     i?86-emx-os2 | i?86-*-os2*emx )
         PRINTABLE_OS_NAME="OS/2"
         ;;
     i?86-emx-os2 | i?86-*-os2*emx )
         PRINTABLE_OS_NAME="OS/2"
         ;;
+
     i?86-*-msdosdjgpp*)
         PRINTABLE_OS_NAME="MSDOS/DJGPP"
     i?86-*-msdosdjgpp*)
         PRINTABLE_OS_NAME="MSDOS/DJGPP"
-        try_dynload=no
         ;;
         ;;
+
     *-linux*)
         PRINTABLE_OS_NAME="GNU/Linux"
     *-linux*)
         PRINTABLE_OS_NAME="GNU/Linux"
+        have_ld_version_script=yes
         ;;
         ;;
-dnl let that after linux to avoid gnu-linux problems
+
+# let that after linux to avoid gnu-linux problems
     *-gnu*)
         PRINTABLE_OS_NAME="GNU/Hurd"
     *-gnu*)
         PRINTABLE_OS_NAME="GNU/Hurd"
+        have_ld_version_script=yes
         ;;
         ;;
+
     *)
         PRINTABLE_OS_NAME=`uname -s || echo "Unknown"`
         ;;
 esac
     *)
         PRINTABLE_OS_NAME=`uname -s || echo "Unknown"`
         ;;
 esac
-AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME",
-                   [A human readable text with the name of the OS])
 
 
-dnl  Fixme: Are these the best flags for OpenBSD????
 case "${target}" in
     *-openbsd* | *-netbsd*)
 case "${target}" in
     *-openbsd* | *-netbsd*)
+        # FIXME: Are these the best flags for OpenBSD?
         NAME_OF_DEV_RANDOM="/dev/srandom"
         NAME_OF_DEV_URANDOM="/dev/urandom"
 #       DYNLINK_MOD_CFLAGS="-shared -rdynamic $CFLAGS_PIC -Wl,-Bshareable -Wl,-x"
         NAME_OF_DEV_RANDOM="/dev/srandom"
         NAME_OF_DEV_URANDOM="/dev/urandom"
 #       DYNLINK_MOD_CFLAGS="-shared -rdynamic $CFLAGS_PIC -Wl,-Bshareable -Wl,-x"
@@ -303,23 +218,210 @@ case "${target}" in
 #        fi
         ;;
 esac
 #        fi
         ;;
 esac
+
+
+AC_C_BIGENDIAN
+
+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)
+
+if test "$ac_cv_sizeof_unsigned_short" = "0" \
+   || test "$ac_cv_sizeof_unsigned_int" = "0" \
+   || test "$ac_cv_sizeof_unsigned_long" = "0"; then
+    AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
+fi
+
+# 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
+  available_digests="$available_digests $available_digests_64"
+fi
+
+# If not specified otherwise, all available algorithms will be
+# included.
+default_ciphers="$available_ciphers"
+default_pubkey_ciphers="$available_pubkey_ciphers"
+default_digests="$available_digests"
+
+############################
+## Command line switches. ##
+############################
+
+# Implementation of the --enable-ciphers switch.
+AC_ARG_ENABLE(ciphers,
+             AC_HELP_STRING([--enable-ciphers=ciphers],
+                            [select the symmetric ciphers to include]),
+             [enabled_ciphers=$(echo $enableval | tr , ' ' | tr '[A-Z]' '[a-z]')],
+             [enabled_ciphers=""])
+if test "x$enabled_ciphers" = "x" \
+   -o "$enabled_ciphers" = "yes"  \
+   -o "$enabled_ciphers" = "no"; then
+   enabled_ciphers=$default_ciphers
+fi
+AC_MSG_CHECKING([which symmetric ciphers to include])
+for cipher in $enabled_ciphers; do
+    LIST_MEMBER($cipher, $available_ciphers)
+    if test "$found" = "0"; then
+       AC_MSG_ERROR([unsupported cipher specified])
+    fi
+done
+AC_MSG_RESULT([$enabled_ciphers])
+
+# Implementation of the --enable-pubkey-ciphers switch.
+AC_ARG_ENABLE(pubkey-ciphers,
+             AC_HELP_STRING([--enable-pubkey-ciphers=ciphers],
+                            [select the public-key ciphers to include]),
+             [enabled_pubkey_ciphers=$(echo $enableval | tr , ' ' | tr '[A-Z]' '[a-z]')],
+             [enabled_pubkey_ciphers=""])
+if test "x$enabled_pubkey_ciphers" = "x" \
+   -o "$enabled_pubkey_ciphers" = "yes"  \
+   -o "$enabled_pubkey_ciphers" = "no"; then
+   enabled_pubkey_ciphers=$default_pubkey_ciphers
+fi
+AC_MSG_CHECKING([which public-key ciphers to include])
+for cipher in $enabled_pubkey_ciphers; do
+    LIST_MEMBER($cipher, $available_pubkey_ciphers)
+    if test "$found" = "0"; then
+       AC_MSG_ERROR([unsupported public-key cipher specified])
+    fi
+done
+AC_MSG_RESULT([$enabled_pubkey_ciphers])
+
+# Implementation of the --enable-digests switch.
+AC_ARG_ENABLE(digests,
+             AC_HELP_STRING([--enable-digests=digests],
+                            [select the message digests to include]),
+             [enabled_digests=$(echo $enableval | tr , ' ' | tr '[A-Z]' '[a-z]')],
+             [enabled_digests=""])
+if test "x$enabled_digests" = "x" \
+   -o "$enabled_digests" = "yes"  \
+   -o "$enabled_digests" = "no"; then
+   enabled_digests=$default_digests
+fi
+AC_MSG_CHECKING([which message digests to include])
+for digest in $enabled_digests; do
+    LIST_MEMBER($digest, $available_digests)
+    if test "$found" = "0"; then
+       AC_MSG_ERROR([unsupported message digest specified])
+    fi
+done
+AC_MSG_RESULT([$enabled_digests])
+
+# Implementation of the --enable-random switch.
+AC_ARG_ENABLE(random,
+             AC_HELP_STRING([--enable-random=name],
+                            [select which random number generator to use]),
+             [random=$(echo $enableval | tr '[A-Z]' '[a-z]')],
+             [])
+if test "x$random" = "x" -o "$random" = "yes" -o "$random" = "no"; then
+    random=default
+fi
+AC_MSG_CHECKING([which random module to use])
+if test "$random" != "default" -a "$random" != "auto"; then
+    LIST_MEMBER($random, $available_random_modules)
+    if test "$found" = "0"; then
+       AC_MSG_ERROR([unsupported random module specified])
+    fi
+fi
+AC_MSG_RESULT($random)
+
+# Implementation of the --disable-dev-random switch.
+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)
+
+# Implementation of the --with-egd-socket switch.
+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])
+
+# Implementation of --disable-asm.
+AC_MSG_CHECKING([whether assembler modules are requested])
+AC_ARG_ENABLE([asm],
+              AC_HELP_STRING([--disable-asm],
+                            [Disable assembler modules]),
+              [try_asm_modules=$enableval],
+              [try_asm_modules=yes])
+AC_MSG_RESULT($try_asm_modules)
+
+# Implementation of the --enable-m-guard switch.
+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])
+fi
+
+# Implementation of the --with-capabilities switch.
+# Check whether we want to use Linux capabilities
+AC_MSG_CHECKING([whether use of capabilities is requested])
+AC_ARG_WITH(capabilities,
+    [  --with-capabilities     use linux capabilities [default=no]],
+[use_capabilities="$withval"],[use_capabilities=no])
+AC_MSG_RESULT($use_capabilities)
+
+##############################
+#### Checks for programs. ####
+##############################
+
+AC_PROG_MAKE_SET
+missing_dir=`cd $ac_aux_dir && pwd`
+AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
+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_CC
+AC_PROG_CPP
+AM_PROG_AS
+AC_ISC_POSIX
+AC_PROG_INSTALL
+AC_PROG_AWK
+
+AM_PROG_LIBTOOL
+
+AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME",
+                   [A human readable text with the name of the OS])
+AC_ARG_ENABLE([ld-version-script],
+              AC_HELP_STRING([--enable-ld-version-script],
+                             [enable/disable use of linker version script.
+                              (default is system dependent)]),
+              [have_ld_version_script=$enableval],
+              [ : ] )
+AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
+
 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_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)
 
 
+###############################
+#### Checks for libraries. ####
+###############################
 
 
-dnl Checks for libraries.
-
-USE_NLS=no
-USE_INCLUDED_LIBINTL=no
-AC_SUBST(USE_NLS)
-AC_SUBST(USE_INCLUDED_LIBINTL)
+AM_PATH_GPG_ERROR(0.1)
+if test "x$GPG_ERROR_LIBS" = "x"; then
+  AC_MSG_ERROR([libgpg-error is needed])
+fi
 
 
+AC_DEFINE(GPG_ERR_SOURCE_DEFAULT, GPG_ERR_SOURCE_GCRYPT,
+          [The default error source for libgcrypt.])
 
 
-dnl Solaris needs -lsocket and -lnsl. Unisys system includes
-dnl gethostbyname in libsocket but needs libnsl for socket.
+# Solaris needs -lsocket and -lnsl. Unisys system includes
+# gethostbyname in libsocket but needs libnsl for socket.
 AC_CHECK_LIB(nsl, gethostbyname)
 AC_CHECK_LIB(socket, socket, ac_need_libsocket=1, ac_try_nsl=1)
 if test x$ac_need_libsocket = x1; then
 AC_CHECK_LIB(nsl, gethostbyname)
 AC_CHECK_LIB(socket, socket, ac_need_libsocket=1, ac_try_nsl=1)
 if test x$ac_need_libsocket = x1; then
@@ -333,60 +435,71 @@ if test x$ac_try_nsl = x1; then
     fi
 fi
 
     fi
 fi
 
+##################################
+#### Checks for header files. ####
+##################################
 
 
-dnl Checks for header files.
 AC_HEADER_STDC
 AC_HEADER_STDC
-AC_CHECK_HEADERS(unistd.h langinfo.h termio.h)
+AC_CHECK_HEADERS(unistd.h sys/select.h)
 
 
+##########################################
+#### Checks for typedefs, structures, ####
+####  and compiler characteristics.   ####
+##########################################
 
 
-dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
 AC_C_INLINE
 AC_TYPE_SIZE_T
 AC_TYPE_SIGNAL
 AC_DECL_SYS_SIGLIST
 
 AC_C_CONST
 AC_C_INLINE
 AC_TYPE_SIZE_T
 AC_TYPE_SIGNAL
 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)
 
 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)
+#######################################
+#### Checks for library functions. ####
+#######################################
 
 
-if test "$ac_cv_sizeof_unsigned_short" = "0" \
-   || test "$ac_cv_sizeof_unsigned_int" = "0" \
-   || test "$ac_cv_sizeof_unsigned_long" = "0"; then
-    AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
-fi
-
-
-#
-# Checks for library functions.
-#
 AC_FUNC_VPRINTF
 AC_FUNC_VPRINTF
-dnl We have replacements for these in src/missing-string.c
-AC_CHECK_FUNCS(stpcpy strsep strlwr strcasecmp)
-dnl We have replacements for these in src/g10lib.h
+# We have replacements for these in src/missing-string.c
+AC_CHECK_FUNCS(stpcpy strcasecmp)
+# We have replacements for these in src/g10lib.h
 AC_CHECK_FUNCS(strtoul memmove stricmp atexit raise)
 AC_CHECK_FUNCS(strtoul memmove stricmp atexit raise)
-dnl Other checks
-AC_CHECK_FUNCS(strerror tcgetattr rand mmap)
-AC_CHECK_FUNCS(gettimeofday getrusage gethrtime setrlimit clock_gettime)
-AC_CHECK_FUNCS(getpagesize strftime nl_langinfo)
-AC_CHECK_FUNCS(waitpid wait4 sigaction sigprocmask fopen64 fstat64)
+# Other checks
+AC_CHECK_FUNCS(strerror rand mmap getpagesize waitpid wait4)
+AC_CHECK_FUNCS(gettimeofday getrusage gethrtime clock_gettime)
 
 GNUPG_CHECK_MLOCK
 
 GNUPG_CHECK_MLOCK
-GNUPG_FUNC_MKDIR_TAKES_ONE_ARG
 
 
-dnl
-dnl Check whether we can use Linux capabilities as requested
-dnl
+# Check which thread libraries are supported by the system.
+have_pth=no
+have_pthread=no
+
+AC_CHECK_LIB(pth,pth_version,have_pth=yes)
+if test "$have_pth" = yes; then
+  LIBGCRYPT_CONFIG_LIBS_PTH="$LIBGCRYPT_CONFIG_LIBS_PTH -lpth"
+  LIBGCRYPT_THREAD_MODULES="$LIBGCRYPT_THREAD_MODULES pth"
+  AC_DEFINE(HAVE_PTH, ,[Define if we have Pth.])
+fi
+
+AC_CHECK_LIB(pthread,pthread_create,have_pthread=yes)
+if test "$have_pthread" = yes; then
+  LIBGCRYPT_CONFIG_LIBS_PTHREAD="$LIBGCRYPT_CONFIG_LIBS_PTHREAD -lpthread"
+else
+  AC_CHECK_LIB(c,pthread_create,have_pthread=yes)
+fi
+if test "$have_pthread" = yes; then
+  LIBGCRYPT_THREAD_MODULES="$LIBGCRYPT_THREAD_MODULES pthread"
+  AC_DEFINE(HAVE_PTHREAD, ,[Define if we have pthread.])
+fi
+
+AM_CONDITIONAL(HAVE_PTH, test "$have_pth" = "yes")
+AM_CONDITIONAL(HAVE_PTHREAD, test "$have_pthread" = "yes")
+
+# Check whether we can use Linux capabilities as requested.
 if test "$use_capabilities" = "yes" ; then
 use_capabilities=no
 AC_CHECK_HEADERS(sys/capability.h)
 if test "$use_capabilities" = "yes" ; then
 use_capabilities=no
 AC_CHECK_HEADERS(sys/capability.h)
@@ -413,16 +526,7 @@ if test "$use_capabilities" = "no" ; then
 fi
 fi
 
 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
-
-dnl
-dnl check whether we have a random device
-dnl
+# Check whether a random device is available.
 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
 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
@@ -437,140 +541,35 @@ else
     AC_MSG_RESULT(has been disabled)
 fi
 
     AC_MSG_RESULT(has been disabled)
 fi
 
-dnl
-dnl and whether this device supports ioctl
-dnl (Note, that we should do a real test here)
-dnl
-if test "$ac_cv_have_dev_random" = yes ; then
-    AC_CHECK_HEADERS(linux/random.h)
-    AC_CACHE_CHECK(for random device ioctl, ac_cv_have_dev_random_ioctl,
-      [ if test "$ac_cv_header_linux_random_h" = yes ; then
-          ac_cv_have_dev_random_ioctl=yes;
-        else
-          ac_cv_have_dev_random_ioctl=no;
-        fi
-      ])
-    if test "$ac_cv_have_dev_random_ioctl" = yes; then
-        AC_DEFINE(HAVE_DEV_RANDOM_IOCTL,1,
-                  [defined if the random device supports some IOCTLs])
-    fi
-fi
+# Figure out the random modules for this configuration.
+if test "$random" = "default"; then
 
 
-
-dnl
-dnl Figure out the default linkage mode for cipher modules
-dnl
-print_egd_notice=no
-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*)
-              static_random_module="rndw32"
-              AC_DEFINE(USE_STATIC_RNDW32,1,
-                       [At a certain point in the code we need to know that
-                        we use the Windows random module.])
-              ;;
-          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"
-              print_egd_notice=yes
-             ;;
-      esac
-  fi
+    # Select default value.
+    if test "$ac_cv_have_dev_random" = yes; then
+        # Try Linuxish random device.
+        random_modules="linux"
+    else
+        case "${target}" in
+        *-*-mingw32*|*-*-cygwin*)
+          # Windows random device.
+          random_modules="w32"
+          ;;
+        *)
+          # Build everything, allow to select at runtime.
+          random_modules="$auto_random_modules"
+          ;;
+        esac    
+    fi
 else
 else
-  if test "$use_static_rnd" = none; then
-    :
-  else
-    static_random_module="rnd$use_static_rnd"
-    if test "$use_static_rnd" = "unix"; then
-        print_egd_notice=yes
+    if test "$random" = "auto"; then
+        # Build everything, allow to select at runtime.
+        random_modules="$auto_random_modules"
     fi
     fi
-  fi
 fi
 
 fi
 
-
-dnl
-dnl Parse the modules list and build the list
-dnl of static and dymically linked modules
-dnl
-dnl (We always need a static rmd160)
-static_modules="$static_modules rmd160 $static_random_module"
-STATIC_CIPHER_NAMES=""
-STATIC_CIPHER_OBJS=""
-for name in $MODULES_IN_CIPHER; do
-    x="yes"
-    for i in $disallowed_modules; do
-        if test "$name" = "$i" ; then x="no" ; fi
-    done;
-    if test $x = yes; then
-        x="no"
-        for i in $static_modules; do
-            if test "$name" = "$i" ; then
-                x="yes"
-            fi
-        done;
-        if test $x = yes; then
-            STATIC_CIPHER_NAMES="$STATIC_CIPHER_NAMES $name"
-            STATIC_CIPHER_OBJS="$STATIC_CIPHER_OBJS $name.lo"
-        fi
-
-    fi
-done
 AC_MSG_RESULT()
 AC_MSG_RESULT()
-AC_SUBST(STATIC_CIPHER_OBJS)
-AC_SUBST(STATIC_CIPHER_NAMES)
-
 
 
-dnl
-dnl And build the constructor file
-dnl
-
-test -d cipher || mkdir cipher
-cat <<G10EOF >cipher/construct.c
-/* automatically generated by configure - do not edit */
-
-G10EOF
-for name in $STATIC_CIPHER_NAMES; do
-    echo "void _gcry_${name}_constructor(void);" >>cipher/construct.c
-done
-AC_MSG_RESULT()
-cat <<G10EOF >>cipher/construct.c
-
-void
-_gcry_cipher_modules_constructor(void)
-{
-    static int done = 0;
-    if( done )
-        return;
-    done = 1;
-
-G10EOF
-for name in $STATIC_CIPHER_NAMES; do
-    echo "   _gcry_${name}_constructor();" >>cipher/construct.c
-done
-echo '}' >>cipher/construct.c
-
-
-
-
-dnl
-dnl Figure how to link the cipher modules
-dnl
-AC_SUBST(STATIC_CIPHER_OBJS)
-
-#
-# setup assembler stuff
-#
+# Setup assembler stuff.
 AC_MSG_CHECKING(for mpi assembler functions)
 if test -f $srcdir/mpi/config.links ; then
     . $srcdir/mpi/config.links
 AC_MSG_CHECKING(for mpi assembler functions)
 if test -f $srcdir/mpi/config.links ; then
     . $srcdir/mpi/config.links
@@ -596,38 +595,12 @@ AC_SUBST(MPI_MOD_LIST_O)
 MPI_SFLAGS="$ac_cv_mpi_sflags"
 AC_SUBST(MPI_SFLAGS)
 
 MPI_SFLAGS="$ac_cv_mpi_sflags"
 AC_SUBST(MPI_SFLAGS)
 
-# [not used anymore]
-## Set the condtionals for the assembler modules
-## Fixme: We should put this into acinclude and write a script
-##        which can be run to update this list and the mpi/Makefile
-#AM_CONDITIONAL(MPI_MOD_ASM_MPIH_ADD1, test "$mpi_mod_asm_mpih_add1" = yes )
-#AM_CONDITIONAL(MPI_MOD_ASM_MPIH_SUB1, test "$mpi_mod_asm_mpih_sub1" = yes )
-#AM_CONDITIONAL(MPI_MOD_ASM_MPIH_MUL1, test "$mpi_mod_asm_mpih_mul1" = yes )
-#AM_CONDITIONAL(MPI_MOD_ASM_MPIH_MUL2, test "$mpi_mod_asm_mpih_mul2" = yes )
-#AM_CONDITIONAL(MPI_MOD_ASM_MPIH_MUL3, test "$mpi_mod_asm_mpih_mul3" = yes )
-#AM_CONDITIONAL(MPI_MOD_ASM_MPIH_LSHIFT, test "$mpi_mod_asm_mpih_lshift" = yes )
-#AM_CONDITIONAL(MPI_MOD_ASM_MPIH_RSHIFT, test "$mpi_mod_asm_mpih_rshift" = yes )
-#AM_CONDITIONAL(MPI_MOD_ASM_UDIV, test "$mpi_mod_asm_udiv" = yes )
-#AM_CONDITIONAL(MPI_MOD_ASM_UDIV_QRNND, test "$mpi_mod_asm_udiv_qrnnd" = yes )
-## And the corresponding conditionals for C
-#AM_CONDITIONAL(MPI_MOD_C_MPIH_ADD1, test "$mpi_mod_c_mpih_add1" = yes )
-#AM_CONDITIONAL(MPI_MOD_C_MPIH_SUB1, test "$mpi_mod_c_mpih_sub1" = yes )
-#AM_CONDITIONAL(MPI_MOD_C_MPIH_MUL1, test "$mpi_mod_c_mpih_mul1" = yes )
-#AM_CONDITIONAL(MPI_MOD_C_MPIH_MUL2, test "$mpi_mod_c_mpih_mul2" = yes )
-#AM_CONDITIONAL(MPI_MOD_C_MPIH_MUL3, test "$mpi_mod_c_mpih_mul3" = yes )
-#AM_CONDITIONAL(MPI_MOD_C_MPIH_LSHIFT, test "$mpi_mod_c_mpih_lshift" = yes )
-#AM_CONDITIONAL(MPI_MOD_C_MPIH_RSHIFT, test "$mpi_mod_c_mpih_rshift" = yes )
-#AM_CONDITIONAL(MPI_MOD_C_UDIV, test "$mpi_mod_c_udiv" = yes )
-#AM_CONDITIONAL(MPI_MOD_C_UDIV_QRNND, test "$mpi_mod_c_udiv_qrnnd" = yes )
-#
-
-
 # Allow users to append something to the version string without
 # flagging it as development version.  The user version part is
 # considered everything after a dash.
 # Allow users to append something to the version string without
 # flagging it as development version.  The user version part is
 # considered everything after a dash.
-changequote(,)dnl
+changequote(,)#
 tmp_pat='[a-zA-Z]'
 tmp_pat='[a-zA-Z]'
-changequote([,])dnl
+changequote([,])#
 if echo "$VERSION" | sed 's/-.*//' | grep "$tmp_pat" >/dev/null ; then
     AC_DEFINE(IS_DEVELOPMENT_VERSION,1,
               [Defined if this is not a regular release])
 if echo "$VERSION" | sed 's/-.*//' | grep "$tmp_pat" >/dev/null ; then
     AC_DEFINE(IS_DEVELOPMENT_VERSION,1,
               [Defined if this is not a regular release])
@@ -645,16 +618,19 @@ if test "$GCC" = yes; then
     fi
 fi
 
     fi
 fi
 
-dnl
-dnl Make the version number in src/gcrypt.h the same as the one here.
-dnl (this is easier than to have a *.in file just for one substitution)
-dnl
+#
+# Make the version number in src/gcrypt.h the same as the one here.
+# (this is easier than to have a *.in file just for one substitution)
+#
 GNUPG_FIX_HDR_VERSION([src/gcrypt.h], GCRYPT_VERSION)
 
 GNUPG_FIX_HDR_VERSION([src/gcrypt.h], GCRYPT_VERSION)
 
-LIBGCRYPT_LIBS="-L${libdir} -lgcrypt"
-LIBGCRYPT_CFLAGS=""
-AC_SUBST(LIBGCRYPT_LIBS)
-AC_SUBST(LIBGCRYPT_CFLAGS)
+AC_SUBST(LIBGCRYPT_CONFIG_LIBS)
+AC_SUBST(LIBGCRYPT_CONFIG_CFLAGS)
+AC_SUBST(LIBGCRYPT_CONFIG_LIBS_PTHREAD)
+AC_SUBST(LIBGCRYPT_CONFIG_CFLAGS_PTHREAD)
+AC_SUBST(LIBGCRYPT_CONFIG_LIBS_PTH)
+AC_SUBST(LIBGCRYPT_CONFIG_CFLAGS_PTH)
+AC_SUBST(LIBGCRYPT_THREAD_MODULES)
 
 AC_CONFIG_COMMANDS([gcrypt-defs],[[
 chmod +x src/libgcrypt-config
 
 AC_CONFIG_COMMANDS([gcrypt-defs],[[
 chmod +x src/libgcrypt-config
@@ -692,16 +668,109 @@ datadir=$datadir
 DATADIRNAME=$DATADIRNAME
 ]])
 
 DATADIRNAME=$DATADIRNAME
 ]])
 
+#####################
+#### Conclusion. ####
+#####################
+
+# Define conditional sources and config.h symbols depending on the
+# selected ciphers, pubkey-ciphers, digests and random modules.
+
+LIST_MEMBER(arcfour, $enabled_ciphers)
+test "$found" = "1" && GCRYPT_CIPHERS="$GCRYPT_CIPHERS arcfour.lo"
+AC_DEFINE_UNQUOTED(USE_ARCFOUR, $found, [Defined if this module should be included])
+LIST_MEMBER(blowfish, $enabled_ciphers)
+test "$found" = "1" && GCRYPT_CIPHERS="$GCRYPT_CIPHERS blowfish.lo"
+AC_DEFINE_UNQUOTED(USE_BLOWFISH, $found, [Defined if this module should be included])
+LIST_MEMBER(cast5, $enabled_ciphers)
+test "$found" = "1" && GCRYPT_CIPHERS="$GCRYPT_CIPHERS cast5.lo"
+AC_DEFINE_UNQUOTED(USE_CAST5, $found, [Defined if this module should be included])
+LIST_MEMBER(des, $enabled_ciphers)
+test "$found" = "1" && GCRYPT_CIPHERS="$GCRYPT_CIPHERS des.lo"
+AC_DEFINE_UNQUOTED(USE_DES, $found, [Defined if this module should be included])
+LIST_MEMBER(aes, $enabled_ciphers)
+test "$found" = "1" && GCRYPT_CIPHERS="$GCRYPT_CIPHERS rijndael.lo"
+AC_DEFINE_UNQUOTED(USE_AES, $found, [Defined if this module should be included])
+LIST_MEMBER(twofish, $enabled_ciphers)
+test "$found" = "1" && GCRYPT_CIPHERS="$GCRYPT_CIPHERS twofish.lo"
+AC_DEFINE_UNQUOTED(USE_TWOFISH, $found, [Defined if this module should be included])
+LIST_MEMBER(serpent, $enabled_ciphers)
+test "$found" = "1" && GCRYPT_CIPHERS="$GCRYPT_CIPHERS serpent.lo"
+AC_DEFINE_UNQUOTED(USE_SERPENT, $found, [Defined if this module should be included])
+
+LIST_MEMBER(dsa, $enabled_pubkey_ciphers)
+test "$found" = "1" && GCRYPT_PUBKEY_CIPHERS="$GCRYPT_PUBKEY_CIPHERS dsa.lo"
+AC_DEFINE_UNQUOTED(USE_DSA, $found, [Defined if this module should be included])
+LIST_MEMBER(rsa, $enabled_pubkey_ciphers)
+test "$found" = "1" && GCRYPT_PUBKEY_CIPHERS="$GCRYPT_PUBKEY_CIPHERS rsa.lo"
+AC_DEFINE_UNQUOTED(USE_RSA, $found, [Defined if this module should be included])
+LIST_MEMBER(elgamal, $enabled_pubkey_ciphers)
+test "$found" = "1" && GCRYPT_PUBKEY_CIPHERS="$GCRYPT_PUBKEY_CIPHERS elgamal.lo"
+AC_DEFINE_UNQUOTED(USE_ELGAMAL, $found, [Defined if this module should be included])
+
+LIST_MEMBER(crc, $enabled_digests)
+test "$found" = "1" && GCRYPT_DIGESTS="$GCRYPT_DIGESTS crc.lo"
+AC_DEFINE_UNQUOTED(USE_CRC, $found, [Defined if this module should be included])
+LIST_MEMBER(md4, $enabled_digests)
+test "$found" = "1" && GCRYPT_DIGESTS="$GCRYPT_DIGESTS md4.lo"
+AC_DEFINE_UNQUOTED(USE_MD4, $found, [Defined if this module should be included])
+LIST_MEMBER(md5, $enabled_digests)
+test "$found" = "1" && GCRYPT_DIGESTS="$GCRYPT_DIGESTS md5.lo"
+AC_DEFINE_UNQUOTED(USE_MD5, $found, [Defined if this module should be included])
+LIST_MEMBER(sha1, $enabled_digests)
+test "$found" = "1" && GCRYPT_DIGESTS="$GCRYPT_DIGESTS sha1.lo"
+AC_DEFINE_UNQUOTED(USE_SHA1, $found, [Defined if this module should be included])
+LIST_MEMBER(sha256, $enabled_digests)
+test "$found" = "1" && GCRYPT_DIGESTS="$GCRYPT_DIGESTS sha256.lo"
+AC_DEFINE_UNQUOTED(USE_SHA256, $found, [Defined if this module should be included])
+LIST_MEMBER(sha512, $enabled_digests)
+test "$found" = "1" && GCRYPT_DIGESTS="$GCRYPT_DIGESTS sha512.lo"
+AC_DEFINE_UNQUOTED(USE_SHA512, $found, [Defined if this module should be included])
+LIST_MEMBER(tiger, $enabled_digests)
+test "$found" = "1" && GCRYPT_DIGESTS="$GCRYPT_DIGESTS tiger.lo"
+AC_DEFINE_UNQUOTED(USE_TIGER, $found, [Defined if this module should be included])
+
+# rmd160 should be included always.
+GCRYPT_DIGESTS="$GCRYPT_DIGESTS rmd160.lo"
+AM_CONDITIONAL(USE_RMD160, true)
+AC_DEFINE_UNQUOTED(USE_RMD160, 1, [Defined if this module should be included])
+
+LIST_MEMBER(linux, $random_modules)
+test "$found" = "1" && GCRYPT_RANDOM="$GCRYPT_RANDOM rndlinux.lo"
+AC_DEFINE_UNQUOTED(USE_RNDLINUX, $found, [Defined if the /dev/random based RNG should be used.])
+
+LIST_MEMBER(unix, $random_modules)
+test "$found" = "1" && GCRYPT_RANDOM="$GCRYPT_RANDOM rndunix.lo"
+AC_DEFINE_UNQUOTED(USE_RNDUNIX, $found, [Defined if the default Unix RNG should be used.])
+if test "$found" = "1"; then
+   print_egd_notice=yes
+fi
+
+LIST_MEMBER(egd, $random_modules)
+test "$found" = "1" && GCRYPT_RANDOM="$GCRYPT_RANDOM rndegd.lo"
+AC_DEFINE_UNQUOTED(USE_RNDEGD, $found, [Defined if the EGD based RNG should be used.])
+
+LIST_MEMBER(w32, $random_modules)
+test "$found" = "1" && GCRYPT_RANDOM="$GCRYPT_RANDOM rndw32.lo"
+AC_DEFINE_UNQUOTED(USE_RNDW32, $found, [Defined if the Windows specific RNG should be used.])
+
+AC_SUBST([GCRYPT_CIPHERS])
+AC_SUBST([GCRYPT_PUBKEY_CIPHERS])
+AC_SUBST([GCRYPT_DIGESTS])
+AC_SUBST([GCRYPT_RANDOM])
+
+AC_SUBST(LIBGCRYPT_CIPHERS, $enabled_ciphers)
+AC_SUBST(LIBGCRYPT_PUBKEY_CIPHERS, $enabled_pubkey_ciphers)
+AC_SUBST(LIBGCRYPT_DIGESTS, $enabled_digests)
 
 AC_CONFIG_FILES([
 Makefile
 mpi/Makefile
 cipher/Makefile
 doc/Makefile
 
 AC_CONFIG_FILES([
 Makefile
 mpi/Makefile
 cipher/Makefile
 doc/Makefile
-doc/version.sgml
 src/Makefile
 src/libgcrypt-config
 tests/Makefile
 src/Makefile
 src/libgcrypt-config
 tests/Makefile
+w32-dll/Makefile
 ])
 AC_OUTPUT
 
 ])
 AC_OUTPUT
 
@@ -729,7 +798,7 @@ G10EOF
 fi
 
 warn=""
 fi
 
 warn=""
-for file in "$static_random_module"; do
+for file in "random_modules"; do
   case "$file" in rndunix | rndw32) warn="$warn $file";; esac
 done
 if test -n "$warn"; then
   case "$file" in rndunix | rndw32) warn="$warn $file";; esac
 done
 if test -n "$warn"; then
@@ -739,3 +808,8 @@ if test -n "$warn"; then
   echo "use of this library has to comply with the conditions of the GPL."
 fi
 
   echo "use of this library has to comply with the conditions of the GPL."
 fi
 
+# Give some feedback
+echo   "                Configured for: $PRINTABLE_OS_NAME ($target)"
+echo
+
+