2 dnl Process this file with autoconf to produce a configure script.
4 AC_INIT([lighttpd], [1.4.41], [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)
92 if test -z "$LIGHTTPD_STATIC"; then
95 AM_CONDITIONAL(LIGHTTPD_STATIC, test x$LIGHTTPD_STATIC = xyes)
107 CPPFLAGS="${CPPFLAGS} -D_REENTRANT -D__EXTENSIONS__"
109 dnl Checks for header files.
112 AC_CHECK_HEADERS([arpa/inet.h fcntl.h netinet/in.h stdlib.h string.h \
113 sys/socket.h sys/time.h unistd.h sys/sendfile.h sys/uio.h \
114 getopt.h sys/epoll.h sys/select.h poll.h sys/poll.h sys/devpoll.h sys/filio.h \
115 sys/mman.h sys/event.h port.h pwd.h \
116 sys/resource.h sys/un.h syslog.h sys/prctl.h uuid/uuid.h])
118 dnl Checks for typedefs, structures, and compiler characteristics.
126 AC_CHECK_MEMBER(struct tm.tm_gmtoff,[AC_DEFINE([HAVE_STRUCT_TM_GMTOFF],[1],[gmtoff in struct tm])],,[#include <time.h>])
127 AC_CHECK_TYPES(struct sockaddr_storage,,,[#include <sys/socket.h>])
128 AC_CHECK_TYPES(socklen_t,,,[#include <sys/types.h>
129 #include <sys/socket.h>])
131 dnl Checks for library functions.
140 if test -z "$PKG_CONFIG"; then
141 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
144 dnl checking for libev
145 AC_MSG_CHECKING(for libev support)
147 AC_HELP_STRING([--with-libev@<:@=PATH@:>@],[Include libev support for fdevent handlers in PATH/include and PATH/lib]),
148 [WITH_LIBEV=$withval],[WITH_LIBEV=no])
153 if test "$WITH_LIBEV" != "no"; then
154 PKG_CHECK_MODULES(LIBEV, libev, [], [
155 dnl no pkg-config for libev, searching manually:
157 if test "$WITH_LIBEV" != "yes"; then
158 LIBEV_CFLAGS="-I$WITH_LIBEV/include"
159 LIBEV_LIBS="-L$WITH_LIBEV/lib -lev"
161 AC_CHECK_HEADERS([ev.h],[
162 AC_CHECK_LIB([ev], [ev_time], [
166 AC_MSG_ERROR([libev not found])
169 AC_MSG_ERROR([libev not found])
175 AC_DEFINE([HAVE_LIBEV], [1], [libev support])
178 AC_SUBST(LIBEV_CFLAGS)
181 dnl Checks for database.
185 AC_MSG_CHECKING(for MySQL support)
187 AC_HELP_STRING([--with-mysql@<:@=PATH@:>@],[Include MySQL support. PATH is the path to 'mysql_config']),
188 [WITH_MYSQL=$withval],[WITH_MYSQL=no])
190 if test "$WITH_MYSQL" != "no"; then
192 if test "$WITH_MYSQL" = "yes"; then
193 AC_PATH_PROG(MYSQL_CONFIG, mysql_config)
195 MYSQL_CONFIG=$WITH_MYSQL
198 if test "$MYSQL_CONFIG" = ""; then
199 AC_MSG_ERROR(mysql_config is not found)
201 if test \! -x $MYSQL_CONFIG; then
202 AC_MSG_ERROR(mysql_config not exists or not executable, use --with-mysql=path-to-mysql_config)
205 if $MYSQL_CONFIG | grep -- '--include' > /dev/null ; then
206 MYSQL_INCLUDE="`$MYSQL_CONFIG --include | sed s/\'//g`"
208 MYSQL_INCLUDE="`$MYSQL_CONFIG --cflags | sed s/\'//g`"
210 MYSQL_LIBS="`$MYSQL_CONFIG --libs | sed s/\'//g`"
212 AC_MSG_CHECKING(for MySQL includes at)
213 AC_MSG_RESULT($MYSQL_INCLUDE)
215 AC_MSG_CHECKING(for MySQL libraries at)
216 AC_MSG_RESULT($MYSQL_LIBS)
217 dnl check for errmsg.h, which isn't installed by some versions of 3.21
218 old_CPPFLAGS="$CPPFLAGS"
219 CPPFLAGS="$CPPFLAGS $MYSQL_INCLUDE"
220 AC_CHECK_HEADERS(errmsg.h mysql.h)
221 CPPFLAGS="$old_CPPFLAGS"
223 AC_DEFINE([HAVE_MYSQL], [1], [mysql support])
229 AC_SUBST(MYSQL_INCLUDE)
232 AC_MSG_CHECKING(for LDAP support)
233 AC_ARG_WITH(ldap, AC_HELP_STRING([--with-ldap],[enable LDAP support]),
234 [WITH_LDAP=$withval], [WITH_LDAP=no])
235 AC_MSG_RESULT([$withval])
236 if test "$WITH_LDAP" != "no"; then
237 AC_CHECK_LIB(ldap, ldap_bind, [
238 AC_CHECK_HEADERS([ldap.h],[
240 AC_DEFINE([HAVE_LIBLDAP], [1], [libldap])
241 AC_DEFINE([HAVE_LDAP_H], [1])
242 AC_DEFINE([LDAP_DEPRECATED], [1], [Using deprecated ldap api])
246 AC_CHECK_LIB(lber, ber_printf, [
247 AC_CHECK_HEADERS([lber.h],[
249 AC_DEFINE([HAVE_LIBLBER], [1], [liblber])
250 AC_DEFINE([HAVE_LBER_H], [1])
257 AC_MSG_CHECKING(for extended attributes support)
258 AC_ARG_WITH(attr, AC_HELP_STRING([--with-attr],[enable extended attribute support]),
259 [WITH_ATTR=$withval],[WITH_ATTR=no])
260 AC_MSG_RESULT($withval)
261 if test "$WITH_ATTR" != "no"; then
262 # libattr (linux only?)
263 AC_CHECK_LIB(attr, attr_get, [
264 AC_CHECK_HEADERS([attr/attributes.h],[
266 AC_DEFINE([HAVE_XATTR], [1], [libattr])
267 AC_DEFINE([HAVE_ATTR_ATTRIBUTES_H], [1])
273 AC_CHECK_FUNC([extattr_get_file], [
274 AC_CHECK_HEADERS([sys/extattr.h],[
275 AC_DEFINE([HAVE_EXTATTR], [1], [BSD extended attributes])
276 AC_DEFINE([HAVE_SYS_EXTATTR_H], [1])
281 dnl openssl on solaris needs -lsocket -lnsl
282 AC_SEARCH_LIBS(socket,socket)
283 AC_SEARCH_LIBS(gethostbyname,nsl socket)
284 AC_SEARCH_LIBS(hstrerror,resolv)
286 dnl On Haiku accept() and friends are in libnetwork
287 AC_SEARCH_LIBS(accept,network)
289 dnl clock_gettime() needs -lrt with glibc < 2.17, and possibly other platforms
290 AC_SEARCH_LIBS([clock_gettime],[rt])
293 AC_SEARCH_LIBS(dlopen,dl,[
294 AC_CHECK_HEADERS([dlfcn.h],[
295 if test "$ac_cv_search_dlopen" != no; then
296 test "$ac_cv_search_dlopen" = "none required" || DL_LIB="$ac_cv_search_dlopen"
299 AC_DEFINE([HAVE_LIBDL], [1], [libdl])
300 AC_DEFINE([HAVE_DLFCN_H], [1])
306 dnl Check for valgrind
307 AC_MSG_CHECKING(for valgrind)
308 AC_ARG_WITH(valgrind, AC_HELP_STRING([--with-valgrind],[enable internal support for valgrind]),
309 [WITH_VALGRIND=$withval],[WITH_VALGRIND=no])
310 AC_MSG_RESULT([$WITH_VALGRIND])
311 if test "$WITH_VALGRIND" != "no"; then
312 AC_CHECK_HEADERS([valgrind/valgrind.h])
315 dnl Checking for libunwind
316 AC_MSG_CHECKING(for libunwind)
317 AC_ARG_WITH(libunwind,
318 AC_HELP_STRING([--with-libunwind],[Include libunwind support for backtraces on assert failures]),
319 [WITH_LIBUNWIND=$withval],[WITH_LIBUNWIND=no])
321 if test "$WITH_LIBUNWIND" != "no"; then
322 PKG_CHECK_MODULES(LIBUNWIND, libunwind)
323 AC_DEFINE(HAVE_LIBUNWIND, 1, [Have libunwind support])
326 dnl Check for openssl
327 AC_MSG_CHECKING(for OpenSSL)
329 AC_HELP_STRING([--with-openssl@<:@=DIR@:>@],[Include openssl support (default no)]),
330 [WITH_OPENSSL=$withval],[WITH_OPENSSL=no])
332 if test "$WITH_OPENSSL" != "no"; then
334 if test "$WITH_OPENSSL" != "yes"; then
335 CPPFLAGS="$CPPFLAGS -I$WITH_OPENSSL/include"
336 LDFLAGS="$LDFLAGS -L$WITH_OPENSSL/lib"
341 AC_MSG_RESULT([$use_openssl])
343 AC_ARG_WITH(openssl-includes,
344 AC_HELP_STRING([--with-openssl-includes=DIR],[OpenSSL includes]),
345 [ use_openssl=yes CPPFLAGS="$CPPFLAGS -I$withval" ]
348 AC_ARG_WITH(openssl-libs,
349 AC_HELP_STRING([--with-openssl-libs=DIR],[OpenSSL libraries]),
350 [ use_openssl=yes LDFLAGS="$LDFLAGS -L$withval" ]
353 AC_ARG_WITH(kerberos5,
354 AC_HELP_STRING([--with-kerberos5],[use Kerberos5 support with OpenSSL]),
355 [ use_kerberos=yes ], [use_kerberos=no]
358 if test "x$use_openssl" = "xyes"; then
359 if test "x$use_kerberos" = "xyes"; then
360 AC_DEFINE([USE_OPENSSL_KERBEROS], [1], [with kerberos])
363 AC_CHECK_HEADERS([openssl/ssl.h])
365 AC_CHECK_LIB(crypto, BIO_f_base64, [
366 AC_CHECK_LIB(ssl, SSL_new, [ SSL_LIB="-lssl -lcrypto"
367 AC_DEFINE(HAVE_LIBSSL, [], [Have libssl]) ], [], [ -lcrypto "$DL_LIB" ])
373 AC_MSG_CHECKING(for perl regular expressions support)
374 AC_ARG_WITH(pcre, AC_HELP_STRING([--with-pcre],[Enable pcre support (default yes)]),
375 [WITH_PCRE=$withval],[WITH_PCRE=yes])
376 AC_MSG_RESULT([$WITH_PCRE])
378 if test "$WITH_PCRE" != "no"; then
379 if test "$WITH_PCRE" != "yes"; then
380 PCRE_LIB="-L$WITH_PCRE/lib -lpcre"
381 CPPFLAGS="$CPPFLAGS -I$WITH_PCRE/include"
383 AC_PATH_PROG(PCRECONFIG, pcre-config)
384 if test x"$PCRECONFIG" != x; then
385 PCRE_LIB=`$PCRECONFIG --libs`
386 CPPFLAGS="$CPPFLAGS `$PCRECONFIG --cflags`"
390 if test x"$PCRE_LIB" != x; then
391 AC_DEFINE([HAVE_LIBPCRE], [1], [libpcre])
392 AC_DEFINE([HAVE_PCRE_H], [1], [pcre.h])
395 AC_MSG_ERROR([pcre-config not found, install the pcre-devel package or build with --without-pcre])
399 AC_MSG_CHECKING(for zlib support)
400 AC_ARG_WITH(zlib, AC_HELP_STRING([--with-zlib],[Enable zlib support for mod_compress]),
401 [WITH_ZLIB=$withval],[WITH_ZLIB=yes])
402 AC_MSG_RESULT([$WITH_ZLIB])
404 if test "$WITH_ZLIB" != "no"; then
405 if test "$WITH_ZLIB" != "yes"; then
406 Z_LIB="-L$WITH_ZLIB -lz"
407 CPPFLAGS="$CPPFLAGS -I$WITH_ZLIB"
409 AC_CHECK_LIB(z, deflate, [
410 AC_CHECK_HEADERS([zlib.h],[Z_LIB=-lz])
414 if test x"$Z_LIB" != x; then
415 AC_DEFINE([HAVE_LIBZ], [1], [libz])
416 AC_DEFINE([HAVE_ZLIB_H], [1])
419 AC_MSG_ERROR([zlib-headers and/or libs were not found, install them or build with --without-zlib])
423 AC_MSG_CHECKING(for bzip2 support)
424 AC_ARG_WITH(bzip2, AC_HELP_STRING([--with-bzip2],[Enable bzip2 support for mod_compress]),
425 [WITH_BZIP2=$withval],[WITH_BZIP2=yes])
426 AC_MSG_RESULT([$WITH_BZIP2])
428 if test "$WITH_BZIP2" != "no"; then
429 if test "$WITH_BZIP2" != "yes"; then
430 BZ_LIB="-L$WITH_BZIP2 -lbz2"
431 CPPFLAGS="$CPPFLAGS -I$WITH_BZIP2"
433 AC_CHECK_LIB(bz2, BZ2_bzCompress, [
434 AC_CHECK_HEADERS([bzlib.h],[BZ_LIB=-lbz2])
438 if test x"$BZ_LIB" != x; then
439 AC_DEFINE([HAVE_LIBBZ2], [1], [libbz2])
440 AC_DEFINE([HAVE_BZLIB_H], [1])
443 AC_MSG_ERROR([bzip2-headers and/or libs were not found, install them or build with --without-bzip2])
448 AC_MSG_CHECKING(for FAM)
449 AC_ARG_WITH(fam, AC_HELP_STRING([--with-fam],[fam/gamin for reducing number of stat() calls]),
450 [WITH_FAM=$withval],[WITH_FAM=no])
451 AC_MSG_RESULT([$WITH_FAM])
453 if test "$WITH_FAM" != "no"; then
454 if test "$WITH_FAM" != "yes"; then
455 FAM_LIBS="-L$WITH_FAM -lfam"
456 CPPFLAGS="$CPPFLAGS -I$WITH_FAM"
458 AC_CHECK_LIB(fam, FAMOpen2, [
459 AC_CHECK_HEADERS([fam.h],[FAM_LIBS=-lfam])
461 if test "x$FAM_LIBS" = x; then
462 PKG_CHECK_MODULES(FAM, gamin >= 0.1.0)
466 if test x"$FAM_LIBS" != x; then
469 AC_CHECK_FUNCS([FAMNoExists])
472 AC_DEFINE([HAVE_LIBFAM], [1], [libfam])
473 AC_DEFINE([HAVE_FAM_H], [1], [fam.h])
476 AC_MSG_ERROR([fam/gamin-headers and/or libs were not found, install them or build with --without-fam])
480 AC_MSG_CHECKING(for properties in mod_webdav)
481 AC_ARG_WITH(webdav-props, AC_HELP_STRING([--with-webdav-props],[properties in mod_webdav]),
482 [WITH_WEBDAV_PROPS=$withval],[WITH_WEBDAV_PROPS=no])
483 AC_MSG_RESULT([$WITH_WEBDAV_PROPS])
485 if test "$WITH_WEBDAV_PROPS" != "no"; then
487 AC_MSG_CHECKING(for libxml2)
488 AC_ARG_WITH(libxml, AC_HELP_STRING([--with-libxml],[libxml2 for properties in mod_webdav]),
489 [WITH_LIBXML=$withval],[WITH_LIBXML=yes])
490 AC_MSG_RESULT([$WITH_LIBXML])
492 if test "$WITH_LIBXML" != "no"; then
493 if test "$WITH_LIBXML" != "yes"; then
494 XML_LIBS="-L$WITH_LIBXML/.libs -lxml2"
495 XML_CFLAGS="-I$WITH_LIBXML/include"
497 PKG_CHECK_MODULES(XML, libxml-2.0)
500 if test x"$XML_LIBS" != x; then
501 AC_DEFINE([HAVE_LIBXML2], [1], [libxml2])
502 AC_DEFINE([HAVE_LIBXML_H], [1], [libxml.h])
506 AC_MSG_ERROR([libxml2-headers and/or libs were not found, install them or build with --without-webdav-props])
510 AC_MSG_CHECKING(for sqlite)
511 AC_ARG_WITH(sqlite, AC_HELP_STRING([--with-sqlite],[sqlite for properties in mod_webdav]),
512 [WITH_SQLITE=$withval],[WITH_SQLITE=yes])
513 AC_MSG_RESULT([$WITH_SQLITE])
515 if test "$WITH_SQLITE" != "no"; then
516 if test "$WITH_SQLITE" != "yes"; then
517 SQLITE_LIBS="-L$WITH_SQLITE/.libs -lsqlite3"
518 SQLITE_CFLAGS="-I$WITH_SQLITE"
520 PKG_CHECK_MODULES(SQLITE, sqlite3)
523 if test x"$SQLITE_LIBS" != x; then
524 AC_DEFINE([HAVE_SQLITE3], [1], [libsqlite3])
525 AC_DEFINE([HAVE_SQLITE3_H], [1], [sqlite3.h])
526 AC_SUBST(SQLITE_LIBS)
527 AC_SUBST(SQLITE_CFLAGS)
529 AC_MSG_ERROR([sqlite-headers and/or libs were not found, install them or build with --without-webdav-props])
533 AC_MSG_CHECKING(for locks in mod_webdav)
534 AC_ARG_WITH(webdav-locks, AC_HELP_STRING([--with-webdav-locks],[locks in mod_webdav]),
535 [WITH_WEBDAV_LOCKS=$withval],[WITH_WEBDAV_LOCKS=no])
536 AC_MSG_RESULT([$WITH_WEBDAV_LOCKS])
538 if test "$WITH_WEBDAV_LOCKS" != "no"; then
540 AC_MSG_CHECKING(for libuuid)
541 AC_ARG_WITH(uuid, AC_HELP_STRING([--with-uuid],[uuid for locks in mod_webdav]),
542 [WITH_UUID=$withval],[WITH_UUID=yes])
543 AC_MSG_RESULT([$WITH_UUID])
545 if test "$WITH_UUID" != "no"; then
546 if test "$WITH_UUID" != "yes"; then
547 UUID_LIBS="-L$WITH_UUID -luuid"
548 CPPFLAGS="$CPPFLAGS -I$WITH_UUID"
550 AC_CHECK_LIB(uuid, uuid_unparse, [
551 AC_CHECK_HEADERS([uuid/uuid.h],[UUID_LIBS=-luuid])
555 if test x"$UUID_LIBS" != x; then
556 AC_DEFINE([HAVE_UUID], [1], [libuuid])
557 AC_DEFINE([HAVE_UUID_H], [1], [uuid/uuid.h is available])
560 AC_MSG_ERROR([uuid-headers and/or libs were not found, install them or build with --without-webdav-locks])
569 AC_MSG_CHECKING(for gdbm)
570 AC_ARG_WITH(gdbm, AC_HELP_STRING([--with-gdbm],[gdbm storage for mod_trigger_b4_dl]),
571 [WITH_GDBM=$withval],[WITH_GDBM=no])
572 AC_MSG_RESULT([$WITH_GDBM])
574 if test "$WITH_GDBM" != "no"; then
575 if test "$WITH_GDBM" != "yes"; then
576 GDBM_LIB="-L$WITH_GDBM -lgdbm"
577 CPPFLAGS="$CPPFLAGS -I$WITH_GDBM"
579 AC_CHECK_LIB(gdbm, gdbm_open, [
580 AC_CHECK_HEADERS([gdbm.h],[GDBM_LIB=-lgdbm])
584 if test x"$GDBM_LIB" != x; then
585 AC_DEFINE([HAVE_GDBM], [1], [libgdbm])
586 AC_DEFINE([HAVE_GDBM_H], [1])
589 AC_MSG_ERROR([gdbm headers and/or libs were not found, install them or build with --without-gdbm])
593 dnl Check for memcached
594 AC_MSG_CHECKING(for memcached)
595 AC_ARG_WITH(memcached, AC_HELP_STRING([--with-memcached],[memcached storage for mod_trigger_b4_dl]),
596 [WITH_MEMCACHED=$withval],[WITH_MEMCACHED=no])
597 AC_MSG_RESULT([$WITH_MEMCACHED])
599 if test "$WITH_MEMCACHED" != "no"; then
600 if test "$WITH_MEMCACHED" != "yes"; then
601 MEMCACHED_LIB="-L$WITH_MEMCACHED -lMEMCACHED"
602 CPPFLAGS="$CPPFLAGS -I$WITH_MEMCACHED"
604 AC_CHECK_LIB(memcached, memcached, [
605 AC_CHECK_HEADERS([libmemcached/memcached.h],[
606 MEMCACHED_LIB=-lmemcached
611 if test x"$MEMCACHED_LIB" != x; then
612 AC_DEFINE([USE_MEMCACHED], [1], [libmemcached])
613 AC_SUBST(MEMCACHED_LIB)
615 AC_MSG_ERROR([memcached headers and/or libs were not found, install them or build with --without-memcached])
620 AC_MSG_CHECKING(if lua-support is requested)
621 AC_ARG_WITH(lua, AC_HELP_STRING([--with-lua],[lua engine for mod_cml]),
622 [WITH_LUA=$withval],[WITH_LUA=no])
624 AC_MSG_RESULT($WITH_LUA)
625 if test "$WITH_LUA" != "no"; then
627 if test "$WITH_LUA" != "yes"; then
628 PKG_CHECK_MODULES(LUA, $WITH_LUA >= 5.1, [
631 AC_MSG_NOTICE([Couldn't find requested lua pkg-config module $WITH_LUA])
633 if test "$found_lua" = "0"; then
634 LUA_LIBS="-L$WITH_LUA -llua"
635 LUA_CFLAGS="-I$WITH_LUA"
638 for luaname in lua5.3 lua-5.3 lua5.2 lua-5.2 lua5.1 lua-5.1 lua; do
639 if test "$found_lua" = "0"; then
640 PKG_CHECK_MODULES(LUA, $luaname >= 5.1, [
643 AC_MSG_NOTICE([Couldn't find $luaname])
647 if test "$found_lua" = "0"; then
648 AC_MSG_ERROR([Couldn't find any lua pkg-config module])
652 if test x"$LUA_LIBS" != x; then
653 AC_DEFINE([HAVE_LUA], [1], [liblua])
654 AC_DEFINE([HAVE_LUA_H], [1], [lua.h])
658 AC_MSG_ERROR([lua headers and/or libs were not found, install them or build with --without-lua])
662 dnl search for crypt_r and (fallback) for crypt
665 AC_SEARCH_LIBS([crypt_r],[crypt],[
666 AC_DEFINE([HAVE_CRYPT_R], [1], [crypt_r])
667 AC_CHECK_HEADERS([crypt.h],[
668 AC_DEFINE([HAVE_CRYPT_H], [1], [crypt.h])
673 AC_SEARCH_LIBS([crypt],[crypt],[
674 AC_DEFINE([HAVE_CRYPT], [1], [crypt])
675 AC_CHECK_HEADERS([crypt.h],[
676 AC_DEFINE([HAVE_CRYPT_H], [1], [crypt.h])
683 AC_SUBST([CRYPT_LIB])
686 AC_SEARCH_LIBS(sendfilev,sendfile,[
687 if test "$ac_cv_search_sendfilev" != no; then
688 test "$ac_cv_search_sendfilev" = "none required" || SENDFILE_LIB="$ac_cv_search_sendfilev"
689 AC_DEFINE([HAVE_SENDFILEV], [1], [solaris sendfilev])
693 AC_SUBST(SENDFILE_LIB)
696 *mingw* ) LIBS="$LIBS -lwsock32";;
700 AC_CHECK_FUNCS([dup2 getcwd inet_ntoa inet_ntop inet_pton issetugid memset mmap munmap strchr \
701 strdup strerror strstr strtol sendfile getopt socket lstat \
702 gethostbyname poll epoll_ctl getrlimit chroot \
703 getuid select signal pathconf madvise posix_fadvise posix_madvise \
704 writev sigaction sendfile64 send_file kqueue port_create localtime_r gmtime_r \
705 memset_s explicit_bzero clock_gettime])
707 AC_MSG_CHECKING(if weak symbols are supported)
708 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
709 __attribute__((weak)) void __dummy(void *x) { }
710 void f(void *x) { __dummy(x); }
714 AC_DEFINE([HAVE_WEAK_SYMBOLS], [1], [weak symbols are supported])
715 ],[AC_MSG_RESULT(no)])
717 AC_MSG_CHECKING(for Large File System support)
719 AC_HELP_STRING([--enable-lfs],[Turn on Large File System (default)]),
720 [case "${enableval}" in
721 yes) CPPFLAGS="${CPPFLAGS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES" ;;
723 *) AC_MSG_ERROR(bad value ${enableval} for --enable-lfs) ;;
724 esac],[CPPFLAGS="${CPPFLAGS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES"
726 AC_MSG_RESULT($enableval)
728 AC_CHECK_SIZEOF(long)
729 AC_CHECK_SIZEOF(off_t)
731 if test "x$ac_cv_func_sendfile" = xyes; then
732 dnl check if sendfile works
733 AC_MSG_CHECKING(if sendfile works)
734 if test "x$cross_compiling" = xno; then
736 #ifdef HAVE_SYS_SENDFILE_H
737 #include <sys/sendfile.h>
738 #endif /* HAVE_SYS_SENDFILE_H */
742 if (-1 == sendfile(-1, 0, &o, 0) && errno == ENOSYS) return -1;
747 AC_DEFINE([HAVE_SENDFILE_BROKEN], [1], [broken sendfile]) ] )
749 AC_MSG_RESULT(no, cross-compiling)
750 AC_DEFINE([HAVE_SENDFILE_BROKEN], [1], [broken sendfile])
754 dnl Check for IPv6 support
757 AC_HELP_STRING([--disable-ipv6],[disable IPv6 support]),
758 [case "${enableval}" in
761 *) AC_MSG_ERROR(bad value ${enableval} for --enable-ipv6) ;;
764 if test x$ipv6 = xtrue; then
765 AC_CACHE_CHECK([for IPv6 support], ac_cv_ipv6_support,
766 [AC_TRY_LINK([ #include <sys/types.h>
767 #include <sys/socket.h>
768 #include <netinet/in.h>], [struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0; ],
769 [ac_cv_ipv6_support=yes], [ac_cv_ipv6_support=no])])
771 if test "$ac_cv_ipv6_support" = yes; then
772 AC_DEFINE(HAVE_IPV6,1,[Whether to enable IPv6 support])
776 # disable mmap by default; if a mmapped file gets truncated, the process gets a SIGBUS signal
777 # on reading the truncated area which we can't handle (yet).
778 # lighttpd may always use mmap with files it owns (created tmp files)
780 AC_HELP_STRING([--enable-mmap],[use mmap if available (DANGEROUS, allows local users to trigger SIGBUS crashes)]),
781 [case "${enableval}" in
784 *) AC_MSG_ERROR(bad value ${enableval} for --enable-mmap) ;;
787 if test x$mmap = xtrue; then
788 AC_DEFINE(ENABLE_MMAP, [1], [Use mmap if available])
792 AM_CONDITIONAL(CROSS_COMPILING, test "x$cross_compiling" = xyes)
794 dnl check for fastcgi lib, for the tests only
796 AC_CHECK_LIB(fcgi, FCGI_Accept, [
797 AC_CHECK_HEADERS([fastcgi.h fastcgi/fastcgi.h],[
802 AM_CONDITIONAL(CHECK_WITH_FASTCGI, test "x$fastcgi_found" = xyes)
805 dnl check for extra compiler options (warning options)
806 if test "${GCC}" = "yes"; then
807 TRY_CFLAGS([-Wall -W -Wshadow -pedantic])
808 TRY_CFLAGS([-std=gnu99])
811 AC_ARG_ENABLE(extra-warnings,
812 AC_HELP_STRING([--enable-extra-warnings],[enable extra warnings (gcc specific)]),
813 [case "${enableval}" in
814 yes) extrawarnings=true ;;
815 no) extrawarnings=false ;;
816 *) AC_MSG_ERROR(bad value ${enableval} for --enable-extra-warnings) ;;
817 esac],[extrawarnings=false])
819 if test x$extrawarnings = xtrue; then
820 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])
821 TRY_LDFLAGS([-Wl,--as-needed])
825 LIGHTTPD_VERSION_ID=`echo $PACKAGE_VERSION | $AWK -F '.' '{print "(" $1 " << 16 | " $2 " << 8 | " $3 ")"}'`
826 AC_DEFINE_UNQUOTED([LIGHTTPD_VERSION_ID], [$LIGHTTPD_VERSION_ID], [lighttpd-version-id])
828 AC_CONFIG_FILES([Makefile src/Makefile
829 doc/config/conf.d/Makefile \
830 doc/config/vhosts.d/Makefile \
831 doc/config/Makefile \
832 doc/scripts/Makefile \
833 doc/initscripts/Makefile \
834 doc/systemd/Makefile \
835 doc/outdated/Makefile \
838 tests/docroot/Makefile \
839 tests/docroot/123/Makefile \
840 tests/docroot/www/Makefile \
841 tests/docroot/www/go/Makefile \
842 tests/docroot/www/indexfile/Makefile \
843 tests/docroot/www/expire/Makefile \
848 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"
849 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 mod_ssi"
851 plugins="mod_rewrite mod_redirect mod_trigger_b4_dl"
852 features="regex-conditionals"
853 if test ! "x$PCRE_LIB" = x; then
854 do_build="$do_build $plugins"
855 enable_feature="$features"
857 no_build="$no_build $plugins"
858 disable_feature="$features"
861 plugins="mod_mysql_vhost"
862 if test ! "x$MYSQL_LIBS" = x; then
863 do_build="$do_build $plugins"
865 no_build="$no_build $plugins"
868 plugins="mod_cml mod_magnet"
869 if test ! "x$LUA_LIBS" = x; then
870 do_build="$do_build $plugins"
872 no_build="$no_build $plugins"
875 features="storage-gdbm"
876 if test ! "x$GDBM_LIB" = x; then
877 enable_feature="$enable_feature $features"
879 disable_feature="$disable_feature $features"
882 features="storage-memcached"
883 if test ! "x$MEMCACHED_LIB" = x; then
884 enable_feature="$enable_feature $features"
886 disable_feature="$disable_feature $features"
889 features="compress-gzip compress-deflate"
890 if test ! "x$Z_LIB" = x; then
891 enable_feature="$enable_feature $features"
893 disable_feature="$disable_feature $features"
896 features="compress-bzip2"
897 if test ! "x$BZ_LIB" = x; then
898 enable_feature="$enable_feature $features"
900 disable_feature="$disable_feature $features"
904 if test ! "x$LDAP_LIB" = x; then
905 enable_feature="$enable_feature $features"
907 disable_feature="$disable_feature $features"
910 features="network-openssl"
911 if test ! "x$SSL_LIB" = x; then
912 enable_feature="$enable_feature $features"
914 disable_feature="$disable_feature $features"
918 features="auth-crypt"
919 if test "$ac_cv_search_crypt" = no; then
920 disable_feature="$disable_feature $features"
922 enable_feature="$enable_feature $features"
925 features="network-ipv6"
926 if test "$ac_cv_ipv6_support" = yes; then
927 enable_feature="$enable_feature $features"
929 disable_feature="$disable_feature $features"
932 features="large-files"
933 if test "$enable_lfs" = yes; then
934 enable_feature="$enable_feature $features"
936 disable_feature="$disable_feature $features"
939 features="stat-cache-fam"
940 if test ! "x$FAM_LIBS" = x; then
941 enable_feature="$enable_feature $features"
943 disable_feature="$disable_feature $features"
946 features="webdav-properties"
947 if test "x$XML_LIBS" \!= x -a "x$SQLITE_LIBS" \!= x; then
948 enable_feature="$enable_feature $features"
950 disable_feature="$disable_feature $features"
953 features="webdav-locks"
954 if test "x$UUID_LIBS" \!= x; then
955 enable_feature="$enable_feature $features"
957 disable_feature="$disable_feature $features"
968 for p in $do_build; do
973 for p in $no_build; do
982 for p in $enable_feature; do
987 for p in $disable_feature; do