configure.in revision 53f7fdb513cde5319e76444c03923041f1c48fef
ee359fe1384507fed6c2274e7bfe81d288de4542Stephen GallagherAM_CONFIG_HEADER(config.h)
33396dc46ea52c18f47db1b5d590880806521005Sumit BoseAM_INIT_AUTOMAKE(dovecot, 0.99.4)
33396dc46ea52c18f47db1b5d590880806521005Sumit BoseAM_MAINTAINER_MODE
324fb26ba803a999bedc29e93c46c84f27abf5b7Sumit BoseAC_STDC_HEADERS
84ae5edab16ad6be5e3be956cb6fa031c1428eb5Stephen GallagherAM_PROG_LIBTOOL
84ae5edab16ad6be5e3be956cb6fa031c1428eb5Stephen GallagherAC_CHECK_HEADERS(string.h stdlib.h stdint.h unistd.h dirent.h iconv.h)
e65df5b966b27e13283c65f59f99ac44781e0333Simo SorceAC_CHECK_HEADERS(sys/uio.h sys/sysmacros.h sys/resource.h linux/mman.h)
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherAC_CHECK_HEADERS(sys/select.h)
672f430c2e5d55226261a281bc3fa77311ace5a4Jakub Hrozek# check posix headers
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherAC_CHECK_HEADERS(sys/time.h)
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherAC_ARG_ENABLE(ipv6,
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher[ --enable-ipv6 Enable IPv6 support (default)],
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher if test x$enableval = xno; then
cc98edd9479d4622634a1275c98058916c14059aStephen Gallagher want_ipv6=yes)
d3da1c165cdb4c1ec126a8f4b6b544ca415b9d20Pavel BřezinaAC_ARG_ENABLE(debug,
d3da1c165cdb4c1ec126a8f4b6b544ca415b9d20Pavel Březina[ --enable-debug Enable some extra checks for debugging],
1183d29d87c5c7439cf2364b7d7324d4a13b6e35Stephen Gallagher if test x$enableval = xyes; then
1183d29d87c5c7439cf2364b7d7324d4a13b6e35Stephen Gallagher AC_DEFINE(DEBUG,, Build with extra debugging checks)
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherAC_ARG_ENABLE(asserts,
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher[ --enable-asserts Enable asserts (default)],
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher if test x$enableval = xno; then
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher AC_DEFINE(DISABLE_ASSERTS,, Disable asserts)
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherAC_ARG_WITH(file-offset-size,
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher[ --with-file-offset-size=BITS Set size of file offsets. Usually 32 or 64.
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher (default: 64 if available)],
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher preferred_off_t_bits=$withval,
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher preferred_off_t_bits=64)
c89589fa349f38214c9cb8d9389c0fd557e5dca2Simo SorceAC_ARG_WITH(mem-align,
c89589fa349f38214c9cb8d9389c0fd557e5dca2Simo Sorce[ --with-mem-align=BYTES Set the memory alignment (default: 8)],
86b61156743b7ebdc049450a6f88452890fd9a61Jakub Hrozek mem_align=$withval,
86b61156743b7ebdc049450a6f88452890fd9a61Jakub Hrozek mem_align=8)
c89589fa349f38214c9cb8d9389c0fd557e5dca2Simo SorceAC_ARG_WITH(passwd,
c89589fa349f38214c9cb8d9389c0fd557e5dca2Simo Sorce[ --with-passwd Build with /etc/passwd support (default)],
86b61156743b7ebdc049450a6f88452890fd9a61Jakub Hrozek if test x$withval = xno; then
86b61156743b7ebdc049450a6f88452890fd9a61Jakub Hrozek want_passwd=no
86b61156743b7ebdc049450a6f88452890fd9a61Jakub Hrozek want_passwd=yes
86b61156743b7ebdc049450a6f88452890fd9a61Jakub Hrozek want_passwd=yes)
86b61156743b7ebdc049450a6f88452890fd9a61Jakub HrozekAC_ARG_WITH(passwd-file,
86b61156743b7ebdc049450a6f88452890fd9a61Jakub Hrozek[ --with-passwd-file Build with passwd-like file support (default)],
86b61156743b7ebdc049450a6f88452890fd9a61Jakub Hrozek if test x$withval = xno; then
86b61156743b7ebdc049450a6f88452890fd9a61Jakub Hrozek want_passwd_file=no
48130eef6c5c64a07094b9e8582ba358b2048f24Jakub Hrozek want_passwd_file=yes
48130eef6c5c64a07094b9e8582ba358b2048f24Jakub Hrozek want_passwd_file=yes)
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherAC_ARG_WITH(shadow,
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher[ --with-shadow Build with shadow password support (default)],
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher if test x$withval = xno; then
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher want_shadow=no
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher want_shadow=yes
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher want_shadow=yes)
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherAC_ARG_WITH(pam,
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher[ --with-pam Build with PAM support (default)],
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher if test x$withval = xno; then
d921c1eba437662437847279f251a0a5d8f70127Maxim want_pam=no
d921c1eba437662437847279f251a0a5d8f70127Maxim want_pam=yes
d921c1eba437662437847279f251a0a5d8f70127Maxim want_pam=yes)
d921c1eba437662437847279f251a0a5d8f70127MaximAC_ARG_WITH(vpopmail,
327127bb7fcc07f882209f029e14026de1b23c94Maxim[ --with-vpopmail Build with vpopmail support (default)],
327127bb7fcc07f882209f029e14026de1b23c94Maxim if test x$withval = xno; then
327127bb7fcc07f882209f029e14026de1b23c94Maxim want_vpopmail=no
d3da1c165cdb4c1ec126a8f4b6b544ca415b9d20Pavel Březina want_vpopmail=yes
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher want_vpopmail=yes)
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherAC_ARG_WITH(rawlog,
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher[ --with-rawlog Build support for logging user traffic],
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher if test x$withval = xyes; then
eb2e21b764d03544d8161e9956d7f70b07b75f77Simo Sorce AC_DEFINE(BUILD_RAWLOG,, Build with rawlogging feature)
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherAC_ARG_WITH(ssl,
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher[ --with-ssl=[gnutls|openssl] Build with GNUTLS (default) or OpenSSL],
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher if test x$withval = xno; then
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher want_gnutls=no
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher want_openssl=no
4b6a0d0b3d42e5fdb457f47d9adfa5e66b160256Stephen Gallagher elif test x$withval = xgnutls; then
90fd1bbd6035cdab46faa3a695a2fb2be6508b17Sumit Bose want_gnutls=yes
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher want_openssl=no
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher elif test x$withval = xopenssl; then
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher want_gnutls=no
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher want_openssl=yes
068dbee9ca7bf5b37330eff91c94ae10f288d09fJakub Hrozek want_gnutls=yes
98ce3c3e85a4bb2e1822bf8ab2a1c2ab9e3dd61dJakub Hrozek want_openssl=yes
e124844907ed6973915e4d56f5442ecd07535a12Jakub Hrozek want_gnutls=yes
f36078af138f052cd9a30360867b0ebd0805af5eJakub Hrozek want_openssl=yes
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherAC_ARG_WITH(ssldir,
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher[ --with-ssldir=DIR SSL base directory for certificates (/etc/ssl)],
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher ssldir="$withval",
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherAC_SUBST(ssldir)
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagherdnl * gcc specific options
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagherif test "x$ac_cv_prog_gcc" = "xyes"; then
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher # -Wcast-qual -Wcast-align -Wconversion -Wstrict-prototypes
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher CFLAGS="$CFLAGS -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts"
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagherdnl ** just some generic stuff...
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherAC_CHECK_FUNC(socket, [], [
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher AC_CHECK_LIB(socket, socket, [
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher LIBS="$LIBS -lsocket"
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherAC_CHECK_FUNC(inet_addr, [], [
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher AC_CHECK_LIB(nsl, inet_addr, [
2a5790216f57e9bdfb2930d52860bb5300366536Jakub Hrozek LIBS="$LIBS -lnsl"
b32159300fea63222d8dd9200ed634087704ea74Stephen GallagherAC_CHECK_FUNC(fdatasync, [
b32159300fea63222d8dd9200ed634087704ea74Stephen Gallagher have_fdatasync=yes
b32159300fea63222d8dd9200ed634087704ea74Stephen Gallagher AC_CHECK_LIB(rt, fdatasync, [
b32159300fea63222d8dd9200ed634087704ea74Stephen Gallagher have_fdatasync=yes
b32159300fea63222d8dd9200ed634087704ea74Stephen Gallagher LIBS="$LIBS -lrt"
b32159300fea63222d8dd9200ed634087704ea74Stephen Gallagherif test "$have_fdatasync" = "yes"; then
b32159300fea63222d8dd9200ed634087704ea74Stephen Gallagher AC_DEFINE(HAVE_FDATASYNC,, Define if you have fdatasync())
2a5790216f57e9bdfb2930d52860bb5300366536Jakub Hrozekdnl * after -lsocket and -lnsl tests, inet_aton() may be in them
e6e26182d58c05d896f72f2925426658a6dc70b5Jakub HrozekAC_CHECK_FUNCS(fcntl flock inet_aton sigaction getpagesize madvise \
e6e26182d58c05d896f72f2925426658a6dc70b5Jakub Hrozek strcasecmp stricmp vsnprintf memmove vsyslog writev setrlimit \
e6e26182d58c05d896f72f2925426658a6dc70b5Jakub Hrozek setproctitle)
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherAC_CHECK_FUNC(poll, [
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher AC_DEFINE(IOLOOP_POLL,, Implement I/O loop with poll())
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher AC_DEFINE(IOLOOP_SELECT,, Implement I/O loop with select())
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagherdnl * memory alignment
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherAC_DEFINE_UNQUOTED(MEM_ALIGN_SIZE, $mem_align, Required memory alignment)
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagherdnl * OS specific options
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallaghercase "$host_os" in
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED"
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherAC_CHECK_SIZEOF(int)
4d81fe27ced3d2e96866aeaf61661a925cb8edf1Jakub HrozekAC_CHECK_SIZEOF(long)
4d81fe27ced3d2e96866aeaf61661a925cb8edf1Jakub HrozekAC_CHECK_SIZEOF(void *)
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen GallagherAC_CHECK_SIZEOF(long long)
4d81fe27ced3d2e96866aeaf61661a925cb8edf1Jakub HrozekAC_DEFUN(AC_TYPEOF, [
4d81fe27ced3d2e96866aeaf61661a925cb8edf1Jakub Hrozek dnl * first check if we can get the size with redefining typedefs
4d81fe27ced3d2e96866aeaf61661a925cb8edf1Jakub Hrozek if test "$2" = ""; then
4d81fe27ced3d2e96866aeaf61661a925cb8edf1Jakub Hrozek order="int long long-long"
4d81fe27ced3d2e96866aeaf61661a925cb8edf1Jakub Hrozek visible="unknown"
4d81fe27ced3d2e96866aeaf61661a925cb8edf1Jakub Hrozek AC_MSG_CHECKING([type of $1])
4d81fe27ced3d2e96866aeaf61661a925cb8edf1Jakub Hrozek if test "x$ac_cv_prog_gcc" = "xyes"; then
6f51c802311fd81a409a26763ed45b28a3234d0dJakub Hrozek dnl * try with printf() + -Werror
4d81fe27ced3d2e96866aeaf61661a925cb8edf1Jakub Hrozek old_CFLAGS="$CFLAGS"
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher CFLAGS="$CFLAGS -Werror"
8b1f525acd20f36c836e827de3c251088961c5d9Stephen Gallagher for type in $order; do
f5b6f977d4144c28e9c66f3f1c9d634d595d1117Marko Myllynen case "$type" in
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher if test "$fmt" != ""; then
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher AC_TRY_COMPILE([
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher printf("$fmt", ($1)0);
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher if test "$result" != ""; then
2a5790216f57e9bdfb2930d52860bb5300366536Jakub Hrozek dnl * warning check isn't working
2a5790216f57e9bdfb2930d52860bb5300366536Jakub Hrozek visible="unknown"
e07a94a66985b674c5df11ca466792902164c4e2George McCollister result="`echo $type|sed 's/-/ /g'`"
e07a94a66985b674c5df11ca466792902164c4e2George McCollister visible="$result"
172c07013d1ea99447a780fd36f49d5c3a76981bJakub Hrozek CFLAGS="$old_CFLAGS"
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher if test "$result" = ""; then
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher for type in $order; do
336879aabae137f9a81304f147fb0d43001654b0Simo Sorce type="`echo $type|sed 's/-/ /g'`"
336879aabae137f9a81304f147fb0d43001654b0Simo Sorce AC_TRY_COMPILE([
336879aabae137f9a81304f147fb0d43001654b0Simo Sorce typedef $type $1;
336879aabae137f9a81304f147fb0d43001654b0Simo Sorce if test "$result" != ""; then
336879aabae137f9a81304f147fb0d43001654b0Simo Sorce dnl * compiler allows redefining to anything
336879aabae137f9a81304f147fb0d43001654b0Simo Sorce visible="unknown"
336879aabae137f9a81304f147fb0d43001654b0Simo Sorce result="$type"
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher visible="$type"
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher if test "$result" = ""; then
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher dnl * check with sizes
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher dnl * older autoconfs don't include sys/types.h, so do it manually
8c294c1cd4d721818a59684cf7f2b36123f79163Stephen Gallagher FILE *f=fopen("conftestval", "w");
8c294c1cd4d721818a59684cf7f2b36123f79163Stephen Gallagher if (!f) exit(1);
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher fprintf(f, "%d\n", sizeof($1));
96c73559adfbdac96720008fc022cb1d540b53c3Jakub Hrozek size=`cat conftestval`
4dd615c01357b8715711aad6820ba9595d3ad377Stephen Gallagher rm -f conftestval
a6098862048d4bb469130b9ff21be3020d6f2c54Sumit Bose for type in $order; do
f1ce53a3b5656361557f80f61dfd42a371230c65Stephen Gallagher actype="ac_cv_sizeof_`echo $type|sed 's/-/_/g'`"
f1ce53a3b5656361557f80f61dfd42a371230c65Stephen Gallagher if test "$size" = "`eval \"echo \\$$actype\"`"; then
f1ce53a3b5656361557f80f61dfd42a371230c65Stephen Gallagher result="`echo $type|sed 's/-/ /g'`"
84ae5edab16ad6be5e3be956cb6fa031c1428eb5Stephen Gallagher visible="`expr $size \* 8`bit (using $result)"
#include <sys/types.h>
echo "..ignoring as requested.."
#include <sys/types.h>
AC_CHECKTYPE2(uintmax_t, [#include <inttypes.h>])
AC_CHECKTYPE2(socklen_t, [#include <sys/socket.h>])
#include <time.h>],
#include <sys/types.h>
#include <sys/uio.h>
#include <unistd.h>],
#include <sys/types.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <unistd.h>
#include <sys/mman.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <sys/sendfile.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
AC_CHECK_HEADERS(gnutls/gnutls.h, [
AC_DEFINE(HAVE_SSL,, Build with SSL/TLS support)
dnl ** shadow/pam support
AC_CHECK_HEADER(security/pam_appl.h, [
Define if you have security/pam_appl.h)
AC_CHECK_HEADER(pam/pam_appl.h, [
Define if you have pam/pam_appl.h)
vpop_libdeps="$vpopmail_home/etc/lib_deps"
VPOPMAIL_CFLAGS="`cat $vpopmail_home/etc/inc_deps` $CFLAGS"
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>],
echo '#include "lib.h"' >> $file
echo '#include "mail-storage.h"' >> $file