(card_close): New.
[gnupg.git] / configure.ac
index de90bab..02b0db3 100644 (file)
@@ -25,7 +25,7 @@ AC_PREREQ(2.52)
 
 # 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.2, bug-gnupg@gnu.org)
+AC_INIT(gnupg, 1.3.3, 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.
@@ -103,6 +103,17 @@ if test "$use_m_guard" = yes ; then
     AC_DEFINE(M_GUARD,1,[Define to use the (obsolete) malloc guarding feature])
 fi
 
+AC_MSG_CHECKING([whether OpenPGP card support is requested])
+AC_ARG_ENABLE(card-support,
+    [  --enable-card-support   enable OpenPGP card support],
+    card_support=$enableval, card_support=no)
+AC_MSG_RESULT($card_support)
+if test "$card_support" = yes ; then
+    AC_DEFINE(ENABLE_CARD_SUPPORT,1,
+             [Define to include the OpenPGP card support])
+fi
+AM_CONDITIONAL(ENABLE_CARD_SUPPORT, test "$card_support" = yes)
+
 dnl See if we are disabling any algorithms or features for a smaller
 dnl binary
 
@@ -113,8 +124,6 @@ use_cast5=yes
 use_blowfish=yes
 use_aes=yes
 use_twofish=yes
-use_tiger192=no
-use_old_tiger192=no
 use_sha256=yes
 use_sha512=yes
 use_exec=yes
@@ -193,34 +202,6 @@ if test x"$use_twofish" = xyes ; then
    AC_DEFINE(USE_TWOFISH,1,[Define to include the TWOFISH cipher])
 fi
 
-dnl this is because the stable branch calls it just "tiger".
-AC_ARG_ENABLE(tiger,,use_tiger192=$enableval)
-AC_ARG_ENABLE(old-tiger,,use_old_tiger192=$enableval)
-
-dnl TIGER192 is actually defined only after we confirm 64-bit support
-dnl later
-AC_MSG_CHECKING([whether to enable the nonstandard TIGER/192 digest])
-AC_ARG_ENABLE(tiger192,
-   AC_HELP_STRING([--enable-tiger192],[enable the nonstandard TIGER/192 digest]),
-   use_tiger192=$enableval)
-AC_MSG_RESULT($use_tiger192)
-
-AC_MSG_CHECKING([whether to enable old-style nonstandard TIGER/192 digest support])
-AC_ARG_ENABLE(old-tiger192,
-   AC_HELP_STRING([--enable-old-tiger192],[enable old-style nonstandard TIGER/192 digest support]),
-   use_old_tiger=$enableval)
-AC_MSG_RESULT($use_old_tiger192)
-
-if test x"$use_tiger192" = xyes || test x"$use_old_tiger192" = xyes ; then
-   AC_MSG_WARN([[
-***
-*** The TIGER/192 digest is in the process of being removed from the
-*** OpenPGP standard.  While it hasn't been removed from GnuPG yet, it
-*** will be removed in a future version.  For the sake of future
-*** compatibility, please do not use this digest.
-***]])
-fi
-
 AC_MSG_CHECKING([whether to enable the SHA-256 digest])
 AC_ARG_ENABLE(sha256,
    AC_HELP_STRING([--disable-sha256],[disable the SHA-256 digest]),
@@ -292,10 +273,6 @@ if test "$use_exec" = yes ; then
         try_hkp=$enableval, try_hkp=yes)
     AC_MSG_RESULT($try_hkp)
 
-    if test "$try_hkp" = yes ; then
-      AC_SUBST(GPGKEYS_HKP,"gpgkeys_hkp$EXEEXT")
-    fi
-
     AC_MSG_CHECKING([whether email keyserver support is requested])
     AC_ARG_ENABLE(mailto,
     [  --disable-mailto        disable email keyserver interface],
@@ -333,6 +310,10 @@ AH_BOTTOM([
 #define EXEC_TEMPFILE_ONLY
 #endif
 
+/* This is the major version number of GnuPG so that
+   source included files can test for this. */
+#define GNUPG_MAJOR_VERSION 1
+
 #include "g10defs.h"
 ])
 
@@ -443,6 +424,11 @@ AM_CONDITIONAL(HAVE_DOSISH_SYSTEM, test "$have_dosish_system" = yes)
 AC_SUBST(MPI_OPT_FLAGS)
 GNUPG_SYS_SYMBOL_UNDERSCORE
 
+dnl This needs to go after AC_PROG_CC so that $EXEEXT is defined
+if test "$try_hkp" = yes ; then
+  AC_SUBST(GPGKEYS_HKP,"gpgkeys_hkp$EXEEXT")
+fi
+
 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
 dnl ELF runtime link paths), then link will fail and LDAP support won't
@@ -652,31 +638,23 @@ 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_CHECK_FUNC(dlopen,,AC_CHECK_LIB(dl,dlopen,found_dlopen=yes))
+  if test x"$found_dlopen" = "xyes" ; 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
+    AC_SUBST(DLLIBS,"-ldl")
   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.
 AC_HEADER_STDC
-AC_CHECK_HEADERS(unistd.h langinfo.h termio.h locale.h)
+AC_CHECK_HEADERS(unistd.h langinfo.h termio.h locale.h getopt.h)
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
@@ -699,7 +677,15 @@ 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)
+
+# 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>
+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
+   AC_CHECK_SIZEOF(uint64_t)
+fi
 
 if test "$ac_cv_sizeof_unsigned_short" = "0" \
    || test "$ac_cv_sizeof_unsigned_int" = "0" \
@@ -711,20 +697,9 @@ 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])
+   && test x"$ac_cv_sizeof_uint64_t" != "x8"; then
+    AC_MSG_WARN([No 64-bit types.  Disabling 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])
@@ -739,8 +714,15 @@ AC_CHECK_FUNCS(strerror stpcpy strsep strlwr tcgetattr strtoul mmap)
 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)
+AC_CHECK_FUNCS(waitpid wait4 sigaction sigprocmask rand pipe stat getaddrinfo)
 AC_REPLACE_FUNCS(mkdtemp)
+AC_CHECK_TYPES([struct sigaction, sigset_t],,,[#include <signal.h>])
+
+# See if getopt is in libiberty.  This is of course not optimal since
+# it might be somewhere other than libiberty, but does cover the
+# mingw32 case.
+
+AC_CHECK_FUNC(getopt,,AC_CHECK_LIB(iberty,getopt,AC_SUBST(GETOPT,"-liberty")))
 
 #
 # check for gethrtime and run a testprogram to see whether
@@ -891,8 +873,6 @@ for rndmod in $random_modules "" ; do
     rndegd)
          AC_DEFINE(USE_RNDEGD,1, 
                   [Defined if the EGD based RNG should be used.])
-         EGDLIBS=$NETLIBS
-         AC_SUBST(EGDLIBS)
          ;;
     rndw32)
          AC_DEFINE(USE_RNDW32,1, 
@@ -991,22 +971,38 @@ else
   AC_CHECK_HEADER(zlib.h,
       AC_CHECK_LIB(z, deflateInit2_,
        use_local_zlib=no
-       LIBS="$LIBS -lz",
+       ZLIBS="-lz",
        CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}),
        CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags})
 fi
+
 if test "$use_local_zlib" = yes ; then
     AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, true)
     AC_CONFIG_LINKS(zlib.h:zlib/zlib.h zconf.h:zlib/zconf.h )
     ZLIBS="../zlib/libzlib.a"
 else
     AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, false)
-    ZLIBS=
 fi
 AC_SUBST(ZLIBS)
 
 
+#
+# libusb allows us to use the integrated CCID smartcard reader driver.
+#
+# Note, that we need the CVS (unstable) version. 
+#
+LIBUSB_LIBS=""
+if test "$card_support" = yes; then
+    AC_CHECK_LIB(usb, usb_find_device,
+                 [ LIBUSB_LIBS="$LIBUSB_LIBS -lusb"
+                   AC_DEFINE(HAVE_LIBUSB,1,
+                   [defined if libusb is available])
+                 ])
+fi
+AC_SUBST(LIBUSB_LIBS)
+
+
+
 # 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. 
@@ -1031,12 +1027,15 @@ GNUPG_CHECK_GNUMAKE
 # mysterious reasons - the final link step should bail out. 
 case "${target}" in
     *-*-mingw32*)
-        LIBS="$LIBS -lwsock32"
+dnl      NETLIBS="$NETLIBS -lwsock32"
+       W32LIBS="-lwsock32"
         ;;
     *)
        ;;
 esac
 
+AC_SUBST(NETLIBS)
+AC_SUBST(W32LIBS)
 
 if test "$GCC" = yes; then
     if test "$USE_MAINTAINER_MODE" = "yes"; then
@@ -1046,8 +1045,6 @@ if test "$GCC" = yes; then
     fi
 fi
 
-AC_SUBST(NETLIBS)
-
 
 if test "$print_egd_warning" = yes; then
   AC_MSG_WARN([[
@@ -1104,6 +1101,9 @@ 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 
 if cmp -s g10defs.h g10defs.tmp 2>/dev/null; then