* exec.c (expand_args): Remove loop left over from earlier implementation.
[gnupg.git] / configure.ac
index 11193ba..c052e16 100644 (file)
@@ -50,7 +50,7 @@ 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]  ],
+    [  --enable-static-rnd=[egd|unix|linux|auto]  ],
 [use_static_rnd=$enableval], [use_static_rnd=default] )
 
 if test "$use_static_rnd" = no; then
@@ -61,6 +61,9 @@ case "$use_static_rnd" in
     egd | linux | unix | default )
       AC_MSG_RESULT($use_static_rnd)
       ;;
+    auto )
+      AC_MSG_RESULT(automagically selected at runtime)
+      ;;
     * )
       AC_MSG_RESULT(invalid argument)
       AC_MSG_ERROR(there is no random module rnd$use_static_rnd)
@@ -352,11 +355,11 @@ AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt,
        [NETLIBS="-lsocket $NETLIBS"]))
 
 # 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.  -lldapssl41
+# is for Mozilla LDAP.
 
 if test "$try_ldap" = yes ; then
-  for LDAPLIBS in "-lldap -llber -lresolv" "-lldapssl41"; do
+  for LDAPLIBS in "-lldap -llber -lresolv" "-lldap -llber" "-lldapssl41"; do
     _ldap_save_libs=$LIBS
     LIBS="$LDAPLIBS $NETLIBS $LIBS"
 
@@ -533,7 +536,7 @@ AC_FUNC_FSEEKO
 AC_FUNC_VPRINTF
 AC_FUNC_FORK
 AC_CHECK_FUNCS(strerror stpcpy strsep strlwr tcgetattr strtoul mmap)
-AC_CHECK_FUNCS(strcasecmp strncasecmp hstrerror)
+AC_CHECK_FUNCS(strcasecmp strncasecmp)
 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)
@@ -636,67 +639,64 @@ fi
 dnl
 dnl Figure out the default random module.
 dnl
-static_random_module=""
+random_modules=""
 if test "$use_static_rnd" = default; then
-  if test "$ac_cv_have_dev_random" = yes; then
-      static_random_module="rndlinux"
+     if test "$ac_cv_have_dev_random" = yes; then
+        random_modules="rndlinux"
+     else
+         case "${target}" in
+            *-*-mingw32*|*-*-cygwin*)
+                random_modules="rndw32"
+                ;;
+            i?86-emx-os2|i?86-*-os2*emx)
+                random_modules="rndos2"
+                ;;
+            m68k-atari-mint)
+                random_modules="rndatari"
+                ;;
+            i?86-*-msdosdjgpp*)
+                :
+                ;;
+            *)
+                random_modules="rndunix"
+                ;;
+         esac
+     fi
+else
+  if test "$use_static_rnd" = auto; then
+     random_modules="rndlinux rndegd rndunix"
+     AC_DEFINE(USE_ALL_RANDOM_MODULES, 1, 
+                  [Allow to select random modules at runtime.])
   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
+     random_modules="rnd$use_static_rnd";
   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, 
+
+if test -z "$random_modules"; then
+   AC_MSG_ERROR(no random module available)
+fi
+print_egd_warning=no
+for rndmod in $random_modules "" ; do
+  case "$rndmod" in
+    rndlinux)
+         AC_DEFINE(USE_RNDLINUX,1, 
+                  [Defined if the /dev/random based RNG should 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, 
+         print_egd_warning=yes
+          ;;
+    rndegd)
+         AC_DEFINE(USE_RNDEGD,1, 
+                  [Defined if the EGD based RNG should 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
+   esac
+done
 
 dnl setup assembler stuff
 AC_MSG_CHECKING(for mpi assembler functions)
@@ -800,6 +800,28 @@ fi
 
 AC_SUBST(NETLIBS)
 
+
+if test "$print_egd_warning" = yes; then
+  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.
+***]])
+fi
+
+
+
 # Note the \\\\ for backslashes.  Autoconf eats one layer, leaving \\
 
 AC_SUBST(GNUPG_LIBEXECDIR,"${libexecdir}/gnupg")