2007-04-26 Marcus Brinkmann <marcus@g10code.de>
[gnupg.git] / configure.ac
index 616baed..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.90])
+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.4
 
 NEED_LIBGCRYPT_API=1
-NEED_LIBGCRYPT_VERSION=1.1.94
+NEED_LIBGCRYPT_VERSION=1.2.0
 
-NEED_LIBASSUAN_VERSION=0.9.0
+NEED_LIBASSUAN_API=1
+NEED_LIBASSUAN_VERSION=0.9.3
 
 NEED_KSBA_API=1
 NEED_KSBA_VERSION=1.0.0
@@ -421,6 +422,11 @@ AH_BOTTOM([
 /* 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*/
 ])
 
@@ -578,8 +584,17 @@ 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
+
 
 
 #
@@ -604,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:
@@ -632,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.
@@ -650,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)
+
 
 
 #
@@ -861,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])
 
@@ -877,7 +870,6 @@ else
   AC_SUBST(USE_NLS)
   AC_SUBST(USE_INCLUDED_LIBINTL)
   AC_SUBST(BUILD_INCLUDED_LIBINTL)
-  AM_PO_SUBDIRS
 fi
 
 
@@ -894,7 +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])
+AC_CHECK_HEADERS([pty.h pwd.h inttypes.h])
+AC_HEADER_TIME
 
 
 #
@@ -928,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],
@@ -952,31 +960,31 @@ 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
+
 
 
 #
@@ -1125,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)
 
 
 #
@@ -1262,10 +1269,10 @@ 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