configure.ac revision e3504130f7726dcf9562e9ad9047348eaae278e2
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_PREREQ([2.59])
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# Be sure to update ABI version also if anything changes that might require
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# recompiling plugins. Most importantly that means if any structs are changed.
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_INIT([Dovecot],[2.3.devel],[dovecot@dovecot.org])
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_DEFINE_UNQUOTED([DOVECOT_ABI_VERSION], "2.3.ABIv0($PACKAGE_VERSION)", [Dovecot ABI version])
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_CONFIG_SRCDIR([src])
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_CONFIG_MACRO_DIR([m4])
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowenAM_INIT_AUTOMAKE([foreign])
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowenAM_MAINTAINER_MODE
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowenPKG_PROG_PKG_CONFIG
a78048ccbdb6256da15e6b0e7e95355e480c2301ndACLOCAL_AMFLAGS='-I $(top_srcdir)/m4'
d229f940abfb2490dee17979e9a5ff31b7012eb5rbowenAC_SUBST(ACLOCAL_AMFLAGS)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_ENABLE(hardening,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--enable-hardening=yes], [Enable various hardenings (default: yes)]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd enable_hardening=$enableval,
3f08db06526d6901aa08c110b5bc7dde6bc39905nd enable_hardening=yes)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_MSG_CHECKING([Whether to enable hardening])
0cf3cdbaa1dad11cbf1ce32e48f1b4ec88cf779fnilgunAC_MSG_RESULT([$enable_hardening])
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_ENABLE(devel-checks,
4b575a6b6704b516f22d65a3ad35696d7b9ba372rpluemAS_HELP_STRING([--enable-devel-checks], [Enable some extra expensive checks for developers]),
4b575a6b6704b516f22d65a3ad35696d7b9ba372rpluem if test x$enableval = xyes; then
a78048ccbdb6256da15e6b0e7e95355e480c2301nd AC_DEFINE(DEBUG,, [Build with extra debugging checks])
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_devel_checks=yes
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_ENABLE(static-checker,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--enable-static-checker], [Enable code to be used when building with static code analyzer]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd if test x$enableval = xyes; then
a78048ccbdb6256da15e6b0e7e95355e480c2301nd AC_DEFINE(STATIC_CHECKER,, [Building with static code analyzer])
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_ENABLE(asserts,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--enable-asserts], [Enable asserts (default)]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd if test x$enableval = xno; then
a78048ccbdb6256da15e6b0e7e95355e480c2301nd AC_DEFINE(DISABLE_ASSERTS,, [Disable asserts])
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_WITH(shared-libs,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-shared-libs], [Link binaries using shared Dovecot libraries (default)]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_shared_libs=$withval,
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_shared_libs=yes)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAM_CONDITIONAL(BUILD_SHARED_LIBS, test "$want_shared_libs" = "yes")
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_WITH(mem-align,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-mem-align=BYTES], [Set the memory alignment (default: 8)]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd mem_align=$withval,
a78048ccbdb6256da15e6b0e7e95355e480c2301nd mem_align=8)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_WITH(ioloop,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-ioloop=IOLOOP], [Specify the I/O loop method to use (epoll, kqueue, poll; best for the fastest available; default is best)]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd ioloop=$withval,
a78048ccbdb6256da15e6b0e7e95355e480c2301nd ioloop=best)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_WITH(notify,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-notify=NOTIFY], [Specify the file system notification method to use (inotify, kqueue, none; default is detected in the above order)]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd notify=$withval,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_WITH(nss,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-nss], [Build with NSS module support (auto)]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd TEST_WITH(nss, $withval),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_nss=auto)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_WITH(shadow,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-shadow], [Build with shadow password support (auto)]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd TEST_WITH(shadow, $withval),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_shadow=auto)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_WITH(pam,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-pam], [Build with PAM support (auto)]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd TEST_WITH(pam, $withval),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_pam=auto)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_WITH(bsdauth,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-bsdauth], [Build with BSD authentication support (auto)]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd TEST_WITH(bsdauth, $withval),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_bsdauth=auto)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_WITH(gssapi,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-gssapi=yes|plugin Build with GSSAPI authentication support]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd TEST_WITH(gssapi, $withval, plugin),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_gssapi=no)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_WITH(sia,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-sia], [Build with Tru64 SIA support]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd TEST_WITH(sia, $withval),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_sia=no)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_WITH(ldap,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-ldap=yes|plugin], [Build with LDAP support]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd TEST_WITH(ldap, $withval, plugin),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_ldap=no)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_WITH(vpopmail,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-vpopmail], [Build with vpopmail support (auto)]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd if test x$withval = xno; then
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_vpopmail=no
a78048ccbdb6256da15e6b0e7e95355e480c2301nd if test x$withval = xyes || test x$withval = xauto; then
a78048ccbdb6256da15e6b0e7e95355e480c2301nd vpopmail_home="`echo ~vpopmail`"
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_vpopmail=$withval
a78048ccbdb6256da15e6b0e7e95355e480c2301nd vpopmail_home="$withval"
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_vpopmail=yes
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_vpopmail=no
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# Berkeley DB support is more or less broken. Disabled for now.
a78048ccbdb6256da15e6b0e7e95355e480c2301nd#AC_ARG_WITH(db,
a78048ccbdb6256da15e6b0e7e95355e480c2301nd#AS_HELP_STRING([--with-db], [Build with Berkeley DB support]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# TEST_WITH(db, $withval),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd# want_db=no)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_WITH(cdb,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-cdb], [Build with CDB support]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd TEST_WITH(cdb, $withval),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_cdb=no)
a78048ccbdb6256da15e6b0e7e95355e480c2301nddnl The --with-sql is useful only if Dovecot is being built with all the SQL
a78048ccbdb6256da15e6b0e7e95355e480c2301nddnl drivers as modules. If any SQL driver is built-in, this option is ignored.
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_WITH(sql,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-sql=yes|plugin], [Build with generic SQL support]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd TEST_WITH(sql, $withval, plugin),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_sql=no)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_WITH(pgsql,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-pgsql], [Build with PostgreSQL driver support]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd TEST_WITH(pgsql, $withval),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_pgsql=no)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_WITH(mysql,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-mysql], [Build with MySQL driver support]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd TEST_WITH(mysql, $withval),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_mysql=no)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_WITH(sqlite,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-sqlite], [Build with SQLite3 driver support]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd TEST_WITH(sqlite, $withval),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_sqlite=no)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_WITH(cassandra,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-cassandra], [Build with Cassandra driver support]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd TEST_WITH(cassandra, $withval),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_cassandra=no)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_WITH(lucene,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-lucene], [Build with CLucene full text search support]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd TEST_WITH(lucene, $withval),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_lucene=no)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAM_CONDITIONAL(BUILD_LUCENE, test "$want_lucene" = "yes")
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_WITH(stemmer,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-stemmer], [Build with libstemmer support (for FTS) (auto)]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd TEST_WITH(stemmer, $withval),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_stemmer=auto)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAC_ARG_WITH(textcat,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-textcat], [Build with libtextcat support (for FTS) (auto)]),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd TEST_WITH(textcat, $withval),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd want_textcat=auto)
f086b4b402fa9a2fefc7dda85de2a3cc1cd0a654rjungAC_ARG_WITH(icu,
30471a4650391f57975f60bbb6e4a90be7b284bfhumbedoohAS_HELP_STRING([--with-icu], [Build with libicu support (for FTS normalization) (auto)]),
ba543b319188dc1887607f6d59feddc00e38eee2humbedooh want_icu=$withval,
0d0ba3a410038e179b695446bb149cce6264e0abnd want_icu=auto)
0d0ba3a410038e179b695446bb149cce6264e0abndAC_ARG_WITH(solr,
0d0ba3a410038e179b695446bb149cce6264e0abndAS_HELP_STRING([--with-solr], [Build with Solr full text search support]),
0d0ba3a410038e179b695446bb149cce6264e0abnd TEST_WITH(solr, $withval),
0d0ba3a410038e179b695446bb149cce6264e0abnd want_solr=no)
0d0ba3a410038e179b695446bb149cce6264e0abndAC_ARG_WITH(sodium,
0d0ba3a410038e179b695446bb149cce6264e0abndAS_HELP_STRING([--with-sodium], [Build with libsodium support (enables argon2 and scrypt, default: auto)]),
0d0ba3a410038e179b695446bb149cce6264e0abnd TEST_WITH(sodium, $withval),
0d0ba3a410038e179b695446bb149cce6264e0abnd want_sodium=auto)
0d0ba3a410038e179b695446bb149cce6264e0abndAC_ARG_WITH(zlib,
0d0ba3a410038e179b695446bb149cce6264e0abndAS_HELP_STRING([--with-zlib], [Build with zlib compression support (auto)]),
0d0ba3a410038e179b695446bb149cce6264e0abnd TEST_WITH(zlib, $withval),
0d0ba3a410038e179b695446bb149cce6264e0abnd want_zlib=auto)
5effc8b39fae5cd169d17f342bfc265705840014rbowenAC_ARG_WITH(bzlib,
d229f940abfb2490dee17979e9a5ff31b7012eb5rbowenAS_HELP_STRING([--with-bzlib], [Build with bzlib compression support (auto)]),
0d0ba3a410038e179b695446bb149cce6264e0abnd TEST_WITH(bzlib, $withval),
7fec19672a491661b2fe4b29f685bc7f4efa64d4nd want_bzlib=auto)
7fec19672a491661b2fe4b29f685bc7f4efa64d4ndAC_ARG_WITH(lzma,
a78048ccbdb6256da15e6b0e7e95355e480c2301ndAS_HELP_STRING([--with-lzma], [Build with LZMA compression support (auto)]),
AS_HELP_STRING([--with-ssldir=DIR], [SSL base directory for certificates (/etc/ssl)]),
ssldir=/etc/ssl
AS_HELP_STRING([--with-rundir=DIR], [Runtime data directory (LOCALSTATEDIR/run/dovecot)]),
rundir=$localstatedir/run/$PACKAGE
AS_HELP_STRING([--with-statedir=DIR], [Permanent data directory (LOCALSTATEDIR/lib/dovecot)]),
statedir=$localstatedir/lib/$PACKAGE
AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files (auto=detect)]), [
AC_DEFINE([DOVECOT_VERSION_MAJOR], regexp(AC_PACKAGE_VERSION, [^\([0-9]+\)\.\([0-9]+\)], [\1]), [Dovecot major version])
AC_DEFINE([DOVECOT_VERSION_MINOR], regexp(AC_PACKAGE_VERSION, [^\([0-9]+\)\.\([0-9]+\)], [\2]), [Dovecot minor version])
AC_DEFINE(PACKAGE_WEBPAGE, "http://www.dovecot.org/", [Support URL])
# for getting fd_send/fd_recv working:
AC_DEFINE(PREAD_BROKEN,, [Define if pread/pwrite implementation is broken])
dnl we require inttypes.h for PRIu{8,16,32,64} macros
dnl some systems don't have stdint.h, but still have some of the types
AC_CHECK_HEADER(stdint.h, [
stdint_include="#include <stdint.h>"
AC_CHECKTYPE2(socklen_t, [#include <sys/socket.h>])
AS_HELP_STRING([--with-random-source=file], [Device file to use as random source (default=/dev/urandom)]),
random_source=/dev/urandom)
AC_MSG_ERROR([$random_source not found or is not character device - please provide path for random source device])
AC_CHECK_HEADER(openssl/rand.h, [
AC_DEFINE(HAVE_OPENSSL_RAND_H,, [Define if you have openssl/rand.h])
dnl *** auth/userdb/dict things
# shrext_cmds comes from libtool.m4
CORE_LIBS='$(top_builddir)/src/lib-dovecot/libdovecot.la'
STORAGE_LIB='$(top_builddir)/src/lib-storage/libdovecot-storage.la'
$(top_builddir)/src/lib-dict-extra/libdict_extra.la \
$(top_builddir)/src/lib-oauth2/liboauth2.la \
$(top_builddir)/src/lib-smtp/libsmtp.la \
$(top_builddir)/src/lib-program-client/libprogram_client.la \
$(top_builddir)/src/lib-master/libmaster.la \
$(top_builddir)/src/lib-settings/libsettings.la \
$(top_builddir)/src/lib-stats/libstats.la \
$(top_builddir)/src/lib-http/libhttp.la \
$(top_builddir)/src/lib-fs/libfs.la \
$(top_builddir)/src/lib-dict/libdict.la \
$(top_builddir)/src/lib-dns/libdns.la \
$(top_builddir)/src/lib-imap/libimap.la \
$(top_builddir)/src/lib-mail/libmail.la \
$(top_builddir)/src/lib-sasl/libsasl.la \
$(top_builddir)/src/lib-auth/libauth.la \
$(top_builddir)/src/lib-charset/libcharset.la \
$(top_builddir)/src/lib-ssl-iostream/libssl_iostream.la \
$(top_builddir)/src/lib-dcrypt/libdcrypt.la \
$(top_builddir)/src/lib-test/libtest.la \
$(top_builddir)/src/lib/liblib.la'
LIBDOVECOT_DEPS='$(top_builddir)/src/lib-dovecot/libdovecot.la'
LIBDOVECOT_STORAGE_DEPS='$(top_builddir)/src/lib-storage/libdovecot-storage.la $(top_builddir)/src/lib-imap-storage/libimap-storage.la'
LIBDOVECOT_LOGIN='$(top_builddir)/src/login-common/libdovecot-login.la'
LIBDOVECOT_LDA='$(top_builddir)/src/lib-lda/libdovecot-lda.la'
LIBDOVECOT_STORAGE_DEPS='$(top_builddir)/src/lib-storage/libstorage.la'
LIBDOVECOT_LOGIN='$(top_builddir)/src/login-common/liblogin.la'
LIBDOVECOT_LDA='$(top_builddir)/src/lib-lda/liblda.la'
LIBDOVECOT_LDAP='$(top_builddir)/src/lib-ldap/libdovecot-ldap.la'
LIBDOVECOT_DSYNC='$(top_builddir)/src/doveadm/dsync/libdovecot-dsync.la'
LIBDOVECOT_SQL='$(top_builddir)/src/lib-sql/libsql.la'
LIBDOVECOT_COMPRESS='$(top_builddir)/src/lib-compression/libcompression.la'
LIBDOVECOT_LIBFTS='$(top_builddir)/src/lib-fts/libfts.la'
FILES1=`find $srcdir/src -name '*settings.[[ch]]'|grep "$srcdir/src/lib-" | sed 's/^\(.*\)\(.\)$/\2 \1\2/' | grep -E -v 'lib-(master|smtp).*c$' | sort -r | sed s/^..//`
FILES2=`find $srcdir/src -name '*settings.[[ch]]'|grep -v "$srcdir/src/lib-" | sed 's/^\(.*\)\(.\)$/\2 \1\2/' | grep -v all-settings | sort -r | sed s/^..//`
SETTING_FILES=`echo $FILES1 $FILES2 | sed -e s,$srcdir/src,./src,g -e 's,./src,$(top_srcdir)/src,g'`
capability="$capability_banner SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE"
AC_DEFINE_UNQUOTED(CAPABILITY_BANNER_STRING, "$capability_banner", [IMAP capabilities advertised in banner])
AC_CONFIG_HEADERS([config.h])