# Fetchmail automatic configuration support
#
# Eric S. Raymond <esr@thyrsus.com>
-# 2004 - 2010 Matthias Andree <matthias.andree@gmx.de>
+# 2004 - 2012 Matthias Andree <matthias.andree@gmx.de>
#
dnl Process this file with autoconf to produce a configure script.
dnl
dnl XXX - if bumping version here, check fetchmail.man, too!
-AC_INIT([fetchmail],[6.4.0-alpha1],[fetchmail-devel@lists.berlios.de])
+AC_INIT([fetchmail],[7.0.0-alpha5],[fetchmail-devel@lists.berlios.de])
AC_CONFIG_SRCDIR([fetchmail.h])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_LIBOBJ_DIR([.])
AC_CANONICAL_HOST
+dnl keep this before stuff that runs the compiler!
+AC_USE_SYSTEM_EXTENSIONS
+
dnl automake options are in Makefile.am
-AC_PREREQ(2.60)
+AC_PREREQ(2.64)
dnl 2.60 required for AC_USE_SYSTEM_EXTENSIONS
-AM_INIT_AUTOMAKE
+AM_INIT_AUTOMAKE([silent-rules -Wall])
+AM_SILENT_RULES
dnl python is optional
#
AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
AC_PROG_AWK
-AC_PROG_CC
-AM_PROG_CC_C_O
-AC_PROG_CPP dnl Later checks need this.
+AC_PROG_CC_C99
AC_PROG_INSTALL
AM_PROG_LEX
AC_PROG_MAKE_SET
AC_PROG_RANLIB
AC_PROG_YACC
-AC_USE_SYSTEM_EXTENSIONS
-
dnl check for b0rked Solaris (and other shells) and find one that works
AC_MSG_CHECKING(for a working shell...)
for i in /usr/xpg6/bin/sh /usr/xpg4/bin/sh /usr/ccs/bin/sh /bin/sh /usr/bin/sh /bin/ksh /bin/bash /usr/local/bin/bash ; do
AC_MSG_ERROR(no SUS compliant shell found - on Solaris, install SUNWxcu4)
fi
-
-AC_TYPE_SIZE_T
-AC_TYPE_PID_T
-AC_CHECK_HEADERS([arpa/nameser.h md5.h])
+AC_CHECK_HEADERS([arpa/nameser.h])
AC_CHECK_HEADERS([resolv.h],,,[
#include <sys/types.h>
-#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
-#endif
#ifdef HAVE_ARPA_NAMESER_H
#include <arpa/nameser.h>
#endif
AC_CHECK_DECLS([h_errno],,,[
AC_INCLUDES_DEFAULT
- #ifdef HAVE_NETDB_H
#include <netdb.h>
- #endif
])
-AC_C_CONST dnl getopt needs this.
-
# Check for OS special cases
case $host_os in
darwin*)
AC_REPLACE_FUNCS([stpcpy strlcpy strlcat])
-have_md5=no
-if test "$ac_cv_header_md5_h" != no ; then
- AC_SEARCH_LIBS(MD5Init, [md], [have_md5=yes])
-fi
-
-if test "$have_md5" != yes ; then
- AC_LIBSOURCE(md5c.c)
- EXTRAOBJ="$EXTRAOBJ md5c.\$(OBJEXT)"
-fi
-
AC_CHECK_FUNC(getopt_long, [],
[AC_LIBSOURCES([getopt.c, getopt1.c])
EXTRAOBJ="$EXTRAOBJ getopt.\$(OBJEXT) getopt1.\$(OBJEXT)"])
AC_CACHE_CHECK(for AF_INET6/PF_INET6,ac_cv_inet6,
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[
- #ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
- #endif
- #ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
- #endif
]],[[
int foo = AF_INET6;
int bar = PF_INET6;
LIBS="$old_LIBS $lib"
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <sys/types.h>
-#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
-#endif
#ifdef HAVE_ARPA_NAMESER_H
#include <arpa/nameser.h>
#endif
dnl Check for libcrypt -- it may live in libc or libcrypt, as on IRIX
AC_CHECK_FUNC(crypt, , AC_CHECK_LIB(crypt,crypt))
-dnl Check for usable void pointer type
-AC_MSG_CHECKING(use of void pointer type)
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[char *p;
- void *xmalloc();
- p = (char *) xmalloc(1);
- ]])],[AC_DEFINE(HAVE_VOIDPOINTER,1,[Define if your C compiler allows void * as a function result]) AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
-
-dnl Check for ANSI volatile
-AC_C_VOLATILE
-
-dnl Check out the wait reality. We have to assume sys/wait.h is present.
-AC_CHECK_FUNCS(waitpid wait3)
-AC_MSG_CHECKING(for union wait);
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
-#include <sys/wait.h>]], [[union wait status; int pid; pid = wait (&status);
-#ifdef WEXITSTATUS
-/* Some POSIXoid systems have both the new-style macros and the old
- union wait type, and they do not work together. If union wait
- conflicts with WEXITSTATUS et al, we do not want to use it at all. */
-if (WEXITSTATUS (status) != 0) pid = -1;
-#endif
-#ifdef HAVE_WAITPID
-/* Make sure union wait works with waitpid. */
-pid = waitpid (-1, &status, 0);
-#endif
-]])],[AC_DEFINE(HAVE_UNION_WAIT,1,Define if 'union wait' is the type of the first arg to wait functions.) AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
-
AC_MSG_CHECKING(sys_siglist declaration in signal.h or unistd.h)
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <signal.h>
/* NetBSD declares sys_siglist in <unistd.h>. */
#include <unistd.h>
]], [[char *msg = *(sys_siglist + 1);]])],[AC_DEFINE(SYS_SIGLIST_DECLARED,1,[Define if 'sys_siglist' is declared by <signal.h>.]) AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
-# Find the right directory to put the root-mode PID file in
-for dir in "/var/run" "/etc"
-do
- if test -d $dir
- then
- break;
- fi
-done
-AC_MSG_RESULT(root-mode pid file will go in $dir)
-AC_DEFINE_UNQUOTED(PID_DIR, "$dir", directory for PID lock files)
+AC_DEFINE_UNQUOTED(PID_DIR, "/var/run", directory for PID lock files)
+
+AC_ARG_ENABLE(pwmd,
+ [ --enable-pwmd enable Password Manager Daemon support],
+ , [enable_pwmd=no])
+
+if test "$enable_pwmd" = "yes"; then
+ PKG_CHECK_EXISTS([libpwmd], have_libpwmd=1,
+ AC_MSG_ERROR([Could not find libpwmd pkg-config module.]))
+
+
+ PKG_CHECK_MODULES([libpwmd], [libpwmd >= 6.0.0])
+ AM_CONDITIONAL(HAVE_LIBPWMD, true)
+ AC_DEFINE(HAVE_LIBPWMD, 1, [Define if you have libPWMD installed.])
+else
+ AM_CONDITIONAL(HAVE_LIBPWMD, false)
+fi
# We may have a fallback MDA available in case the socket open to the
# local SMTP listener fails. Best to use procmail for this, as we know
;;
esac
-AC_CHECK_SIZEOF(short)
-AC_CHECK_SIZEOF(int)
-AC_CHECK_SIZEOF(long)
-
### use option --disable-POP3 to omit the POP3 support
AC_ARG_ENABLE(POP3,
[ --disable-POP3 don't compile in POP3 protocol support],
### use option --enable-opie to compile in the OPIE support
AC_ARG_ENABLE(opie,
[ --enable-opie support OTP through the OPIE library],
- [ AC_CHECK_HEADER(opie.h,, [AC_MSG_ERROR(cannot find <opie.h>, which is required for OPIE support.)])
- AC_CHECK_LIB(opie,opiegenerator,, [AC_MSG_ERROR(cannot find libopie, which is required for OPIE support.)])
+ [ AC_CHECK_HEADER(opie.h,, [AC_MSG_ERROR([cannot find <opie.h>, which is required for OPIE support.])])
+ AC_CHECK_LIB(opie,opiegenerator,, [AC_MSG_ERROR([cannot find libopie, which is required for OPIE support.])])
with_opie=$enableval],
[with_opie=no])
test "$with_opie" = "yes" && AC_DEFINE(OPIE_ENABLE,1,Define if you want OPIE support compiled in)
AC_CACHE_CHECK([for getaddrinfo],[fm_cv_getaddrinfo],[
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <sys/types.h>
-#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
-#endif
-#ifdef HAVE_NETDB_H
#include <netdb.h>
-#endif
]], [[getaddrinfo(0, 0, 0, 0);]])],[ fm_cv_getaddrinfo=yes],[ fm_cv_getaddrinfo=no ])
])
AC_CACHE_CHECK([for getnameinfo],[fm_cv_getnameinfo],[
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <sys/types.h>
-#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
-#endif
-#ifdef HAVE_NETDB_H
#include <netdb.h>
-#endif
#ifndef NULL
#define NULL 0
#endif
fi
fi
-# This version of the Kerberos 4 and 5 options addresses the follwing issues:
+# This version of the Kerberos 5 options addresses the follwing issues:
#
# * Build correctly under Heimdal kerberos if it is compiled with db2 and
# OpenSSL support (Debian's is)
-# * Build the kerberos.c stuff (KPOP) only for kerberosIV, to avoid breakage.
-# I don't know if this is 100% correct, but now at least IMAP and POP3
-# behave the same way regarding kerberosV.
-# * Build without any fuss for both kerberosIV and V at the same time.
-# * Move all the kerberos header mess to kerberos.h, and #include that
-# in driver.c and kerberos.c.
-#
-# Tested using the Heimdal Kerberos V libs, Kungliga Tekniska Högskolan (the
-# Royal Institute of Technology in Stockholm, Sweden)'s kerberos IV libs, and
-# the MIT reference implementation of KerberosV (all as packaged in Debian).
### use option --with-kerberos5=DIR to point at a Kerberos 5 directory
### make sure --with-ssl is run before --with-kerberos* !
fi
]) dnl --with-kerberos5=DIR
-### use option --with-kerberos=DIR to point at a Kerberos 4 directory
-KERBEROS_V4=0
-AC_ARG_WITH(kerberos,
- [ --with-kerberos=DIR point fetchmail compilation at a Kerberos 4 directory],
-[
-if test "$with_kerberos" != "no"
-then
- AC_MSG_WARN([Kerberos IV support is obsolete. Use --with-kerberos5 if possible.])
-# Check for a NetBSD/OpenBSD special case
-if test "$with_kerberos" = "yes" && ( test `uname` = "NetBSD" || test `uname` = "OpenBSD" )
-then
- AS_MESSAGE(checking kerberosIV for `uname`...)
- KERBEROS_V4=1
- CFLAGS="$CFLAGS -I/usr/include/kerberosIV"
- case `uname` in
- NetBSD) LIBS="$LIBS -lkrb -ldes -lroken -lcom_err" ;;
- OpenBSD) LIBS="$LIBS -lkrb -ldes" ;;
- esac
-elif krb4-config 2> /dev/null >/dev/null ; then
- krb4_prefix=`krb4-config --prefix`
- AC_MSG_RESULT([krb4-config points to kerberosIV under $krb4_prefix])
- unset krb4_prefix
- CFLAGS="$CFLAGS `krb4-config --cflags`"
- LIBS="$LIBS `krb4-config --libs`"
- KERBEROS_V4=1
-elif krb5-config 2> /dev/null >/dev/null ; then
- krb4_prefix=`krb5-config --prefix krb4`
- AC_MSG_RESULT([krb5-config points to kerberosIV under $krb4_prefix])
- if test -f ${krb4_prefix}/include/kerberosIV/krb.h ; then
- AC_DEFINE(KERBEROS_V4_V5,1,Define if you have Kerberos V4 headers under a kerberosIV directory)
- fi
- unset krb4_prefix
- CFLAGS="$CFLAGS `krb5-config --cflags krb4`"
- LIBS="$LIBS `krb5-config --libs krb4`"
- KERBEROS_V4=1
-else
- #we need to detect when we're building under a kerberosV compatibility
- #layer, btw...
- if test "$with_kerberos" != "yes" ; then
- searchdirs="$with_kerberos"
- else
- searchdirs="$with_kerberos5 /usr/kerberos /usr/kerberosIV /usr/athena /usr"
- fi
- with_kerberos=
- ac_saveLDFLAGS="$LDFLAGS"
- for dir in $searchdirs
- do
- AC_MSG_CHECKING([for Kerberos IV in $dir])
- if test -f "$dir/include/krb.h" || test -f "$dir/include/krb4.h" \
- || test -f "$dir/include/kerberosIV/krb.h"
- then
- AC_MSG_RESULT([found])
- else
- AC_MSG_RESULT([not found])
- continue
- fi
- #Find libs
- if test -f "$with_kerberos5/roken.h" ; then
- AC_CHECK_LIB(45, krb_mk_req)
- fi
- LDFLAGS="-L$dir/lib $ac_saveLDFLAGS"
- if test `uname` = "FreeBSD"; then
- AC_SEARCH_LIBS(_ossl_old_des_string_to_key, [des425 des crypto], [], continue)
- else
- AC_SEARCH_LIBS(des_string_to_key, [crypto], [], continue)
- fi
- AC_SEARCH_LIBS(krb_realmofhost, [krb4 krb], [], continue)
- with_kerberos="$dir"
- if test -f "$dir/include/kerberosIV/krb.h" ; then
- dir="$dir/include/kerberosIV"
- else
- dir="$dir/include"
- fi
- KERBEROS_V4=1
- test -f "$with_kerberos5/roken.h" && AC_DEFINE(HEIMDAL)
- test "$dir" != "/usr/include" && CFLAGS="$CFLAGS -I$dir"
- LDFLAGS="$LDFLAGS -L$with_kerberos/lib"
- break
- done
- if test -z "$with_kerberos" ; then
- AC_MSG_ERROR([Kerberos 4 libraries not found])
- fi
- LDFLAGS="$ac_saveLDFLAGS"
-fi
-fi
-]) dnl --with-kerberos=DIR
-if test "$KERBEROS_V4" = 1 ; then
- AC_DEFINE(KERBEROS_V4,1,Define if you have Kerberos V4)
-fi
-AM_CONDITIONAL(KERBEROS_V4_ENABLE, test "$KERBEROS_V4" = 1)
-
### use option --with-ssl to compile in the SSL support
AC_ARG_WITH(ssl,
[ --with-ssl=[DIR] enable SSL support using libraries in DIR],
[with_ssl=$withval],
- [with_ssl=no])
+ [with_ssl=yes])
test "$with_ssl" != "no" && AC_DEFINE(SSL_ENABLE,1,Define if you want SSL support compiled in)
if test "$with_ssl" = "yes"
dnl XXX FIXME: use pkg-config if available!
AC_DEFINE(SSL_ENABLE)
else
- AC_MSG_NOTICE(Disabling SSL support.)
+ AC_MSG_WARN(Disabling SSL support.)
+ AC_MSG_WARN(Consider re-running configure --with-ssl.)
fi
+case "$LIBS" in *-lssl*)
+ AC_CHECK_DECLS([SSLv2_client_method],,,[#include <openssl/ssl.h>])
+ ;;
+esac
+
### use option --with-socks=DIR to point at SOCKS library
AC_ARG_WITH(socks,
[ --with-socks[=DIR] add built-in SOCKS firewall access],
CPPFLAGS="$CPPFLAGS -I$with_gssapi/include"
fi
AC_CHECK_HEADERS(gss.h gssapi.h gssapi/gssapi.h gssapi/gssapi_generic.h)
- if test "$ac_cv_header_gssapi_h" = "yes"; then
- AC_EGREP_HEADER(GSS_C_NT_HOSTBASED_SERVICE, gssapi.h, AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE,1,Define if you have MIT kerberos))
- else
- AC_EGREP_HEADER(GSS_C_NT_HOSTBASED_SERVICE, gssapi/gssapi.h, AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE))
- fi
+ AC_CHECK_DECLS(GSS_C_NT_HOSTBASED_SERVICE,,,[
+ AC_INCLUDES_DEFAULT
+ #if HAVE_GSS_H
+ #include <gss.h>
+ #endif
+ #if HAVE_GSSAPI_GSSAPI_H
+ #include <gssapi/gssapi.h>
+ #elif HAVE_GSSAPI_H
+ #include <gssapi.h>
+ #endif
+ #if HAVE_GSSAPI_GSSAPI_GENERIC_H
+ #include <gssapi/gssapi_generic.h>
+ #endif
+ ])
fi])
-AC_CONFIG_FILES([Makefile po/Makefile.in genlsm.sh])
+AC_CONFIG_FILES([Makefile po/Makefile.in])
AC_OUTPUT
dnl Local Variables: