dnl Configure script for GnuPG
dnl Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
dnl
dnl This file is part of GnuPG.
dnl
dnl GnuPG is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 2 of the License, or
dnl (at your option) any later version.
dnl 
dnl GnuPG is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
dnl GNU General Public License for more details.
dnl 
dnl You should have received a copy of the GNU General Public License
dnl along with this program; if not, write to the Free Software
dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
dnl
dnl (Process this file with autoconf to produce a configure script.)
AC_REVISION($Revision: 1.103.2.33 $)dnl

dnl Must reset CDPATH so that bash's cd does not print to stdout
CDPATH=

AC_PREREQ(2.13)
AC_INIT(g10/g10.c)
AC_CONFIG_AUX_DIR(scripts)
AM_CONFIG_HEADER(config.h)
AC_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE(gnupg,`cat $srcdir/VERSION`)


ALL_LINGUAS="da de eo es_ES et fr id it ja nl pl pt_BR pt_PT ru sv tr"
static_modules="sha1 md5 rmd160"
static_random_module=""

AC_PROG_AWK

MODULES_IN_CIPHER=`$AWK '/^EXTRA_PROGRAMS/ { for(i=3;i<=NF;i++) print $i}' \
                                              $srcdir/cipher/Makefile.am`

dnl
dnl  Check for random module options
dnl
dnl  Fixme: get the list of available modules from MODULES_IN_CIPHER
dnl         and check against this list

AC_MSG_CHECKING([which static random module to use])
AC_ARG_ENABLE(static-rnd,
    [  --enable-static-rnd=[egd|unix|linux|none]  ],
[use_static_rnd=$enableval], [use_static_rnd=default] )

if test "$use_static_rnd" = no; then
    use_static_rnd=default
fi

case "$use_static_rnd" in
    egd | linux | unix | none | default )
      AC_MSG_RESULT($use_static_rnd)
      ;;
    * )
      AC_MSG_RESULT(invalid argument)
      AC_MSG_ERROR(there is no random module rnd$use_static_rnd)
      ;;
esac

AC_ARG_WITH(egd-socket,
    [  --with-egd-socket=NAME  Use NAME for the EGD socket)],
            egd_socket_name="$withval", egd_socket_name="" )
AC_DEFINE_UNQUOTED(EGD_SOCKET_NAME, "$egd_socket_name")


dnl
dnl See whether the user wants to disable checking for /dev/random

AC_MSG_CHECKING([whether use of /dev/random is requested])
AC_ARG_ENABLE(dev-random,
[  --disable-dev-random    disable the use of dev random],
    try_dev_random=$enableval, try_dev_random=yes)
AC_MSG_RESULT($try_dev_random)


dnl
dnl  Check other options
dnl

AC_MSG_CHECKING([whether use of extensions is requested])
AC_ARG_ENABLE(dynload,
[  --disable-dynload       disable use of extensions],
    try_dynload=$enableval, try_dynload=yes)
AC_MSG_RESULT($try_dynload)

AC_MSG_CHECKING([whether assembler modules are requested])
AC_ARG_ENABLE(asm,
[  --disable-asm           do not use assembler modules],
     try_asm_modules=$enableval, try_asm_modules=yes)
AC_MSG_RESULT($try_asm_modules)

AC_MSG_CHECKING([whether memory guard is requested])
AC_ARG_ENABLE(m-guard,
    [  --enable-m-guard        enable memory guard facility],
    use_m_guard=$enableval, use_m_guard=no)
AC_MSG_RESULT($use_m_guard)
if test "$use_m_guard" = yes ; then
    AC_DEFINE(M_GUARD)
fi


AC_MSG_CHECKING([whether 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
AC_MSG_CHECKING([whether use of capabilities is requested])
AC_ARG_WITH(capabilities,
    [  --with-capabilities     use linux capabilities [default=no]],
[use_capabilities="$withval"],[use_capabilities=no])
AC_MSG_RESULT($use_capabilities)





AM_MAINTAINER_MODE

dnl Checks for programs.

dnl
dnl Setup some stuff depending on host/target.
dnl
case "${target}" in
    *-*-mingw32*)
        disallowed_modules="rndunix rndlinux rndegd"
        ;;
    *)
        disallowed_modules="rndw32"
       ;;
esac

AC_ARG_PROGRAM
AC_PROG_MAKE_SET
AM_SANITY_CHECK
missing_dir=`cd $ac_aux_dir && pwd`
AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
AC_PROG_CC
AC_PROG_CPP
AC_ISC_POSIX
AC_SYS_LARGEFILE
AC_PROG_INSTALL
AC_PROG_AWK
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)
GNUPG_CHECK_FAQPROG
GNUPG_CHECK_DOCBOOK_TO_TEXI

MPI_OPT_FLAGS=""


try_gettext=yes
try_gdbm=yes
case "${target}" in
    *-*-mingw32*)
        # special stuff for Windoze NT
        ac_cv_have_dev_random=no
        AC_DEFINE(USE_ONLY_8DOT3)
        AC_DEFINE(HAVE_DRIVE_LETTERS)
        AC_DEFINE(HAVE_DOSISH_SYSTEM)
        AC_DEFINE(USE_SIMPLE_GETTEXT)
        try_gettext="no"
        try_gdbm="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)
        try_gettext="no"
        try_gdbm="no"
        ;;

    i?86-*-msdosdjgpp*)
        # DOS with the DJGPP environment
        ac_cv_have_dev_random=no
        AC_DEFINE(HAVE_DRIVE_LETTERS)
        AC_DEFINE(HAVE_DOSISH_SYSTEM)
        try_gettext="no"
        try_gdbm="no"
        ;;

    *-*-freebsd*)
       # FreeBSD
       CPPFLAGS="$CPPFLAGS -I/usr/local/include"
       LDFLAGS="$LDFLAGS -L/usr/local/lib"
       ;;

    *-*-hpux*)
        if test -z "$GCC" ; then
            CFLAGS="$CFLAGS -Ae -D_HPUX_SOURCE"
        fi
        ;;
    *-dec-osf4*)
        if test -z "$GCC" ; then
            # Suppress all warnings
            # to get rid of the unsigned/signed char mismatch warnings.
            CFLAGS="$CFLAGS -w"
        fi
        ;;
    m68k-atari-mint)
        ;;
    *)
       ;;
esac

AC_SUBST(MPI_OPT_FLAGS)
GNUPG_SYS_SYMBOL_UNDERSCORE
GNUPG_CHECK_PIC
GNUPG_CHECK_EXPORTDYNAMIC
if test "$NO_PIC" = yes; then
    try_dynload=no
fi


case "${target}" in
    *-*-mingw32*)
        PRINTABLE_OS_NAME="MingW32"
        ;;
    i?86-emx-os2 | i?86-*-os2*emx )
        PRINTABLE_OS_NAME="OS/2"
        ;;
    i?86-*-msdosdjgpp*)
        PRINTABLE_OS_NAME="MSDOS/DJGPP"
        try_dynload=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"`
        ;;
esac
AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME")

dnl  Fixme: Are these the best flags for OpenBSD????
case "${target}" in
    *-openbsd*)
        NAME_OF_DEV_RANDOM="/dev/srandom"
        NAME_OF_DEV_URANDOM="/dev/urandom"
        DYNLINK_MOD_CFLAGS="-shared -rdynamic $CFLAGS_PIC -Wl,-Bshareable -Wl,-x"
        ;;

    *-netbsd*)
        NAME_OF_DEV_RANDOM="/dev/random"
        NAME_OF_DEV_URANDOM="/dev/urandom"
        DYNLINK_MOD_CFLAGS="-shared -rdynamic $CFLAGS_PIC -Wl,-Bshareable -Wl,-x"
        ;;

    *-solaris*)
        NAME_OF_DEV_RANDOM="/dev/random"
        NAME_OF_DEV_URANDOM="/dev/random"
        DYNLINK_MOD_CFLAGS="-shared $CFLAGS_PIC"
        ;;

    *-irix*)
        NAME_OF_DEV_RANDOM="/dev/random"
        NAME_OF_DEV_URANDOM="/dev/urandom"
        DYNLINK_MOD_CFLAGS="-shared $CFLAGS_PIC"
        ;;

    *)
        NAME_OF_DEV_RANDOM="/dev/random"
        NAME_OF_DEV_URANDOM="/dev/urandom"
        # -shared is a gcc-ism.  Find pic flags from GNUPG_CHECK_PIC.
        if test -n "$GCC" ; then
           DYNLINK_MOD_CFLAGS="-shared $CFLAGS_PIC"                            
        else
           DYNLINK_MOD_CFLAGS="$CFLAGS_PIC"
        fi
        ;;
esac
AC_DEFINE_UNQUOTED(NAME_OF_DEV_RANDOM, "$NAME_OF_DEV_RANDOM")
AC_DEFINE_UNQUOTED(NAME_OF_DEV_URANDOM, "$NAME_OF_DEV_URANDOM")
AC_SUBST(MPI_OPT_FLAGS)


dnl Checks for libraries.

if test "$try_gettext" = yes; then
AM_GNU_GETTEXT
else
USE_NLS=no
USE_INCLUDED_LIBINTL=no
AC_SUBST(USE_NLS)
AC_SUBST(USE_INCLUDED_LIBINTL)
fi

dnl
dnl There are lot of misconfigured systems.  We include
dnl gdbm support only if the lib and the header is installed.
dnl
if test "$try_gdbm" = yes; then
AC_CHECK_HEADERS(gdbm.h)
if test "$ac_cv_header_gdbm_h" = yes ; then
  AC_CHECK_LIB(gdbm,gdbm_firstkey)
fi
fi

dnl Solaris needs -lsocket and -lnsl. Unisys system includes
dnl gethostbyname in libsocket but needs libnsl for socket.
dnl The test does not workfor all system, so some are hardcoded here.
case "${target}" in
   i386-univel-sysv4*)
        LIBS="$LIBS -lsocket -lnsl"
        ;;
   *)
      AC_CHECK_LIB(nsl, gethostbyname)
      AC_CHECK_LIB(socket, socket, ac_need_libsocket=1, ac_try_nsl=1)
      if test x$ac_need_libsocket = x1; then
          LIBS="$LIBS -lsocket"
      fi
      if test x$ac_try_nsl = x1; then
         AC_CHECK_LIB(nsl, gethostbyname, ac_need_libnsl=1)
         if test x$ac_need_libnsl = x1
         then
            LIBS="$LIBS -lnsl"
         fi
      fi
      ;;
esac


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)
    AC_DEFINE(HAVE_DL_DLOPEN)
    DYNLINK_LDFLAGS="$CFLAGS_EXPORTDYNAMIC"
    use_gnupg_extensions=yes
  else
    AC_CHECK_FUNCS(dlopen)
    if test "$ac_cv_func_dlopen" = "yes"; then
      AC_DEFINE(USE_DYNAMIC_LINKING)
      AC_DEFINE(HAVE_DL_DLOPEN)
      DYNLINK_LDFLAGS="$CFLAGS_EXPORTDYNAMIC"
      use_gnupg_extensions=yes
    else
      AC_CHECK_LIB(dld,shl_load)
      if test "$ac_cv_lib_dld_shl_load" = "yes"; then
        AC_DEFINE(USE_DYNAMIC_LINKING)
        AC_DEFINE(HAVE_DL_SHL_LOAD)
        DYNLINK_LDFLAGS="$CFLAGS_EXPORTDYNAMIC"
        use_gnupg_extensions=yes
dnl -----------------
dnl  DLD is not ready for use. So I better disable this test
dnl
dnl    AC_CHECK_LIB(dld,dld_link)
dnl    if test "$ac_cv_lib_dld_dld_link" = "yes"; then
dnl      AC_DEFINE(USE_DYNAMIC_LINKING)
dnl      AC_DEFINE(HAVE_DLD_DLD_LINK)
dnl      DYNLINK_LDFLAGS="$CFLAGS_EXPORTDYNAMIC"
dnl      use_gnupg_extensions=yes
dnl ---------------
      fi
    fi
  fi
else
  AC_MSG_CHECKING(for dynamic loading)
  DYNLINK_LDFLAGS=
  DYNLINK_MOD_CFLAGS=
  use_gnupg_extensions=no
  AC_MSG_RESULT(has been disabled)
fi

AM_CONDITIONAL(ENABLE_GNUPG_EXTENSIONS, test "$use_gnupg_extensions" = yes )
AC_SUBST(DYNLINK_LDFLAGS)
AC_SUBST(DYNLINK_MOD_CFLAGS)


dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(unistd.h langinfo.h termio.h)


dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_C_INLINE
AC_TYPE_SIZE_T
AC_TYPE_SIGNAL
AC_DECL_SYS_SIGLIST

GNUPG_CHECK_ENDIAN


GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)

AC_CHECK_SIZEOF(unsigned short, 2)
AC_CHECK_SIZEOF(unsigned int, 4)
AC_CHECK_SIZEOF(unsigned long, 4)
AC_CHECK_SIZEOF(unsigned long long, 0)

if test "$ac_cv_sizeof_unsigned_short" = "0" \
   || test "$ac_cv_sizeof_unsigned_int" = "0" \
   || test "$ac_cv_sizeof_unsigned_long" = "0"; then
    AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
fi



dnl Checks for library functions.
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(strerror stpcpy strlwr stricmp tcgetattr rand strtoul mmap)
AC_CHECK_FUNCS(memmove gettimeofday getrusage gethrtime setrlimit clock_gettime)
AC_CHECK_FUNCS(memicmp atexit raise getpagesize strftime nl_langinfo)
AC_CHECK_FUNCS(waitpid wait4 sigaction sigprocmask fseeko)

GNUPG_CHECK_MLOCK
GNUPG_FUNC_MKDIR_TAKES_ONE_ARG

dnl
dnl Check whether we can use Linux capabilities as requested
dnl
if test "$use_capabilities" = "yes" ; then
use_capabilities=no
AC_CHECK_HEADERS(sys/capability.h)
if test "$ac_cv_header_sys_capability_h" = "yes" ; then
  AC_CHECK_LIB(cap, cap_init, ac_need_libcap=1)
  if test "$ac_cv_lib_cap_cap_init" = "yes"; then
     AC_DEFINE(USE_CAPABILITIES)
     LIBS="$LIBS -lcap"
     use_capabilities=yes
  fi
fi
if test "$use_capabilities" = "no" ; then
    AC_MSG_WARN([[
***
*** The use of capabilities on this system is not possible.
*** You need a recent Linux kernel and some patches:
***   fcaps-2.2.9-990610.patch      (kernel patch for 2.2.9)
***   fcap-module-990613.tar.gz     (kernel module)
***   libcap-1.92.tar.gz            (user mode library and utilities)
*** And you have to configure the kernel with CONFIG_VFS_CAP_PLUGIN
*** set (filesystems menu). Be warned: This code is *really* ALPHA.
***]])
fi
fi


GNUPG_CHECK_IPC
if test "$ac_cv_header_sys_shm_h" = "yes"; then
  AC_DEFINE(USE_SHM_COPROCESSING)
fi

dnl
dnl check whether we have a random device
dnl
if test "$try_dev_random" = yes ; then
    AC_CACHE_CHECK(for random device, ac_cv_have_dev_random,
    [if test -r "$NAME_OF_DEV_RANDOM" && test -r "$NAME_OF_DEV_URANDOM" ; then
      ac_cv_have_dev_random=yes; else ac_cv_have_dev_random=no; fi])
    if test "$ac_cv_have_dev_random" = yes; then
        AC_DEFINE(HAVE_DEV_RANDOM)
    fi
else
    AC_MSG_CHECKING(for random device)
    ac_cv_have_dev_random=no
    AC_MSG_RESULT(has been disabled)
fi

dnl
dnl and whether this device supports ioctl
dnl (Note, that we should do a real test here)
dnl
if test "$ac_cv_have_dev_random" = yes ; then
    AC_CHECK_HEADERS(linux/random.h)
    AC_CACHE_CHECK(for random device ioctl, ac_cv_have_dev_random_ioctl,
      [ if test "$ac_cv_header_linux_random_h" = yes ; then
          ac_cv_have_dev_random_ioctl=yes;
        else
          ac_cv_have_dev_random_ioctl=no;
        fi
      ])
    if test "$ac_cv_have_dev_random_ioctl" = yes; then
        AC_DEFINE(HAVE_DEV_RANDOM_IOCTL)
    fi
fi


dnl
dnl Figure out the default linkage mode for random modules
dnl
print_egd_notice=no
if test "$use_static_rnd" = default; then
  if test "$ac_cv_have_dev_random" = yes; then
      static_random_module="rndlinux"
  else
      case "${target}" in
          *-*-mingw32*)
              static_random_module="rndw32"
              AC_DEFINE(USE_STATIC_RNDW32)
              ;;
          i?86-emx-os2|i?86-*-os2*emx)
              static_random_module="rndos2"
              ;;
          m68k-atari-mint)
              static_random_module="rndatari"
              ;;
          i?86-*-msdosdjgpp*)
              :
              ;;
          *)
              static_random_module="rndunix"
              print_egd_notice=yes
             ;;
      esac
  fi
else
  if test "$use_static_rnd" = none; then
    :
  else
    static_random_module="rnd$use_static_rnd"
    if test "$use_static_rnd" = "unix"; then
        print_egd_notice=yes
    fi
  fi
fi


if test "$print_egd_notice" = "yes"; then
    AC_MSG_WARN([[
***
*** The performance of the UNIX random gatherer module is not very good
*** and it does not keep the entropy pool over multiple invocations of
*** GnuPG.  The suggested way to overcome this problem is to use the
***
***               Entropy Gathering Daemon (EGD)
***
*** which provides a entropy source for the whole system.  It is written
*** in Perl and available at the GnuPG FTP servers.  For more information
*** consult the GnuPG webpages:
***
***           http://www.gnupg.org/download.html#egd
***
*** You may want to run ./configure with --enable-static-rnd=none to be
*** able to load the EGD client code dynamically; this way you can choose
*** between RNDUNIX and RNDEGD without recompilation.
***]])
fi

dnl
dnl Parse the modules list and build the list
dnl of static and dymically linked modules
dnl
dnl (We always need a static rmd160)
static_modules="$static_modules rmd160 $static_random_module"
STATIC_CIPHER_NAMES=""
STATIC_CIPHER_OBJS=""
DYNAMIC_CIPHER_MODS=""
GNUPG_MSG_PRINT([dynamically linked cipher modules:])
for name in $MODULES_IN_CIPHER; do
    x="yes"
    for i in $disallowed_modules; do
        if test "$name" = "$i" ; then x="no" ; fi
    done;
    if test $x = yes; then
        x="no"
        for i in $static_modules; do
            if test "$name" = "$i" ; then
                x="yes"
            fi
        done;
        if test $x = yes; then
            STATIC_CIPHER_NAMES="$STATIC_CIPHER_NAMES $name"
            STATIC_CIPHER_OBJS="$STATIC_CIPHER_OBJS $name.o"
        else
            DYNAMIC_CIPHER_MODS="$DYNAMIC_CIPHER_MODS $name"
            GNUPG_MSG_PRINT([$name])
        fi
    fi
done
AC_MSG_RESULT()
AC_SUBST(STATIC_CIPHER_OBJS)
AC_SUBST(STATIC_CIPHER_NAMES)
AC_SUBST(DYNAMIC_CIPHER_MODS)

dnl
dnl And build the constructor file
dnl

test -d cipher || mkdir cipher
cat <<G10EOF >cipher/construct.c
/* automatically generated by configure - do not edit */

G10EOF
GNUPG_MSG_PRINT([statically linked cipher modules:])
for name in $STATIC_CIPHER_NAMES; do
    echo "void ${name}_constructor(void);" >>cipher/construct.c
    GNUPG_MSG_PRINT([$name])
done
AC_MSG_RESULT()
cat <<G10EOF >>cipher/construct.c

void
cipher_modules_constructor(void)
{
    static int done = 0;
    if( done )
        return;
    done = 1;

G10EOF
for name in $STATIC_CIPHER_NAMES; do
    echo "   ${name}_constructor();" >>cipher/construct.c
done
echo '}' >>cipher/construct.c




dnl
dnl Figure how to link the cipher modules
dnl
AC_SUBST(STATIC_CIPHER_OBJS)
AC_SUBST(DYNAMIC_CIPHER_MODS)


dnl setup assembler stuff
AC_MSG_CHECKING(for mpi assembler functions)
if test -f $srcdir/mpi/config.links ; then
    . $srcdir/mpi/config.links
    GNUPG_LINK_FILES($mpi_ln_src, $mpi_ln_dst)
    ac_cv_mpi_extra_asm_modules="$mpi_extra_modules"
    ac_cv_mpi_sflags="$mpi_sflags"
    ac_cv_mpi_config_done="yes"
    AC_MSG_RESULT(done)
else
    AC_MSG_RESULT(failed)
    AC_MSG_ERROR([mpi/config.links missing!])
fi
MPI_EXTRA_ASM_OBJS=""
if test "$ac_cv_mpi_extra_asm_modules" != ""; then
GNUPG_MSG_PRINT([mpi extra asm functions:])
for i in $ac_cv_mpi_extra_asm_modules; do
    GNUPG_MSG_PRINT([$i])
    MPI_EXTRA_ASM_OBJS="$MPI_EXTRA_ASM_OBJS $i.o"
done
AC_MSG_RESULT()
fi
AC_SUBST(MPI_EXTRA_ASM_OBJS)
MPI_SFLAGS="$ac_cv_mpi_sflags"
AC_SUBST(MPI_SFLAGS)

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
  AC_CHECK_HEADERS(zlib.h)
  if test "$ac_cv_header_zlib_h" = yes ; then
      AC_CHECK_LIB(z,deflateInit2_,use_local_zlib=no,:)
  fi
fi

if test "$use_local_zlib" = yes ; then
    AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, true)
    GNUPG_LINK_FILES(zlib/zlib.h, zlib.h )
    GNUPG_LINK_FILES(zlib/zconf.h, zconf.h )
    ZLIBS="../zlib/libzlib.a"
else
    AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, false)
    ZLIBS=
    LIBS="-lz $LIBS"
fi
AC_SUBST(ZLIBS)


# 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.
changequote(,)dnl
tmp_pat='[a-zA-Z]'
changequote([,])dnl
if echo "$VERSION" | sed 's/-.*//' | grep "$tmp_pat" >/dev/null ; then
    AC_DEFINE(IS_DEVELOPMENT_VERSION)
fi

AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)

GNUPG_DO_LINK_FILES

GNUPG_CHECK_GNUMAKE

# add some extra libs here so that previous tests don't fail for
# mysterious reasons - the final link step shoudl bail out. 
case "${target}" in
    *-*-mingw32*)
        LIBS="$LIBS -lwsock32"
        ;;
    *)
       ;;
esac


if test "$GCC" = yes; then
    if test "$MAINTAINER_MODE" = "yes"; then
        CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
    else
        CFLAGS="$CFLAGS -Wall"
    fi
fi

AC_OUTPUT_COMMANDS([
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_DATADIR "c:/lib/gnupg"
  #define GNUPG_HOMEDIR "c:/gnupg"
#else
  #define G10_LOCALEDIR "${prefix}/${DATADIRNAME}/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
#endif
G10EOF
cat mpi/mpi-asm-defs.h >>g10defs.tmp 
if cmp -s g10defs.h g10defs.tmp 2>/dev/null; then
    echo "g10defs.h is unchanged"
    rm -f g10defs.tmp
else
    rm -f g10defs.h
    mv g10defs.tmp g10defs.h
    echo "g10defs.h created"
fi
],[
prefix=$prefix
exec_prefix=$exec_prefix
libdir=$libdir
datadir=$datadir
DATADIRNAME=$DATADIRNAME
])


AC_OUTPUT([
Makefile
intl/Makefile
po/Makefile.in
util/Makefile
mpi/Makefile
cipher/Makefile
g10/Makefile
doc/Makefile
tools/Makefile
zlib/Makefile
checks/Makefile
])

dnl *-*wedit:notab*-*  Please keep this as the last line.
