configure.ac revision 88e52b9ca10bdf02766f79925ec182fc1dd06bd1
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_PREREQ([2.59])
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen# Be sure to update ABI version also if anything changes that might require
345648b341f228bd7f0b89f8aa3ecb9c470d817eTimo Sirainen# recompiling plugins. Most importantly that means if any structs are changed.
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_INIT([Dovecot],[2.2.18],[dovecot@dovecot.org])
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_DEFINE_UNQUOTED([DOVECOT_ABI_VERSION], "2.2.ABIv17($PACKAGE_VERSION)", [Dovecot ABI version])
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo SirainenAC_CONFIG_SRCDIR([src])
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAM_INIT_AUTOMAKE([foreign])
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAM_MAINTAINER_MODE
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenPKG_PROG_PKG_CONFIG
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenACLOCAL_AMFLAGS='-I $(top_srcdir)'
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_SUBST(ACLOCAL_AMFLAGS)
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainendnl TEST_WITH(name, value, [plugin])
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_DEFUN([TEST_WITH], [
20caa6854f0ba83719248a94464a7a24bb7dbd20Timo Sirainen want=want_`echo $1|sed s/-/_/g`
b7c2065b3f10f9ae27787a9db5aaefbfc70d4502Timo Sirainen if test $2 = yes || test $2 = no || test $2 = auto; then
1c38a95332f1945c9806d7d83175a0d948f51291Timo Sirainen eval $want=$2
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen elif test $2 = plugin; then
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen if test "$3" = plugin; then
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen eval $want=plugin
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen AC_ERROR([--with-$1=plugin not supported])
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen elif `echo $2|grep '^/' >/dev/null`; then
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen AC_ERROR([--with-$1=path not supported. You may want to use instead:
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenCPPFLAGS=-I$2/include LDFLAGS=-L$2/lib ./configure --with-$1])
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen AC_ERROR([--with-$1: Unknown value: $2])
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_ARG_ENABLE(devel-checks,
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAS_HELP_STRING([--enable-devel-checks], [Enable some extra expensive checks for developers]),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen if test x$enableval = xyes; then
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen AC_DEFINE(DEBUG,, [Build with extra debugging checks])
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_devel_checks=yes
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_ARG_ENABLE(asserts,
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAS_HELP_STRING([--enable-asserts], [Enable asserts (default)]),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen if test x$enableval = xno; then
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen AC_DEFINE(DISABLE_ASSERTS,, [Disable asserts])
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_ARG_WITH(shared-libs,
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAS_HELP_STRING([--with-shared-libs], [Link binaries using shared Dovecot libraries (default)]),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_shared_libs=$withval,
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_shared_libs=yes)
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAM_CONDITIONAL(BUILD_SHARED_LIBS, test "$want_shared_libs" = "yes")
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_ARG_WITH(mem-align,
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAS_HELP_STRING([--with-mem-align=BYTES], [Set the memory alignment (default: 8)]),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen mem_align=$withval,
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_ARG_WITH(ioloop,
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo SirainenAS_HELP_STRING([--with-ioloop=IOLOOP], [Specify the I/O loop method to use (epoll, kqueue, poll; best for the fastest available; default is best)]),
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen ioloop=$withval,
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_ARG_WITH(notify,
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAS_HELP_STRING([--with-notify=NOTIFY], [Specify the file system notification method to use (inotify, kqueue, none; default is detected in the above order)]),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen notify=$withval,
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo SirainenAC_ARG_WITH(nss,
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo SirainenAS_HELP_STRING([--with-nss], [Build with NSS module support (auto)]),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen TEST_WITH(nss, $withval),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_nss=auto)
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_ARG_WITH(shadow,
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAS_HELP_STRING([--with-shadow], [Build with shadow password support (auto)]),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen TEST_WITH(shadow, $withval),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_shadow=auto)
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_ARG_WITH(pam,
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAS_HELP_STRING([--with-pam], [Build with PAM support (auto)]),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen TEST_WITH(pam, $withval),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_pam=auto)
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_ARG_WITH(bsdauth,
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAS_HELP_STRING([--with-bsdauth], [Build with BSD authentication support (auto)]),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen TEST_WITH(bsdauth, $withval),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_bsdauth=auto)
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_ARG_WITH(gssapi,
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAS_HELP_STRING([--with-gssapi=yes|plugin Build with GSSAPI authentication support]),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen TEST_WITH(gssapi, $withval, plugin),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_gssapi=no)
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_ARG_WITH(sia,
345648b341f228bd7f0b89f8aa3ecb9c470d817eTimo SirainenAS_HELP_STRING([--with-sia], [Build with Tru64 SIA support]),
f53b8258e5f68ab3d431b1c97520efa0200d134bTimo Sirainen TEST_WITH(sia, $withval),
f53b8258e5f68ab3d431b1c97520efa0200d134bTimo SirainenAC_ARG_WITH(ldap,
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAS_HELP_STRING([--with-ldap=yes|plugin], [Build with LDAP support]),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen TEST_WITH(ldap, $withval, plugin),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_ldap=no)
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_ARG_WITH(vpopmail,
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo SirainenAS_HELP_STRING([--with-vpopmail], [Build with vpopmail support (auto)]),
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen if test x$withval = xno; then
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_vpopmail=no
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen if test x$withval = xyes || test x$withval = xauto; then
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen vpopmail_home="`echo ~vpopmail`"
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_vpopmail=$withval
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen vpopmail_home="$withval"
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_vpopmail=yes
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_vpopmail=no
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen# Berkeley DB support is more or less broken. Disabled for now.
bbef8d37812f877525ca57e7ed206094e1efe288Timo Sirainen#AC_ARG_WITH(db,
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen#AS_HELP_STRING([--with-db], [Build with Berkeley DB support]),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen# TEST_WITH(db, $withval),
bbef8d37812f877525ca57e7ed206094e1efe288Timo SirainenAC_ARG_WITH(cdb,
bbef8d37812f877525ca57e7ed206094e1efe288Timo SirainenAS_HELP_STRING([--with-cdb], [Build with CDB support]),
bbef8d37812f877525ca57e7ed206094e1efe288Timo Sirainen TEST_WITH(cdb, $withval),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainendnl The --with-sql is useful only if Dovecot is being built with all the SQL
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainendnl drivers as modules. If any SQL driver is built-in, this option is ignored.
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo SirainenAC_ARG_WITH(sql,
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAS_HELP_STRING([--with-sql=yes|plugin], [Build with generic SQL support]),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen TEST_WITH(sql, $withval, plugin),
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo SirainenAC_ARG_WITH(pgsql,
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAS_HELP_STRING([--with-pgsql], [Build with PostgreSQL driver support]),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen TEST_WITH(pgsql, $withval),
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen want_pgsql=no)
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_ARG_WITH(mysql,
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAS_HELP_STRING([--with-mysql], [Build with MySQL driver support]),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen TEST_WITH(mysql, $withval),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_mysql=no)
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_ARG_WITH(sqlite,
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAS_HELP_STRING([--with-sqlite], [Build with SQLite3 driver support]),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen TEST_WITH(sqlite, $withval),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_sqlite=no)
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_ARG_WITH(cassandra,
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAS_HELP_STRING([--with-cassandra], [Build with Cassandra driver support]),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen TEST_WITH(cassandra, $withval),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_cassandra=no)
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_ARG_WITH(lucene,
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo SirainenAS_HELP_STRING([--with-lucene], [Build with CLucene full text search support]),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen TEST_WITH(lucene, $withval),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_lucene=no)
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAM_CONDITIONAL(BUILD_LUCENE, test "$want_lucene" = "yes")
ffa179f76a2b6f4ef97bd560f65fa9e3e35361b4Timo SirainenAC_ARG_WITH(stemmer,
ffa179f76a2b6f4ef97bd560f65fa9e3e35361b4Timo SirainenAS_HELP_STRING([--with-stemmer], [Build with libstemmer support (for FTS) (auto)]),
22535a9e685e29214082878e37a267157044618eTimo Sirainen TEST_WITH(stemmer, $withval),
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen want_stemmer=auto)
22535a9e685e29214082878e37a267157044618eTimo SirainenAC_ARG_WITH(textcat,
22535a9e685e29214082878e37a267157044618eTimo SirainenAS_HELP_STRING([--with-textcat], [Build with libtextcat support (for FTS) (auto)]),
22535a9e685e29214082878e37a267157044618eTimo Sirainen TEST_WITH(textcat, $withval),
22535a9e685e29214082878e37a267157044618eTimo Sirainen want_textcat=auto)
ffa179f76a2b6f4ef97bd560f65fa9e3e35361b4Timo SirainenAC_ARG_WITH(icu,
ffa179f76a2b6f4ef97bd560f65fa9e3e35361b4Timo SirainenAS_HELP_STRING([--with-icu], [Build with libicu support (for FTS normalization) (auto)]),
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen want_icu=$withval,
22535a9e685e29214082878e37a267157044618eTimo Sirainen want_icu=auto)
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo SirainenAC_ARG_WITH(solr,
22535a9e685e29214082878e37a267157044618eTimo SirainenAS_HELP_STRING([--with-solr], [Build with Solr full text search support]),
22535a9e685e29214082878e37a267157044618eTimo Sirainen TEST_WITH(solr, $withval),
22535a9e685e29214082878e37a267157044618eTimo Sirainen want_solr=no)
bbef8d37812f877525ca57e7ed206094e1efe288Timo SirainenAC_ARG_WITH(zlib,
bbef8d37812f877525ca57e7ed206094e1efe288Timo SirainenAS_HELP_STRING([--with-zlib], [Build with zlib compression support (auto)]),
22535a9e685e29214082878e37a267157044618eTimo Sirainen TEST_WITH(zlib, $withval),
22535a9e685e29214082878e37a267157044618eTimo Sirainen want_zlib=auto)
1c38a95332f1945c9806d7d83175a0d948f51291Timo SirainenAC_ARG_WITH(bzlib,
1c38a95332f1945c9806d7d83175a0d948f51291Timo SirainenAS_HELP_STRING([--with-bzlib], [Build with bzlib compression support (auto)]),
1c38a95332f1945c9806d7d83175a0d948f51291Timo Sirainen TEST_WITH(bzlib, $withval),
1c38a95332f1945c9806d7d83175a0d948f51291Timo Sirainen want_bzlib=auto)
1c38a95332f1945c9806d7d83175a0d948f51291Timo SirainenAC_ARG_WITH(lzma,
1c38a95332f1945c9806d7d83175a0d948f51291Timo SirainenAS_HELP_STRING([--with-lzma], [Build with LZMA compression support (auto)]),
1c38a95332f1945c9806d7d83175a0d948f51291Timo Sirainen TEST_WITH(lzma, $withval),
1c38a95332f1945c9806d7d83175a0d948f51291Timo Sirainen want_lzma=auto)
1c38a95332f1945c9806d7d83175a0d948f51291Timo SirainenAC_ARG_WITH(lz4,
68d76bc6de2d923d03955e49d563d6e4629b86bfTimo SirainenAS_HELP_STRING([--with-lz4], [Build with LZ4 compression support (auto)]),
68d76bc6de2d923d03955e49d563d6e4629b86bfTimo Sirainen TEST_WITH(lz4, $withval),
68d76bc6de2d923d03955e49d563d6e4629b86bfTimo Sirainen want_lz4=auto)
68d76bc6de2d923d03955e49d563d6e4629b86bfTimo SirainenAC_ARG_WITH(libcap,
68d76bc6de2d923d03955e49d563d6e4629b86bfTimo SirainenAS_HELP_STRING([--with-libcap], [Build with libcap support (Dropping capabilities) (auto)]),
68d76bc6de2d923d03955e49d563d6e4629b86bfTimo Sirainen TEST_WITH(libcap, $withval),
68d76bc6de2d923d03955e49d563d6e4629b86bfTimo Sirainen want_libcap=auto)
68d76bc6de2d923d03955e49d563d6e4629b86bfTimo SirainenAC_ARG_WITH(libwrap,
68d76bc6de2d923d03955e49d563d6e4629b86bfTimo SirainenAS_HELP_STRING([--with-libwrap], [Build with libwrap, ie. TCP-wrappers]),
68d76bc6de2d923d03955e49d563d6e4629b86bfTimo Sirainen TEST_WITH(libwrap, $withval),
68d76bc6de2d923d03955e49d563d6e4629b86bfTimo Sirainen want_libwrap=no)
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_ARG_WITH(ssl,
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAS_HELP_STRING([--with-ssl=gnutls|openssl], [Build with GNUTLS or OpenSSL (default)]),
b7c2065b3f10f9ae27787a9db5aaefbfc70d4502Timo Sirainen if test x$withval = xno; then
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_gnutls=no
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_openssl=no
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen elif test x$withval = xgnutls; then
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen AC_ERROR([GNUTLS support is broken currently])
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_gnutls=yes
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_openssl=no
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen elif test x$withval = xopenssl; then
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_gnutls=no
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_openssl=yes
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen elif test x$withval = xyes; then
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen want_gnutls=no
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_openssl=yes
b7c2065b3f10f9ae27787a9db5aaefbfc70d4502Timo Sirainen AC_ERROR([--with-ssl: Invalid value: $withval])
b7c2065b3f10f9ae27787a9db5aaefbfc70d4502Timo Sirainen want_gnutls=no
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen want_openssl=auto
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_ARG_WITH(ssldir,
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAS_HELP_STRING([--with-ssldir=DIR], [SSL base directory for certificates (/etc/ssl)]),
50fd2adea4c945b85e5a81d5e55b885b93405c0cTimo Sirainen ssldir="$withval",
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_SUBST(ssldir)
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_ARG_WITH(rundir,
b7c2065b3f10f9ae27787a9db5aaefbfc70d4502Timo SirainenAS_HELP_STRING([--with-rundir=DIR], [Runtime data directory (LOCALSTATEDIR/run/dovecot)]),
b7c2065b3f10f9ae27787a9db5aaefbfc70d4502Timo Sirainen rundir="$withval",
b7c2065b3f10f9ae27787a9db5aaefbfc70d4502Timo Sirainen rundir=$localstatedir/run/$PACKAGE
b7c2065b3f10f9ae27787a9db5aaefbfc70d4502Timo SirainenAC_SUBST(rundir)
b7c2065b3f10f9ae27787a9db5aaefbfc70d4502Timo SirainenAC_ARG_WITH(statedir,
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAS_HELP_STRING([--with-statedir=DIR], [Permanent data directory (LOCALSTATEDIR/lib/dovecot)]),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen statedir="$withval",
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen statedir=$localstatedir/lib/$PACKAGE
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_SUBST(statedir)
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_ARG_WITH([systemdsystemunitdir],
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files (auto=detect)]), [
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen if test "$withval" = "auto"; then
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen systemdsystemunitdir=`$PKG_CONFIG --variable=systemdsystemunitdir systemd`
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen elif test "$withval" != "no"; then
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen systemdsystemunitdir=$withval
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainenif test "$systemdsystemunitdir" != ""; then
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen AC_SUBST(systemdsystemunitdir)
50fd2adea4c945b85e5a81d5e55b885b93405c0cTimo Sirainen AC_DEFINE(HAVE_SYSTEMD,, [Define if you want to use systemd socket activation])
20caa6854f0ba83719248a94464a7a24bb7dbd20Timo SirainenAM_CONDITIONAL(HAVE_SYSTEMD, test "$systemdsystemunitdir" != "")
20caa6854f0ba83719248a94464a7a24bb7dbd20Timo SirainenAC_ARG_WITH(gc,
20caa6854f0ba83719248a94464a7a24bb7dbd20Timo SirainenAS_HELP_STRING([--with-gc], [Use Boehm garbage collector]),
1c38a95332f1945c9806d7d83175a0d948f51291Timo Sirainen TEST_WITH(gc, $withval),
1c38a95332f1945c9806d7d83175a0d948f51291Timo SirainenAC_ARG_WITH(storages,
1c38a95332f1945c9806d7d83175a0d948f51291Timo SirainenAS_HELP_STRING([--with-storages], [Build with specified mail storage formats (mdbox sdbox maildir mbox cydir imapc pop3c)]), [
1c38a95332f1945c9806d7d83175a0d948f51291Timo Sirainen if test "$withval" = "yes" || test "$withval" = "no"; then
1c38a95332f1945c9806d7d83175a0d948f51291Timo Sirainen AC_MSG_ERROR([--with-storages needs storage list as parameter])
1c38a95332f1945c9806d7d83175a0d948f51291Timo Sirainen mail_storages="shared `echo "$withval"|sed 's/,/ /g'`" ],
1c38a95332f1945c9806d7d83175a0d948f51291Timo Sirainen mail_storages="shared mdbox sdbox maildir mbox cydir imapc pop3c")
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_SUBST(mail_storages)
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainenmail_storages="$mail_storages raw fail"
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen# drop duplicates
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainenduplicates=`(for i in $mail_storages; do echo $i; done)|sort|uniq -d|xargs echo`
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainenif test "$duplicates" != ""; then
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen AC_ERROR([Duplicate --with-storages: $duplicates])
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenDC_DOVECOT_MODULEDIR
25757faf029c369a8318349dafe952e2358df1d8Timo SirainenAC_ARG_WITH(docs,
b7c2065b3f10f9ae27787a9db5aaefbfc70d4502Timo SirainenAS_HELP_STRING([--with-docs], [Install documentation (default)]),
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen if test x$withval = xno; then
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])
CFLAGS="$CFLAGS -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast"
# clang 3.3+ unfortunately this gives warnings with hash.h
AC_CHECK_HEADER(tcpd.h, [
#include <tcpd.h>
AC_ERROR([Can't build with libwrap support: tcpd.h not found])
AC_DEFINE(PACKAGE_WEBPAGE, "http://www.dovecot.org/", [Support URL])
#include <sys/types.h>
#include <sys/socket.h>
dnl strtoimax and strtoumax are macros in HP-UX, so inttypes.h must be included
#include <inttypes.h>
#include <inttypes.h>
#include <sys/epoll.h>
#include <stdlib.h>
AC_DEFINE(PREAD_WRAPPERS,, [Define if pread/pwrite needs _XOPEN_SOURCE 500])
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
int fd = creat("conftest.temp", 0600);
unlink("conftest.temp");
# for getting fd_send/fd_recv working:
AC_DEFINE(PREAD_BROKEN,, [Define if pread/pwrite implementation is broken])
#include <sys/types.h>
#include <stdio.h>
#include <sys/types.h>
dnl * older autoconfs don't include sys/types.h, so do it manually
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
d.d_type = DT_DIR;
#include <limits.h>
#include <sys/types.h>
#include <sys/types.h>
echo "..ignoring as requested.."
#include <sys/types.h>
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>])
AC_MSG_CHECKING([for /dev/urandom])
AC_CHECK_HEADER(openssl/rand.h, [
AC_DEFINE(HAVE_OPENSSL_RAND_H,, [Define if you have openssl/rand.h])
#include <time.h>]],
#include <stdio.h>
#include <time.h>
f = fopen("conftest.temp", "w");
i_cv_gmtime_max_time_t=`cat conftest.temp`
rm -f conftest.temp
AC_DEFINE_UNQUOTED(TIME_T_MAX_BITS, $i_cv_gmtime_max_time_t, [max. time_t bits gmtime() can handle])
#include <sys/types.h>
AC_DEFINE_UNQUOTED(FLEXIBLE_ARRAY_MEMBER, $flexible_value, [How to define flexible array members in structs])
#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 <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <sys/prctl.h>
#include <unistd.h>
#include <sys/mman.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/mman.h>
int f = open("conftest.mmap", O_RDWR|O_CREAT|O_TRUNC, 0600);
unlink("conftest.mmap");
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include "fdpass.h"
send_fd = creat("conftest.fdpass", 0600);
unlink("conftest.fdpass");
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/sendfile.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <stdlib.h>
dnl * Check for crypt() if unistd.h compiles with _XOPEN_SOURCE + _XPG6
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
unsigned long x = st.st_mtim.tv_nsec;
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
unsigned long x = st.st_mtimespec.tv_nsec;
AC_CACHE_CHECK([if statvfs.f_mntfromname exists],i_cv_have_statvfs_f_mntfromname,[
#include <sys/types.h>
#include <sys/statvfs.h>
char *p = buf.f_mntfromname;
AC_DEFINE(HAVE_STATVFS_MNTFROMNAME,, [Define if you have statvfs.f_mntfromname])
AC_CACHE_CHECK([if statfs.f_mntfromname exists],i_cv_have_statfs_f_mntfromname,[
#include <sys/param.h>
#include <sys/mount.h>
char *p = buf.f_mntfromname;
AC_DEFINE(HAVE_STATFS_MNTFROMNAME,, [Define if you have statfs.f_mntfromname])
dnl * Check if we have struct dqblk.dqb_curblocks
AC_CACHE_CHECK([if struct dqblk.dqb_curblocks exists],i_cv_have_dqblk_dqb_curblocks,[
#include <sys/types.h>
#include "$srcdir/src/plugins/quota/quota-fs.h"
unsigned int x = dqblk.dqb_curblocks;
AC_DEFINE(HAVE_STRUCT_DQBLK_CURBLOCKS,, [Define if struct sqblk.dqb_curblocks exists])
dnl * Check if we have struct dqblk.dqb_curspace
AC_CACHE_CHECK([if struct dqblk.dqb_curspace exists],i_cv_have_dqblk_dqb_curspace,[
#include <sys/types.h>
#include "$srcdir/src/plugins/quota/quota-fs.h"
unsigned int x = dqblk.dqb_curspace;
AC_DEFINE(HAVE_STRUCT_DQBLK_CURSPACE,, [Define if struct sqblk.dqb_curspace exists])
#include <sys/types.h>
#include <sys/fs/ufs_quota.h>
#include <stdio.h>
#include <stdarg.h>
#include <stdarg.h>
#include <stdarg.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/vmount.h>
if test "$PKG_CONFIG" != "" && $PKG_CONFIG --exists openssl 2>/dev/null; then
AC_CHECK_HEADER(gnutls/gnutls.h, [
AC_ERROR([Can't build with GNUTLS: gnutls/gnutls.h not found])
AC_DEFINE(HAVE_SSL,, [Build with SSL/TLS support])
AC_CHECK_HEADER(shadow.h, [
AC_ERROR([Can't build with shadow support: shadow.h not found])
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])
AC_ERROR([Can't build with PAM support: pam_appl.h not found])
# have gssapi.h
AC_CHECK_HEADER([gssapi/gssapi.h], [
AC_DEFINE(HAVE_GSSAPI_GSSAPI_H,, [GSSAPI headers in gssapi/gssapi.h])
AC_CHECK_HEADER([gssapi.h], [
AC_DEFINE(HAVE_GSSAPI_H,, [GSSAPI headers in gssapi.h])
# include <gssapi.h>
# include <gssapi/gssapi.h>
#include <krb5.h>
#include <string.h>
AC_ERROR([Can't build with GSSAPI support: gssapi.h not found])
AC_CHECK_HEADER(ldap.h, [
AC_ERROR([Can't build with LDAP support: ldap.h not found])
#include <db.h>
AC_CHECK_HEADER(db.h, [
AC_ERROR([Can't build with db support: db.h not found])
AC_CHECK_HEADER(cdb.h, [
AC_ERROR([Can't build with CDB support: cdb.h not found])
if test -r "$i/$j/libpq-fe.h"; then
AC_CHECK_HEADER(libpq-fe.h, [
AC_ERROR([Can't build with PostgreSQL support: libpq-fe.h not found])
for j in include include/mysql ""; do
if test -r "$i/$j/mysql.h"; then
AC_CHECK_HEADER(mysql.h, [
#include <mysql.h>
#include <mysql.h>
AC_DEFINE(HAVE_MYSQL_SSL_VERIFY_SERVER_CERT,, [Define if your MySQL library supports verifying the name in the SSL certificate])
AC_ERROR([Can't build with MySQL support: mysql.h not found])
AC_CHECK_HEADER(sqlite3.h, [
AC_ERROR([Can't build with SQLite support: sqlite3.h not found])
AC_CHECK_HEADER(cassandra.h, [
AC_ERROR([Can't build with Cassandra support: cassandra.h not found])
vpop_etc="$vpopmail_home/etc"
AC_MSG_CHECKING([for vpopmail configuration at $vpop_etc/lib_deps])
if ! test -f $vpop_etc/lib_deps; then
AC_MSG_CHECKING([for vpopmail configuration at $vpop_etc/lib_deps])
if test -f $vpop_etc/lib_deps; then
AUTH_CFLAGS="$AUTH_CFLAGS `cat $vpop_etc/inc_deps` $CFLAGS"
AUTH_LIBS="$AUTH_LIBS `cat $vpop_etc/lib_deps`"
AC_ERROR([Can't build with vpopmail support: $vpop_etc/lib_deps not found])
# shrext_cmds comes from libtool.m4
#include <nss.h>
AC_ERROR([Can't build with NSS support: nss.h not found or not usable])
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>]],
maildir_libs='$(top_builddir)/src/lib-storage/index/maildir/libstorage_maildir.la'
mbox_libs='$(top_builddir)/src/lib-storage/index/mbox/libstorage_mbox.la'
dbox_common_libs='$(top_builddir)/src/lib-storage/index/dbox-common/libstorage_dbox_common.la'
sdbox_libs='$(top_builddir)/src/lib-storage/index/dbox-single/libstorage_dbox_single.la'
mdbox_libs='$(top_builddir)/src/lib-storage/index/dbox-multi/libstorage_dbox_multi.la'
cydir_libs='$(top_builddir)/src/lib-storage/index/cydir/libstorage_cydir.la'
imapc_libs='$(top_builddir)/src/lib-storage/index/imapc/libstorage_imapc.la $(top_builddir)/src/lib-imap-client/libimap_client.la'
pop3c_libs='$(top_builddir)/src/lib-storage/index/pop3c/libstorage_pop3c.la'
raw_libs='$(top_builddir)/src/lib-storage/index/raw/libstorage_raw.la'
shared_libs='$(top_builddir)/src/lib-storage/index/shared/libstorage_shared.la'
CORE_LIBS='$(top_builddir)/src/lib-dovecot/libdovecot.la'
STORAGE_LIB='$(top_builddir)/src/lib-storage/libdovecot-storage.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_COMPRESS='$(top_builddir)/src/lib-compression/libcompression.la'
LIBDOVECOT_LDA='$(top_builddir)/src/lib-lda/libdovecot-lda.la'
LIBDOVECOT_DEPS='$(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-dict/libdict.la $(top_builddir)/src/lib-dns/libdns.la $(top_builddir)/src/lib-fs/libfs.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-test/libtest.la $(top_builddir)/src/lib/liblib.la'
LIBDOVECOT_STORAGE_DEPS='$(top_builddir)/src/lib-storage/libstorage.la'
LIBDOVECOT_LOGIN='$(top_builddir)/src/login-common/liblogin.la'
LIBDOVECOT_COMPRESS='$(top_builddir)/src/lib-compression/libcompression.la'
LIBDOVECOT_LDA='$(top_builddir)/src/lib-lda/liblda.la'
LIBDOVECOT_DSYNC='$(top_builddir)/src/doveadm/dsync/libdovecot-dsync.la'
LIBDOVECOT_SQL='$(top_builddir)/src/lib-sql/libsql.la'
AC_CHECK_HEADER(zlib.h, [
AC_ERROR([Can't build with zlib support: zlib.h not found])
AC_CHECK_HEADER(bzlib.h, [
AC_ERROR([Can't build with bzlib support: bzlib.h not found])
AC_CHECK_HEADER(lzma.h, [
AC_ERROR([Can't build with lzma support: lzma.h not found])
AC_CHECK_HEADER(lz4.h, [
AC_ERROR([Can't build with lz4 support: lz4.h not found])
if test -f /usr/include/rpcsvc/rquota.x && test -n "$RPCGEN"; then
AC_CHECK_HEADER(expat.h, [
AC_ERROR([Can't build with Solr support: expat.h not found])
if test "$PKG_CONFIG" != "" && $PKG_CONFIG --exists libexttextcat 2>/dev/null; then
AC_CHECK_HEADERS(libexttextcat/textcat.h)
AC_CHECK_HEADERS(libexttextcat/textcat.h)
TEXTCAT_DATADIR="/usr/share/libexttextcat"
TEXTCAT_DATADIR="/usr/share/libtextcat"
AC_CHECK_HEADERS(libtextcat/textcat.h)
if test $want_textcat = yes && test "$have_fts_exttextcat" != yes && test "$have_fts_textcat" != yes; then
AC_DEFINE_UNQUOTED(TEXTCAT_DATADIR, "$TEXTCAT_DATADIR", [Points to textcat pkgdatadir containing the language files])
if test "$PKG_CONFIG" != "" && $PKG_CONFIG --exists icu-i18n 2>/dev/null; then
FILES1=`find $srcdir/src -name '*settings.[[ch]]'|grep "$srcdir/src/lib-" | sed 's/^\(.*\)\(.\)$/\2 \1\2/' | grep -v 'lib-master.*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])
chmod +x cc-wrapper.sh
CC=`pwd`/cc-wrapper.sh
AC_CONFIG_HEADERS([config.h])