configure.ac revision 612c4777cca7fa0d18a5cc23d2910f783fda936c
2454dfa32c93c20a8522c6ed42fe057baaac9f9aStephan BoschAC_PREREQ([2.59])
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen# Be sure to update ABI version also if anything changes that might require
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen# recompiling plugins. Most importantly that means if any structs are changed.
bdd36cfdba3ff66d25570a9ff568d69e1eb543cfTimo SirainenAC_INIT([Dovecot],[2.2.beta1],[dovecot@dovecot.org])
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAC_DEFINE_UNQUOTED([DOVECOT_ABI_VERSION], "2.2.ABIv0($PACKAGE_VERSION)", [Dovecot ABI version])
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAC_CONFIG_SRCDIR([src])
09060303d565e15d54e42b4ef722f9d3c26f5336Timo SirainenAM_INIT_AUTOMAKE([foreign])
9522aa5f33cc37fe8ccd0d647cc51dd3ba6a9b55Timo SirainenAM_MAINTAINER_MODE
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenPKG_PROG_PKG_CONFIG
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenACLOCAL_AMFLAGS='-I $(top_srcdir)'
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAC_SUBST(ACLOCAL_AMFLAGS)
4fda77c9e9fc68feb292c4dacae1fac49dd08165Timo Sirainendnl TEST_WITH(name, value, [plugin])
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAC_DEFUN([TEST_WITH], [
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen want=want_`echo $1|sed s/-/_/g`
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen if test $2 = yes || test $2 = no || test $2 = auto; then
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen eval $want=$2
f158d9a303bb15a6848ca276c9391c7ca52e452bTimo Sirainen elif test $2 = plugin; then
f158d9a303bb15a6848ca276c9391c7ca52e452bTimo Sirainen if test "$3" = plugin; then
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen eval $want=plugin
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen AC_ERROR([--with-$1=plugin not supported])
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen elif `echo $2|grep '^/' >/dev/null`; then
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen AC_ERROR([--with-$1=path not supported. You may want to use instead:
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo SirainenCPPFLAGS=-I$2/include LDFLAGS=-L$2/lib ./configure --with-$1])
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen AC_ERROR([--with-$1: Unknown value: $2])
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo SirainenAC_ARG_ENABLE(devel-checks,
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAS_HELP_STRING([--enable-devel-checks], [Enable some extra expensive checks for developers]),
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen if test x$enableval = xyes; then
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen AC_DEFINE(DEBUG,, Build with extra debugging checks)
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen want_devel_checks=yes
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAC_ARG_ENABLE(asserts,
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAS_HELP_STRING([--enable-asserts], [Enable asserts (default)]),
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen if test x$enableval = xno; then
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen AC_DEFINE(DISABLE_ASSERTS,, Disable asserts)
0dffa25d211be541ee3c953b23566a1a990789dfTimo SirainenAC_ARG_WITH(shared-libs,
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAS_HELP_STRING([--with-shared-libs], [Link binaries using shared Dovecot libraries (default)]),
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen want_shared_libs=$withval,
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen want_shared_libs=yes)
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo SirainenAM_CONDITIONAL(BUILD_SHARED_LIBS, test "$want_shared_libs" = "yes")
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo SirainenAC_ARG_WITH(mem-align,
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAS_HELP_STRING([--with-mem-align=BYTES], [Set the memory alignment (default: 8)]),
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen mem_align=$withval,
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAC_ARG_WITH(ioloop,
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo 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)]),
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen ioloop=$withval,
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAC_ARG_WITH(notify,
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAS_HELP_STRING([--with-notify=NOTIFY], [Specify the file system notification method to use (inotify, kqueue, dnotify, none; default is detected in the above order)]),
093b42b11c1236a687d3da564b26a324e2189ae6Timo Sirainen notify=$withval,
09060303d565e15d54e42b4ef722f9d3c26f5336Timo SirainenAC_ARG_WITH(nss,
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAS_HELP_STRING([--with-nss], [Build with NSS module support (auto)]),
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen TEST_WITH(nss, $withval),
e2a88d59c0d47d63ce1ad5b1fd95e487124a3fd4Timo Sirainen want_nss=auto)
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAC_ARG_WITH(shadow,
8b16d3b00f051401c97568697ccdbba48663759aTimo SirainenAS_HELP_STRING([--with-shadow], [Build with shadow password support (auto)]),
8b16d3b00f051401c97568697ccdbba48663759aTimo Sirainen TEST_WITH(shadow, $withval),
8b16d3b00f051401c97568697ccdbba48663759aTimo Sirainen want_shadow=auto)
8b16d3b00f051401c97568697ccdbba48663759aTimo SirainenAC_ARG_WITH(pam,
8b16d3b00f051401c97568697ccdbba48663759aTimo SirainenAS_HELP_STRING([--with-pam], [Build with PAM support (auto)]),
8b16d3b00f051401c97568697ccdbba48663759aTimo Sirainen TEST_WITH(pam, $withval),
8b16d3b00f051401c97568697ccdbba48663759aTimo Sirainen want_pam=auto)
b44033e45e9f48f8a6e1ac5905234fec5de6d6ccAki TuomiAC_ARG_WITH(bsdauth,
b44033e45e9f48f8a6e1ac5905234fec5de6d6ccAki TuomiAS_HELP_STRING([--with-bsdauth], [Build with BSD authentication support (auto)]),
8b16d3b00f051401c97568697ccdbba48663759aTimo Sirainen TEST_WITH(bsdauth, $withval),
8b16d3b00f051401c97568697ccdbba48663759aTimo Sirainen want_bsdauth=auto)
8b16d3b00f051401c97568697ccdbba48663759aTimo SirainenAC_ARG_WITH(gssapi,
8b16d3b00f051401c97568697ccdbba48663759aTimo SirainenAS_HELP_STRING([--with-gssapi=yes|plugin Build with GSSAPI authentication support]),
8b16d3b00f051401c97568697ccdbba48663759aTimo Sirainen TEST_WITH(gssapi, $withval, plugin),
8b16d3b00f051401c97568697ccdbba48663759aTimo Sirainen want_gssapi=no)
8b16d3b00f051401c97568697ccdbba48663759aTimo SirainenAC_ARG_WITH(sia,
8b16d3b00f051401c97568697ccdbba48663759aTimo SirainenAS_HELP_STRING([--with-sia], [Build with Tru64 SIA support]),
8b16d3b00f051401c97568697ccdbba48663759aTimo Sirainen TEST_WITH(sia, $withval),
8b16d3b00f051401c97568697ccdbba48663759aTimo SirainenAC_ARG_WITH(ldap,
8b16d3b00f051401c97568697ccdbba48663759aTimo SirainenAS_HELP_STRING([--with-ldap=yes|plugin], [Build with LDAP support]),
8b16d3b00f051401c97568697ccdbba48663759aTimo Sirainen TEST_WITH(ldap, $withval, plugin),
8b16d3b00f051401c97568697ccdbba48663759aTimo Sirainen want_ldap=no)
8b16d3b00f051401c97568697ccdbba48663759aTimo SirainenAC_ARG_WITH(vpopmail,
8b16d3b00f051401c97568697ccdbba48663759aTimo SirainenAS_HELP_STRING([--with-vpopmail], [Build with vpopmail support (auto)]),
8b16d3b00f051401c97568697ccdbba48663759aTimo Sirainen if test x$withval = xno; then
8b16d3b00f051401c97568697ccdbba48663759aTimo Sirainen want_vpopmail=no
8b16d3b00f051401c97568697ccdbba48663759aTimo Sirainen if test x$withval = xyes || test x$withval = xauto; then
e2a88d59c0d47d63ce1ad5b1fd95e487124a3fd4Timo Sirainen vpopmail_home="`echo ~vpopmail`"
8b16d3b00f051401c97568697ccdbba48663759aTimo Sirainen want_vpopmail=$withval
8b16d3b00f051401c97568697ccdbba48663759aTimo Sirainen vpopmail_home="$withval"
8b16d3b00f051401c97568697ccdbba48663759aTimo Sirainen want_vpopmail=yes
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen want_vpopmail=no
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen# Berkeley DB support is more or less broken. Disabled for now.
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen#AC_ARG_WITH(db,
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen#AS_HELP_STRING([--with-db], [Build with Berkeley DB support]),
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen# TEST_WITH(db, $withval),
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainendnl The --with-sql is useful only if Dovecot is being built with all the SQL
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainendnl drivers as modules. If any SQL driver is built-in, this option is ignored.
ad404d294fedf792619aed432ed8de5174e9ce7cTimo SirainenAC_ARG_WITH(sql,
ad404d294fedf792619aed432ed8de5174e9ce7cTimo SirainenAS_HELP_STRING([--with-sql=yes|plugin], [Build with generic SQL support]),
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen TEST_WITH(sql, $withval, plugin),
ad404d294fedf792619aed432ed8de5174e9ce7cTimo SirainenAC_ARG_WITH(pgsql,
ad404d294fedf792619aed432ed8de5174e9ce7cTimo SirainenAS_HELP_STRING([--with-pgsql], [Build with PostgreSQL driver support]),
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen TEST_WITH(pgsql, $withval),
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen want_pgsql=no)
ad404d294fedf792619aed432ed8de5174e9ce7cTimo SirainenAC_ARG_WITH(mysql,
ad404d294fedf792619aed432ed8de5174e9ce7cTimo SirainenAS_HELP_STRING([--with-mysql], [Build with MySQL driver support]),
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen TEST_WITH(mysql, $withval),
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen want_mysql=no)
ad404d294fedf792619aed432ed8de5174e9ce7cTimo SirainenAC_ARG_WITH(sqlite,
ad404d294fedf792619aed432ed8de5174e9ce7cTimo SirainenAS_HELP_STRING([--with-sqlite], [Build with SQLite3 driver support]),
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen TEST_WITH(sqlite, $withval),
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen want_sqlite=no)
ad404d294fedf792619aed432ed8de5174e9ce7cTimo SirainenAC_ARG_WITH(lucene,
ad404d294fedf792619aed432ed8de5174e9ce7cTimo SirainenAS_HELP_STRING([--with-lucene], [Build with CLucene full text search support]),
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen TEST_WITH(lucene, $withval),
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen want_lucene=no)
ad404d294fedf792619aed432ed8de5174e9ce7cTimo SirainenAM_CONDITIONAL(BUILD_LUCENE, test "$want_lucene" = "yes")
ad404d294fedf792619aed432ed8de5174e9ce7cTimo SirainenAC_ARG_WITH(stemmer,
ad404d294fedf792619aed432ed8de5174e9ce7cTimo SirainenAS_HELP_STRING([--with-stemmer], [Build with libstemmer support (for CLucene)]),
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen TEST_WITH(stemmer, $withval),
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen want_stemmer=auto)
ad404d294fedf792619aed432ed8de5174e9ce7cTimo SirainenAC_ARG_WITH(solr,
ad404d294fedf792619aed432ed8de5174e9ce7cTimo SirainenAS_HELP_STRING([--with-solr], [Build with Solr full text search support]),
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen TEST_WITH(solr, $withval),
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen want_solr=no)
ad404d294fedf792619aed432ed8de5174e9ce7cTimo SirainenAC_ARG_WITH(zlib,
ad404d294fedf792619aed432ed8de5174e9ce7cTimo SirainenAS_HELP_STRING([--with-zlib], [Build with zlib compression support]),
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen TEST_WITH(zlib, $withval),
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen want_zlib=auto)
4fda77c9e9fc68feb292c4dacae1fac49dd08165Timo SirainenAC_ARG_WITH(bzlib,
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAS_HELP_STRING([--with-bzlib], [Build with bzlib compression support]),
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen TEST_WITH(bzlib, $withval),
4fda77c9e9fc68feb292c4dacae1fac49dd08165Timo Sirainen want_bzlib=auto)
8c2b4a45f17a5cb13bb01058ca37798cf48d91baTimo SirainenAC_ARG_WITH(libcap,
4fda77c9e9fc68feb292c4dacae1fac49dd08165Timo SirainenAS_HELP_STRING([--with-libcap], [Build with libcap support (Dropping capabilities).]),
4fda77c9e9fc68feb292c4dacae1fac49dd08165Timo Sirainen TEST_WITH(libcap, $withval),
4fda77c9e9fc68feb292c4dacae1fac49dd08165Timo Sirainen want_libcap=auto)
4fda77c9e9fc68feb292c4dacae1fac49dd08165Timo SirainenAC_ARG_WITH(libwrap,
4fda77c9e9fc68feb292c4dacae1fac49dd08165Timo SirainenAS_HELP_STRING([--with-libwrap], [Build with libwrap, ie. TCP-wrappers]),
4fda77c9e9fc68feb292c4dacae1fac49dd08165Timo Sirainen TEST_WITH(libwrap, $withval),
4fda77c9e9fc68feb292c4dacae1fac49dd08165Timo Sirainen want_libwrap=no)
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo SirainenAC_ARG_WITH(ssl,
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo SirainenAS_HELP_STRING([--with-ssl=gnutls|openssl], [Build with GNUTLS or OpenSSL (default)]),
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo Sirainen if test x$withval = xno; then
4fda77c9e9fc68feb292c4dacae1fac49dd08165Timo Sirainen want_gnutls=no
4fda77c9e9fc68feb292c4dacae1fac49dd08165Timo Sirainen want_openssl=no
4fda77c9e9fc68feb292c4dacae1fac49dd08165Timo Sirainen elif test x$withval = xgnutls; then
4fda77c9e9fc68feb292c4dacae1fac49dd08165Timo Sirainen AC_ERROR([GNUTLS support is broken currently])
4fda77c9e9fc68feb292c4dacae1fac49dd08165Timo Sirainen want_gnutls=yes
4fda77c9e9fc68feb292c4dacae1fac49dd08165Timo Sirainen want_openssl=no
4fda77c9e9fc68feb292c4dacae1fac49dd08165Timo Sirainen elif test x$withval = xopenssl; then
8c2b4a45f17a5cb13bb01058ca37798cf48d91baTimo Sirainen want_gnutls=no
8c2b4a45f17a5cb13bb01058ca37798cf48d91baTimo Sirainen want_openssl=yes
8c2b4a45f17a5cb13bb01058ca37798cf48d91baTimo Sirainen elif test x$withval = xyes; then
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen want_gnutls=no
4fda77c9e9fc68feb292c4dacae1fac49dd08165Timo Sirainen want_openssl=yes
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen AC_ERROR([--with-ssl: Invalid value: $withval])
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen want_gnutls=no
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen want_openssl=auto
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAC_ARG_WITH(ssldir,
e2a88d59c0d47d63ce1ad5b1fd95e487124a3fd4Timo SirainenAS_HELP_STRING([--with-ssldir=DIR], [SSL base directory for certificates (/etc/ssl)]),
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen ssldir="$withval",
892e25e1c0caad62ced087d9eba2741a59e3d9ceTimo SirainenAC_SUBST(ssldir)
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo SirainenAC_ARG_WITH(rundir,
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo SirainenAS_HELP_STRING([--with-rundir=DIR], [Runtime data directory (LOCALSTATEDIR/run/dovecot)]),
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo Sirainen rundir="$withval",
009217abb57a24a4076092e8e4e165545747839eStephan Bosch rundir=$localstatedir/run/$PACKAGE
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo SirainenAC_SUBST(rundir)
009217abb57a24a4076092e8e4e165545747839eStephan BoschAC_ARG_WITH(statedir,
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo SirainenAS_HELP_STRING([--with-statedir=DIR], [Permanent data directory (LOCALSTATEDIR/lib/dovecot)]),
3c3001681da75afc68578a180ec8f8b2d6dfacfaTimo Sirainen statedir="$withval",
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo Sirainen statedir=$localstatedir/lib/$PACKAGE
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo SirainenAC_SUBST(statedir)
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo SirainenAC_ARG_WITH([systemdsystemunitdir],
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo SirainenAS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files (auto=detect)]), [
e2a88d59c0d47d63ce1ad5b1fd95e487124a3fd4Timo Sirainen if test "$withval" = "auto"; then
3c3001681da75afc68578a180ec8f8b2d6dfacfaTimo Sirainen systemdsystemunitdir=`$PKG_CONFIG --variable=systemdsystemunitdir systemd`
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo Sirainen elif test "$withval" != "no"; then
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo Sirainen systemdsystemunitdir=$withval
892e25e1c0caad62ced087d9eba2741a59e3d9ceTimo Sirainenif test "$systemdsystemunitdir" != ""; then
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo Sirainen AC_SUBST(systemdsystemunitdir)
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo Sirainen AC_DEFINE(HAVE_SYSTEMD,, Define if you want to use systemd socket activation)
009217abb57a24a4076092e8e4e165545747839eStephan BoschAM_CONDITIONAL(HAVE_SYSTEMD, test "$systemdsystemunitdir" != "")
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo SirainenAC_ARG_WITH(gc,
49ec317299dedfbc27be79ab97d5b7a8ba7a4eacTimo SirainenAS_HELP_STRING([--with-gc], [Use Boehm garbage collector]),
009217abb57a24a4076092e8e4e165545747839eStephan Bosch TEST_WITH(gc, $withval),
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo SirainenAC_ARG_WITH(storages,
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo SirainenAS_HELP_STRING([--with-storages], [Build with specified mail storage formats (mdbox sdbox maildir mbox cydir imapc pop3c)]), [
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo Sirainen if test "$withval" = "yes" || test "$withval" = "no"; then
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo Sirainen AC_MSG_ERROR([--with-storages needs storage list as parameter])
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo Sirainen mail_storages="shared `echo "$withval"|sed 's/,/ /g'`" ],
e2a88d59c0d47d63ce1ad5b1fd95e487124a3fd4Timo Sirainen mail_storages="shared mdbox sdbox maildir mbox cydir imapc pop3c")
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo SirainenAC_SUBST(mail_storages)
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo Sirainenmail_storages="$mail_storages raw fail"
e2a88d59c0d47d63ce1ad5b1fd95e487124a3fd4Timo Sirainen# drop duplicates
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo Sirainenduplicates=`(for i in $mail_storages; do echo $i; done)|sort|uniq -d|xargs echo`
3c3001681da75afc68578a180ec8f8b2d6dfacfaTimo Sirainenif test "$duplicates" != ""; then
e4194f4703eeec32b432371ae30fc8f25ab720d8Timo Sirainen AC_ERROR([Duplicate --with-storages: $duplicates])
892e25e1c0caad62ced087d9eba2741a59e3d9ceTimo SirainenDC_DOVECOT_MODULEDIR
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAC_ARG_WITH(docs,
cf9d67e4a9bfee31cf3be05244555d51a3d1b9feTimo SirainenAS_HELP_STRING([--with-docs], [Install documentation (default)]),
892e25e1c0caad62ced087d9eba2741a59e3d9ceTimo Sirainen if test x$withval = xno; then
8ae72ad7d0c69e972cfa65d1e2ce4e3e9a8b765cTimo Sirainen want_docs=yes
09060303d565e15d54e42b4ef722f9d3c26f5336Timo Sirainen want_docs=yes)
09060303d565e15d54e42b4ef722f9d3c26f5336Timo SirainenAM_CONDITIONAL(BUILD_DOCS, test "$want_docs" = "yes")
09060303d565e15d54e42b4ef722f9d3c26f5336Timo Sirainendnl always enable all of the passbs and userdbs that don't require extra libs
09060303d565e15d54e42b4ef722f9d3c26f5336Timo Sirainenwant_passwd=yes
09060303d565e15d54e42b4ef722f9d3c26f5336Timo Sirainenwant_passwd_file=yes
09060303d565e15d54e42b4ef722f9d3c26f5336Timo Sirainenwant_checkpassword=yes
09060303d565e15d54e42b4ef722f9d3c26f5336Timo Sirainenwant_prefetch_userdb=yes
892e25e1c0caad62ced087d9eba2741a59e3d9ceTimo SirainenAC_PROG_CXX # lucene plugin needs this
3c3001681da75afc68578a180ec8f8b2d6dfacfaTimo SirainenAC_HEADER_STDC
8ae72ad7d0c69e972cfa65d1e2ce4e3e9a8b765cTimo SirainenAC_PROG_LIBTOOL
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAC_DEFINE_UNQUOTED(DOVECOT_NAME, "$PACKAGE_NAME", Dovecot name)
cf9d67e4a9bfee31cf3be05244555d51a3d1b9feTimo SirainenAC_DEFINE_UNQUOTED(DOVECOT_STRING, "$PACKAGE_STRING", Dovecot string)
a4502a71879d6018bd2c64f13614bb619911dd9fTimo SirainenAC_DEFINE_UNQUOTED(DOVECOT_VERSION, "$PACKAGE_VERSION", Dovecot version)
a4502a71879d6018bd2c64f13614bb619911dd9fTimo SirainenAC_CHECK_HEADERS(strings.h stdint.h unistd.h dirent.h malloc.h inttypes.h \
3c3001681da75afc68578a180ec8f8b2d6dfacfaTimo Sirainen sys/uio.h sys/sysmacros.h sys/resource.h sys/select.h libgen.h \
a4502a71879d6018bd2c64f13614bb619911dd9fTimo Sirainen sys/quota.h sys/fs/ufs_quota.h ufs/ufs/quota.h jfs/quota.h sys/fs/quota_common.h \
09060303d565e15d54e42b4ef722f9d3c26f5336Timo Sirainen mntent.h sys/mnttab.h sys/event.h sys/time.h sys/mkdev.h linux/dqblk_xfs.h \
9058f3006fffd25835ad701e1b2c3c8faafd3c80Timo Sirainen xfs/xqm.h execinfo.h ucontext.h malloc_np.h sys/utsname.h sys/vmount.h \
9058f3006fffd25835ad701e1b2c3c8faafd3c80Timo Sirainen sys/utsname.h glob.h linux/falloc.h ucred.h sys/ucred.h)
28789c7ce1aa66ab21798bfb73ec64308b9a4de8Timo Sirainendnl * clang check
28789c7ce1aa66ab21798bfb73ec64308b9a4de8Timo Sirainenif $CC -dM -E -x c /dev/null | grep __clang__ > /dev/null 2>&1; then
3c3001681da75afc68578a180ec8f8b2d6dfacfaTimo Sirainen have_clang=yes
87842f621233257b7a7945d994ba931508b34877Timo Sirainendnl * gcc specific options
a4502a71879d6018bd2c64f13614bb619911dd9fTimo Sirainenif test "x$ac_cv_c_compiler_gnu" = "xyes"; then
09060303d565e15d54e42b4ef722f9d3c26f5336Timo Sirainen # -Wcast-qual -Wcast-align -Wconversion -Wunreachable-code # too many warnings
09060303d565e15d54e42b4ef722f9d3c26f5336Timo Sirainen # -Wstrict-prototypes -Wredundant-decls # may give warnings in some systems
0a53eb0283d7ec28c6105f61e118b96fce8ecb95Timo Sirainen # -Wmissing-format-attribute -Wmissing-noreturn -Wwrite-strings # a couple of warnings
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen CFLAGS="$CFLAGS -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast"
3c3001681da75afc68578a180ec8f8b2d6dfacfaTimo Sirainen if test "$have_clang" != "yes"; then
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen # This is simply to avoid warning when building strftime() wrappers..
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen CFLAGS="$CFLAGS -fno-builtin-strftime"
a4502a71879d6018bd2c64f13614bb619911dd9fTimo Sirainen AC_TRY_COMPILE([
892e25e1c0caad62ced087d9eba2741a59e3d9ceTimo Sirainen #if __GNUC__ < 4
a4502a71879d6018bd2c64f13614bb619911dd9fTimo Sirainen # error old gcc
a4502a71879d6018bd2c64f13614bb619911dd9fTimo Sirainen CFLAGS="$CFLAGS -Wstrict-aliasing=2"
a4502a71879d6018bd2c64f13614bb619911dd9fTimo Sirainen # Use std=gnu99 if we have new enough gcc
3c3001681da75afc68578a180ec8f8b2d6dfacfaTimo Sirainen old_cflags=$CFLAGS
a5ddfd7a8b473f73135b93d5e081e470a87f0f7eTimo Sirainen CFLAGS="-std=gnu99"
892e25e1c0caad62ced087d9eba2741a59e3d9ceTimo Sirainen AC_TRY_COMPILE([
a5ddfd7a8b473f73135b93d5e081e470a87f0f7eTimo Sirainen CFLAGS="$CFLAGS $old_cflags"
a5ddfd7a8b473f73135b93d5e081e470a87f0f7eTimo Sirainen CFLAGS="$old_cflags"
892e25e1c0caad62ced087d9eba2741a59e3d9ceTimo Sirainenif test "$have_clang" = "yes"; then
892e25e1c0caad62ced087d9eba2741a59e3d9ceTimo Sirainen # clang specific options
3c3001681da75afc68578a180ec8f8b2d6dfacfaTimo Sirainen if test "$want_devel_checks" = "yes"; then
a5ddfd7a8b473f73135b93d5e081e470a87f0f7eTimo Sirainen CFLAGS="$CFLAGS -fcatch-undefined-behavior -ftrapv"
a5ddfd7a8b473f73135b93d5e081e470a87f0f7eTimo Sirainendnl ** just some generic stuff...
28789c7ce1aa66ab21798bfb73ec64308b9a4de8Timo SirainenAC_SEARCH_LIBS(socket, socket)
28789c7ce1aa66ab21798bfb73ec64308b9a4de8Timo SirainenAC_SEARCH_LIBS(inet_addr, nsl)
28789c7ce1aa66ab21798bfb73ec64308b9a4de8Timo SirainenAC_SEARCH_LIBS(fdatasync, rt, [
3c3001681da75afc68578a180ec8f8b2d6dfacfaTimo Sirainen AC_DEFINE(HAVE_FDATASYNC,, Define if you have fdatasync())
a5ddfd7a8b473f73135b93d5e081e470a87f0f7eTimo Sirainenif test $want_libcap != no; then
a5ddfd7a8b473f73135b93d5e081e470a87f0f7eTimo Sirainen AC_CHECK_LIB(cap, cap_init, [
a5ddfd7a8b473f73135b93d5e081e470a87f0f7eTimo Sirainen AC_DEFINE(HAVE_LIBCAP,, libcap is installed for cap_init())
a5ddfd7a8b473f73135b93d5e081e470a87f0f7eTimo Sirainen LIBCAP="-lcap"
3c3001681da75afc68578a180ec8f8b2d6dfacfaTimo Sirainen AC_SUBST(LIBCAP)
a5ddfd7a8b473f73135b93d5e081e470a87f0f7eTimo Sirainen if test "$want_libcap" = "yes"; then
3c3001681da75afc68578a180ec8f8b2d6dfacfaTimo Sirainen AC_ERROR([Can't build with libcap support: libcap not found])
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainenhave_libwrap=no
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainenif test $want_libwrap != no; then
892e25e1c0caad62ced087d9eba2741a59e3d9ceTimo Sirainen AC_CHECK_HEADER(tcpd.h, [
5e9bb72de1209cd39fdf3e95bdb26e047cc5594eTimo Sirainen old_LIBS=$LIBS
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen AC_CACHE_CHECK([whether we have libwrap],i_cv_have_libwrap,[
cf9d67e4a9bfee31cf3be05244555d51a3d1b9feTimo Sirainen AC_TRY_COMPILE([
e2a88d59c0d47d63ce1ad5b1fd95e487124a3fd4Timo Sirainen int allow_severity = 0;
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen int deny_severity = 0;
0a53eb0283d7ec28c6105f61e118b96fce8ecb95Timo Sirainen request_init((void *)0);
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen i_cv_have_libwrap=yes
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen i_cv_have_libwrap=no
5e9bb72de1209cd39fdf3e95bdb26e047cc5594eTimo Sirainen if test $i_cv_have_libwrap = yes; then
5e9bb72de1209cd39fdf3e95bdb26e047cc5594eTimo Sirainen AC_DEFINE(HAVE_LIBWRAP,, Define if you have libwrap)
5e9bb72de1209cd39fdf3e95bdb26e047cc5594eTimo Sirainen LIBWRAP_LIBS=-lwrap
9ffd3c8ca82bd2af8ca4f7e167339820ddcf1fe3Timo Sirainen AC_SUBST(LIBWRAP_LIBS)
5e9bb72de1209cd39fdf3e95bdb26e047cc5594eTimo Sirainen have_libwrap=yes
9ffd3c8ca82bd2af8ca4f7e167339820ddcf1fe3Timo Sirainen if test "$want_libwrap" = "yes"; then
0a53eb0283d7ec28c6105f61e118b96fce8ecb95Timo Sirainen AC_ERROR([Can't build with libwrap support: libwrap not found])
9ffd3c8ca82bd2af8ca4f7e167339820ddcf1fe3Timo Sirainen LIBS=$old_LIBS
9ffd3c8ca82bd2af8ca4f7e167339820ddcf1fe3Timo Sirainen if test "$want_libwrap" = "yes"; then
e2a88d59c0d47d63ce1ad5b1fd95e487124a3fd4Timo Sirainen AC_ERROR([Can't build with libwrap support: tcpd.h not found])
892e25e1c0caad62ced087d9eba2741a59e3d9ceTimo SirainenAM_CONDITIONAL(TCPWRAPPERS, test "$have_libwrap" = "yes")
5e9bb72de1209cd39fdf3e95bdb26e047cc5594eTimo SirainenAC_DEFINE(PACKAGE_WEBPAGE, "http://www.dovecot.org/", Support URL)
5e9bb72de1209cd39fdf3e95bdb26e047cc5594eTimo Sirainendnl * after -lsocket and -lnsl tests, inet_aton() may be in them
892e25e1c0caad62ced087d9eba2741a59e3d9ceTimo SirainenAC_CHECK_FUNCS(fcntl flock lockf inet_aton sigaction getpagesize madvise \
5e9bb72de1209cd39fdf3e95bdb26e047cc5594eTimo Sirainen strcasecmp stricmp vsyslog writev pread uname unsetenv \
3c3001681da75afc68578a180ec8f8b2d6dfacfaTimo Sirainen setrlimit setproctitle seteuid setreuid setegid setresgid \
5e9bb72de1209cd39fdf3e95bdb26e047cc5594eTimo Sirainen strtoull strtoll strtouq strtoq getmntinfo \
5e9bb72de1209cd39fdf3e95bdb26e047cc5594eTimo Sirainen setpriority quotactl getmntent kqueue kevent backtrace_symbols \
892e25e1c0caad62ced087d9eba2741a59e3d9ceTimo Sirainen walkcontext dirfd clearenv malloc_usable_size glob fallocate \
5e9bb72de1209cd39fdf3e95bdb26e047cc5594eTimo Sirainen posix_fadvise getpeereid getpeerucred)
5e9bb72de1209cd39fdf3e95bdb26e047cc5594eTimo SirainenAC_CHECK_TYPES([struct sockpeercred])
5e9bb72de1209cd39fdf3e95bdb26e047cc5594eTimo SirainenAC_SEARCH_LIBS(clock_gettime, rt, [
e2a88d59c0d47d63ce1ad5b1fd95e487124a3fd4Timo Sirainen AC_DEFINE(HAVE_CLOCK_GETTIME,, Define if you have the clock_gettime function)
0a53eb0283d7ec28c6105f61e118b96fce8ecb95Timo Sirainendnl strtoimax and strtoumax are macros in HP-UX, so inttypes.h must be included
e2a88d59c0d47d63ce1ad5b1fd95e487124a3fd4Timo Sirainendnl Link instead of just compiling since there's something wrong with Tru64
5e9bb72de1209cd39fdf3e95bdb26e047cc5594eTimo SirainenAC_CACHE_CHECK([for strtoimax],i_cv_have_strtoimax,[
3c3001681da75afc68578a180ec8f8b2d6dfacfaTimo Sirainen AC_TRY_LINK([
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen strtoimax(0, 0, 0);
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen i_cv_have_strtoimax=yes
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen i_cv_have_strtoimax=no
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainenif test $i_cv_have_strtoimax = yes; then
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen AC_DEFINE(HAVE_STRTOIMAX,, Define if you have strtoimax function)
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo SirainenAC_CACHE_CHECK([for strtoumax],i_cv_have_strtoumax,[
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen AC_TRY_LINK([
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen strtoumax(0, 0, 0);
7bccaece91a0b1bc61111c30443d6bad6b22c6d0Timo Sirainen i_cv_have_strtoumax=yes
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen i_cv_have_strtoumax=no
7bccaece91a0b1bc61111c30443d6bad6b22c6d0Timo Sirainenif test $i_cv_have_strtoumax = yes; then
7bccaece91a0b1bc61111c30443d6bad6b22c6d0Timo Sirainen AC_DEFINE(HAVE_STRTOUMAX,, Define if you have strtoumax function)
1f7f4294207557edf83171642ef62ce4922ffc9dTimo Sirainendnl * I/O loop function
b44033e45e9f48f8a6e1ac5905234fec5de6d6ccAki Tuomihave_ioloop=no
7bccaece91a0b1bc61111c30443d6bad6b22c6d0Timo Sirainenif test "$ioloop" = "best" || test "$ioloop" = "epoll"; then
7bccaece91a0b1bc61111c30443d6bad6b22c6d0Timo Sirainen AC_CACHE_CHECK([whether we can use epoll],i_cv_epoll_works,[
7bccaece91a0b1bc61111c30443d6bad6b22c6d0Timo Sirainen return epoll_create(5) < 1;
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen i_cv_epoll_works=yes
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen i_cv_epoll_works=no
7bccaece91a0b1bc61111c30443d6bad6b22c6d0Timo Sirainen if test $i_cv_epoll_works = yes; then
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen AC_DEFINE(IOLOOP_EPOLL,, Implement I/O loop with Linux 2.6 epoll())
7bccaece91a0b1bc61111c30443d6bad6b22c6d0Timo Sirainen have_ioloop=yes
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen if test "$ioloop" = "epoll" ; then
7bccaece91a0b1bc61111c30443d6bad6b22c6d0Timo Sirainen AC_MSG_ERROR([epoll ioloop requested but epoll_create() is not available])
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainenif test "$ioloop" = "best" || test "$ioloop" = "kqueue"; then
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen if test "$ac_cv_func_kqueue" = yes && test "$ac_cv_func_kevent" = yes; then
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen AC_DEFINE(IOLOOP_KQUEUE,, [Implement I/O loop with BSD kqueue()])
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen ioloop=kqueue
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen have_ioloop=yes
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen elif test "$ioloop" = "kqueue"; then
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen AC_MSG_ERROR([kqueue ioloop requested but kqueue() is not available])
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainenif test "$ioloop" = "best" || test "$ioloop" = "poll"; then
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen AC_CHECK_FUNC(poll, [
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen AC_DEFINE(IOLOOP_POLL,, Implement I/O loop with poll())
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen have_ioloop=yes
3c3001681da75afc68578a180ec8f8b2d6dfacfaTimo Sirainenif test "$have_ioloop" = "no"; then
892e25e1c0caad62ced087d9eba2741a59e3d9ceTimo Sirainen AC_DEFINE(IOLOOP_SELECT,, Implement I/O loop with select())
892e25e1c0caad62ced087d9eba2741a59e3d9ceTimo Sirainen ioloop="select"
7bccaece91a0b1bc61111c30443d6bad6b22c6d0Timo Sirainenhave_notify=none
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainenif test "$notify" = "" || test "$notify" = "inotify" ; then
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen dnl * inotify?
7bccaece91a0b1bc61111c30443d6bad6b22c6d0Timo Sirainen AC_CACHE_CHECK([whether we can use inotify],i_cv_inotify_works,[
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen #define _GNU_SOURCE
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen char * fn = "/tmp";
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen fd = inotify_init ();
9954af4b72850a7c3158c99b444d49a529109c4dTimo Sirainen perror ("inotify_init");
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen wd = inotify_add_watch (fd, fn, IN_ALL_EVENTS);
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen perror ("inotify_add_watch");
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen inotify_rm_watch (fd, wd);
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen i_cv_inotify_works=yes
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen i_cv_inotify_works=no
7bccaece91a0b1bc61111c30443d6bad6b22c6d0Timo Sirainen if test $i_cv_inotify_works = yes; then
3c3001681da75afc68578a180ec8f8b2d6dfacfaTimo Sirainen have_notify=inotify
7bccaece91a0b1bc61111c30443d6bad6b22c6d0Timo Sirainen notify=inotify
7bccaece91a0b1bc61111c30443d6bad6b22c6d0Timo Sirainen AC_DEFINE(IOLOOP_NOTIFY_INOTIFY,, Use Linux inotify)
892e25e1c0caad62ced087d9eba2741a59e3d9ceTimo Sirainen if test "$notify" = "inotify"; then
892e25e1c0caad62ced087d9eba2741a59e3d9ceTimo Sirainen AC_MSG_ERROR([inotify requested but not available])
b44033e45e9f48f8a6e1ac5905234fec5de6d6ccAki Tuomiif (test "$notify" = "" && test "$ioloop" = kqueue) || test "$notify" = "kqueue"; then
edd318d5866ac3fbc6e8df28fb24a4dfef93c884Timo Sirainen dnl * BSD kqueue() notify
edd318d5866ac3fbc6e8df28fb24a4dfef93c884Timo Sirainen AC_MSG_CHECKING([whether we can use BSD kqueue() notify])
09060303d565e15d54e42b4ef722f9d3c26f5336Timo Sirainen if test "$ac_cv_func_kqueue" = yes && test "$ac_cv_func_kevent" = yes ; then
09060303d565e15d54e42b4ef722f9d3c26f5336Timo Sirainen have_notify=kqueue
09060303d565e15d54e42b4ef722f9d3c26f5336Timo Sirainen notify=kqueue
09060303d565e15d54e42b4ef722f9d3c26f5336Timo Sirainen AC_MSG_RESULT("yes")
09060303d565e15d54e42b4ef722f9d3c26f5336Timo Sirainen AC_DEFINE(IOLOOP_NOTIFY_KQUEUE,,
09060303d565e15d54e42b4ef722f9d3c26f5336Timo Sirainen Use BSD kqueue directory changes notificaton)
0f5dc4da3982053036be65190e44bf28a67b1ca2Timo Sirainen AC_MSG_RESULT("no")
de92873c366becfaea1554642f89b9169d7955e2Timo Sirainen if test "$notify" = "kqueue" ; then
de92873c366becfaea1554642f89b9169d7955e2Timo Sirainen AC_MSG_ERROR([kqueue notify requested but kqueue() is not available])
edd318d5866ac3fbc6e8df28fb24a4dfef93c884Timo Sirainenif test "$notify" = "" || test "$notify" = "dnotify"; then
b44033e45e9f48f8a6e1ac5905234fec5de6d6ccAki Tuomi dnl * dnotify?
b44033e45e9f48f8a6e1ac5905234fec5de6d6ccAki Tuomi AC_CACHE_CHECK([whether we can use dnotify],i_cv_have_dnotify,[
b44033e45e9f48f8a6e1ac5905234fec5de6d6ccAki Tuomi AC_TRY_COMPILE([
b2024fa4e6ed39f9b5b6bb6c051f6d535fc0e011Timo Sirainen #define _GNU_SOURCE
edd318d5866ac3fbc6e8df28fb24a4dfef93c884Timo Sirainen fcntl(0, F_SETSIG, SIGRTMIN);
b2024fa4e6ed39f9b5b6bb6c051f6d535fc0e011Timo Sirainen fcntl(0, F_NOTIFY, DN_CREATE | DN_DELETE | DN_RENAME | DN_MULTISHOT);
edd318d5866ac3fbc6e8df28fb24a4dfef93c884Timo Sirainen i_cv_have_dnotify=yes
edd318d5866ac3fbc6e8df28fb24a4dfef93c884Timo Sirainen i_cv_have_dnotify=no
edd318d5866ac3fbc6e8df28fb24a4dfef93c884Timo Sirainen if test $i_cv_have_dnotify = yes; then
edd318d5866ac3fbc6e8df28fb24a4dfef93c884Timo Sirainen AC_DEFINE(IOLOOP_NOTIFY_DNOTIFY,, Use Linux dnotify)
edd318d5866ac3fbc6e8df28fb24a4dfef93c884Timo Sirainen have_notify=dnotify
edd318d5866ac3fbc6e8df28fb24a4dfef93c884Timo Sirainen notify=dnotify
edd318d5866ac3fbc6e8df28fb24a4dfef93c884Timo Sirainen if test "$notify" = "dnotify"; then
a99dcacb7cb6e0288f8642483f395f8e4a7aa79cTimo Sirainen AC_MSG_ERROR([dnotify requested but not available])
b2024fa4e6ed39f9b5b6bb6c051f6d535fc0e011Timo Sirainenif test "$have_notify" = "none"; then
b2024fa4e6ed39f9b5b6bb6c051f6d535fc0e011Timo Sirainen AC_DEFINE(IOLOOP_NOTIFY_NONE,, No special notify support)
caa1fa99c79c568ce2e42477bc169e7024fb220bTimo SirainenAC_CACHE_CHECK([whether we have glibc],i_cv_have_glibc,[
1f7f4294207557edf83171642ef62ce4922ffc9dTimo Sirainen AC_TRY_COMPILE([
caa1fa99c79c568ce2e42477bc169e7024fb220bTimo Sirainen #ifdef __GLIBC__
caa1fa99c79c568ce2e42477bc169e7024fb220bTimo Sirainen we have glibc
caa1fa99c79c568ce2e42477bc169e7024fb220bTimo Sirainen i_cv_have_glibc=no
caa1fa99c79c568ce2e42477bc169e7024fb220bTimo Sirainen i_cv_have_glibc=yes
caa1fa99c79c568ce2e42477bc169e7024fb220bTimo Sirainenif test "$i_cv_have_glibc" = "yes"; then
caa1fa99c79c568ce2e42477bc169e7024fb220bTimo Sirainen AC_DEFINE(PREAD_WRAPPERS,, Define if pread/pwrite needs _XOPEN_SOURCE 500)
caa1fa99c79c568ce2e42477bc169e7024fb220bTimo Sirainendnl * Old glibcs have broken posix_fallocate(). Make sure not to use it.
caa1fa99c79c568ce2e42477bc169e7024fb220bTimo Sirainendnl * It may also be broken in AIX.
caa1fa99c79c568ce2e42477bc169e7024fb220bTimo SirainenAC_CACHE_CHECK([whether posix_fallocate() works],i_cv_posix_fallocate_works,[
caa1fa99c79c568ce2e42477bc169e7024fb220bTimo Sirainen #define _XOPEN_SOURCE 600
caa1fa99c79c568ce2e42477bc169e7024fb220bTimo Sirainen #if defined(__GLIBC__) && (__GLIBC__ < 2 || __GLIBC_MINOR__ < 7)
caa1fa99c79c568ce2e42477bc169e7024fb220bTimo Sirainen possibly broken posix_fallocate
3c3001681da75afc68578a180ec8f8b2d6dfacfaTimo Sirainen int fd = creat("conftest.temp", 0600);
caa1fa99c79c568ce2e42477bc169e7024fb220bTimo Sirainen if (fd == -1) {
3c3001681da75afc68578a180ec8f8b2d6dfacfaTimo Sirainen perror("creat()");
15ab2452b0220a115f4351ad9d7fd5ec70ae7966Timo Sirainen ret = posix_fallocate(fd, 1024, 1024) < 0 ? 1 : 0;
15ab2452b0220a115f4351ad9d7fd5ec70ae7966Timo Sirainen i_cv_posix_fallocate_works=yes
892e25e1c0caad62ced087d9eba2741a59e3d9ceTimo Sirainen i_cv_posix_fallocate_works=no
15ab2452b0220a115f4351ad9d7fd5ec70ae7966Timo Sirainenif test $i_cv_posix_fallocate_works = yes; then
15ab2452b0220a115f4351ad9d7fd5ec70ae7966Timo Sirainen AC_DEFINE(HAVE_POSIX_FALLOCATE,, Define if you have a working posix_fallocate())
15ab2452b0220a115f4351ad9d7fd5ec70ae7966Timo Sirainendnl * OS specific options
15ab2452b0220a115f4351ad9d7fd5ec70ae7966Timo SirainenDC_PLUGIN_DEPS
0f5dc4da3982053036be65190e44bf28a67b1ca2Timo Sirainencase "$host_os" in
de92873c366becfaea1554642f89b9169d7955e2Timo Sirainen CFLAGS="$CFLAGS -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED"
0f5dc4da3982053036be65190e44bf28a67b1ca2Timo Sirainen # for getting fd_send/fd_recv working:
0f5dc4da3982053036be65190e44bf28a67b1ca2Timo Sirainen LDFLAGS="$LDFLAGS -Wl,+b,:"
0f5dc4da3982053036be65190e44bf28a67b1ca2Timo Sirainen LIBS="-lxnet $LIBS"
0f5dc4da3982053036be65190e44bf28a67b1ca2Timo Sirainen AC_DEFINE(PREAD_BROKEN,, Defint if pread/pwrite implementation is broken)
b44033e45e9f48f8a6e1ac5905234fec5de6d6ccAki Tuomi linux*|darwin*)
79ee504bdf920f01e12e28f238799bf2616489dfTimo Sirainen AC_DEFINE(PROCTITLE_HACK,, Define if process title can be changed by modifying argv)
82641f7aa58d560cc89ec5eb16f03571d6dedcffTimo SirainenAC_CHECK_SIZEOF(int)
82641f7aa58d560cc89ec5eb16f03571d6dedcffTimo SirainenAC_CHECK_SIZEOF(long)
a35f0649343f41bad5852d3fdca7deb69adb5f15Timo SirainenAC_CHECK_SIZEOF(void *)
a35f0649343f41bad5852d3fdca7deb69adb5f15Timo SirainenAC_CHECK_SIZEOF(long long)
a35f0649343f41bad5852d3fdca7deb69adb5f15Timo SirainenAC_DEFUN([AC_TYPEOF], [
82641f7aa58d560cc89ec5eb16f03571d6dedcffTimo Sirainen dnl * first check if we can get the size with redefining typedefs
15ab2452b0220a115f4351ad9d7fd5ec70ae7966Timo Sirainen if test "$2" = ""; then
15ab2452b0220a115f4351ad9d7fd5ec70ae7966Timo Sirainen order="int long long-long"
550d2fe097e95f12e8fa60ef52753ea7fe53d4eaTimo Sirainen visible="unknown"
892e25e1c0caad62ced087d9eba2741a59e3d9ceTimo Sirainen AC_MSG_CHECKING([type of $1])
3c3001681da75afc68578a180ec8f8b2d6dfacfaTimo Sirainen AC_CACHE_VAL(i_cv_typeof_$1,[
550d2fe097e95f12e8fa60ef52753ea7fe53d4eaTimo Sirainen if test "x$ac_cv_c_compiler_gnu" = "xyes"; then
550d2fe097e95f12e8fa60ef52753ea7fe53d4eaTimo Sirainen dnl * try with printf() + -Werror
550d2fe097e95f12e8fa60ef52753ea7fe53d4eaTimo Sirainen old_CFLAGS="$CFLAGS"
550d2fe097e95f12e8fa60ef52753ea7fe53d4eaTimo Sirainen CFLAGS="$CFLAGS -Werror"
550d2fe097e95f12e8fa60ef52753ea7fe53d4eaTimo Sirainen for type in $order; do
550d2fe097e95f12e8fa60ef52753ea7fe53d4eaTimo Sirainen case "$type" in
365b5a495ae7f6fd20f6a0b0517f6aa3ad4fe1a7Timo Sirainen unsigned-int)
365b5a495ae7f6fd20f6a0b0517f6aa3ad4fe1a7Timo Sirainen unsigned-long)
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen unsigned-long-long)
892e25e1c0caad62ced087d9eba2741a59e3d9ceTimo Sirainen if test "$fmt" != ""; then
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen printf("$fmt", ($1)0);
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen if test "$result" != ""; then
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen dnl * warning check isn't working
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen visible="unknown"
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen result="`echo $type|sed 's/-/ /g'`"
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen visible="$result"
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen CFLAGS="$old_CFLAGS"
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen if test "$result" = ""; then
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen for type in $order; do
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen type="`echo $type|sed 's/-/ /g'`"
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen typedef $type $1;
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen if test "$result" != ""; then
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen dnl * compiler allows redefining to anything
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen visible="unknown"
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen result="$type"
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen visible="$type"
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen if test "$result" = ""; then
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen dnl * check with sizes
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen dnl * older autoconfs don't include sys/types.h, so do it manually
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen AC_RUN_IFELSE([AC_LANG_SOURCE([[
9ba1a38e2fa5ffe9d0db83c4a14a6552bcff3181Timo Sirainen FILE *f=fopen("conftestval", "w");
3c3001681da75afc68578a180ec8f8b2d6dfacfaTimo Sirainen if (!f) exit(1);
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen fprintf(f, "%d\n", sizeof($1));
d2cadbf5445156fc12988506279d51d0e53b0449Timo Sirainen size=`cat conftestval`
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen rm -f conftestval
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen for type in $order; do
f158d9a303bb15a6848ca276c9391c7ca52e452bTimo Sirainen actype="ac_cv_sizeof_`echo $type|sed 's/-/_/g'`"
f158d9a303bb15a6848ca276c9391c7ca52e452bTimo Sirainen if test "$size" = "`eval echo \\$$actype`"; then
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen result="`echo $type|sed 's/-/ /g'`"
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen visible="`expr $size \* 8`bit (using $result)"
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen if test "$result" = ""; then
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen result=unknown
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen visible="`expr $size \* 8`bit (unknown type)"
892e25e1c0caad62ced087d9eba2741a59e3d9ceTimo Sirainen i_cv_typeof_$1=$result/$visible
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen typeof_$1=`echo $i_cv_typeof_$1 | sed s,/.*$,,`
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen visible=`echo $i_cv_typeof_$1 | sed s,^.*/,,`
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen AC_MSG_RESULT($visible)
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo SirainenAC_SYS_LARGEFILE
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo SirainenAC_CHECK_TYPES(_Bool)
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAC_CHECK_TYPE(uoff_t, [
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen have_uoff_t=yes
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen AC_DEFINE(HAVE_UOFF_T,, Define if you have a native uoff_t type)
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen have_uoff_t=no
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAC_TYPEOF(off_t, long int long-long)
e93184a9055c2530366dfe617e07199603c399ddMartti Rannanjärvicase "$typeof_off_t" in
e2a88d59c0d47d63ce1ad5b1fd95e487124a3fd4Timo Sirainen offt_max=INT_MAX
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen uofft_fmt="u"
e2a88d59c0d47d63ce1ad5b1fd95e487124a3fd4Timo Sirainen if test "$have_uoff_t" != "yes"; then
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen AC_DEFINE(UOFF_T_INT,, Define if off_t is int)
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen offt_bits=`expr 8 \* $ac_cv_sizeof_int`
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen offt_max=LONG_MAX
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen uofft_fmt="lu"
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen if test "$have_uoff_t" != "yes"; then
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen AC_DEFINE(UOFF_T_LONG,, Define if off_t is long)
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen offt_bits=`expr 8 \* $ac_cv_sizeof_long`
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen offt_max=LLONG_MAX
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen uofft_fmt="llu"
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen if test "$have_uoff_t" != "yes"; then
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen AC_DEFINE(UOFF_T_LONG_LONG,, Define if off_t is long long)
bcbca4b66800f0fbfe2643a86d5a6b63d752454dTimo Sirainen offt_bits=`expr 8 \* $ac_cv_sizeof_long_long`
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen AC_MSG_ERROR([Unsupported off_t type])
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainendnl * Do we have struct dirent->d_type
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen struct dirent d;
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen AC_DEFINE(HAVE_DIRENT_D_TYPE,, Define if you have struct dirent->d_type)
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainendnl * Do we have OFF_T_MAX?
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo SirainenAC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen off_t i = OFF_T_MAX;
11ee3b40320a31669bd717fecbe1e332dad4fd84Timo Sirainen AC_DEFINE_UNQUOTED(OFF_T_MAX, $offt_max, Maximum value of off_t)
#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
#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])
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>
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])
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-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-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_LAST='$(top_builddir)/src/lib-storage/list/libstorage_list.la $(top_builddir)/src/lib-storage/index/libstorage_index.la $(top_builddir)/src/lib-storage/libstorage.la $(top_builddir)/src/lib-index/libindex.la $(top_builddir)/src/lib-imap-storage/libimap-storage.la'
LIBDOVECOT_STORAGE_FIRST='$(top_builddir)/src/lib-storage/libstorage_service.la $(top_builddir)/src/lib-storage/register/libstorage_register.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_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])
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])
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 SPECIAL-USE 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
RUN_TEST='$(SHELL) $(top_srcdir)/run-test.sh'
AC_CONFIG_HEADERS([config.h])