Fix APDU buffer problem under MAC OS.
[gnupg.git] / configure.ac
index 2bbca08..7cf8bc5 100644 (file)
@@ -1,6 +1,6 @@
 # configure.ac - for GnuPG 2.0
 # Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-#               2006, 2007 Free Software Foundation, Inc.
+#               2006, 2007, 2008 Free Software Foundation, Inc.
 # 
 # This file is part of GnuPG.
 # 
@@ -24,13 +24,14 @@ min_automake_version="1.10"
 # 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], [2.0.5])
+m4_define([my_version], [2.0.10])
 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;}')]))
-AC_INIT([gnupg], my_version[]m4_if(my_issvn,[yes],[-svn[]svn_revision]),
+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
@@ -43,7 +44,7 @@ NEED_LIBGCRYPT_API=1
 NEED_LIBGCRYPT_VERSION=1.2.2
 
 NEED_LIBASSUAN_API=1
-NEED_LIBASSUAN_VERSION=0.9.3
+NEED_LIBASSUAN_VERSION=1.0.4
 
 NEED_KSBA_API=1
 NEED_KSBA_VERSION=1.0.2
@@ -56,8 +57,8 @@ VERSION=$PACKAGE_VERSION
 AC_CONFIG_AUX_DIR(scripts)
 AC_CONFIG_SRCDIR(sm/gpgsm.c)
 AM_CONFIG_HEADER(config.h)
-AC_CANONICAL_TARGET()
 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
+AC_CANONICAL_HOST
 AB_INIT
 
 AC_GNU_SOURCE
@@ -69,10 +70,12 @@ have_libassuan=no
 have_ksba=no
 have_pth=no
 have_libusb=no
+have_adns=no
 
 use_bzip2=yes
 use_exec=yes
 disable_keyserver_path=no
+use_camellia=no
 
 
 GNUPG_BUILD_PROGRAM(gpg, yes)
@@ -172,6 +175,21 @@ AC_ARG_ENABLE(bzip2,
    use_bzip2=$enableval)
 AC_MSG_RESULT($use_bzip2)
 
+# Check whether testing support for Camellia has been requested
+AC_MSG_CHECKING([whether to enable the CAMELLIA cipher for gpg])
+AC_ARG_ENABLE(camellia,
+   AC_HELP_STRING([--enable-camellia],[enable the CAMELLIA cipher for gpg]),
+   use_camellia=$enableval)
+AC_MSG_RESULT($use_camellia)
+if test x"$use_camellia" = xyes ; then
+   AC_DEFINE(USE_CAMELLIA,1,[Define to include the CAMELLIA cipher into gpg])
+   AC_MSG_WARN([[
+***
+*** The Camellia cipher for gpg is for testing only and 
+*** is NOT for production use!
+***]])
+fi
+
 
 # Configure option to allow or disallow execution of external
 # programs, like a photo viewer.
@@ -389,6 +407,17 @@ AH_BOTTOM([
 #endif
 
 
+/* Hack used for W32: ldap.m4 also tests for the ASCII version of
+   ldap_start_tls_s because that is the actual symbol used in the
+   library.  winldap.h redefines it to our commonly used value,
+   thus we define our usual macro here.  */
+#ifdef HAVE_LDAP_START_TLS_SA
+# ifndef HAVE_LDAP_START_TLS_S
+#  define HAVE_LDAP_START_TLS_S 1
+# endif
+#endif
+
+
 /* Tell libgcrypt not to use its own libgpg-error implementation. */
 #define USE_LIBGPG_ERROR 1
 
@@ -608,6 +637,8 @@ if test "$have_libassuan" = "yes"; then
   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.])],)  
+  AC_DEFINE_UNQUOTED(GNUPG_LIBASSUAN_VERSION, "$libassuan_version",
+            [version of the libbassuan library])
 fi
 
 
@@ -730,6 +761,7 @@ if test x"$use_dns_pka" = xyes || test x"$use_dns_srv" = xyes \
     # Make sure that the BIND 4 resolver interface is workable before
     # enabling any code that calls it.  At some point I'll rewrite the
     # code to use the BIND 8 resolver API.
+    # We might also want to use adns instead.
 
     AC_MSG_CHECKING([whether the resolver is usable])
     AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <sys/types.h>
@@ -793,6 +825,32 @@ AC_SUBST(DNSLIBS)
 
 AM_CONDITIONAL(USE_DNS_SRV, test x"$use_dns_srv" = xyes)
 
+
+#
+# Check for ADNS.
+#
+_cppflags="${CPPFLAGS}"
+_ldflags="${LDFLAGS}"
+AC_ARG_WITH(adns,
+            AC_HELP_STRING([--with-adns=DIR],
+                           [look for the adns library in DIR]),
+            [if test -d "$withval"; then
+               CPPFLAGS="${CPPFLAGS} -I$withval/include"
+               LDFLAGS="${LDFLAGS} -L$withval/lib"
+             fi])
+AC_CHECK_HEADERS(adns.h,
+                AC_CHECK_LIB(adns, adns_init,
+                             [have_adns=yes],
+                             [CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}]),
+                [CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}])
+if test "$have_adns" = "yes"; then
+  ADNSLIBS="-ladns" 
+fi
+AC_SUBST(ADNSLIBS)
+# Newer adns versions feature a free function to be used under W32.
+AC_CHECK_FUNCS(adns_free)
+
+
 #
 # Check for LDAP
 #
@@ -802,8 +860,9 @@ fi
 
 #
 # Check for curl.  We fake the curl API if libcurl isn't installed.
+# We require 7.10 or later as we use curl_version_info().
 #
-LIBCURL_CHECK_CONFIG([yes],,,[fake_curl=yes])
+LIBCURL_CHECK_CONFIG([yes],[7.10],,[fake_curl=yes])
 AM_CONDITIONAL(FAKE_CURL,test x"$fake_curl" = xyes)
 
 # Generic, for us, means curl
@@ -868,13 +927,18 @@ AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME",
 
 
 #
+# Checking for iconv
+#
+AM_ICONV
+
+
+#
 # Check for gettext
 #
 AC_MSG_NOTICE([checking for gettext])
 AM_PO_SUBDIRS
-AM_GNU_GETTEXT_VERSION([0.16.1])
+AM_GNU_GETTEXT_VERSION([0.17])
 if test "$try_gettext" = yes; then
-  AM_ICONV
   AM_GNU_GETTEXT([external],[need-ngettext])
 
   # gettext requires some extra checks.  These really should be part of
@@ -893,6 +957,12 @@ else
   AC_SUBST(POSUB)
 fi
 
+# We use HAVE_LANGINFO_CODESET in a couple of places.
+AM_LANGINFO_CODESET
+
+# Checks required for our use locales
+gt_LC_MESSAGES
+
 
 #
 # SELinux support
@@ -924,6 +994,9 @@ AC_TYPE_MODE_T
 AC_TYPE_SIGNAL
 AC_DECL_SYS_SIGLIST
 
+gl_HEADER_SYS_SOCKET
+gl_TYPE_SOCKLEN_T
+
 AC_ARG_ENABLE(endian-check,
               AC_HELP_STRING([--disable-endian-check],
              [disable the endian check and trust the OS provided macros]),
@@ -1015,10 +1088,8 @@ gl_INIT
 #
 GNUPG_FUNC_MKDIR_TAKES_ONE_ARG
 
-
 #
 # Sanity check regex.  Tests adapted from mutt.
-# FIXME: We should use the the regex from gnulib
 #
 AC_MSG_CHECKING([whether regular expression support is requested])
 AC_ARG_ENABLE(regex,
@@ -1028,20 +1099,28 @@ AC_ARG_ENABLE(regex,
 AC_MSG_RESULT($use_regex)
 
 if test "$use_regex" = yes ; then
-  AC_MSG_CHECKING([whether the included regex lib is requested])
-  AC_ARG_WITH(included-regex,
-      [  --with-included-regex   use the included GNU regex library],
-      [gnupg_cv_included_regex="$withval"],[gnupg_cv_included_regex=no])
-  AC_MSG_RESULT($gnupg_cv_included_regex)
-
-  if test $gnupg_cv_included_regex = no ; then
-     # Does the system have regex functions at all?
-     AC_CHECK_FUNC(regcomp,gnupg_cv_included_regex=no,
-                          gnupg_cv_included_regex=yes)
-  fi
+  _cppflags="${CPPFLAGS}"
+  _ldflags="${LDFLAGS}"
+  AC_ARG_WITH(regex,
+     AC_HELP_STRING([--with-regex=DIR],[look for regex in DIR]),
+      [
+      if test -d "$withval" ; then
+        CPPFLAGS="${CPPFLAGS} -I$withval/include"
+        LDFLAGS="${LDFLAGS} -L$withval/lib"
+      fi
+      ],withval="")     
+
+  # Does the system have regex functions at all?
+  AC_SEARCH_LIBS([regcomp], [regex])
+  AC_CHECK_FUNC(regcomp, gnupg_cv_have_regex=yes, gnupg_cv_have_regex=no)
 
-  if test $gnupg_cv_included_regex = no ; then
-     AC_CACHE_CHECK([whether your system's regexp library is broken],
+  if test $gnupg_cv_have_regex = no; then
+    use_regex=no
+  else
+    if test x"$cross_compiling" = xyes; then
+      AC_MSG_WARN([cross compiling; assuming regexp libray is not broken])
+    else
+      AC_CACHE_CHECK([whether your system's regexp library is broken],
        [gnupg_cv_regex_broken],
        AC_TRY_RUN([
 #include <unistd.h>
@@ -1049,20 +1128,20 @@ if test "$use_regex" = yes ; then
 main() { regex_t blah ; regmatch_t p; p.rm_eo = p.rm_eo; return regcomp(&blah, "foo.*bar", REG_NOSUB) || regexec (&blah, "foobar", 0, NULL, 0); }],
        gnupg_cv_regex_broken=no, gnupg_cv_regex_broken=yes, gnupg_cv_regex_broken=yes))
 
-     if test $gnupg_cv_regex_broken = yes ; then
-      AC_MSG_WARN(your regex is broken - using the included GNU regex instead.)
-      gnupg_cv_included_regex=yes
-     fi
-  fi
-
-  if test $gnupg_cv_included_regex = yes; then
-     AC_DEFINE(USE_INTERNAL_REGEX,1,[ Define if you want to use the included regex lib ])
+      if test $gnupg_cv_regex_broken = yes; then
+        AC_MSG_WARN([your regex is broken - disabling regex use])
+        use_regex=no
+      fi
+    fi
   fi
-else
-  AC_DEFINE(DISABLE_REGEX,1,[ Define to disable regular expression support ])
+  CPPFLAGS="${_cppflags}"
+  LDFLAGS="${_ldflags}"
 fi
 
-AM_CONDITIONAL(USE_INTERNAL_REGEX, test x"$gnupg_cv_included_regex" = xyes)
+if test "$use_regex" != yes ; then
+  AC_DEFINE(DISABLE_REGEX,1, [Define to disable regular expression support])
+fi
+AM_CONDITIONAL(DISABLE_REGEX, test x"$use_regex" != xyes)
 
 
 
@@ -1125,12 +1204,6 @@ AC_SUBST(ZLIBS)
 # Check for readline support
 GNUPG_CHECK_READLINE
 
-# 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
@@ -1223,6 +1296,11 @@ estream_INIT
 #
 # Decide what to build
 #
+if test "$have_adns" = "yes"; then
+  AC_SUBST(GPGKEYS_KDNS, "gpg2keys_kdns$EXEEXT")
+fi
+
+
 missing_pth=no
 if test $have_ksba = no; then
   build_gpgsm=no
@@ -1366,13 +1444,10 @@ tools/Makefile
 doc/Makefile
 tests/Makefile
 tests/openpgp/Makefile
+tests/pkits/Makefile
 ])
 AC_OUTPUT
 
-#tests/pkits/Makefile
-
-
-
 
 echo "
         GnuPG v${VERSION} has been configured as follows:
@@ -1389,7 +1464,18 @@ echo "
         Default pinentry:  $show_gnupg_pinentry_pgm
         Default scdaemon:  $show_gnupg_scdaemon_pgm
         Default dirmngr:   $show_gnupg_dirmngr_pgm
-
-        PKITS based tests: $run_pkits_tests
 "
+if test x"$use_regex" != xyes ; then
+echo "
+        Warning: No regular expression support available.
+                 OpenPGP trust signatures won't work.
+                 gpg-check-pattern will not be build.
+"
+fi
+if test  x"$use_camellia" = xyes ; then
+  echo
+  echo "WARNING: The Camellia cipher for gpg is for testing only"
+  echo "         and is NOT for production use!"
+  echo
+fi