Create bag attributes so that Mozilla will accept these files.
[gnupg.git] / configure.ac
index dee0a9f..2bb1d3f 100644 (file)
@@ -1,6 +1,6 @@
 # configure.ac - for GnuPG 1.9
 # Copyright (C) 1998, 1999, 2000, 2001, 2002,
-#               2003, 2004 Free Software Foundation, Inc.
+#               2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 # 
 # This file is part of GnuPG.
 # 
 # 
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+# USA.
 
 # Process this file with autoconf to produce a configure script.
 AC_PREREQ(2.52)
 min_automake_version="1.9.3"
 
-# Version number: Remember to change it immediately *after* a release.
-#                 Add a "-cvs" prefix for non-released code.
-AC_INIT(gnupg, 1.9.17-cvs, gnupg-devel@gnupg.org)
+# 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.22])
+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]),
+        [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.
@@ -34,9 +43,9 @@ NEED_GPG_ERROR_VERSION=1.0
 NEED_LIBGCRYPT_API=1
 NEED_LIBGCRYPT_VERSION=1.1.94
 
-NEED_LIBASSUAN_VERSION=0.6.9
+NEED_LIBASSUAN_VERSION=0.6.10
 
-NEED_KSBA_VERSION=0.9.11
+NEED_KSBA_VERSION=0.9.13
 
 
 PACKAGE=$PACKAGE_NAME
@@ -139,6 +148,16 @@ AC_ARG_ENABLE(agent-only,
     build_agent_only=$enableval)
 
 
+# Allow disabling of bzib2 support.
+# It is defined only after we confirm the library is available later
+use_bzip2=yes
+AC_MSG_CHECKING([whether to enable the BZIP2 compression algorithm])
+AC_ARG_ENABLE(bzip2,
+   AC_HELP_STRING([--disable-bzip2],[disable the BZIP2 compression algorithm]),
+   use_bzip2=$enableval)
+AC_MSG_RESULT($use_bzip2)
+
+
 # Configure option to allow or disallow execution of external
 # programs, like a photo viewer.
 AC_MSG_CHECKING([whether to enable external program execution])
@@ -216,6 +235,34 @@ if test "$use_exec" = yes ; then
     AC_MSG_RESULT($enableval)
   fi
 
+
+dnl
+dnl Check for the key/uid cache size.  This can't be zero, but can be
+dnl pretty small on embedded systems.
+dnl
+AC_MSG_CHECKING([for the size of the key and uid cache])
+AC_ARG_ENABLE(key-cache,
+       AC_HELP_STRING([--enable-key-cache=SIZE],[Set key cache to SIZE (default 4096)]),,enableval=4096)
+
+if test "$enableval" = "no"; then
+   enableval=5
+elif test "$enableval" = "yes" || test "$enableval" = ""; then
+   enableval=4096
+fi
+
+changequote(,)dnl
+key_cache_size=`echo "$enableval" | sed 's/[A-Za-z]//g'`
+changequote([,])dnl
+
+if test "$enableval" != "$key_cache_size" || test "$key_cache_size" -lt 5; then
+   AC_MSG_ERROR([invalid key-cache size])
+fi
+
+AC_MSG_RESULT($key_cache_size)
+AC_DEFINE_UNQUOTED(PK_UID_CACHE_SIZE,$key_cache_size,[Size of the key and UID caches])
+
+
+
 dnl
 dnl Check whether we want to use Linux capabilities
 dnl
@@ -337,6 +384,7 @@ AC_PROG_RANLIB
 AC_CHECK_TOOL(AR, ar, :)
 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)
@@ -425,6 +473,8 @@ if test "$have_w32_system" = yes; then
 fi
 AM_CONDITIONAL(HAVE_W32_SYSTEM, test "$have_w32_system" = yes)
 
+# These need to go after AC_PROG_CC so that $EXEEXT is defined
+AC_DEFINE_UNQUOTED(EXEEXT,"$EXEEXT",[The executable file extension, if any])
 
 
 #
@@ -462,6 +512,11 @@ AM_PATH_LIBASSUAN("$NEED_LIBASSUAN_VERSION",
 # libksba is our X.509 support library
 #
 AM_PATH_KSBA("$NEED_KSBA_VERSION",have_ksba=yes,have_ksba=no)
+# fixme: Remove the following test and require newer libksba instead.
+_ksba_save_libs=$LIBS
+LIBS=$KSBA_LIBS
+AC_CHECK_FUNCS(ksba_dn_teststr)
+LIBS=$_ksba_save_libs
 
 #
 # libusb allows us to use the integrated CCID smartcard reader driver.
@@ -527,9 +582,11 @@ if test "$have_w32_system" = no; then
   if test $have_pth = yes; then      
      PTH_CFLAGS=`$PTH_CONFIG --cflags`
      PTH_LIBS=`$PTH_CONFIG --ldflags`
-     PTH_LIBS="$PTH_LIBS `$PTH_CONFIG --libs`"
+     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 
@@ -537,14 +594,11 @@ else
  PTH_CFLAGS=""
  PTH_LIBS=""
  AC_DEFINE(USE_GNU_PTH, 1)
+ AC_DEFINE(HAVE_PTH, 1)
 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
@@ -667,6 +721,20 @@ fi
 AC_SUBST(GPGKEYS_LDAP)
 AC_SUBST(LDAPLIBS)
 
+
+# Check for curl.  We fake the curl API if libcurl isn't installed.
+
+# fixme: need to add this
+#LIBCURL_CHECK_CONFIG([yes],,,[fake_curl=yes])
+#AM_CONDITIONAL(FAKE_CURL,test x"$fake_curl" = xyes)
+AM_CONDITIONAL(FAKE_CURL,1)
+
+# Generic, for us, means curl
+
+if test x"$try_generic" = xyes ; then
+   AC_SUBST(GPGKEYS_CURL,"gpgkeys_curl$EXEEXT")
+fi
+
 dnl This isn't necessarily sendmail itself, but anything that gives a
 dnl sendmail-ish interface to the outside world.  That includes qmail,
 dnl postfix, etc.  Basically, anything that can handle "sendmail -t".
@@ -798,23 +866,21 @@ AC_CHECK_FUNCS(strcasecmp strncasecmp ctermid times gmtime_r)
 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 getaddrinfo)
+AC_CHECK_FUNCS(fseeko ftello ttyname isascii)
 
 AC_CHECK_TYPES([struct sigaction, sigset_t],,,[#include <signal.h>])
 
+# gnulib checks
+gl_SOURCE_BASE(gl)
+gl_M4_BASE(gl/m4)
+gl_MODULES(setenv strsep mkdtemp vasprintf xsize)
+gl_INIT
+
 # These are needed by libjnlib - fixme: we should have macros for them
 AC_CHECK_FUNCS(memicmp stpcpy strlwr strtoul memmove stricmp strtol)
 AC_CHECK_FUNCS(getrusage setrlimit stat setlocale)
 AC_CHECK_FUNCS(flockfile funlockfile fopencookie funopen)
 
-AC_REPLACE_FUNCS(vasprintf)
-AC_REPLACE_FUNCS(mkdtemp)
-AC_REPLACE_FUNCS(fseeko ftello)
-AC_REPLACE_FUNCS(isascii)
-AC_REPLACE_FUNCS(putc_unlocked)
-AC_REPLACE_FUNCS(strsep)
-AC_REPLACE_FUNCS(ttyname)
-
-
 
 #
 # check for gethrtime and run a testprogram to see whether
@@ -935,11 +1001,13 @@ else
   AC_DEFINE(DISABLE_REGEX,1,[ Define to disable regular expression support ])
 fi
 
-dnl Do we have zlib? Must do it here because Solaris failed
-dnl when compiling a conftest (due to the "-lz" from LIBS).
+#
+# Do we have zlib? Must do it here because Solaris failed
+# when compiling a conftest (due to the "-lz" from LIBS).
+# Note that we combine zlib and bzlib2 in ZLIBS.
+#
 _cppflags="${CPPFLAGS}"
 _ldflags="${LDFLAGS}"
-
 AC_ARG_WITH(zlib,
   [  --with-zlib=DIR         use libz in DIR],[
     if test -d "$withval"; then
@@ -950,10 +1018,43 @@ AC_ARG_WITH(zlib,
 
 AC_CHECK_HEADER(zlib.h,
       AC_CHECK_LIB(z, deflateInit2_,
-       LIBS="$LIBS -lz",
+       ZLIBS="-lz",
        CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}),
        CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags})
+
+#
+# Check whether we can support bzip2
+# 
+if test "$use_bzip2" = yes ; then
+  _cppflags="${CPPFLAGS}"
+  _ldflags="${LDFLAGS}"
+  AC_ARG_WITH(bzip2,
+     AC_HELP_STRING([--with-bzip2=DIR],[look for bzip2 in DIR]),
+      [
+      if test -d "$withval" ; then
+        CPPFLAGS="${CPPFLAGS} -I$withval/include"
+        LDFLAGS="${LDFLAGS} -L$withval/lib"
+      fi
+      ],withval="")
+
+  # Checking alongside stdio.h as an early version of bzip2 (1.0)
+  # required stdio.h to be included before bzlib.h, and Solaris 9 is 
+  # woefully out of date.
+  if test "$withval" != no ; then
+     AC_CHECK_HEADER(bzlib.h,
+        AC_CHECK_LIB(bz2,BZ2_bzCompressInit,
+         [
+         have_bz2=yes
+         ZLIBS="$ZLIBS -lbz2"
+         AC_DEFINE(HAVE_BZIP2,1,
+                 [Defined if the bz2 compression library is available])
+         ],
+         CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}),
+         CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags},[#include <stdio.h>])
+  fi
+fi
+AM_CONDITIONAL(ENABLE_BZIP2_SUPPORT,test x"$have_bz2" = "xyes")
+AC_SUBST(ZLIBS)
 
 
 # See wether we want to run the long test suite.
@@ -993,12 +1094,26 @@ fi
 if test "$GCC" = yes; then
     if test "$USE_MAINTAINER_MODE" = "yes"; then
         CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
-        CFLAGS="$CFLAGS -Wformat-nonliteral"
+        CFLAGS="$CFLAGS -Wno-format-y2k -Wformat-security"
     else
         CFLAGS="$CFLAGS -Wall"
     fi
 fi
 
+#
+# This is handy for debugging so the compiler doesn't rearrange
+# things and eliminate variables.
+#
+AC_ARG_ENABLE(optimization,
+   AC_HELP_STRING([--disable-optimization],
+                  [disable compiler optimization]),
+                  [if test $enableval = no ; then
+                      CFLAGS=`echo $CFLAGS | sed 's/-O[[0-9]]//'`
+                   fi])
+
+
+
+
 AC_SUBST(NETLIBS)
 AC_SUBST(W32LIBS)
 
@@ -1106,17 +1221,14 @@ fi
 if test "$missing_pth" = "yes"; then
     AC_MSG_NOTICE([[
 ***
-*** It is strongly suggested to build with support for the
+*** It is now required 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
+*** library first.  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
+   die=yes
 fi
 
 if test "$die" = "yes"; then
@@ -1133,10 +1245,12 @@ AC_CONFIG_FILES([ m4/Makefile
 Makefile
 po/Makefile.in
 intl/Makefile
+gl/Makefile
 jnlib/Makefile
 common/Makefile
 kbx/Makefile
 g10/Makefile
+keyserver/Makefile
 sm/Makefile
 agent/Makefile
 scd/Makefile