configure.in revision 54d1312e1be5a84a9f9585f9f5e1f884f1d37d0e
02b32cf39a098edf60981fc228e4b034f11f3b90Timo SirainenAM_CONFIG_HEADER(config.h)
b5ff746939712c6a9bef71405fa786d5471cf177Timo SirainenAM_INIT_AUTOMAKE(dovecot, 0.99.8)
4a7e04d325db0c03f575f98f045246fceb0de279Timo SirainenAM_MAINTAINER_MODE
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo SirainenAC_STDC_HEADERS
9e86ad9eb313004cd4c8b5427daeb4c241b57af6Timo SirainenAC_ARG_PROGRAM
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo SirainenAM_PROG_LIBTOOL
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo SirainenAC_CHECK_HEADERS(string.h stdlib.h stdint.h unistd.h dirent.h)
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo SirainenAC_CHECK_HEADERS(sys/uio.h sys/sysmacros.h sys/resource.h linux/mman.h)
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo SirainenAC_CHECK_HEADERS(sys/select.h)
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen# check posix headers
48f78a48f2e1cf299026544444666471ae16ad97Timo SirainenAC_CHECK_HEADERS(sys/time.h)
4a7e04d325db0c03f575f98f045246fceb0de279Timo SirainenAC_ARG_ENABLE(ipv6,
f83fd83f9c6708d198748e714aa947cad9362c02Timo Sirainen[ --enable-ipv6 Enable IPv6 support (default)],
4a7e04d325db0c03f575f98f045246fceb0de279Timo Sirainen if test x$enableval = xno; then
6e77746e501c2b45850b1c530836058ed75e09eeTimo Sirainen want_ipv6=yes
6e77746e501c2b45850b1c530836058ed75e09eeTimo Sirainen want_ipv6=yes)
6e77746e501c2b45850b1c530836058ed75e09eeTimo SirainenAC_ARG_ENABLE(debug,
6e77746e501c2b45850b1c530836058ed75e09eeTimo Sirainen[ --enable-debug Enable some extra checks for debugging],
6e77746e501c2b45850b1c530836058ed75e09eeTimo Sirainen if test x$enableval = xyes; then
6e77746e501c2b45850b1c530836058ed75e09eeTimo Sirainen AC_DEFINE(DEBUG,, Build with extra debugging checks)
6e77746e501c2b45850b1c530836058ed75e09eeTimo SirainenAC_ARG_ENABLE(asserts,
6e77746e501c2b45850b1c530836058ed75e09eeTimo Sirainen[ --enable-asserts Enable asserts (default)],
6e77746e501c2b45850b1c530836058ed75e09eeTimo Sirainen if test x$enableval = xno; then
8c8f7ac580b661aee3d8b8dd37df4a9b41c77000Timo Sirainen AC_DEFINE(DISABLE_ASSERTS,, Disable asserts)
8c8f7ac580b661aee3d8b8dd37df4a9b41c77000Timo SirainenAC_ARG_WITH(file-offset-size,
8c8f7ac580b661aee3d8b8dd37df4a9b41c77000Timo Sirainen[ --with-file-offset-size=BITS Set size of file offsets. Usually 32 or 64.
8c8f7ac580b661aee3d8b8dd37df4a9b41c77000Timo Sirainen (default: 64 if available)],
8c8f7ac580b661aee3d8b8dd37df4a9b41c77000Timo Sirainen preferred_off_t_bits=$withval,
8c8f7ac580b661aee3d8b8dd37df4a9b41c77000Timo Sirainen preferred_off_t_bits=64)
8c8f7ac580b661aee3d8b8dd37df4a9b41c77000Timo SirainenAC_ARG_WITH(mem-align,
8c8f7ac580b661aee3d8b8dd37df4a9b41c77000Timo Sirainen[ --with-mem-align=BYTES Set the memory alignment (default: 8)],
8c8f7ac580b661aee3d8b8dd37df4a9b41c77000Timo Sirainen mem_align=$withval,
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo SirainenAC_ARG_WITH(index-align,
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen[ --with-index-align=BYTES Set the index file alignment (default: detect)],
48f78a48f2e1cf299026544444666471ae16ad97Timo Sirainen index_align=$withval,
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen index_align=0)
48f78a48f2e1cf299026544444666471ae16ad97Timo SirainenAC_ARG_WITH(passwd,
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen[ --with-passwd Build with /etc/passwd support (default)],
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen if test x$withval = xno; then
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen want_passwd=no
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen want_passwd=yes
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen want_passwd=yes)
b5ff746939712c6a9bef71405fa786d5471cf177Timo SirainenAC_ARG_WITH(passwd-file,
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen[ --with-passwd-file Build with passwd-like file support (default)],
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen if test x$withval = xno; then
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_passwd_file=no
efe78d3ba24fc866af1c79b9223dc0809ba26cadStephan Bosch want_passwd_file=yes
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_passwd_file=yes)
b5ff746939712c6a9bef71405fa786d5471cf177Timo SirainenAC_ARG_WITH(shadow,
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen[ --with-shadow Build with shadow password support (default)],
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen if test x$withval = xno; then
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_shadow=no
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_shadow=yes
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_shadow=yes)
b5ff746939712c6a9bef71405fa786d5471cf177Timo SirainenAC_ARG_WITH(pam,
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen[ --with-pam Build with PAM support (default)],
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen if test x$withval = xno; then
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_pam=yes)
b5ff746939712c6a9bef71405fa786d5471cf177Timo SirainenAC_ARG_WITH(ldap,
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen[ --with-ldap Build with LDAP support],
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen if test x$withval = xno; then
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_ldap=yes
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_ldap=no)
b5ff746939712c6a9bef71405fa786d5471cf177Timo SirainenAC_ARG_WITH(vpopmail,
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen[ --with-vpopmail Build with vpopmail support (default)],
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen if test x$withval = xno; then
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_vpopmail=no
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_vpopmail=yes
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_vpopmail=yes)
b5ff746939712c6a9bef71405fa786d5471cf177Timo SirainenAC_ARG_WITH(static-userdb,
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen[ --with-static-userdb Build with static userdb support (default)],
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen if test x$withval = xno; then
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_static_userdb=no
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_static_userdb=yes
14cac26dcb71108abfdc95ea524e74be1f95774cPhil Carmody want_static_userdb=yes)
b5ff746939712c6a9bef71405fa786d5471cf177Timo SirainenAC_ARG_WITH(pgsql,
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen[ --with-pgsql Build with PostgreSQL support],
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen if test x$withval = xno; then
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_pgsql=no
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_pgsql=yes
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_pgsql=no)
b5ff746939712c6a9bef71405fa786d5471cf177Timo SirainenAC_ARG_WITH(cyrus-sasl2,
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen[ --with-cyrus-sasl2 Build with Cyrus SASL 2 library support],
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen if test x$withval = xno; then
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_cyrus_sasl2=no
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_cyrus_sasl2=yes
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_cyrus_sasl2=no)
b5ff746939712c6a9bef71405fa786d5471cf177Timo SirainenAC_ARG_WITH(rawlog,
1107c86ff3fa4f29796c2e76134b78d0b4a0db50Timo Sirainen[ --with-rawlog Build support for logging user traffic],
1107c86ff3fa4f29796c2e76134b78d0b4a0db50Timo Sirainen if test x$withval = xyes; then
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen AC_DEFINE(BUILD_RAWLOG,, Build with rawlogging feature)
b5ff746939712c6a9bef71405fa786d5471cf177Timo SirainenAC_ARG_WITH(ssl,
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen[ --with-ssl=[gnutls|openssl] Build with GNUTLS (default) or OpenSSL],
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen if test x$withval = xno; then
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_gnutls=no
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_openssl=no
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen elif test x$withval = xgnutls; then
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_gnutls=yes
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainen want_openssl=no
4eb418849d5c6bf77b2721e4e6aef2e97deaa197Timo Sirainen elif test x$withval = xopenssl; then
4eb418849d5c6bf77b2721e4e6aef2e97deaa197Timo Sirainen want_gnutls=no
4eb418849d5c6bf77b2721e4e6aef2e97deaa197Timo Sirainen want_openssl=yes
4eb418849d5c6bf77b2721e4e6aef2e97deaa197Timo Sirainen want_gnutls=yes
4eb418849d5c6bf77b2721e4e6aef2e97deaa197Timo Sirainen want_openssl=yes
a8b37b688ceaa3ed3d40b3ccbdba5bb75cfb64b0Timo Sirainen want_gnutls=yes
4eb418849d5c6bf77b2721e4e6aef2e97deaa197Timo Sirainen want_openssl=yes
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo SirainenAC_ARG_WITH(ssldir,
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen[ --with-ssldir=DIR SSL base directory for certificates (/etc/ssl)],
02b32cf39a098edf60981fc228e4b034f11f3b90Timo Sirainen ssldir="$withval",
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo SirainenAC_SUBST(ssldir)
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo SirainenAC_ARG_WITH(pop3d,
02b32cf39a098edf60981fc228e4b034f11f3b90Timo Sirainen[ --with-pop3d Build POP3 server (default)],
4a7e04d325db0c03f575f98f045246fceb0de279Timo Sirainen if test x$withval = xno; then
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen want_pop3d=no
4a7e04d325db0c03f575f98f045246fceb0de279Timo Sirainen want_pop3d=yes
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen want_pop3d=yes)
0dc7891233a973829f00371b27810f849b987c66Timo SirainenAM_CONDITIONAL(BUILD_POP3D, test "$want_pop3d" = "yes")
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainendnl * gcc specific options
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainenif test "x$ac_cv_prog_gcc" = "xyes"; then
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen # -Wcast-qual -Wcast-align -Wconversion # too many warnings
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen # -Wstrict-prototypes -Wredundant-decls # may give warnings in some systems
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen # -Wmissing-format-attribute -Wmissing-noreturn -Wwrite-strings # a couple of warnings
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen CFLAGS="$CFLAGS -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast"
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainendnl ** just some generic stuff...
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo SirainenAC_CHECK_FUNC(socket, [], [
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen AC_CHECK_LIB(socket, socket, [
23bdbb7b1831785c6ba6df190f6369da882d2b9dTimo Sirainen LIBS="$LIBS -lsocket"
4a7e04d325db0c03f575f98f045246fceb0de279Timo SirainenAC_CHECK_FUNC(inet_addr, [], [
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen AC_CHECK_LIB(nsl, inet_addr, [
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen LIBS="$LIBS -lnsl"
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo SirainenAC_CHECK_FUNC(fdatasync, [
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen have_fdatasync=yes
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen AC_CHECK_LIB(rt, fdatasync, [
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen have_fdatasync=yes
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen LIBS="$LIBS -lrt"
9e86ad9eb313004cd4c8b5427daeb4c241b57af6Timo Sirainenif test "$have_fdatasync" = "yes"; then
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen AC_DEFINE(HAVE_FDATASYNC,, Define if you have fdatasync())
b5ff746939712c6a9bef71405fa786d5471cf177Timo Sirainendnl * after -lsocket and -lnsl tests, inet_aton() may be in them
b5ff746939712c6a9bef71405fa786d5471cf177Timo SirainenAC_CHECK_FUNCS(fcntl flock inet_aton sigaction getpagesize madvise \
9e86ad9eb313004cd4c8b5427daeb4c241b57af6Timo Sirainen strcasecmp stricmp vsnprintf vsyslog writev setrlimit \
9e86ad9eb313004cd4c8b5427daeb4c241b57af6Timo Sirainen setproctitle)
3d2fd3816b79caf8048582f1e951019187ee9d9dTimo SirainenAC_CHECK_FUNC(poll, [
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen AC_DEFINE(IOLOOP_POLL,, Implement I/O loop with poll())
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen AC_DEFINE(IOLOOP_SELECT,, Implement I/O loop with select())
0dc7891233a973829f00371b27810f849b987c66Timo Sirainendnl * OS specific options
0dc7891233a973829f00371b27810f849b987c66Timo Sirainencase "$host_os" in
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED"
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo SirainenAC_CHECK_SIZEOF(int)
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo SirainenAC_CHECK_SIZEOF(long)
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo SirainenAC_CHECK_SIZEOF(void *)
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo SirainenAC_CHECK_SIZEOF(long long)
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo SirainenAC_DEFUN(AC_TYPEOF, [
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen dnl * first check if we can get the size with redefining typedefs
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen if test "$2" = ""; then
4a7e04d325db0c03f575f98f045246fceb0de279Timo Sirainen order="int long long-long"
c2bb1764c359ce85a7f7f789ead11dd613ff9769Timo Sirainen visible="unknown"
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen AC_MSG_CHECKING([type of $1])
2767104d81e97a109f0aa9758792bfa1da325a97Timo Sirainen if test "x$ac_cv_prog_gcc" = "xyes"; then
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen dnl * try with printf() + -Werror
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen old_CFLAGS="$CFLAGS"
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen CFLAGS="$CFLAGS -Werror"
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen for type in $order; do
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen case "$type" in
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen if test "$fmt" != ""; then
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen AC_TRY_COMPILE([
02b32cf39a098edf60981fc228e4b034f11f3b90Timo Sirainen printf("$fmt", ($1)0);
02b32cf39a098edf60981fc228e4b034f11f3b90Timo Sirainen if test "$result" != ""; then
02b32cf39a098edf60981fc228e4b034f11f3b90Timo Sirainen dnl * warning check isn't working
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen visible="unknown"
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen result="`echo $type|sed 's/-/ /g'`"
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen visible="$result"
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen CFLAGS="$old_CFLAGS"
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen if test "$result" = ""; then
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen for type in $order; do
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen type="`echo $type|sed 's/-/ /g'`"
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen AC_TRY_COMPILE([
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen typedef $type $1;
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen if test "$result" != ""; then
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen dnl * compiler allows redefining to anything
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen visible="unknown"
3d2fd3816b79caf8048582f1e951019187ee9d9dTimo Sirainen result="$type"
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen visible="$type"
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen if test "$result" = ""; then
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen dnl * check with sizes
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo Sirainen dnl * older autoconfs don't include sys/types.h, so do it manually
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen FILE *f=fopen("conftestval", "w");
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen if (!f) exit(1);
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen fprintf(f, "%d\n", sizeof($1));
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo Sirainen size=`cat conftestval`
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo Sirainen rm -f conftestval
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo Sirainen for type in $order; do
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo Sirainen actype="ac_cv_sizeof_`echo $type|sed 's/-/_/g'`"
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo Sirainen if test "$size" = "`eval \"echo \\$$actype\"`"; then
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen result="`echo $type|sed 's/-/ /g'`"
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen visible="`expr $size \* 8`bit (using $result)"
0dc7891233a973829f00371b27810f849b987c66Timo Sirainen if test "$result" = ""; then
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen visible="`expr $size \* 8`bit (unknown type)"
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen typeof_$1=$result
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen AC_MSG_RESULT($visible)
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainendnl * off_t checks, try to make it 64bit
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo SirainenAC_DEFINE_UNQUOTED(_FILE_OFFSET_BITS, $preferred_off_t_bits,
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen [If set to 64, enables 64bit off_t for some systems (eg. Linux, Solaris)])
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo SirainenAC_TYPEOF(off_t, long int long-long)
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainencase "$typeof_off_t" in
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen offt_max=INT_MAX
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen uofft_fmt="u"
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo Sirainen AC_DEFINE(UOFF_T_INT,, Define if off_t is int)
d9fdacd5fb3e07997e5c389739d2054f0c8441d8Timo Sirainen offt_bits=`expr 8 \* $ac_cv_sizeof_int`
4a7e04d325db0c03f575f98f045246fceb0de279Timo Sirainen offt_max=LONG_MAX
f1243d7759a3dddc1c3eaf7eda8a153c8ef0112bTimo Sirainen uofft_fmt="lu"
f1243d7759a3dddc1c3eaf7eda8a153c8ef0112bTimo Sirainen AC_DEFINE(UOFF_T_LONG,, Define if off_t is long)
f1243d7759a3dddc1c3eaf7eda8a153c8ef0112bTimo Sirainen offt_bits=`expr 8 \* $ac_cv_sizeof_long`
d8d93ecd89efa7c84a3a21264a550449619f715bTimo Sirainen offt_max=LLONG_MAX
d8d93ecd89efa7c84a3a21264a550449619f715bTimo Sirainen uofft_fmt="llu"
d8d93ecd89efa7c84a3a21264a550449619f715bTimo Sirainen AC_DEFINE(UOFF_T_LONG_LONG,, Define if off_t is long long)
d8d93ecd89efa7c84a3a21264a550449619f715bTimo Sirainen offt_bits=`expr 8 \* $ac_cv_sizeof_long_long`
d8d93ecd89efa7c84a3a21264a550449619f715bTimo Sirainen AC_ERROR([Unsupported off_t type])
4a7e04d325db0c03f575f98f045246fceb0de279Timo Sirainendnl * Do we have OFF_T_MAX?
4a7e04d325db0c03f575f98f045246fceb0de279Timo SirainenAC_TRY_COMPILE([
4a7e04d325db0c03f575f98f045246fceb0de279Timo Sirainen off_t i = OFF_T_MAX;
f83fd83f9c6708d198748e714aa947cad9362c02Timo Sirainen AC_DEFINE_UNQUOTED(OFF_T_MAX, $offt_max, Maximum value of off_t)
f83fd83f9c6708d198748e714aa947cad9362c02Timo SirainenAC_DEFINE_UNQUOTED(PRIuUOFF_T, "$uofft_fmt", printf() format for uoff_t)
f83fd83f9c6708d198748e714aa947cad9362c02Timo Sirainendnl * make sure size_t isn't signed. we'd probably work fine with it, but
f83fd83f9c6708d198748e714aa947cad9362c02Timo Sirainendnl * it's more likely vulnerable to buffer overflows. Anyway, C99 specifies
f83fd83f9c6708d198748e714aa947cad9362c02Timo Sirainendnl * that it's unsigned and only some old systems define it as signed.
f83fd83f9c6708d198748e714aa947cad9362c02Timo SirainenAC_MSG_CHECKING([whether size_t is signed])
f83fd83f9c6708d198748e714aa947cad9362c02Timo Sirainen /* return 0 if we're signed */
f83fd83f9c6708d198748e714aa947cad9362c02Timo Sirainen exit((size_t)(int)-1 <= 0 ? 0 : 1);
f83fd83f9c6708d198748e714aa947cad9362c02Timo Sirainen AC_MSG_RESULT(yes)
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo Sirainen echo "Your system's size_t is a signed integer, Dovecot isn't designed to"
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo Sirainen echo "support it. It probably works just fine, but it's less resistant to"
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo Sirainen echo "buffer overflows. If you're not worried about this and still want to"
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo Sirainen echo "compile Dovecot, set ignore_signed_size=1 environment."
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo Sirainen if test "$ignore_signed_size" = ""; then
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo Sirainen AC_ERROR([aborting])
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo Sirainen echo "..ignoring as requested.."
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo Sirainen AC_MSG_RESULT(no)
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo SirainenAC_TYPEOF(ssize_t)
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo Sirainencase "$typeof_ssize_t" in
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo Sirainen ssizet_max=LONG_MAX
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo Sirainen sizet_fmt="lu"
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo Sirainen ssizet_max=LLONG_MAX
1ea0aa8e14e843f2776746776a429b0a1aae299dTimo Sirainen sizet_fmt="llu"
4a7e04d325db0c03f575f98f045246fceb0de279Timo Sirainen dnl older systems didn't have ssize_t, default to int
4a7e04d325db0c03f575f98f045246fceb0de279Timo Sirainen ssizet_max=INT_MAX
4a7e04d325db0c03f575f98f045246fceb0de279Timo Sirainen sizet_fmt="u"
4a7e04d325db0c03f575f98f045246fceb0de279Timo Sirainen if test "$typeof_ssize_t" = ""; then
4a7e04d325db0c03f575f98f045246fceb0de279Timo Sirainen AC_DEFINE(size_t, unsigned int, Define to 'unsigned int' if you don't have it)
4a7e04d325db0c03f575f98f045246fceb0de279Timo Sirainen AC_DEFINE(ssize_t, int, Define to 'int' if you don't have it)
f83fd83f9c6708d198748e714aa947cad9362c02Timo SirainenAC_DEFINE_UNQUOTED(SSIZE_T_MAX, $ssizet_max, Maximum value of ssize_t)
f83fd83f9c6708d198748e714aa947cad9362c02Timo SirainenAC_DEFINE_UNQUOTED(PRIuSIZE_T, "$sizet_fmt", printf() format for size_t)
f83fd83f9c6708d198748e714aa947cad9362c02Timo SirainenAC_DEFUN(AC_CHECKTYPE2, [
f83fd83f9c6708d198748e714aa947cad9362c02Timo Sirainen AC_MSG_CHECKING([for $1])
f83fd83f9c6708d198748e714aa947cad9362c02Timo Sirainen AC_CACHE_VAL(i_cv_type_$1,
f83fd83f9c6708d198748e714aa947cad9362c02Timo Sirainen [AC_TRY_COMPILE([
4a7e04d325db0c03f575f98f045246fceb0de279Timo Sirainen i_cv_type_$1=yes,
4a7e04d325db0c03f575f98f045246fceb0de279Timo Sirainen i_cv_type_$1=no,
4a7e04d325db0c03f575f98f045246fceb0de279Timo Sirainen AC_MSG_RESULT($i_cv_type_$1)
AC_CHECKTYPE2(uintmax_t, [#include <inttypes.h>])
AC_CHECKTYPE2(uint_fast32_t, [#include <inttypes.h>])
AC_CHECKTYPE2(socklen_t, [#include <sys/socket.h>])
AC_MSG_CHECKING([for /dev/urandom])
if test -c /dev/urandom; then
AC_DEFINE(HAVE_DEV_URANDOM,, Define if you have /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 <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 <unistd.h>
#include <sys/mman.h>
#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 <stdarg.h>
#include <stdarg.h>
#include <stdarg.h>
AC_CHECK_HEADERS(gnutls/gnutls.h, [
AC_DEFINE(HAVE_SSL,, Build with SSL/TLS support)
AC_CHECK_HEADER(shadow.h, [
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_CHECK_HEADER(ldap.h, [
if test -r "$i/$j/libpq-fe.h"; then
AC_CHECK_HEADER(libpq-fe.h, [
vpop_libdeps="$vpopmail_home/etc/lib_deps"
AUTH_CFLAGS="$AUTH_CFLAGS `cat $vpopmail_home/etc/inc_deps` $CFLAGS"
AC_CHECK_HEADER(sasl/sasl.h, [
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>],
capability="IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN LISTEXT LIST-SUBSCRIBED"
echo '#include "lib.h"' >> $file
echo '#include "mail-storage.h"' >> $file