post release preparations
[gnupg.git] / configure.ac
index 210c6e7..5fd8efe 100644 (file)
@@ -1,6 +1,6 @@
 # configure.ac - for GnuPG 1.9
 # Copyright (C) 1998, 1999, 2000, 2001, 2002,
-#               2003 Free Software Foundation, Inc.
+#               2003, 2004 Free Software Foundation, Inc.
 # 
 # This file is part of GnuPG.
 # 
@@ -24,19 +24,26 @@ min_automake_version="1.7.6"
 
 # Version number: Remember to change it immediately *after* a release.
 #                 Add a "-cvs" prefix for non-released code.
-AC_INIT(gnupg, 1.9.5, gnupg-devel@gnupg.org)
+AC_INIT(gnupg, 1.9.12-cvs, gnupg-devel@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
-NEED_GPG_ERROR_VERSION=0.6
-NEED_LIBGCRYPT_VERSION=1.1.92
-NEED_LIBASSUAN_VERSION=0.6.4
-NEED_KSBA_VERSION=0.9.4
+NEED_GPG_ERROR_VERSION=0.7
+
+NEED_LIBGCRYPT_API=1
+NEED_LIBGCRYPT_VERSION=1.1.94
+
+NEED_LIBASSUAN_VERSION=0.6.6
+
+NEED_KSBA_VERSION=0.9.7
+
 NEED_OPENSC_VERSION=0.8.0
 
 
+
 PACKAGE=$PACKAGE_NAME
+PACKAGE_GT=${PACKAGE_NAME}2
 VERSION=$PACKAGE_VERSION
 
 AC_CONFIG_AUX_DIR(scripts)
@@ -62,8 +69,11 @@ GNUPG_BUILD_PROGRAM(scdaemon, yes)
 
 
 AC_SUBST(PACKAGE)
+AC_SUBST(PACKAGE_GT)
 AC_SUBST(VERSION)
 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package])
+AC_DEFINE_UNQUOTED(PACKAGE_GT, "$PACKAGE_GT",
+                                [Name of this package for gettext])
 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version of this package])
 AC_DEFINE_UNQUOTED(PACKAGE_BUGREPORT, "$PACKAGE_BUGREPORT",
                                         [Bug report address])
@@ -123,6 +133,13 @@ test -n "$GNUPG_PROTECT_TOOL_PGM" \
       && show_gnupg_protect_tool_pgm="$GNUPG_PROTECT_TOOL_PGM"
 
 
+# Some folks want to use only the agent form this packet.  Make it
+# easier for them by providing the configure option
+# --enable-only-agent.
+AC_ARG_ENABLE(agent-only,
+    AC_HELP_STRING([--enable-agent-only],[build only the gpg-agent]),
+    build_agent_only=$enableval)
+
 
 # Configure option to allow ot disallow execution of external
 # programs, like a photo viewer.
@@ -252,8 +269,12 @@ AH_BOTTOM([
 #endif
 
 /* This is the same as VERSION, but should be overridden if the
-   platform cannot handle things like dots '.' in filenames. */
+   platform cannot handle things like dots '.' in filenames. Set
+   SAFE_VERSION_DOT and SAFE_VERSION_DASH to whatever SAFE_VERSION
+   uses for dots and dashes. */
 #define SAFE_VERSION VERSION
+#define SAFE_VERSION_DOT  '.'
+#define SAFE_VERSION_DASH '-'
 
 /* For some systems (DOS currently), we hardcode the path here.  For
    POSIX systems the values are constructed by the Makefiles, so that
@@ -411,7 +432,7 @@ AM_PATH_GPG_ERROR("$NEED_GPG_ERROR_VERSION",
 #
 # Libgcrypt is our generic crypto library
 #
-AM_PATH_LIBGCRYPT("$NEED_LIBGCRYPT_VERSION",
+AM_PATH_LIBGCRYPT("$NEED_LIBGCRYPT_API:$NEED_LIBGCRYPT_VERSION",
         have_libgcrypt=yes,have_libgcrypt=no)
 
 
@@ -430,16 +451,21 @@ AM_PATH_KSBA("$NEED_KSBA_VERSION",have_ksba=yes,have_ksba=no)
 #
 # libusb allows us to use the integrated CCID smartcard reader driver.
 #
-# Note, that we need the CVS version.  FIXME: libusb should have a
-# regular check as the other libraries do.
-#
-AC_CHECK_LIB(usb, usb_find_device,
+AC_CHECK_LIB(usb, usb_bulk_write,
               [ LIBUSB_LIBS="$LIBUSB_LIBS -lusb"
                 AC_DEFINE(HAVE_LIBUSB,1,
                          [defined if libusb is available])
              ])
 AC_SUBST(LIBUSB_LIBS)
+AC_CHECK_FUNCS(usb_create_match)
 
+#
+# Check wether it is necessary to link against libdl.
+#
+LIBS=""
+AC_SEARCH_LIBS(dlopen, c dl,,,)
+DL_LIBS=$LIBS
+AC_SUBST(DL_LIBS)
 
 #
 # OpenSC is needed by the SCdaemon - if it is not availbale we can only
@@ -450,6 +476,7 @@ if test $have_opensc = yes; then
   AC_DEFINE(HAVE_OPENSC,1,
             [defined if the OpenSC library is available])
 fi
+AM_CONDITIONAL(HAVE_OPENSC, test "$have_opensc" = "yes")
 
 #
 # Check whether the (highly desirable) GNU Pth library is available
@@ -484,6 +511,11 @@ fi
 AC_SUBST(PTH_CFLAGS)
 AC_SUBST(PTH_LIBS)
 
+AC_ARG_ENABLE(threads,
+    AC_HELP_STRING([--disable-threads],[allow building without Pth support]);
+    
+)
+
 
 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
@@ -653,7 +685,7 @@ AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME",
                    [A human readable text with the name of the OS])
 
 
-AM_GNU_GETTEXT_VERSION(0.12.1)
+AM_GNU_GETTEXT_VERSION(0.14.1)
 if test "$try_gettext" = yes; then
   AM_GNU_GETTEXT(,[need-ngettext])
 
@@ -725,6 +757,7 @@ else
   fi
 fi
 
+# fixme: do we really need this - it should be encapsulated in libassuan
 GNUPG_SYS_SO_PEERCRED
 
 # Checks for library functions.
@@ -745,7 +778,6 @@ AC_CHECK_FUNCS(getrusage setrlimit stat setlocale)
 AC_CHECK_FUNCS(flockfile funlockfile fopencookie funopen)
 
 AC_REPLACE_FUNCS(vasprintf)
-AC_REPLACE_FUNCS(fopencookie)
 AC_REPLACE_FUNCS(mkdtemp)
 AC_REPLACE_FUNCS(fseeko ftello)
 AC_REPLACE_FUNCS(isascii)
@@ -759,6 +791,8 @@ AC_REPLACE_FUNCS(putc_unlocked)
 # it is broken.  It has been reported that some Solaris and HP UX systems 
 # raise an SIGILL
 #
+#  fixme: Do we need this - iirc, this is only used by libgcrypt.
+#
 AC_CACHE_CHECK([for gethrtime], 
                [gnupg_cv_func_gethrtime],
                [AC_TRY_LINK([#include <sys/times.h>],[
@@ -797,6 +831,8 @@ GNUPG_FUNC_MKDIR_TAKES_ONE_ARG
 dnl
 dnl Check whether we can use Linux capabilities as requested
 dnl
+#  fixme: Still required?
+#
 if test "$use_capabilities" = "yes" ; then
 use_capabilities=no
 AC_CHECK_HEADERS(sys/capability.h)
@@ -904,6 +940,14 @@ else
 fi
 AC_SUBST(ZLIBS)
 
+
+# See wether we want to run the long test suite.
+AC_ARG_WITH(pkits-tests,
+    AC_HELP_STRING([--with-pkits-tests],[run the PKITS based tests]),
+    [run_pkits_tests=$withval], [run_pkits_tests=no])
+AM_CONDITIONAL(RUN_PKITS_TESTS, test "$run_pkits_tests" = "yes")
+
+
 # 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. 
@@ -950,8 +994,54 @@ AC_SUBST(W32LIBS)
 
 # We use jnlib, so tell other modules about it
 AC_DEFINE(HAVE_JNLIB_LOGGING, 1,
-        [Defined if jnlib style logging fucntions are available])
+          [Defined if jnlib style logging functions are available])
+
+
+
+#
+# Decide what to build
+#
+missing_pth=no
+if test $have_ksba = no; then
+  build_gpgsm=no
+  build_scdaemon=no
+fi
+
+build_agent_threaded=""
+if test "$build_agent" = "yes"; then
+  if test $have_pth = no; then
+     build_agent_threaded="(not multi-threaded)"
+     missing_pth=yes
+  fi
+fi
+
+build_scdaemon_extra=""
+if test "$build_scdaemon" = "yes"; then
+  tmp=""
+  if test $have_pth = no; then
+     build_scdaemon_extra="not multi-threaded"
+     tmp=", "
+     missing_pth=yes
+  fi
+  if test $have_opensc = no; then
+     build_scdaemon_extra="${build_scdaemon_extra}${tmp}no pkcs#15"
+     tmp=", "
+  fi      
+  if test -n "$build_scdaemon_extra"; then
+     build_scdaemon_extra="(${build_scdaemon_extra})"
+  fi
+fi
+
+if test "$build_agent_only" = "yes" ; then
+  build_gpg=no
+  build_gpgsm=no
+  build_scdaemon=no
+fi
 
+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")
 
 
 
@@ -977,7 +1067,7 @@ 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/alpha/libgcrypt/
-*** (at least version $NEED_LIBGCRYPT_VERSION is required.)
+*** (at least version $NEED_LIBGCRYPT_VERSION using API $NEED_LIBGCRYPT_API) is required.)
 ***]])
 fi
 if test "$have_libassuan" = "no"; then
@@ -991,7 +1081,6 @@ if test "$have_libassuan" = "no"; then
 ***]])
 fi
 if test "$have_ksba" = "no"; then
-   die=yes
     AC_MSG_NOTICE([[
 ***
 *** You need libksba to build this program.
@@ -1000,6 +1089,21 @@ if test "$have_ksba" = "no"; then
 *** (at least version $NEED_KSBA_VERSION is required).
 ***]])
 fi
+if test "$missing_pth" = "yes"; then
+    AC_MSG_NOTICE([[
+***
+*** It is strongly suggested to build with support for the
+*** GNU Portable Threads Library (Pth). Please install this
+*** library first or use --disable-threads to allow building
+*** anyway.  The library is for example available at
+***   ftp://ftp.gnu.org/gnu/pth/
+*** On a Debian GNU/Linux system you can install it using 
+***   apt-get install libpth-dev
+***]])
+  if test "$enable_threads" != "no"; then
+     die=yes
+  fi
+fi
 
 if test "$die" = "yes"; then
     AC_MSG_ERROR([[
@@ -1010,43 +1114,6 @@ if test "$die" = "yes"; then
 fi
 
 
-#
-# Decide what to build
-#
-if test $have_ksba = no; then
-  build_gpgsm=no
-  build_scdaemon=no
-fi
-
-build_agent_threaded=""
-if test "$build_agent" = "yes"; then
-  if test $have_pth = no; then
-     build_agent_threaded="(not multi-threaded)"
-  fi
-fi
-
-build_scdaemon_extra=""
-if test "$build_scdaemon" = "yes"; then
-  tmp=""
-  if test $have_pth = no; then
-     build_scdaemon_extra="not multi-threaded"
-     tmp=", "
-  fi
-  if test $have_opensc = no; then
-     build_scdaemon_extra="${build_scdaemon_extra}${tmp}no pkcs#15"
-     tmp=", "
-  fi      
-  if test -n "$build_scdaemon_extra"; then
-     build_scdaemon_extra="(${build_scdaemon_extra})"
-  fi
-fi
-
-
-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")
-
 
 AC_CONFIG_FILES([ m4/Makefile 
 Makefile
@@ -1065,6 +1132,8 @@ tests/Makefile
 ])
 AC_OUTPUT
 
+#tests/pkits/Makefile
+
 
 
 
@@ -1078,10 +1147,12 @@ echo "
         Agent:     $build_agent $build_agent_threaded
         Smartcard: $build_scdaemon $build_scdaemon_extra
 
-        Protect tool:     $show_gnupg_protect_tool_pgm
-        Default agent:    $show_gnupg_agent_pgm
-        Default pinentry: $show_gnupg_pinentry_pgm
-        Default scdaemon: $show_gnupg_scdaemon_pgm
-        Default dirmngr:  $show_gnupg_dirmngr_pgm
+        Protect tool:      $show_gnupg_protect_tool_pgm
+        Default agent:     $show_gnupg_agent_pgm
+        Default pinentry:  $show_gnupg_pinentry_pgm
+        Default scdaemon:  $show_gnupg_scdaemon_pgm
+        Default dirmngr:   $show_gnupg_dirmngr_pgm
+
+        PKITS based tests: $run_pkits_tests
 "