Use the portable C MPI code for OpenBSD before 3.4, and remove the special
[gnupg.git] / configure.ac
index 888db1e..6d94491 100644 (file)
@@ -1,5 +1,6 @@
 dnl Configure.ac script for GnuPG
-dnl Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+dnl Copyright (C) 1998, 1999, 2000, 2001, 2002,
+dnl               2003 Free Software Foundation, Inc.
 dnl
 dnl This file is part of GnuPG.
 dnl
@@ -20,32 +21,23 @@ dnl
 dnl (Process this file with autoconf to produce a configure script.)
 dnlAC_REVISION($Revision$)dnl
 
-AC_PREREQ(2.52)
+AC_PREREQ(2.57)
 
 # Remember to change the version number immediately *after* a release
 # and remove the "-cvs" or "rc" suffix immediately *before* a release.
-AC_INIT(gnupg, 1.3.2-cvs, bug-gnupg@gnu.org)
+AC_INIT(gnupg, 1.3.5-cvs, bug-gnupg@gnu.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
 
-ALL_LINGUAS="de"
-
-PACKAGE=$PACKAGE_NAME
-VERSION=$PACKAGE_VERSION
-
 AC_CONFIG_AUX_DIR(scripts)
 AC_CONFIG_SRCDIR(g10/g10.c)
-AC_CANONICAL_TARGET()
-AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
+AC_CANONICAL_TARGET
+AM_INIT_AUTOMAKE
 AM_CONFIG_HEADER(config.h)
 
-AC_SUBST(PACKAGE)
-AC_SUBST(VERSION)
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package])
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version of this package])
-AC_DEFINE(_GNU_SOURCE,1,[Some tests rely on this (stpcpy) and it should be used for new programs anyway])
+AC_GNU_SOURCE
 
 dnl
 dnl  Check for random module options
@@ -109,33 +101,50 @@ if test "$use_m_guard" = yes ; then
     AC_DEFINE(M_GUARD,1,[Define to use the (obsolete) malloc guarding feature])
 fi
 
+AC_MSG_CHECKING([whether OpenPGP card support is requested])
+AC_ARG_ENABLE(card-support,
+    [  --enable-card-support   enable OpenPGP card support],
+    card_support=$enableval, card_support=no)
+AC_MSG_RESULT($card_support)
+
 dnl See if we are disabling any algorithms or features for a smaller
 dnl binary
 
-try_dynload=no
+try_extensions=no
 
+use_rsa=yes
 use_idea=yes
 use_cast5=yes
 use_blowfish=yes
 use_aes=yes
 use_twofish=yes
-use_tiger192=yes
 use_sha256=yes
 use_sha512=yes
+use_bzip2=yes
 use_exec=yes
 
 AC_ARG_ENABLE(minimal,
    AC_HELP_STRING([--enable-minimal],[build the smallest gpg binary possible]),
+   use_rsa=no
    use_idea=no
    use_cast5=no
    use_blowfish=no
    use_aes=no
    use_twofish=no
-   use_tiger192=no
    use_sha256=no
    use_sha512=no
+   use_bzip2=no
    use_exec=no)
 
+AC_MSG_CHECKING([whether to enable the RSA public key algorithm])
+AC_ARG_ENABLE(rsa,
+   AC_HELP_STRING([--disable-rsa],[disable the RSA public key algorithm]),
+   use_rsa=$enableval)
+AC_MSG_RESULT($use_rsa)
+if test x"$use_rsa" = xyes ; then
+   AC_DEFINE(USE_RSA,1,[Define to include the RSA public key algorithm])
+fi
+
 AC_MSG_CHECKING([whether to enable the IDEA cipher])
 AC_ARG_ENABLE(idea,
    AC_HELP_STRING([--disable-idea],[disable the IDEA cipher]),
@@ -157,7 +166,7 @@ if test x"$use_idea" = xyes ; then
    else
       IDEA_O=idea-stub.o
       tmp=no
-      try_dynload=yes
+      try_extensions=yes
    fi
    AC_SUBST(IDEA_O)
    AC_MSG_RESULT($tmp)
@@ -199,13 +208,6 @@ if test x"$use_twofish" = xyes ; then
    AC_DEFINE(USE_TWOFISH,1,[Define to include the TWOFISH cipher])
 fi
 
-dnl TIGER192 is defined only after we confirm 64-bit support later
-AC_MSG_CHECKING([whether to enable the TIGER/192 digest])
-AC_ARG_ENABLE(tiger192,
-   AC_HELP_STRING([--disable-tiger192],[disable the TIGER/192 digest]),
-   use_tiger192=$enableval)
-AC_MSG_RESULT($use_tiger192)
-
 AC_MSG_CHECKING([whether to enable the SHA-256 digest])
 AC_ARG_ENABLE(sha256,
    AC_HELP_STRING([--disable-sha256],[disable the SHA-256 digest]),
@@ -222,6 +224,13 @@ AC_ARG_ENABLE(sha512,
    use_sha512=$enableval)
 AC_MSG_RESULT($use_sha512)
 
+dnl BZLIB is defined only after we confirm the library is available later
+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)
+
 AC_MSG_CHECKING([whether to enable external program execution])
 AC_ARG_ENABLE(exec,
     AC_HELP_STRING([--disable-exec],[disable all external program execution]),
@@ -277,10 +286,6 @@ if test "$use_exec" = yes ; then
         try_hkp=$enableval, try_hkp=yes)
     AC_MSG_RESULT($try_hkp)
 
-    if test "$try_hkp" = yes ; then
-      AC_SUBST(GPGKEYS_HKP,"gpgkeys_hkp$EXEEXT")
-    fi
-
     AC_MSG_CHECKING([whether email keyserver support is requested])
     AC_ARG_ENABLE(mailto,
     [  --disable-mailto        disable email keyserver interface],
@@ -318,6 +323,10 @@ AH_BOTTOM([
 #define EXEC_TEMPFILE_ONLY
 #endif
 
+/* This is the major version number of GnuPG so that
+   source included files can test for this. */
+#define GNUPG_MAJOR_VERSION 1
+
 #include "g10defs.h"
 ])
 
@@ -336,6 +345,8 @@ AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
 AC_PROG_CC
 AC_PROG_CPP
+AC_PROG_RANLIB
+AC_CHECK_TOOL(AR, ar, :)
 AC_PATH_PROG(PERL,"perl")
 AC_ISC_POSIX
 AC_SYS_LARGEFILE
@@ -350,6 +361,8 @@ MPI_OPT_FLAGS=""
 
 
 try_gettext=yes
+have_dosish_system=no
+need_dlopen=yes
 case "${target}" in
     *-*-mingw32*)
         # special stuff for Windoze NT
@@ -358,21 +371,19 @@ case "${target}" in
                   [set this to limit filenames to the 8.3 format])
         AC_DEFINE(HAVE_DRIVE_LETTERS,1,
                   [defined if we must run on a stupid file system])
-        AC_DEFINE(HAVE_DOSISH_SYSTEM,1,
-                  [defined if we run on some of the PCDOS like systems 
-                   (DOS, Windoze. OS/2) with special properties like
-                    no file modes])
         AC_DEFINE(USE_SIMPLE_GETTEXT,1,
                   [because the Unix gettext has too much overhead on
                    MingW32 systems and these systems lack Posix functions,
                    we use a simplified version of gettext])
+        have_dosish_system=yes
+        need_dlopen=no
         try_gettext="no"
         ;;
     i?86-emx-os2 | i?86-*-os2*emx )
         # OS/2 with the EMX environment
         ac_cv_have_dev_random=no
         AC_DEFINE(HAVE_DRIVE_LETTERS)
-        AC_DEFINE(HAVE_DOSISH_SYSTEM)
+        have_dosish_system=yes
         try_gettext="no"
         ;;
 
@@ -380,7 +391,7 @@ case "${target}" in
         # DOS with the DJGPP environment
         ac_cv_have_dev_random=no
         AC_DEFINE(HAVE_DRIVE_LETTERS)
-        AC_DEFINE(HAVE_DOSISH_SYSTEM)
+        have_dosish_system=yes
         try_gettext="no"
         ;;
 
@@ -417,9 +428,22 @@ case "${target}" in
        ;;
 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 
+              (DOS, Windoze. OS/2) with special properties like
+              no file modes])
+fi
+AM_CONDITIONAL(HAVE_DOSISH_SYSTEM, test "$have_dosish_system" = yes)
+
 AC_SUBST(MPI_OPT_FLAGS)
 GNUPG_SYS_SYMBOL_UNDERSCORE
 
+dnl This needs to go after AC_PROG_CC so that $EXEEXT is defined
+if test "$try_hkp" = yes ; then
+  AC_SUBST(GPGKEYS_HKP,"gpgkeys_hkp$EXEEXT")
+fi
+
 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
 dnl ELF runtime link paths), then link will fail and LDAP support won't
@@ -430,6 +454,47 @@ AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, gethostbyname,
 AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt,
        [NETLIBS="-lsocket $NETLIBS"]))
 
+dnl Now try for the resolver functions so we can use DNS SRV
+
+AC_ARG_ENABLE(dns-srv,
+   AC_HELP_STRING([--disable-dns-srv],[disable the use of DNS SRV in HKP]),
+   use_dns_srv=$enableval,use_dns_srv=yes)
+
+if test x"$try_hkp" = xyes && test x"$use_dns_srv" = xyes ; then
+  _srv_save_libs=$LIBS
+  LIBS=""
+  # the double underscore thing is a glibc-ism?
+  AC_SEARCH_LIBS(res_query,resolv bind,,
+                 AC_SEARCH_LIBS(__res_query,resolv bind,,use_dns_srv=no))
+  AC_SEARCH_LIBS(dn_expand,resolv bind,,
+                 AC_SEARCH_LIBS(__dn_expand,resolv bind,,use_dns_srv=no))
+  AC_SEARCH_LIBS(dn_skipname,resolv bind,,
+                 AC_SEARCH_LIBS(__dn_skipname,resolv bind,,use_dns_srv=no))
+
+  if test x"$use_dns_srv" = xyes ; then
+
+    # Make sure that the BIND 4 resolver interface is workable before
+    # enabling SRVs.  At some point I'll rewrite the code to use the
+    # BIND 8 resolver API.
+
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+#include <resolv.h>],
+[[unsigned char answer[PACKETSZ]; res_query("foo.bar",C_IN,T_A,answer,PACKETSZ);]])],,use_dns_srv=no)
+  fi
+
+  if test x"$use_dns_srv" = xyes ; then
+     AC_DEFINE(USE_DNS_SRV,1,[define to use DNS SRV])
+     SRVLIBS=$LIBS
+  else
+     AC_MSG_NOTICE([Resolver functions not found or not usable.  Disabling DNS SRV.])
+  fi
+  LIBS=$_srv_save_libs
+fi
+
+AC_SUBST(SRVLIBS)
+
 # Try and link a LDAP test program to weed out unusable LDAP
 # libraries.  -lldap [-llber [-lresolv]] is for OpenLDAP.  OpenLDAP in
 # general is terrible with creating weird dependencies.  If all else
@@ -547,15 +612,11 @@ case "${target}" in
         ;;
     i?86-*-msdosdjgpp*)
         PRINTABLE_OS_NAME="MSDOS/DJGPP"
-        try_dynload=no
+        try_extensions=no
         ;;
     *-linux*)
         PRINTABLE_OS_NAME="GNU/Linux"
         ;;
-dnl let that after linux to avoid gnu-linux problems
-    *-gnu*)
-        PRINTABLE_OS_NAME="GNU/Hurd"
-        ;;
     *)
         PRINTABLE_OS_NAME=`uname -s || echo "Unknown"`
         ;;
@@ -585,7 +646,13 @@ AC_SUBST(MPI_OPT_FLAGS)
 dnl Checks for libraries.
 
 if test "$try_gettext" = yes; then
-  AM_GNU_GETTEXT
+  AM_GNU_GETTEXT(,[need-ngettext])
+
+  # gettext requires some extra checks.  These really should be part of
+  # the basic AM_GNU_GETTEXT macro.  TODO: move other gettext-specific
+  # function checks to here.
+
+  AC_CHECK_FUNCS(strchr)
 else
   USE_NLS=no
   USE_INCLUDED_LIBINTL=no
@@ -595,31 +662,45 @@ else
   AC_SUBST(BUILD_INCLUDED_LIBINTL)
 fi
 
-
-if test "$try_dynload" = yes ; then
-  AC_CHECK_LIB(dl,dlopen)
-  if test "$ac_cv_lib_dl_dlopen" = "yes"; then
-    AC_DEFINE(USE_DYNAMIC_LINKING,1,
-              [define to enable the use of extensions])
-    AC_DEFINE(HAVE_DL_DLOPEN,1,
-              [Defined when the dlopen function family is available])
-  else
-    AC_CHECK_FUNCS(dlopen)
-    if test "$ac_cv_func_dlopen" = "yes"; then
-      AC_DEFINE(USE_DYNAMIC_LINKING)
-      AC_DEFINE(HAVE_DL_DLOPEN)
+if test "$try_extensions" = yes || test x"$card_support" = xyes ; then
+  if test "$need_dlopen" = yes; then
+    _dl_save_libs=$LIBS
+    LIBS=""
+    AC_SEARCH_LIBS(dlopen,dl,found_dlopen=yes)
+    if test x"$found_dlopen" = "xyes" ; then
+      AC_DEFINE(HAVE_DL_DLOPEN,1,
+                [Defined when the dlopen function family is available])
+      DLLIBS=$LIBS
+    else
+      if test "$try_extensions" = yes ; then
+         AC_MSG_NOTICE([dlopen not found.  Disabling extensions.])
+        try_extensions=no
+      fi
+  
+      if test "$card_support" = yes ; then
+         AC_MSG_WARN([dlopen not found.  Disabling OpenPGP card support.])
+         card_support=no
+      fi
     fi
+    LIBS=$_dl_save_libs
   fi
-else
-  AC_MSG_CHECKING(for dynamic loading)
-  DYNLINK_LDFLAGS=
-  DYNLINK_MOD_CFLAGS=
-  AC_MSG_RESULT(has been disabled)
 fi
 
+AC_SUBST(DLLIBS)
+
+if test "$card_support" = yes ; then
+  AC_DEFINE(ENABLE_CARD_SUPPORT,1,[Define to include OpenPGP card support])
+fi
+
+if test "$try_extensions" = yes ; then
+  AC_DEFINE(USE_DYNAMIC_LINKING,1,[Define to enable the use of extensions])
+fi
+
+AM_CONDITIONAL(ENABLE_CARD_SUPPORT, test "$card_support" = yes)
+
 dnl Checks for header files.
 AC_HEADER_STDC
-AC_CHECK_HEADERS(unistd.h langinfo.h termio.h locale.h)
+AC_CHECK_HEADERS(unistd.h langinfo.h termio.h locale.h getopt.h)
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
@@ -642,7 +723,15 @@ AC_CHECK_SIZEOF(unsigned short)
 AC_CHECK_SIZEOF(unsigned int)
 AC_CHECK_SIZEOF(unsigned long)
 AC_CHECK_SIZEOF(unsigned long long)
-AC_CHECK_SIZEOF(uint64_t)
+
+# Ensure that we have UINT64_C before we bother to check for uint64_t
+AC_CACHE_CHECK([for UINT64_C],[gnupg_cv_uint64_c_works],
+   AC_COMPILE_IFELSE(AC_LANG_PROGRAM([#include <inttypes.h>
+uint64_t foo=UINT64_C(42);]),gnupg_cv_uint64_c_works=yes,gnupg_cv_uint64_c_works=no))
+
+if test "$gnupg_cv_uint64_c_works" = "yes" ; then
+   AC_CHECK_SIZEOF(uint64_t)
+fi
 
 if test "$ac_cv_sizeof_unsigned_short" = "0" \
    || test "$ac_cv_sizeof_unsigned_int" = "0" \
@@ -654,22 +743,9 @@ dnl Do we have any 64-bit data types?
 if test "$ac_cv_sizeof_unsigned_int" != "8" \
    && test "$ac_cv_sizeof_unsigned_long" != "8" \
    && test "$ac_cv_sizeof_unsigned_long_long" != "8" \
-   && test "$ac_cv_sizeof_uint64_t" != "8"; then
-    AC_MSG_WARN([No 64-bit types.  Disabling TIGER/192, SHA-384, and SHA-512])
+   && test x"$ac_cv_sizeof_uint64_t" != "x8"; then
+    AC_MSG_NOTICE([No 64-bit types.  Disabling SHA-384 and SHA-512.])
 else
-  if test x"$use_tiger192" = xyes ; then
-     AC_SUBST(TIGER_O,tiger.o)
-     AC_DEFINE(USE_TIGER192,1,[Define to include the TIGER/192 digest])
-
-     AC_MSG_CHECKING([whether to enable old-style TIGER/192 digest support])
-     AC_ARG_ENABLE(old-tiger,
-        [  --enable-old-tiger      enable old-style TIGER/192 digest support],
-        old_tiger=$enableval, old_tiger=no)
-     AC_MSG_RESULT($old_tiger)
-     if test "$old_tiger" = yes ; then
-        AC_DEFINE(USE_OLD_TIGER,1,[Define to use the old fake OID for TIGER/192 digest support])
-     fi
-  fi
   if test x"$use_sha512" = xyes ; then
      AC_SUBST(SHA512_O,sha512.o)
      AC_DEFINE(USE_SHA512,1,[Define to include the SHA-384 and SHA-512 digests])
@@ -681,11 +757,18 @@ 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)
+AC_CHECK_FUNCS(strcasecmp strncasecmp ctermid times)
 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)
+AC_CHECK_FUNCS(waitpid wait4 sigaction sigprocmask rand pipe stat getaddrinfo)
 AC_REPLACE_FUNCS(mkdtemp)
+AC_CHECK_TYPES([struct sigaction, sigset_t],,,[#include <signal.h>])
+
+# See if getopt is in libiberty.  This is of course not optimal since
+# it might be somewhere other than libiberty, but does cover the
+# mingw32 case.
+
+AC_CHECK_FUNC(getopt,,AC_CHECK_LIB(iberty,getopt,AC_SUBST(GETOPT,"-liberty")))
 
 #
 # check for gethrtime and run a testprogram to see whether
@@ -836,8 +919,6 @@ for rndmod in $random_modules "" ; do
     rndegd)
          AC_DEFINE(USE_RNDEGD,1, 
                   [Defined if the EGD based RNG should be used.])
-         EGDLIBS=$NETLIBS
-         AC_SUBST(EGDLIBS)
          ;;
     rndw32)
          AC_DEFINE(USE_RNDW32,1, 
@@ -936,22 +1017,66 @@ else
   AC_CHECK_HEADER(zlib.h,
       AC_CHECK_LIB(z, deflateInit2_,
        use_local_zlib=no
-       LIBS="$LIBS -lz",
+       ZLIBS="-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
+
+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="")
+
+  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})
+  fi
+fi
+
+AM_CONDITIONAL(ENABLE_BZIP2_SUPPORT,test x"$have_bz2" = "xyes")
 AC_SUBST(ZLIBS)
 
 
+#
+# libusb allows us to use the integrated CCID smartcard reader driver.
+#
+# Note, that we need the CVS (unstable) version. 
+#
+LIBUSB_LIBS=""
+if test "$card_support" = yes; then
+    AC_CHECK_LIB(usb, usb_find_device,
+                 [ LIBUSB_LIBS="$LIBUSB_LIBS -lusb"
+                   AC_DEFINE(HAVE_LIBUSB,1,
+                   [defined if libusb is available])
+                 ])
+fi
+AC_SUBST(LIBUSB_LIBS)
+
+
+
 # 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. 
@@ -976,12 +1101,15 @@ GNUPG_CHECK_GNUMAKE
 # mysterious reasons - the final link step should bail out. 
 case "${target}" in
     *-*-mingw32*)
-        LIBS="$LIBS -lwsock32"
+dnl      NETLIBS="$NETLIBS -lwsock32"
+       W32LIBS="-lwsock32"
         ;;
     *)
        ;;
 esac
 
+AC_SUBST(NETLIBS)
+AC_SUBST(W32LIBS)
 
 if test "$GCC" = yes; then
     if test "$USE_MAINTAINER_MODE" = "yes"; then
@@ -991,8 +1119,6 @@ if test "$GCC" = yes; then
     fi
 fi
 
-AC_SUBST(NETLIBS)
-
 
 if test "$print_egd_warning" = yes; then
   AC_MSG_WARN([[
@@ -1007,9 +1133,10 @@ if test "$print_egd_warning" = yes; then
 *** in Perl and available at the GnuPG FTP servers.  For more information
 *** consult the GnuPG webpages:
 ***
-***           http://www.gnupg.org/download.html#egd
+***           http://www.gnupg.org/download/#EGD
 ***
-*** You may want to run ./configure with --enable-static-rnd=egd to use it.
+*** You may want to run ./configure with --enable-static-rnd=egd or
+*** --enable-static-rnd=auto to use it.
 ***]])
 fi
 
@@ -1019,20 +1146,20 @@ AC_CONFIG_COMMANDS(g10defs.h,[[
 cat >g10defs.tmp <<G10EOF
 /* Generated automatically by configure */
 #ifdef HAVE_DRIVE_LETTERS
-  #define G10_LOCALEDIR     "c:\\\\lib\\\\gnupg\\\\locale"
-  #define GNUPG_LIBDIR      "c:\\\\lib\\\\gnupg"
-  #define GNUPG_LIBEXECDIR  "c:\\\\lib\\\\gnupg"
-  #define GNUPG_DATADIR     "c:\\\\lib\\\\gnupg"
-  #define GNUPG_HOMEDIR     "c:\\\\gnupg"
+#define G10_LOCALEDIR     "c:\\\\lib\\\\gnupg\\\\locale"
+#define GNUPG_LIBDIR      "c:\\\\lib\\\\gnupg"
+#define GNUPG_LIBEXECDIR  "c:\\\\lib\\\\gnupg"
+#define GNUPG_DATADIR     "c:\\\\lib\\\\gnupg"
+#define GNUPG_HOMEDIR     "c:\\\\gnupg"
+#else
+#define G10_LOCALEDIR     "${datadir}/locale"
+#define GNUPG_LIBDIR      "${libdir}/gnupg"
+#define GNUPG_DATADIR     "${datadir}/gnupg"
+#ifdef __VMS
+#define GNUPG_HOMEDIR "/SYS\$LOGIN/gnupg" 
 #else
-  #define G10_LOCALEDIR     "${datadir}/locale"
-  #define GNUPG_LIBDIR      "${libdir}/gnupg"
-  #define GNUPG_DATADIR     "${datadir}/gnupg"
-  #ifdef __VMS
-    #define GNUPG_HOMEDIR "/SYS\$LOGIN/gnupg" 
-  #else
-    #define GNUPG_HOMEDIR "~/.gnupg" 
-  #endif
+#define GNUPG_HOMEDIR "~/.gnupg" 
+#endif
 #endif
 /* those are here to be redefined by handcrafted g10defs.h.
    Please note that the string version must not contain more
@@ -1048,6 +1175,13 @@ cat >g10defs.tmp <<G10EOF
 #define DIRSEP_S "/"
 #define EXTSEP_S "."
 #endif
+/* This is the same as VERSION, but should be overridden if the
+   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 '-'
 G10EOF
 cat mpi/mpi-asm-defs.h >>g10defs.tmp 
 if cmp -s g10defs.h g10defs.tmp 2>/dev/null; then
@@ -1070,6 +1204,7 @@ DATADIRNAME=$DATADIRNAME
 
 AC_CONFIG_FILES([
 Makefile
+m4/Makefile
 intl/Makefile
 po/Makefile.in
 util/Makefile