2007-04-26 Marcus Brinkmann <marcus@g10code.de>
[gnupg.git] / configure.ac
index eda69d4..c597d69 100644 (file)
@@ -1,6 +1,6 @@
 # configure.ac - for GnuPG 1.9
-# Copyright (C) 1998, 1999, 2000, 2001, 2002,
-#               2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+#               2006, 2007 Free Software Foundation, Inc.
 # 
 # This file is part of GnuPG.
 # 
 # USA.
 
 # Process this file with autoconf to produce a configure script.
-AC_PREREQ(2.52)
+AC_PREREQ(2.59)
 min_automake_version="1.9.3"
 
 # Remember to change the version number immediately *after* a release.
 # Set my_issvn to "yes" for non-released code.  Remember to run an
 # "svn up" and "autogen.sh" right before creating a distribution.
-m4_define([my_version], [1.9.23])
+m4_define([my_version], [2.0.4])
 m4_define([my_issvn], [yes])
 
 
-m4_define([svn_revision], m4_esyscmd([echo -n $((svn info 2>/dev/null \
-            || echo 'Revision: 0')|sed -n '/^Revision:/ {s/[^0-9]//gp;q}')]))
+m4_define([svn_revision], m4_esyscmd([echo -n $( (svn info 2>/dev/null \
+            || echo 'Revision: 0')|sed -n '/^Revision:/ {s/[^0-9]//gp;q;}')]))
 AC_INIT([gnupg], my_version[]m4_if(my_issvn,[yes],[-svn[]svn_revision]),
         [bug-gnupg@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
+development_version=no
 
-NEED_GPG_ERROR_VERSION=1.2
+NEED_GPG_ERROR_VERSION=1.4
 
 NEED_LIBGCRYPT_API=1
-NEED_LIBGCRYPT_VERSION=1.1.94
+NEED_LIBGCRYPT_VERSION=1.2.0
 
-NEED_LIBASSUAN_VERSION=0.6.10
+NEED_LIBASSUAN_API=1
+NEED_LIBASSUAN_VERSION=0.9.3
 
-NEED_KSBA_VERSION=0.9.16
+NEED_KSBA_API=1
+NEED_KSBA_VERSION=1.0.0
 
 
 PACKAGE=$PACKAGE_NAME
@@ -68,16 +70,19 @@ have_libgcrypt=no
 have_libassuan=no
 have_ksba=no
 have_pth=no
+have_libusb=no
 
 use_bzip2=yes
 use_exec=yes
 disable_keyserver_path=no
 
 
-GNUPG_BUILD_PROGRAM(gpg, no)
+GNUPG_BUILD_PROGRAM(gpg, yes)
 GNUPG_BUILD_PROGRAM(gpgsm, yes)
 GNUPG_BUILD_PROGRAM(agent, yes)
 GNUPG_BUILD_PROGRAM(scdaemon, yes)
+GNUPG_BUILD_PROGRAM(tools, yes)
+GNUPG_BUILD_PROGRAM(doc, yes)
 GNUPG_BUILD_PROGRAM(symcryptrun, no)
 
 AC_SUBST(PACKAGE)
@@ -152,7 +157,6 @@ AC_ARG_ENABLE(agent-only,
     AC_HELP_STRING([--enable-agent-only],[build only the gpg-agent]),
     build_agent_only=$enableval)
 
-
 # SELinux support includes tracking of sensitive files to avoid
 # leaking their contents through processing these files by gpg itself
 AC_MSG_CHECKING([whether SELinux support is requested])
@@ -415,6 +419,13 @@ AH_BOTTOM([
 /* We always include support for the OpenPGP card.  */
 #define ENABLE_CARD_SUPPORT 1
 
+/* We don't want the old assuan codes anymore. */
+#define _ASSUAN_ONLY_GPG_ERRORS 1
+
+/* We explicitly need to disable PTH's soft mapping as Debian
+   currently enables it by default for no reason. */
+#define PTH_SYSCALL_SOFT 0
+
 
 #endif /*GNUPG_CONFIG_H_INCLUDED*/
 ])
@@ -442,10 +453,7 @@ AC_PATH_PROG(PERL,"perl")
 AC_ISC_POSIX
 gl_EARLY
 AC_SYS_LARGEFILE
-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
 GNUPG_CHECK_USTAR
 
 
@@ -564,10 +572,6 @@ fi
 #
 AM_PATH_GPG_ERROR("$NEED_GPG_ERROR_VERSION",
                   have_gpg_error=yes,have_gpg_error=no)
-_tmp_gpg_error_save_cflags="$CFLAGS"
-CFLAGS="$CFLAGS $GPG_ERROR_CFLAGS"
-AC_CHECK_DECLS(GPG_ERR_LOCKED,,,[#include <gpg-error.h>])
-CFLAGS="${_tmp_gpg_error_save_cflags}"
 
 
 #
@@ -580,14 +584,23 @@ AM_PATH_LIBGCRYPT("$NEED_LIBGCRYPT_API:$NEED_LIBGCRYPT_VERSION",
 #
 # libassuan is used for IPC
 #
-AM_PATH_LIBASSUAN("$NEED_LIBASSUAN_VERSION",
+AM_PATH_LIBASSUAN("$NEED_LIBASSUAN_API:$NEED_LIBASSUAN_VERSION",
                   have_libassuan=yes,have_libassuan=no)
+if test "$have_libassuan" = "yes"; then
+  have_libassuan=no
+  AM_PATH_LIBASSUAN_PTH("$NEED_LIBASSUAN_API:$NEED_LIBASSUAN_VERSION",
+                        have_libassuan=yes,have_libassuan=no)
+  AM_CHECK_LIBASSUAN("$NEED_LIBASSUAN_API:1.0.1",
+       [AC_DEFINE(HAVE_ASSUAN_SET_IO_MONITOR, 1,
+         [Define to 1 if you have the `assuan_set_io_monitor' function.])],)  
+fi
+
 
 
 #
 # libksba is our X.509 support library
 #
-AM_PATH_KSBA("$NEED_KSBA_VERSION",have_ksba=yes,have_ksba=no)
+AM_PATH_KSBA("$NEED_KSBA_API:$NEED_KSBA_VERSION",have_ksba=yes,have_ksba=no)
 
 
 #
@@ -598,6 +611,7 @@ AC_CHECK_LIB(usb, usb_bulk_write,
               [ LIBUSB_LIBS="$LIBUSB_LIBS -lusb"
                 AC_DEFINE(HAVE_LIBUSB,1,
                          [defined if libusb is available])
+                have_libusb=yes
              ])
 AC_SUBST(LIBUSB_LIBS)
 AC_CHECK_FUNCS(usb_create_match)
@@ -605,10 +619,12 @@ AC_CHECK_FUNCS(usb_create_match)
 #
 # Check wether it is necessary to link against libdl.
 #
+gnupg_dlopen_save_libs="$LIBS"
 LIBS=""
 AC_SEARCH_LIBS(dlopen, c dl,,,)
 DL_LIBS=$LIBS
 AC_SUBST(DL_LIBS)
+LIBS="$gnupg_dlopen_save_libs"
 
 #
 # Checks for symcryptrun:
@@ -633,17 +649,12 @@ AC_DEFINE_UNQUOTED(SHRED,
 # Check whether the GNU Pth library is available
 # Note, that we include a Pth emulation for W32.
 #
-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 "$have_w32_system" = no; then
- if test "$PTH_CONFIG" = "no"; then
-    AC_MSG_WARN([[
+GNUPG_PATH_PTH
+if test "$have_pth" = "yes"; then
+  AC_DEFINE(USE_GNU_PTH, 1,
+              [Defined if the GNU Portable Thread Library should be used])
+else
+  AC_MSG_WARN([[
 ***
 *** To support concurrent access to the gpg-agent and the SCdaemon
 *** we need the support of the GNU Portable Threads Library.
@@ -651,27 +662,8 @@ if test "$have_w32_system" = no; then
 *** 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 --all`"
-     AC_DEFINE(USE_GNU_PTH, 1,
-              [Defined if the GNU Portable Thread Library should be used])
-     AC_DEFINE(HAVE_PTH, 1,
-              [Defined if the GNU Pth is available])
-  fi
- fi
-else 
- have_pth=yes
- PTH_CFLAGS=""
- PTH_LIBS=""
- AC_DEFINE(USE_GNU_PTH, 1)
- AC_DEFINE(HAVE_PTH, 1)
 fi
-AC_SUBST(PTH_CFLAGS)
-AC_SUBST(PTH_LIBS)
+
 
 
 #
@@ -862,7 +854,7 @@ AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME",
 #
 # Check for gettext
 #
-AM_GNU_GETTEXT_VERSION(0.14.1)
+AM_GNU_GETTEXT_VERSION([0.15])
 if test "$try_gettext" = yes; then
   AM_GNU_GETTEXT(,[need-ngettext])
 
@@ -878,7 +870,6 @@ else
   AC_SUBST(USE_NLS)
   AC_SUBST(USE_INCLUDED_LIBINTL)
   AC_SUBST(BUILD_INCLUDED_LIBINTL)
-  AM_PO_SUBDIRS
 fi
 
 
@@ -895,10 +886,8 @@ fi
 #
 AC_HEADER_STDC
 AC_CHECK_HEADERS([string.h unistd.h langinfo.h termio.h locale.h getopt.h])
-AC_CHECK_HEADERS([pwd.h inttypes.h])
-# Note that we do not check for iconv here because this is done anyway
-# by the gettext checks and thus it allows us to disable the use of
-# iconv by using --disable-nls.
+AC_CHECK_HEADERS([pty.h pwd.h inttypes.h])
+AC_HEADER_TIME
 
 
 #
@@ -932,6 +921,21 @@ AC_CHECK_SIZEOF(unsigned short)
 AC_CHECK_SIZEOF(unsigned int)
 AC_CHECK_SIZEOF(unsigned long)
 AC_CHECK_SIZEOF(unsigned long long)
+AC_CHECK_SIZEOF(time_t,,[[
+#include <stdio.h>
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+#  include <sys/time.h>
+# else
+#  include <time.h>
+# endif
+#endif
+]])
+
+
 # Ensure that we have UINT64_C before we bother to check for uint64_t
 # Fixme: really needed in gnupg?  I think it is only useful in libcgrypt.
 AC_CACHE_CHECK([for UINT64_C],[gnupg_cv_uint64_c_works],
@@ -948,11 +952,6 @@ if test "$ac_cv_sizeof_unsigned_short" = "0" \
     AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
 fi
 
-#
-# fixme: do we really need this - it should be encapsulated in libassuan
-#
-GNUPG_SYS_SO_PEERCRED
-
 
 #
 # Checks for library functions.
@@ -961,68 +960,38 @@ AC_CHECK_DECLS(getpagesize)
 AC_FUNC_FSEEKO
 AC_FUNC_VPRINTF
 AC_FUNC_FORK
-AC_CHECK_FUNCS([strerror stpcpy strsep strlwr tcgetattr strtoul mmap])
-AC_CHECK_FUNCS([strcasecmp strncasecmp ctermid times timegm gmtime_r])
+AC_CHECK_FUNCS([strerror strlwr tcgetattr mmap])
+AC_CHECK_FUNCS([strcasecmp strncasecmp ctermid times gmtime_r])
 AC_CHECK_FUNCS([unsetenv getpwnam getpwuid fcntl ftruncate])
-AC_CHECK_FUNCS([memmove gettimeofday getrusage setrlimit clock_gettime])
+AC_CHECK_FUNCS([gettimeofday getrusage setrlimit clock_gettime])
 AC_CHECK_FUNCS([atexit raise getpagesize strftime nl_langinfo setlocale])
 AC_CHECK_FUNCS([waitpid wait4 sigaction sigprocmask pipe stat getaddrinfo])
-AC_CHECK_FUNCS([ttyname isascii memrchr rand ftello])
+AC_CHECK_FUNCS([ttyname rand ftello])
 
 AC_CHECK_TYPES([struct sigaction, sigset_t],,,[#include <signal.h>])
 
 #
-# gnulib checks
+# These are needed by libjnlib - fixme: we should use a jnlib.m4
 #
-gl_SOURCE_BASE(gl)
-gl_M4_BASE(gl/m4)
-gl_MODULES(setenv strsep mkdtemp vasprintf xsize)
-gl_INIT
-
+AC_CHECK_FUNCS([memicmp stpcpy strsep strlwr strtoul memmove stricmp strtol])
+AC_CHECK_FUNCS([memrchr isascii timegm getrusage setrlimit stat setlocale])
+AC_CHECK_FUNCS([flockfile funlockfile fopencookie funopen])
 
 #
-# These are needed by libjnlib - fixme: we should have macros for them
+# gnulib checks
 #
-AC_CHECK_FUNCS([memicmp stpcpy strlwr strtoul memmove stricmp strtol])
-AC_CHECK_FUNCS([getrusage setrlimit stat setlocale])
-AC_CHECK_FUNCS([flockfile funlockfile fopencookie funopen])
-
-
+gl_SOURCE_BASE([gl])
+gl_M4_BASE([gl/m4])
+gl_MODULES([setenv mkdtemp vasprintf xsize])
+gl_INIT
 
-GNUPG_CHECK_MLOCK
 
-GNUPG_FUNC_MKDIR_TAKES_ONE_ARG
 
 #
-# Check whether we can use Linux capabilities as requested
+# W32 specific test
 #
-#  fixme: Still required?
-#
-if test "$use_capabilities" = "yes" ; then
-use_capabilities=no
-AC_CHECK_HEADERS(sys/capability.h)
-if test "$ac_cv_header_sys_capability_h" = "yes" ; then
-  AC_CHECK_LIB(cap, cap_init, ac_need_libcap=1)
-  if test "$ac_cv_lib_cap_cap_init" = "yes"; then
-     AC_DEFINE(USE_CAPABILITIES,1,
-               [define if capabilities should be used])
-     AC_SUBST(CAPLIBS,"-lcap")
-     use_capabilities=yes
-  fi
-fi
-if test "$use_capabilities" = "no" ; then
-    AC_MSG_WARN([[
-***
-*** The use of capabilities on this system is not possible.
-*** You need a recent Linux kernel and some patches:
-***   fcaps-2.2.9-990610.patch      (kernel patch for 2.2.9)
-***   fcap-module-990613.tar.gz     (kernel module)
-***   libcap-1.92.tar.gz            (user mode library and utilities)
-*** And you have to configure the kernel with CONFIG_VFS_CAP_PLUGIN
-*** set (filesystems menu). Be warned: This code is *really* ALPHA.
-***]])
-fi
-fi
+GNUPG_FUNC_MKDIR_TAKES_ONE_ARG
+
 
 #
 # Sanity check regex.  Tests adapted from mutt.
@@ -1164,11 +1133,10 @@ GNUPG_CHECK_GNUMAKE
 # Add some extra libs here so that previous tests don't fail for
 # mysterious reasons - the final link step should bail out. 
 if test "$have_w32_system" = yes; then
-   W32LIBS="-lwsock32"
+   NETLIBS="${NETLIBS} -lwsock32"
 fi
 
 AC_SUBST(NETLIBS)
-AC_SUBST(W32LIBS)
 
 
 #
@@ -1241,6 +1209,10 @@ if test "$build_scdaemon" = "yes"; then
      tmp=", "
      missing_pth=yes
   fi
+  if test $have_libusb = no; then
+     build_scdaemon_extra="${tmp}without internal CCID driver"
+     tmp=", "
+  fi
   if test -n "$build_scdaemon_extra"; then
      build_scdaemon_extra="(${build_scdaemon_extra})"
   fi
@@ -1251,6 +1223,8 @@ if test "$build_agent_only" = "yes" ; then
   build_gpg=no
   build_gpgsm=no
   build_scdaemon=no
+  build_tools=no
+  build_doc=no
 fi
 
 
@@ -1258,8 +1232,12 @@ 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")
+AM_CONDITIONAL(BUILD_TOOLS, test "$build_tools" = "yes")
+AM_CONDITIONAL(BUILD_DOC,   test "$build_doc" = "yes")
 AM_CONDITIONAL(BUILD_SYMCRYPTRUN, test "$build_symcryptrun" = "yes")
 
+AM_CONDITIONAL(RUN_GPG_TESTS,
+       test x$cross_compiling = xno -a "$build_gpg" = yes )
 
 
 #
@@ -1284,17 +1262,17 @@ if test "$have_libgcrypt" = "no"; then
 *** You need libgcrypt to build this program.
 **  This library is for example available at
 ***   ftp://ftp.gnupg.org/gcrypt/libgcrypt/
-*** (at least version $NEED_LIBGCRYPT_VERSION using API $NEED_LIBGCRYPT_API) is required.)
+*** (at least version $NEED_LIBGCRYPT_VERSION using API $NEED_LIBGCRYPT_API is required.)
 ***]])
 fi
 if test "$have_libassuan" = "no"; then
    die=yes
    AC_MSG_NOTICE([[
 ***
-*** You need libassuan to build this program.
+*** You need libassuan with Pth support to build this program.
 *** This library is for example available at
-***   ftp://ftp.gnupg.org/gcrypt/alpha/libassuan/
-*** (at least version $NEED_LIBASSUAN_VERSION is required).
+***   ftp://ftp.gnupg.org/gcrypt/libassuan/
+*** (at least version $NEED_LIBASSUAN_VERSION (API $NEED_LIBASSUAN_API) is required).
 ***]])
 fi
 if test "$have_ksba" = "no"; then
@@ -1302,8 +1280,8 @@ if test "$have_ksba" = "no"; then
 ***
 *** You need libksba to build this program.
 *** This library is for example available at
-***   ftp://ftp.gnupg.org/gcrypt/alpha/libksba/
-*** (at least version $NEED_KSBA_VERSION is required).
+***   ftp://ftp.gnupg.org/gcrypt/libksba/
+*** (at least version $NEED_KSBA_VERSION using API $NEED_KSBA_API is required).
 ***]])
 fi
 if test "$missing_pth" = "yes"; then
@@ -1334,6 +1312,7 @@ Makefile
 po/Makefile.in
 intl/Makefile
 gl/Makefile
+include/Makefile
 jnlib/Makefile
 common/Makefile
 kbx/Makefile
@@ -1342,9 +1321,13 @@ sm/Makefile
 agent/Makefile
 scd/Makefile
 keyserver/Makefile
+keyserver/gpgkeys_mailto
+keyserver/gpgkeys_test
+tools/gpg-zip
 tools/Makefile
 doc/Makefile
 tests/Makefile
+tests/openpgp/Makefile
 ])
 AC_OUTPUT