.
[gnupg.git] / configure.ac
index 25446a0..d0ffa8c 100644 (file)
 
 # Process this file with autoconf to produce a configure script.
 AC_PREREQ(2.52)
-min_automake_version="1.7.9"
+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.14-cvs, gnupg-devel@gnupg.org)
+AC_INIT(gnupg, 1.9.16-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.7
+NEED_GPG_ERROR_VERSION=1.0
 
 NEED_LIBGCRYPT_API=1
 NEED_LIBGCRYPT_VERSION=1.1.94
 
-NEED_LIBASSUAN_VERSION=0.6.6
+NEED_LIBASSUAN_VERSION=0.6.9
 
-NEED_KSBA_VERSION=0.9.7
+NEED_KSBA_VERSION=0.9.11
 
 NEED_OPENSC_VERSION=0.8.0
 
@@ -66,6 +66,7 @@ GNUPG_BUILD_PROGRAM(gpg, yes)
 GNUPG_BUILD_PROGRAM(gpgsm, yes)
 GNUPG_BUILD_PROGRAM(agent, yes)
 GNUPG_BUILD_PROGRAM(scdaemon, yes)
+GNUPG_BUILD_PROGRAM(symcryptrun, no)
 
 
 AC_SUBST(PACKAGE)
@@ -133,6 +134,7 @@ 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.
@@ -141,7 +143,7 @@ AC_ARG_ENABLE(agent-only,
     build_agent_only=$enableval)
 
 
-# Configure option to allow ot disallow execution of external
+# Configure option to allow or disallow execution of external
 # programs, like a photo viewer.
 AC_MSG_CHECKING([whether to enable external program execution])
 AC_ARG_ENABLE(exec,
@@ -218,12 +220,6 @@ if test "$use_exec" = yes ; then
     AC_MSG_RESULT($enableval)
   fi
 
-AC_MSG_CHECKING([whether the included zlib is requested])
-AC_ARG_WITH(included-zlib,
-    [  --with-included-zlib    use the zlib code included here],
-[g10_force_zlib=yes], [g10_force_zlib=no] )
-AC_MSG_RESULT($g10_force_zlib)
-
 dnl
 dnl Check whether we want to use Linux capabilities
 dnl
@@ -258,14 +254,20 @@ AH_BOTTOM([
    than one character because the code assumes strlen()==1 */
 #ifdef HAVE_DOSISH_SYSTEM
 #define DIRSEP_C '\\'
-#define EXTSEP_C '.'
 #define DIRSEP_S "\\"
+#define EXTSEP_C '.'
 #define EXTSEP_S "."
+#define PATHSEP_C ';'
+#define PATHSEP_S ";"
+#define EXEEXT_S ".exe"
 #else
 #define DIRSEP_C '/'
-#define EXTSEP_C '.'
 #define DIRSEP_S "/"
+#define EXTSEP_C '.'
 #define EXTSEP_S "."
+#define PATHSEP_C ':'
+#define PATHSEP_S ":"
+#define EXEEXT_S ""
 #endif
 
 /* This is the same as VERSION, but should be overridden if the
@@ -282,27 +284,27 @@ AH_BOTTOM([
    comply with the GNU coding standards. */
 #ifdef HAVE_DRIVE_LETTERS
 #define GNUPG_BINDIR      "c:\\gnupg"
-#define GNUPG_LIBEXECDIR  "c:\\lib\\gnupg"
-#define GNUPG_LIBDIR      "c:\\lib\\gnupg"
-#define GNUPG_DATADIR     "c:\\lib\\gnupg"
+#define GNUPG_LIBEXECDIR  "c:\\gnupg"
+#define GNUPG_LIBDIR      "c:\\gnupg"
+#define GNUPG_DATADIR     "c:\\gnupg"
 #endif
 
 /* Setup the hardwired names of modules. */
 #ifndef GNUPG_DEFAULT_AGENT
-#define GNUPG_DEFAULT_AGENT    ( GNUPG_BINDIR DIRSEP_S "gpg-agent" )
+#define GNUPG_DEFAULT_AGENT    ( GNUPG_BINDIR DIRSEP_S "gpg-agent" EXEEXT_S )
 #endif
 #ifndef GNUPG_DEFAULT_PINENTRY
-#define GNUPG_DEFAULT_PINENTRY ( GNUPG_BINDIR DIRSEP_S "pinentry" )
+#define GNUPG_DEFAULT_PINENTRY ( GNUPG_BINDIR DIRSEP_S "pinentry" EXEEXT_S )
 #endif
 #ifndef GNUPG_DEFAULT_SCDAEMON
-#define GNUPG_DEFAULT_SCDAEMON ( GNUPG_BINDIR DIRSEP_S "scdaemon" )
+#define GNUPG_DEFAULT_SCDAEMON ( GNUPG_BINDIR DIRSEP_S "scdaemon" EXEEXT_S )
 #endif
 #ifndef GNUPG_DEFAULT_DIRMNGR
-#define GNUPG_DEFAULT_DIRMNGR  ( GNUPG_BINDIR DIRSEP_S "dirmngr" )
+#define GNUPG_DEFAULT_DIRMNGR  ( GNUPG_BINDIR DIRSEP_S "dirmngr" EXEEXT_S )
 #endif
 #ifndef GNUPG_DEFAULT_PROTECT_TOOL
 #define GNUPG_DEFAULT_PROTECT_TOOL \
-                    ( GNUPG_LIBEXECDIR DIRSEP_S "gpg-protect-tool" )
+                    ( GNUPG_LIBEXECDIR DIRSEP_S "gpg-protect-tool" EXEEXT_S )
 #endif
 
 
@@ -343,8 +345,9 @@ GNUPG_CHECK_DOCBOOK_TO_TEXI
 
 try_gettext=yes
 have_dosish_system=no
+have_w32_system=no
 case "${host}" in
-    *-*-mingw32*)
+    *-mingw32*)
         # special stuff for Windoze NT
         ac_cv_have_dev_random=no
         AC_DEFINE(USE_ONLY_8DOT3,1,
@@ -356,6 +359,7 @@ case "${host}" in
                    MingW32 systems and these systems lack Posix functions,
                    we use a simplified version of gettext])
         have_dosish_system=yes
+        have_w32_system=yes
         try_gettext="no"
         ;;
     i?86-emx-os2 | i?86-*-os2*emx )
@@ -409,12 +413,18 @@ esac
 
 if test "$have_dosish_system" = yes; then
    AC_DEFINE(HAVE_DOSISH_SYSTEM,1,
-             [defined if we run on some of the PCDOS like systems 
+             [Defined if we run on some of the PCDOS like systems 
               (DOS, Windoze. OS/2) with special properties like
               no file modes])
 fi
 AM_CONDITIONAL(HAVE_DOSISH_SYSTEM, test "$have_dosish_system" = yes)
 
+if test "$have_w32_system" = yes; then
+   AC_DEFINE(HAVE_W32_SYSTEM,1, [Defined if we run on a W32 API based system])
+fi
+AM_CONDITIONAL(HAVE_W32_SYSTEM, test "$have_w32_system" = yes)
+
+
 
 #
 # Checks for libraries.
@@ -468,6 +478,23 @@ DL_LIBS=$LIBS
 AC_SUBST(DL_LIBS)
 
 #
+# Checks for symcryptrun:
+#
+
+# libutil has openpty() and login_tty().
+AC_CHECK_LIB(util, openpty,
+              [ LIBUTIL_LIBS="$LIBUTIL_LIBS -lutil"
+                AC_DEFINE(HAVE_LIBUTIL,1,
+                         [defined if libutil is available])
+             ])
+AC_SUBST(LIBUTIL_LIBS)
+
+# shred is used to clean temporary plain text files.
+AC_PATH_PROG(SHRED, shred, /usr/bin/shred)
+AC_DEFINE_UNQUOTED(SHRED,
+       "${SHRED}", [defines the filename of the shred program])
+
+#
 # OpenSC is needed by the SCdaemon - if it is not availbale we can only
 # build a limited SCdaemon
 #
@@ -480,6 +507,7 @@ AM_CONDITIONAL(HAVE_OPENSC, test "$have_opensc" = "yes")
 
 #
 # Check whether the (highly desirable) 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],
@@ -489,7 +517,8 @@ 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 "$PTH_CONFIG" = "no"; then
+if test "$have_w32_system" = no; then
+ if test "$PTH_CONFIG" = "no"; then
     AC_MSG_WARN([[
 ***
 *** To support concurrent access to the gpg-agent and the SCdaemon
@@ -498,7 +527,7 @@ if test "$PTH_CONFIG" = "no"; then
 *** On a Debian GNU/Linux system you might want to try 
 ***   apt-get install libpth-dev
 ***]])
-else
+ else
   GNUPG_PTH_VERSION_CHECK(1.3.7)
   if test $have_pth = yes; then      
      PTH_CFLAGS=`$PTH_CONFIG --cflags`
@@ -507,14 +536,19 @@ else
      AC_DEFINE(USE_GNU_PTH, 1,
               [Defined if the GNU Portable Thread Library should be used])
   fi
+ fi
+else 
+ have_pth=yes
+ PTH_CFLAGS=""
+ PTH_LIBS=""
+ AC_DEFINE(USE_GNU_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]);
-    
-)
+    AC_HELP_STRING([--disable-threads],[allow building without Pth support])
+             )
 
 
 dnl Must check for network library requirements before doing link tests
@@ -661,7 +695,7 @@ fi
 AC_SUBST(GPGKEYS_MAILTO)
 
 case "${host}" in
-    *-*-mingw32*)
+    *-mingw32*)
         PRINTABLE_OS_NAME="MingW32"
         ;;
     *-*-cygwin*)
@@ -783,6 +817,7 @@ AC_REPLACE_FUNCS(fseeko ftello)
 AC_REPLACE_FUNCS(isascii)
 AC_REPLACE_FUNCS(putc_unlocked)
 AC_REPLACE_FUNCS(strsep)
+AC_REPLACE_FUNCS(ttyname)
 
 
 
@@ -872,7 +907,7 @@ 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=yes],[gnupg_cv_included_regex=no])
+      [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
@@ -907,14 +942,10 @@ fi
 
 dnl Do we have zlib? Must do it here because Solaris failed
 dnl when compiling a conftest (due to the "-lz" from LIBS).
-use_local_zlib=yes
-if test "$g10_force_zlib" = "yes"; then
-  :
-else
-  _cppflags="${CPPFLAGS}"
-  _ldflags="${LDFLAGS}"
+_cppflags="${CPPFLAGS}"
+_ldflags="${LDFLAGS}"
 
-  AC_ARG_WITH(zlib,
+AC_ARG_WITH(zlib,
   [  --with-zlib=DIR         use libz in DIR],[
     if test -d "$withval"; then
       CPPFLAGS="${CPPFLAGS} -I$withval/include"
@@ -922,23 +953,12 @@ else
     fi
   ])
 
-  AC_CHECK_HEADER(zlib.h,
+AC_CHECK_HEADER(zlib.h,
       AC_CHECK_LIB(z, deflateInit2_,
-       use_local_zlib=no
        LIBS="$LIBS -lz",
        CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}),
        CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags})
-fi
  
-if test "$use_local_zlib" = yes ; then
-    AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, true)
-    AC_CONFIG_LINKS(zlib.h:zlib/zlib.h zconf.h:zlib/zconf.h )
-    ZLIBS="../zlib/libzlib.a"
-else
-    AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, false)
-    ZLIBS=
-fi
-AC_SUBST(ZLIBS)
 
 
 # See wether we want to run the long test suite.
@@ -968,15 +988,11 @@ AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
 
 GNUPG_CHECK_GNUMAKE
 
-# add some extra libs here so that previous tests don't fail for
+# Add some extra libs here so that previous tests don't fail for
 # mysterious reasons - the final link step should bail out. 
-case "${host}" in
-    *-*-mingw32*)
-        W32LIBS="-lwsock32"
-        ;;
-    *)
-       ;;
-esac
+if test "$have_w32_system" = yes; then
+   W32LIBS="-lwsock32"
+fi
 
 
 if test "$GCC" = yes; then
@@ -996,6 +1012,10 @@ AC_SUBST(W32LIBS)
 AC_DEFINE(HAVE_JNLIB_LOGGING, 1,
           [Defined if jnlib style logging functions are available])
 
+# For W32 we need to use our Pth emulation code
+if test "$have_w32_system" = yes; then
+  AC_CONFIG_LINKS(pth.h:jnlib/w32-pth.h)
+fi
 
 
 #
@@ -1032,24 +1052,19 @@ if test "$build_scdaemon" = "yes"; then
   fi
 fi
 
+
 if test "$build_agent_only" = "yes" ; then
   build_gpg=no
   build_gpgsm=no
   build_scdaemon=no
 fi
 
-# We don't yet want to build some parts for W32
-case "${host}" in 
-    *-mingw32*) 
-      build_gpg=no
-      ;;
-esac
-
 
 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_SYMCRYPTRUN, test "$build_symcryptrun" = "yes")
 
 
 
@@ -1064,7 +1079,7 @@ if test "$have_gpg_error" = "no"; then
 ***  
 *** You need libgpg-error to build this program.
 **  This library is for example available at
-***   ftp://ftp.gnupg.org/gcrypt/alpha/libgpg-error
+***   ftp://ftp.gnupg.org/gcrypt/libgpg-error
 *** (at least version $NEED_GPG_ERROR_VERSION is required.)
 ***]])
 fi
@@ -1074,7 +1089,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/
+***   ftp://ftp.gnupg.org/gcrypt/libgcrypt/
 *** (at least version $NEED_LIBGCRYPT_VERSION using API $NEED_LIBGCRYPT_API) is required.)
 ***]])
 fi