2 dnl Process this file with autoconf to produce a configure script.
4 AC_INIT([lighttpd], [1.4.40], [contact@lighttpd.net])
5 AC_CONFIG_SRCDIR([src/server.c])
6 AC_CONFIG_HEADER([config.h])
7 AC_CONFIG_MACRO_DIR([m4])
11 dnl HOW FUCKING BROKEN IS AUTOMAKE...
12 dnl serial-tests is not recognized before 1.12, and required for serial tests with 1.13, sane version checks "impossible"
13 dnl if you don't use the default (symlinked) automake on your box, set AUTOMAKE to the path you're using
14 m4_define([serial_tests], [
15 m4_esyscmd([case `${AUTOMAKE:-automake} --version | head -n 1` in
16 *1.11.*|*1.10.*|*1.9.*);;
17 *) echo serial-tests;;
21 AM_INIT_AUTOMAKE([-Wall -Wno-portability -Wno-override foreign dist-xz tar-ustar] serial_tests)
23 dnl enable with --enable-silent-rules or make V=0 (needs automake >= 1.11)
24 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES])
27 dnl @synopsis TRY_CFLAGS [compiler flags]
28 dnl @summary check whether compiler supports given flags and adds them to CFLAGS
29 AC_DEFUN([TRY_CFLAGS],
31 AC_MSG_CHECKING([if $CC supports $1])
33 ac_try_cflags_saved_cflags="${CFLAGS}"
35 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
36 [AC_MSG_RESULT([yes])],
39 CFLAGS="${ac_try_cflags_saved_cflags}"
45 dnl @synopsis TRY_LDFLAGS [linker flags]
46 dnl @summary check whether linker supports given flags and adds them to LDFLAGS
47 AC_DEFUN([TRY_LDFLAGS],
49 AC_MSG_CHECKING([if $LD supports $1])
51 ac_try_ldflags_saved_ldflags="${LDFLAGS}"
52 LDFLAGS="${LDFLAGS} $1"
53 AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
54 [AC_MSG_RESULT([yes])],
57 LDFLAGS="${ac_try_ldflags_saved_cflags}"
63 dnl Checks for programs.
74 dnl AM_PROG_AR is needed for some linker stuff
75 dnl AC_USE_SYSTEM_EXTENSIONS requires autoconf 2.60
76 m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [AC_USE_SYSTEM_EXTENSIONS])
77 dnl AM_PROG_AR requires automake 1.11 (and uses AC_COMPILE_IFELSE which wants AC_USE_SYSTEM_EXTENSIONS)
78 m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
87 *darwin*|*cygwin*|*aix*|*mingw* ) NO_RDYNAMIC=yes;;
90 AM_CONDITIONAL(NO_RDYNAMIC, test x$NO_RDYNAMIC = xyes)
102 CPPFLAGS="${CPPFLAGS} -D_REENTRANT -D__EXTENSIONS__"
104 dnl Checks for header files.
107 AC_CHECK_HEADERS([arpa/inet.h fcntl.h netinet/in.h stdlib.h string.h \
108 sys/socket.h sys/time.h unistd.h sys/sendfile.h sys/uio.h \
109 getopt.h sys/epoll.h sys/select.h poll.h sys/poll.h sys/devpoll.h sys/filio.h \
110 sys/mman.h sys/event.h port.h pwd.h \
111 sys/resource.h sys/un.h syslog.h sys/prctl.h uuid/uuid.h])
113 dnl Checks for typedefs, structures, and compiler characteristics.
121 AC_CHECK_MEMBER(struct tm.tm_gmtoff,[AC_DEFINE([HAVE_STRUCT_TM_GMTOFF],[1],[gmtoff in struct tm])],,[#include <time.h>])
122 AC_CHECK_TYPES(struct sockaddr_storage,,,[#include <sys/socket.h>])
123 AC_CHECK_TYPES(socklen_t,,,[#include <sys/types.h>
124 #include <sys/socket.h>])
126 dnl Checks for library functions.
134 AC_CHECK_FUNCS([issetugid inet_pton])
136 if test -z "$PKG_CONFIG"; then
137 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
140 dnl checking for libev
141 AC_MSG_CHECKING(for libev support)
143 AC_HELP_STRING([--with-libev@<:@=PATH@:>@],[Include libev support for fdevent handlers in PATH/include and PATH/lib]),
144 [WITH_LIBEV=$withval],[WITH_LIBEV=no])
149 if test "$WITH_LIBEV" != "no"; then
150 PKG_CHECK_MODULES(LIBEV, libev, [], [
151 dnl no pkg-config for libev, searching manually:
153 if test "$WITH_LIBEV" != "yes"; then
154 LIBEV_CFLAGS="-I$WITH_LIBEV/include"
155 LIBEV_LIBS="-L$WITH_LIBEV/lib -lev"
157 AC_CHECK_HEADERS([ev.h],[
158 AC_CHECK_LIB([ev], [ev_time], [
162 AC_MSG_ERROR([libev not found])
165 AC_MSG_ERROR([libev not found])
171 AC_DEFINE([HAVE_LIBEV], [1], [libev support])
174 AC_SUBST(LIBEV_CFLAGS)
177 dnl Checks for database.
181 AC_MSG_CHECKING(for MySQL support)
183 AC_HELP_STRING([--with-mysql@<:@=PATH@:>@],[Include MySQL support. PATH is the path to 'mysql_config']),
184 [WITH_MYSQL=$withval],[WITH_MYSQL=no])
186 if test "$WITH_MYSQL" != "no"; then
188 if test "$WITH_MYSQL" = "yes"; then
189 AC_PATH_PROG(MYSQL_CONFIG, mysql_config)
191 MYSQL_CONFIG=$WITH_MYSQL
194 if test "$MYSQL_CONFIG" = ""; then
195 AC_MSG_ERROR(mysql_config is not found)
197 if test \! -x $MYSQL_CONFIG; then
198 AC_MSG_ERROR(mysql_config not exists or not executable, use --with-mysql=path-to-mysql_config)
201 if $MYSQL_CONFIG | grep -- '--include' > /dev/null ; then
202 MYSQL_INCLUDE="`$MYSQL_CONFIG --include | sed s/\'//g`"
204 MYSQL_INCLUDE="`$MYSQL_CONFIG --cflags | sed s/\'//g`"
206 MYSQL_LIBS="`$MYSQL_CONFIG --libs | sed s/\'//g`"
208 AC_MSG_CHECKING(for MySQL includes at)
209 AC_MSG_RESULT($MYSQL_INCLUDE)
211 AC_MSG_CHECKING(for MySQL libraries at)
212 AC_MSG_RESULT($MYSQL_LIBS)
213 dnl check for errmsg.h, which isn't installed by some versions of 3.21
214 old_CPPFLAGS="$CPPFLAGS"
215 CPPFLAGS="$CPPFLAGS $MYSQL_INCLUDE"
216 AC_CHECK_HEADERS(errmsg.h mysql.h)
217 CPPFLAGS="$old_CPPFLAGS"
219 AC_DEFINE([HAVE_MYSQL], [1], [mysql support])
225 AC_SUBST(MYSQL_INCLUDE)
228 AC_MSG_CHECKING(for LDAP support)
229 AC_ARG_WITH(ldap, AC_HELP_STRING([--with-ldap],[enable LDAP support]),
230 [WITH_LDAP=$withval], [WITH_LDAP=no])
231 AC_MSG_RESULT([$withval])
232 if test "$WITH_LDAP" != "no"; then
233 AC_CHECK_LIB(ldap, ldap_bind, [
234 AC_CHECK_HEADERS([ldap.h],[
236 AC_DEFINE([HAVE_LIBLDAP], [1], [libldap])
237 AC_DEFINE([HAVE_LDAP_H], [1])
238 AC_DEFINE([LDAP_DEPRECATED], [1], [Using deprecated ldap api])
242 AC_CHECK_LIB(lber, ber_printf, [
243 AC_CHECK_HEADERS([lber.h],[
245 AC_DEFINE([HAVE_LIBLBER], [1], [liblber])
246 AC_DEFINE([HAVE_LBER_H], [1])
253 AC_MSG_CHECKING(for extended attributes support)
254 AC_ARG_WITH(attr, AC_HELP_STRING([--with-attr],[enable extended attribute support]),
255 [WITH_ATTR=$withval],[WITH_ATTR=no])
256 AC_MSG_RESULT($withval)
257 if test "$WITH_ATTR" != "no"; then
258 # libattr (linux only?)
259 AC_CHECK_LIB(attr, attr_get, [
260 AC_CHECK_HEADERS([attr/attributes.h],[
262 AC_DEFINE([HAVE_XATTR], [1], [libattr])
263 AC_DEFINE([HAVE_ATTR_ATTRIBUTES_H], [1])
269 AC_CHECK_FUNC([extattr_get_file], [
270 AC_CHECK_HEADERS([sys/extattr.h],[
271 AC_DEFINE([HAVE_EXTATTR], [1], [BSD extended attributes])
272 AC_DEFINE([HAVE_SYS_EXTATTR_H], [1])
277 dnl openssl on solaris needs -lsocket -lnsl
278 AC_SEARCH_LIBS(socket,socket)
279 AC_SEARCH_LIBS(gethostbyname,nsl socket)
280 AC_SEARCH_LIBS(hstrerror,resolv)
283 AC_SEARCH_LIBS(dlopen,dl,[
284 AC_CHECK_HEADERS([dlfcn.h],[
285 if test "$ac_cv_search_dlopen" != no; then
286 test "$ac_cv_search_dlopen" = "none required" || DL_LIB="$ac_cv_search_dlopen"
289 AC_DEFINE([HAVE_LIBDL], [1], [libdl])
290 AC_DEFINE([HAVE_DLFCN_H], [1])
296 dnl Check for valgrind
297 AC_MSG_CHECKING(for valgrind)
298 AC_ARG_WITH(valgrind, AC_HELP_STRING([--with-valgrind],[enable internal support for valgrind]),
299 [WITH_VALGRIND=$withval],[WITH_VALGRIND=no])
300 AC_MSG_RESULT([$WITH_VALGRIND])
301 if test "$WITH_VALGRIND" != "no"; then
302 AC_CHECK_HEADERS([valgrind/valgrind.h])
305 dnl Checking for libunwind
306 AC_MSG_CHECKING(for libunwind)
307 AC_ARG_WITH(libunwind,
308 AC_HELP_STRING([--with-libunwind],[Include libunwind support for backtraces on assert failures]),
309 [WITH_LIBUNWIND=$withval],[WITH_LIBUNWIND=no])
311 if test "$WITH_LIBUNWIND" != "no"; then
312 PKG_CHECK_MODULES(LIBUNWIND, libunwind)
313 AC_DEFINE(HAVE_LIBUNWIND, 1, [Have libunwind support])
316 dnl Check for openssl
317 AC_MSG_CHECKING(for OpenSSL)
319 AC_HELP_STRING([--with-openssl@<:@=DIR@:>@],[Include openssl support (default no)]),
320 [WITH_OPENSSL=$withval],[WITH_OPENSSL=no])
322 if test "$WITH_OPENSSL" != "no"; then
324 if test "$WITH_OPENSSL" != "yes"; then
325 CPPFLAGS="$CPPFLAGS -I$WITH_OPENSSL/include"
326 LDFLAGS="$LDFLAGS -L$WITH_OPENSSL/lib"
331 AC_MSG_RESULT([$use_openssl])
333 AC_ARG_WITH(openssl-includes,
334 AC_HELP_STRING([--with-openssl-includes=DIR],[OpenSSL includes]),
335 [ use_openssl=yes CPPFLAGS="$CPPFLAGS -I$withval" ]
338 AC_ARG_WITH(openssl-libs,
339 AC_HELP_STRING([--with-openssl-libs=DIR],[OpenSSL libraries]),
340 [ use_openssl=yes LDFLAGS="$LDFLAGS -L$withval" ]
343 AC_ARG_WITH(kerberos5,
344 AC_HELP_STRING([--with-kerberos5],[use Kerberos5 support with OpenSSL]),
345 [ use_kerberos=yes ], [use_kerberos=no]
348 if test "x$use_openssl" = "xyes"; then
349 if test "x$use_kerberos" != "xyes"; then
350 CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_KRB5"
353 AC_CHECK_HEADERS([openssl/ssl.h])
355 AC_CHECK_LIB(crypto, BIO_f_base64, [
356 AC_CHECK_LIB(ssl, SSL_new, [ SSL_LIB="-lssl -lcrypto"
357 AC_DEFINE(HAVE_LIBSSL, [], [Have libssl]) ], [], [ -lcrypto "$DL_LIB" ])
363 AC_MSG_CHECKING(for perl regular expressions support)
364 AC_ARG_WITH(pcre, AC_HELP_STRING([--with-pcre],[Enable pcre support (default yes)]),
365 [WITH_PCRE=$withval],[WITH_PCRE=yes])
366 AC_MSG_RESULT([$WITH_PCRE])
368 if test "$WITH_PCRE" != "no"; then
369 AC_PATH_PROG(PCRECONFIG, pcre-config)
371 if test x"$PCRECONFIG" != x; then
372 PCRE_LIB=`$PCRECONFIG --libs`
373 CPPFLAGS="$CPPFLAGS `$PCRECONFIG --cflags`"
374 AC_DEFINE([HAVE_LIBPCRE], [1], [libpcre])
375 AC_DEFINE([HAVE_PCRE_H], [1], [pcre.h])
377 AC_MSG_ERROR([pcre-config not found, install the pcre-devel package or build with --without-pcre])
383 AC_MSG_CHECKING(for zlib support)
384 AC_ARG_WITH(zlib, AC_HELP_STRING([--with-zlib],[Enable zlib support for mod_compress]),
385 [WITH_ZLIB=$withval],[WITH_ZLIB=yes])
386 AC_MSG_RESULT([$WITH_ZLIB])
388 if test "$WITH_ZLIB" != "no"; then
389 AC_CHECK_LIB(z, deflate, [
390 AC_CHECK_HEADERS([zlib.h],[
392 AC_DEFINE([HAVE_LIBZ], [1], [libz])
393 AC_DEFINE([HAVE_ZLIB_H], [1])
396 if test x$Z_LIB = x; then
397 AC_MSG_ERROR([zlib-headers and/or libs where not found, install them or build with --without-zlib])
402 AC_MSG_CHECKING(for bzip2 support)
403 AC_ARG_WITH(bzip2, AC_HELP_STRING([--with-bzip2],[Enable bzip2 support for mod_compress]),
404 [WITH_BZIP2=$withval],[WITH_BZIP2=yes])
405 AC_MSG_RESULT([$WITH_BZIP2])
407 if test "$WITH_BZIP2" != "no"; then
408 AC_CHECK_LIB(bz2, BZ2_bzCompress, [
409 AC_CHECK_HEADERS([bzlib.h],[
411 AC_DEFINE([HAVE_LIBBZ2], [1], [libbz2])
412 AC_DEFINE([HAVE_BZLIB_H], [1])
415 if test x$BZ_LIB = x; then
416 AC_MSG_ERROR([bzip2-headers and/or libs where not found, install them or build with --without-bzip2])
422 AC_MSG_CHECKING(for FAM)
423 AC_ARG_WITH(fam, AC_HELP_STRING([--with-fam],[fam/gamin for reducing number of stat() calls]),
424 [WITH_FAM=$withval],[WITH_FAM=no])
425 AC_MSG_RESULT([$WITH_FAM])
427 if test "$WITH_FAM" != "no"; then
428 AC_CHECK_LIB(fam, FAMOpen2, [
429 AC_CHECK_HEADERS([fam.h],[
431 AC_DEFINE([HAVE_LIBFAM], [1], [libfam])
432 AC_DEFINE([HAVE_FAM_H], [1], [fam.h])
435 if test "x$FAM_LIBS" = x; then
436 PKG_CHECK_MODULES(FAM, gamin >= 0.1.0, [
437 AC_DEFINE([HAVE_LIBFAM], [1], [libfam])
438 AC_DEFINE([HAVE_FAM_H], [1], [fam.h])
443 AC_CHECK_FUNCS([FAMNoExists])
446 if test x$FAM_LIBS = x; then
447 AC_MSG_ERROR([fam/gamin-headers and/or libs where not found, install them or build with --without-fam])
451 AC_MSG_CHECKING(for properties in mod_webdav)
452 AC_ARG_WITH(webdav-props, AC_HELP_STRING([--with-webdav-props],[properties in mod_webdav]),
453 [WITH_WEBDAV_PROPS=$withval],[WITH_WEBDAV_PROPS=no])
454 AC_MSG_RESULT([$WITH_WEBDAV_PROPS])
456 if test "$WITH_WEBDAV_PROPS" != "no"; then
457 PKG_CHECK_MODULES(XML, libxml-2.0, [
458 AC_DEFINE([HAVE_LIBXML2], [1], [libxml2])
459 AC_DEFINE([HAVE_LIBXML_H], [1], [libxml.h])
461 PKG_CHECK_MODULES(SQLITE, sqlite3, [
462 AC_DEFINE([HAVE_SQLITE3], [1], [libsqlite3])
463 AC_DEFINE([HAVE_SQLITE3_H], [1], [sqlite3.h])
466 AC_MSG_CHECKING(for locks in mod_webdav)
467 AC_ARG_WITH(webdav-locks, AC_HELP_STRING([--with-webdav-locks],[locks in mod_webdav]),
468 [WITH_WEBDAV_LOCKS=$withval],[WITH_WEBDAV_LOCKS=no])
469 AC_MSG_RESULT([$WITH_WEBDAV_LOCKS])
471 if test "$WITH_WEBDAV_LOCKS" != "no"; then
472 AC_CHECK_LIB(uuid, uuid_unparse, [
473 AC_CHECK_HEADERS([uuid/uuid.h],[
475 AC_DEFINE([HAVE_UUID], [1], [libuuid])
476 AC_DEFINE([HAVE_UUID_H], [1], [uuid/uuid.h is available])
484 AC_MSG_CHECKING(for gdbm)
485 AC_ARG_WITH(gdbm, AC_HELP_STRING([--with-gdbm],[gdbm storage for mod_trigger_b4_dl]),
486 [WITH_GDBM=$withval],[WITH_GDBM=no])
487 AC_MSG_RESULT([$WITH_GDBM])
489 if test "$WITH_GDBM" != "no"; then
490 AC_CHECK_LIB(gdbm, gdbm_open, [
491 AC_CHECK_HEADERS([gdbm.h],[
493 AC_DEFINE([HAVE_GDBM], [1], [libgdbm])
494 AC_DEFINE([HAVE_GDBM_H], [1])
500 dnl Check for memcached
501 AC_MSG_CHECKING(for memcached)
502 AC_ARG_WITH(memcached, AC_HELP_STRING([--with-memcached],[memcached storage for mod_trigger_b4_dl]),
503 [WITH_MEMCACHED=$withval],[WITH_MEMCACHED=no])
504 AC_MSG_RESULT([$WITH_MEMCACHED])
505 if test "$WITH_MEMCACHED" != "no"; then
506 AC_CHECK_LIB(memcached, memcached, [
507 AC_CHECK_HEADERS([libmemcached/memcached.h],[
508 MEMCACHED_LIB=-lmemcached
509 AC_DEFINE([USE_MEMCACHED], [1], [libmemcached])
512 AC_SUBST(MEMCACHED_LIB)
516 AC_MSG_CHECKING(if lua-support is requested)
517 AC_ARG_WITH(lua, AC_HELP_STRING([--with-lua],[lua engine for mod_cml]),
518 [WITH_LUA=$withval],[WITH_LUA=no])
520 AC_MSG_RESULT($WITH_LUA)
521 if test "$WITH_LUA" != "no"; then
522 if test "$WITH_LUA" != "yes"; then
523 PKG_CHECK_MODULES(LUA, $WITH_LUA >= 5.1, [
524 AC_DEFINE([HAVE_LUA], [1], [liblua])
525 AC_DEFINE([HAVE_LUA_H], [1], [lua.h])
527 AC_MSG_ERROR([Couldn't find requested lua pkg-config module $WITH_LUA])
531 for luaname in lua5.3 lua-5.3 lua5.2 lua-5.2 lua5.1 lua-5.1 lua; do
532 if test "$found_lua" = "0"; then
533 PKG_CHECK_MODULES(LUA, $luaname >= 5.1, [
534 AC_DEFINE([HAVE_LUA], [1], [liblua])
535 AC_DEFINE([HAVE_LUA_H], [1], [lua.h])
538 AC_MSG_NOTICE([Couldn't find $luaname])
542 if test "$found_lua" = "0"; then
543 AC_MSG_ERROR([Couldn't find any lua pkg-config module])
551 dnl search for crypt_r and (fallback) for crypt
554 AC_SEARCH_LIBS([crypt_r],[crypt],[
555 AC_DEFINE([HAVE_CRYPT_R], [1], [crypt_r])
556 AC_CHECK_HEADERS([crypt.h],[
557 AC_DEFINE([HAVE_CRYPT_H], [1], [crypt.h])
562 AC_SEARCH_LIBS([crypt],[crypt],[
563 AC_DEFINE([HAVE_CRYPT], [1], [crypt])
564 AC_CHECK_HEADERS([crypt.h],[
565 AC_DEFINE([HAVE_CRYPT_H], [1], [crypt.h])
572 AC_SUBST([CRYPT_LIB])
575 AC_SEARCH_LIBS(sendfilev,sendfile,[
576 if test "$ac_cv_search_sendfilev" != no; then
577 test "$ac_cv_search_sendfilev" = "none required" || SENDFILE_LIB="$ac_cv_search_sendfilev"
578 AC_DEFINE([HAVE_SENDFILEV], [1], [solaris sendfilev])
582 AC_SUBST(SENDFILE_LIB)
585 *mingw* ) LIBS="$LIBS -lwsock32";;
589 AC_CHECK_FUNCS([dup2 getcwd inet_ntoa inet_ntop memset mmap munmap strchr \
590 strdup strerror strstr strtol sendfile getopt socket lstat \
591 gethostbyname poll epoll_ctl getrlimit chroot \
592 getuid select signal pathconf madvise posix_fadvise posix_madvise \
593 writev sigaction sendfile64 send_file kqueue port_create localtime_r gmtime_r \
594 memset_s explicit_bzero])
596 AC_MSG_CHECKING(if weak symbols are supported)
597 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
598 __attribute__((weak)) void __dummy(void *x) { }
599 void f(void *x) { __dummy(x); }
603 AC_DEFINE([HAVE_WEAK_SYMBOLS], [1], [weak symbols are supported])
604 ],[AC_MSG_RESULT(no)])
606 AC_MSG_CHECKING(for Large File System support)
608 AC_HELP_STRING([--enable-lfs],[Turn on Large File System (default)]),
609 [case "${enableval}" in
610 yes) CPPFLAGS="${CPPFLAGS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES" ;;
612 *) AC_MSG_ERROR(bad value ${enableval} for --enable-lfs) ;;
613 esac],[CPPFLAGS="${CPPFLAGS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES"
615 AC_MSG_RESULT($enableval)
617 AC_CHECK_SIZEOF(long)
618 AC_CHECK_SIZEOF(off_t)
620 if test "x$ac_cv_func_sendfile" = xyes; then
621 dnl check if sendfile works
622 AC_MSG_CHECKING(if sendfile works)
623 if test "x$cross_compiling" = xno; then
625 #ifdef HAVE_SYS_SENDFILE_H
626 #include <sys/sendfile.h>
627 #endif /* HAVE_SYS_SENDFILE_H */
631 if (-1 == sendfile(-1, 0, &o, 0) && errno == ENOSYS) return -1;
636 AC_DEFINE([HAVE_SENDFILE_BROKEN], [1], [broken sendfile]) ] )
638 AC_MSG_RESULT(no, cross-compiling)
639 AC_DEFINE([HAVE_SENDFILE_BROKEN], [1], [broken sendfile])
643 dnl Check for IPv6 support
646 AC_HELP_STRING([--disable-ipv6],[disable IPv6 support]),
647 [case "${enableval}" in
650 *) AC_MSG_ERROR(bad value ${enableval} for --enable-ipv6) ;;
653 if test x$ipv6 = xtrue; then
654 AC_CACHE_CHECK([for IPv6 support], ac_cv_ipv6_support,
655 [AC_TRY_LINK([ #include <sys/types.h>
656 #include <sys/socket.h>
657 #include <netinet/in.h>], [struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0; ],
658 [ac_cv_ipv6_support=yes], [ac_cv_ipv6_support=no])])
660 if test "$ac_cv_ipv6_support" = yes; then
661 AC_DEFINE(HAVE_IPV6,1,[Whether to enable IPv6 support])
665 # disable mmap by default; if a mmapped file gets truncated, the process gets a SIGBUS signal
666 # on reading the truncated area which we can't handle (yet).
667 # lighttpd may always use mmap with files it owns (created tmp files)
669 AC_HELP_STRING([--enable-mmap],[use mmap if available (DANGEROUS, allows local users to trigger SIGBUS crashes)]),
670 [case "${enableval}" in
673 *) AC_MSG_ERROR(bad value ${enableval} for --enable-mmap) ;;
676 if test x$mmap = xtrue; then
677 AC_DEFINE(ENABLE_MMAP, [1], [Use mmap if available])
681 AM_CONDITIONAL(CROSS_COMPILING, test "x$cross_compiling" = xyes)
683 dnl check for fastcgi lib, for the tests only
685 AC_CHECK_LIB(fcgi, FCGI_Accept, [
686 AC_CHECK_HEADERS([fastcgi.h fastcgi/fastcgi.h],[
691 AM_CONDITIONAL(CHECK_WITH_FASTCGI, test "x$fastcgi_found" = xyes)
694 dnl check for extra compiler options (warning options)
695 if test "${GCC}" = "yes"; then
696 TRY_CFLAGS([-Wall -W -Wshadow -pedantic])
697 TRY_CFLAGS([-std=gnu99])
700 AC_ARG_ENABLE(extra-warnings,
701 AC_HELP_STRING([--enable-extra-warnings],[enable extra warnings (gcc specific)]),
702 [case "${enableval}" in
703 yes) extrawarnings=true ;;
704 no) extrawarnings=false ;;
705 *) AC_MSG_ERROR(bad value ${enableval} for --enable-extra-warnings) ;;
706 esac],[extrawarnings=false])
708 if test x$extrawarnings = xtrue; then
709 TRY_CFLAGS([-g -O2 -g2 -Wall -Wmissing-declarations -Wdeclaration-after-statement -Wcast-align -Wsign-compare -Wnested-externs -Wpointer-arith -D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security])
710 TRY_LDFLAGS([-Wl,--as-needed])
714 LIGHTTPD_VERSION_ID=`echo $PACKAGE_VERSION | $AWK -F '.' '{print "(" $1 " << 16 | " $2 " << 8 | " $3 ")"}'`
715 AC_DEFINE_UNQUOTED([LIGHTTPD_VERSION_ID], [$LIGHTTPD_VERSION_ID], [lighttpd-version-id])
717 AC_CONFIG_FILES([Makefile src/Makefile
718 doc/config/conf.d/Makefile \
719 doc/config/vhosts.d/Makefile \
720 doc/config/Makefile \
721 doc/scripts/Makefile \
722 doc/initscripts/Makefile \
723 doc/systemd/Makefile \
724 doc/outdated/Makefile \
727 tests/docroot/Makefile \
728 tests/docroot/123/Makefile \
729 tests/docroot/www/Makefile \
730 tests/docroot/www/go/Makefile \
731 tests/docroot/www/indexfile/Makefile \
732 tests/docroot/www/expire/Makefile \
737 do_build="mod_cgi mod_fastcgi mod_extforward mod_proxy mod_evhost mod_simple_vhost mod_access mod_alias mod_setenv mod_usertrack mod_auth mod_status mod_accesslog"
738 do_build="$do_build mod_rrdtool mod_secdownload mod_expire mod_compress mod_dirlisting mod_indexfile mod_userdir mod_webdav mod_staticfile mod_scgi mod_flv_streaming"
740 plugins="mod_rewrite mod_redirect mod_ssi mod_trigger_b4_dl"
741 features="regex-conditionals"
742 if test ! "x$PCRE_LIB" = x; then
743 do_build="$do_build $plugins"
744 enable_feature="$features"
746 no_build="$no_build $plugins"
747 disable_feature="$features"
750 plugins="mod_mysql_vhost"
751 if test ! "x$MYSQL_LIBS" = x; then
752 do_build="$do_build $plugins"
754 no_build="$no_build $plugins"
757 plugins="mod_cml mod_magnet"
758 if test ! "x$LUA_LIBS" = x; then
759 do_build="$do_build $plugins"
761 no_build="$no_build $plugins"
764 features="storage-gdbm"
765 if test ! "x$GDBM_LIB" = x; then
766 enable_feature="$enable_feature $features"
768 disable_feature="$disable_feature $features"
771 features="storage-memcached"
772 if test ! "x$MEMCACHED_LIB" = x; then
773 enable_feature="$enable_feature $features"
775 disable_feature="$disable_feature $features"
778 features="compress-gzip compress-deflate"
779 if test ! "x$Z_LIB" = x; then
780 enable_feature="$enable_feature $features"
782 disable_feature="$disable_feature $features"
785 features="compress-bzip2"
786 if test ! "x$BZ_LIB" = x; then
787 enable_feature="$enable_feature $features"
789 disable_feature="$disable_feature $features"
793 if test ! "x$LDAP_LIB" = x; then
794 enable_feature="$enable_feature $features"
796 disable_feature="$disable_feature $features"
799 features="network-openssl"
800 if test ! "x$SSL_LIB" = x; then
801 enable_feature="$enable_feature $features"
803 disable_feature="$disable_feature $features"
807 features="auth-crypt"
808 if test "$ac_cv_search_crypt" = no; then
809 disable_feature="$disable_feature $features"
811 enable_feature="$enable_feature $features"
814 features="network-ipv6"
815 if test "$ac_cv_ipv6_support" = yes; then
816 enable_feature="$enable_feature $features"
818 disable_feature="$disable_feature $features"
821 features="large-files"
822 if test "$enable_lfs" = yes; then
823 enable_feature="$enable_feature $features"
825 disable_feature="$disable_feature $features"
828 features="stat-cache-fam"
829 if test ! "x$FAM_LIBS" = x; then
830 enable_feature="$enable_feature $features"
832 disable_feature="$disable_feature $features"
835 features="webdav-properties"
836 if test "x$XML_LIBS" \!= x -a "x$SQLITE_LIBS" \!= x; then
837 enable_feature="$enable_feature $features"
839 disable_feature="$disable_feature $features"
842 features="webdav-locks"
843 if test "x$UUID_LIBS" \!= x; then
844 enable_feature="$enable_feature $features"
846 disable_feature="$disable_feature $features"
857 for p in $do_build; do
862 for p in $no_build; do
871 for p in $enable_feature; do
876 for p in $disable_feature; do