diff options
Diffstat (limited to 'data/lighttpd/lighttpd-1.4.53/configure.ac')
-rw-r--r-- | data/lighttpd/lighttpd-1.4.53/configure.ac | 1527 |
1 files changed, 1527 insertions, 0 deletions
diff --git a/data/lighttpd/lighttpd-1.4.53/configure.ac b/data/lighttpd/lighttpd-1.4.53/configure.ac new file mode 100644 index 000000000..96c6f8796 --- /dev/null +++ b/data/lighttpd/lighttpd-1.4.53/configure.ac @@ -0,0 +1,1527 @@ +dnl -*- Autoconf -*- +dnl Process this file with autoconf to produce a configure script. +dnl +dnl Indentation rules: +dnl - closing braces not at the beginning of a line must match opening +dnl braces earlier on that line +dnl - closing braces at the beginning of a line: +dnl - must not be followed by anything else apart from "," or comments +dnl - must match opening braces from another line and indented the +dnl same as that other line +dnl - if one argument was put on a new line, all following arguments +dnl must be on their own line too +dnl - if an argument uses more than one line and is not a single +dnl function call, the argument should be on different lines than the +dnl wrapping braces +AC_PREREQ(2.60) +AC_INIT([lighttpd], [1.4.53], [contact@lighttpd.net]) +AC_CONFIG_SRCDIR([src/server.c]) +AC_CONFIG_HEADER([config.h]) +AC_CONFIG_MACRO_DIR([m4]) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE([1.13 -Wall -Wno-portability -Wno-override foreign dist-xz tar-ustar serial-tests silent-rules subdir-objects]) + +dnl @synopsis TRY_CFLAGS [compiler flags] +dnl @summary check whether compiler supports given flags and adds them to CFLAGS +AC_DEFUN([TRY_CFLAGS], +[dnl + AC_MSG_CHECKING([if $CC supports $1]) + AC_LANG_PUSH([C]) + ac_try_cflags_saved_cflags="${CFLAGS}" + CFLAGS="${CFLAGS} $1" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], + [AC_MSG_RESULT([yes])], + [ + AC_MSG_ERROR([no]) + CFLAGS="${ac_try_cflags_saved_cflags}" + ] + ) + AC_LANG_POP([C]) +]) + +dnl @synopsis TRY_LDFLAGS [linker flags] +dnl @summary check whether linker supports given flags and adds them to LDFLAGS +AC_DEFUN([TRY_LDFLAGS], +[dnl + AC_MSG_CHECKING([if $LD supports $1]) + AC_LANG_PUSH([C]) + ac_try_ldflags_saved_ldflags="${LDFLAGS}" + LDFLAGS="${LDFLAGS} $1" + AC_LINK_IFELSE([AC_LANG_PROGRAM([])], + [AC_MSG_RESULT([yes])], + [ + AC_MSG_ERROR([no]) + LDFLAGS="${ac_try_ldflags_saved_cflags}" + ] + ) + AC_LANG_POP([C]) +]) + +dnl Checks for programs. +AC_PROG_CC +AC_PROG_CC_STDC +AX_PROG_CC_FOR_BUILD +AC_PROG_LD +AC_PROG_INSTALL +AC_PROG_CPP +AC_PROG_MAKE_SET + +AC_USE_SYSTEM_EXTENSIONS +AM_PROG_AR + +dnl AC_CANONICAL_HOST +case "$host_os" in +*darwin*|*cygwin*|*aix*|*mingw*|*midipix* ) NO_RDYNAMIC=yes ;; +* ) NO_RDYNAMIC=no ;; +esac +AM_CONDITIONAL([NO_RDYNAMIC], [test "$NO_RDYNAMIC" = yes]) + +AM_CONDITIONAL([LIGHTTPD_STATIC], [test "$LIGHTTPD_STATIC" = yes]) + +AC_EXEEXT + +dnl libtool +AC_DISABLE_STATIC +AC_ENABLE_SHARED + +AC_LIBTOOL_DLOPEN +AC_PROG_LIBTOOL + +dnl for solaris +CPPFLAGS="${CPPFLAGS} -D_REENTRANT" + +dnl Checks for header files. + +dnl check for: +dnl inttypes.h => HAVE_INTTYPES_H +dnl stdint.h => HAVE_STDINT_H +dnl and maybe more (which shouldn't be relied on) +AC_HEADER_STDC +dnl checks for sys/wait.h => HAVE_SYS_WAIT_H +AC_HEADER_SYS_WAIT +AC_CHECK_HEADERS([\ + getopt.h \ + poll.h \ + port.h \ + pwd.h \ + stdlib.h \ + strings.h \ + sys/devpoll.h \ + sys/epoll.h \ + sys/event.h \ + sys/filio.h \ + sys/mman.h \ + sys/poll.h \ + sys/prctl.h \ + sys/resource.h \ + sys/select.h \ + sys/sendfile.h \ + sys/time.h \ + sys/uio.h \ + sys/un.h \ + syslog.h \ + uuid/uuid.h \ +]) + +dnl Checks for typedefs, structures, and compiler characteristics. +AC_C_CONST +AC_C_INLINE +AC_TYPE_OFF_T +AC_TYPE_PID_T +AC_TYPE_SIZE_T + +AC_CHECK_MEMBER([struct tm.tm_gmtoff], + [AC_DEFINE([HAVE_STRUCT_TM_GMTOFF], [1], [gmtoff in struct tm])], + [], + [#include <time.h>] +) +AC_CHECK_TYPES([socklen_t], + [], dnl defines HAVE_SOCKLEN_T + [], + [ + #include <sys/types.h> + #include <sys/socket.h> + ] +) + +dnl openssl on solaris needs -lsocket -lnsl +AC_SEARCH_LIBS([socket], [socket]) +AC_SEARCH_LIBS([gethostbyname], [nsl socket]) + +dnl On Haiku accept() and friends are in libnetwork +AC_SEARCH_LIBS([accept], [network]) + +dnl clock_gettime() needs -lrt with glibc < 2.17, and possibly other platforms +AC_SEARCH_LIBS([clock_gettime], [rt]) + +dnl need dlopen/-ldl to load plugins (when not on windows) +save_LIBS=$LIBS +LIBS= +AC_SEARCH_LIBS([dlopen], [dl], [ + AC_CHECK_HEADERS([dlfcn.h], [ + DL_LIB=$LIBS + AC_DEFINE([HAVE_LIBDL], [1], [libdl]) + AC_DEFINE([HAVE_DLFCN_H], [1]) + ]) +]) +LIBS=$save_LIBS +AC_SUBST([DL_LIB]) + +dnl prepare pkg-config usage below +PKG_PROG_PKG_CONFIG + +dnl checking for libev +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for libev support]) +AC_ARG_WITH([libev], + [AC_HELP_STRING([--with-libev@<:@=PATH@:>@], + [Include libev support for fdevent handlers in PATH/include and PATH/lib] + )], + [WITH_LIBEV=$withval], + [WITH_LIBEV=no] +) +AC_MSG_RESULT([$WITH_LIBEV]) + +LIBEV_CFLAGS= +LIBEV_LIBS= + +if test "$WITH_LIBEV" != no; then + PKG_CHECK_MODULES([LIBEV], [libev], [], [ + dnl no pkg-config for libev, searching manually: + + if test "$WITH_LIBEV" != yes; then + LIBEV_CFLAGS="-I$WITH_LIBEV/include" + LIBEV_LIBS="-L$WITH_LIBEV/lib -lev" + else + AC_CHECK_HEADERS([ev.h], + [AC_CHECK_LIB([ev], [ev_time], + [ + LIBEV_CFLAGS= + LIBEV_LIBS="-lev" + ], + [AC_MSG_ERROR([libev not found])] + )], + [AC_MSG_ERROR([libev header not found])] + ) + fi + ]) + + AC_DEFINE([HAVE_LIBEV], [1], [libev support]) +fi + +AC_SUBST([LIBEV_CFLAGS]) +AC_SUBST([LIBEV_LIBS]) + +dnl Checks for mysql +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for MySQL support]) +AC_ARG_WITH([mysql], + [AC_HELP_STRING([--with-mysql@<:@=PATH@:>@], + [Include MySQL support. PATH is the path to 'mysql_config'] + )], + [WITH_MYSQL=$withval], + [WITH_MYSQL=no] +) +AC_MSG_RESULT([$WITH_MYSQL]) + +MYSQL_CFLAGS= +MYSQL_LIBS= + +if test "$WITH_MYSQL" != no; then + if test "$WITH_MYSQL" = yes; then + PKG_CHECK_MODULES([MYSQL],[mariadb],[ + MYSQL_CONFIG=$PKG_CONFIG + ],[ + PKG_CHECK_MODULES([MYSQL],[mysqlclient],[ + MYSQL_CONFIG=$PKG_CONFIG + ],[ + AC_PATH_PROG([MYSQL_CONFIG], [mysql_config]) + ]) + ]) + else + MYSQL_CONFIG=$WITH_MYSQL + fi + + if test "$MYSQL_CONFIG" != "$PKG_CONFIG"; then + if test -z "$MYSQL_CONFIG"; then + AC_MSG_ERROR([mysql_config is not found]) + fi + if test ! -x "$MYSQL_CONFIG"; then + AC_MSG_ERROR([mysql_config not exists or not executable, use --with-mysql=path-to-mysql_config]) + fi + + if "$MYSQL_CONFIG" | grep -- '--include' > /dev/null ; then + MYSQL_CFLAGS=`"$MYSQL_CONFIG" --include | sed s/\'//g` + else + MYSQL_CFLAGS=`"$MYSQL_CONFIG" --cflags | sed s/\'//g` + fi + MYSQL_LIBS=`"$MYSQL_CONFIG" --libs | sed s/\'//g` + fi + + AC_MSG_CHECKING([for MySQL includes at]) + AC_MSG_RESULT([$MYSQL_CFLAGS]) + + AC_MSG_CHECKING([for MySQL libraries at]) + AC_MSG_RESULT([$MYSQL_LIBS]) + + AC_DEFINE([HAVE_MYSQL], [1], [mysql support]) +fi +AM_CONDITIONAL([BUILD_WITH_MYSQL], [test "$WITH_MYSQL" != no]) + +AC_SUBST([MYSQL_LIBS]) +AC_SUBST([MYSQL_CFLAGS]) + +dnl Checks for pgsql +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for PgSQL support]) +AC_ARG_WITH([pgsql], + [AC_HELP_STRING([--with-pgsql@<:@=PATH@:>@], + [Include PgSQL support. PATH is the path to 'pg_config'] + )], + [WITH_PGSQL=$withval], + [WITH_PGSQL=no] +) +AC_MSG_RESULT([$WITH_PGSQL]) + +PGSQL_INCLUDE= +PGSQL_LIBS= + +if test "$WITH_PGSQL" != no; then + if test "$WITH_PGSQL" = yes; then + AC_PATH_PROG([PGSQL_CONFIG], [pg_config]) + else + PGSQL_CONFIG=$WITH_PGSQL + fi + + if test -z "$PGSQL_CONFIG"; then + AC_MSG_ERROR([pg_config is not found]) + fi + if test ! -x "$PGSQL_CONFIG"; then + AC_MSG_ERROR([pg_config not exists or not executable, use --with-pgsql=path-to-pg_config]) + fi + + PGSQL_INCLUDE="-I`"$PGSQL_CONFIG" --includedir`" + PGSQL_LIBS="-L`"$PGSQL_CONFIG" --libdir` -lpq" + + AC_MSG_CHECKING([for PgSQL includes at]) + AC_MSG_RESULT([$PGSQL_INCLUDE]) + + AC_MSG_CHECKING([for PgSQL libraries at]) + AC_MSG_RESULT([$PGSQL_LIBS]) + + AC_DEFINE([HAVE_PGSQL], [1], [pgsql support]) +fi +AM_CONDITIONAL([BUILD_WITH_PGSQL], [test "$WITH_PGSQL" != no]) + +AC_SUBST([PGSQL_LIBS]) +AC_SUBST([PGSQL_INCLUDE]) + +dnl Checks for libdbi library +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for LibDBI support]) +AC_ARG_WITH([dbi], + [AC_HELP_STRING([--with-dbi@<:@=PATH@:>@], + [Include DBI support in PATH/include/dbi.h and PATH/lib] + )], + [WITH_DBI=$withval], + [WITH_DBI=no] +) +AC_MSG_RESULT([$WITH_DBI]) + +DBI_INCLUDE= +DBI_LIBS= + +if test "$WITH_DBI" != no; then + if test "$WITH_DBI" != yes; then + DBI_CFLAGS="-I$WITH_DBI/include" + DBI_LIBS="-L$WITH_DBI/lib -ldbi" + else + AC_CHECK_HEADERS([dbi/dbi.h], + [AC_CHECK_LIB([dbi], [dbi_version], + [ + DBI_CFLAGS= + DBI_LIBS="-ldbi" + ], + [AC_MSG_ERROR([LibDBI not found])] + )], + [AC_MSG_ERROR([LibDBI header not found])] + ) + fi + + AC_DEFINE([HAVE_DBI], [1], [LibDBI support]) +fi +AM_CONDITIONAL([BUILD_WITH_DBI], [test "$WITH_DBI" != no]) + +AC_SUBST([DBI_LIBS]) +AC_SUBST([DBI_CFLAGS]) + +dnl Checks for libsasl2 library +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for LibSASL support]) +AC_ARG_WITH([sasl], + [AC_HELP_STRING([--with-sasl@<:@=PATH@:>@], + [Include SASL support in PATH/include/sasl/sasl.h and PATH/lib] + )], + [WITH_SASL=$withval], + [WITH_SASL=no] +) +AC_MSG_RESULT([$WITH_SASL]) + +SASL_INCLUDE= +SASL_LIBS= + +if test "$WITH_SASL" != no; then + if test "$WITH_SASL" != yes; then + SASL_CFLAGS="-I$WITH_SASL/include" + SASL_LIBS="-L$WITH_SASL/lib -lsasl2" + else + AC_CHECK_HEADERS([sasl/sasl.h], + [AC_CHECK_LIB([sasl2], [sasl_server_init], + [ + SASL_CFLAGS= + SASL_LIBS="-lsasl2" + ], + [AC_MSG_ERROR([libsasl2 not found])] + )], + [AC_MSG_ERROR([SASL header not found])] + ) + fi + + AC_DEFINE([HAVE_SASL], [1], [LibSASL support]) +fi +AM_CONDITIONAL([BUILD_WITH_SASL], [test "$WITH_SASL" != no]) + +AC_SUBST([SASL_LIBS]) +AC_SUBST([SASL_CFLAGS]) + + +dnl Check for LDAP +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for LDAP support]) +AC_ARG_WITH([ldap], + [AC_HELP_STRING([--with-ldap], [enable LDAP support])], + [WITH_LDAP=$withval], + [WITH_LDAP=no] +) +AC_MSG_RESULT([$WITH_LDAP]) + +if test "$WITH_LDAP" != no; then + AC_CHECK_LIB([ldap], [ldap_sasl_bind_s], + [AC_CHECK_HEADERS([ldap.h], + [ + LDAP_LIB=-lldap + AC_DEFINE([HAVE_LIBLDAP], [1], [libldap]) + AC_DEFINE([HAVE_LDAP_H], [1]) + ], + [AC_MSG_ERROR([ldap headers not found, install them or build without --with-ldap])] + )], + [AC_MSG_ERROR([ldap library not found, install it or build without --with-ldap])] + ) + AC_SUBST([LDAP_LIB]) + AC_CHECK_LIB([lber], [ber_printf], + [AC_CHECK_HEADERS([lber.h], + [ + LBER_LIB=-llber + AC_DEFINE([HAVE_LIBLBER], [1], [liblber]) + AC_DEFINE([HAVE_LBER_H], [1]) + ], + [AC_MSG_ERROR([lber headers not found, install them or build without --with-ldap])] + )], + [AC_MSG_ERROR([lber library not found, install it or build without --with-ldap])] + ) + AC_SUBST([LBER_LIB]) +fi +AM_CONDITIONAL([BUILD_WITH_LDAP], [test "$WITH_LDAP" != no]) + +dnl Check for PAM +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING(for PAM support) +AC_ARG_WITH([pam], + [AC_HELP_STRING([--with-pam],[enable PAM support])], + [WITH_PAM=$withval], + [WITH_PAM=no] +) +AC_MSG_RESULT([$withval]) + +if test "$WITH_PAM" != "no"; then + AC_CHECK_LIB([pam], [pam_start], + [AC_CHECK_HEADERS([security/pam_appl.h],[ + PAM_LIB=-lpam + AC_DEFINE([HAVE_PAM], [1], [libpam]) + AC_DEFINE([HAVE_SECURITY_PAM_APPL_H], [1]) + ], + [AC_MSG_ERROR([pam headers not found, install them or build without --with-pam])] + )], + [AC_MSG_ERROR([pam library not found, install it or build without --with-pam])] + ) + AC_SUBST(PAM_LIB) +fi +AM_CONDITIONAL([BUILD_WITH_PAM], [test "$WITH_PAM" != no]) + +dnl Check for xattr +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for extended attributes support]) +AC_ARG_WITH([attr], + [AC_HELP_STRING([--with-attr], [enable extended attribute support])], + [WITH_ATTR=$withval], + [WITH_ATTR=no] +) +AC_MSG_RESULT([$WITH_ATTR]) + +if test "$WITH_ATTR" != no; then + have_xattr=no + # libattr (linux only?) + AC_CHECK_LIB([attr], [attr_get], [ + AC_CHECK_HEADERS([attr/attributes.h], [ + ATTR_LIB=-lattr + AC_DEFINE([HAVE_XATTR], [1], [libattr]) + AC_DEFINE([HAVE_ATTR_ATTRIBUTES_H], [1]) + have_xattr=yes + ]) + ]) + AC_SUBST([ATTR_LIB]) + + # (Free)BSD extattr + AC_CHECK_FUNC([extattr_get_file], [ + AC_CHECK_HEADERS([sys/extattr.h], [ + AC_DEFINE([HAVE_EXTATTR], [1], [BSD extended attributes]) + AC_DEFINE([HAVE_SYS_EXTATTR_H], [1]) + have_xattr=yes + ]) + ]) + + if test "$have_xattr" = no; then + AC_MSG_ERROR([no backend found implementing extended attributes]) + fi +fi + +dnl Check for valgrind +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for valgrind]) +AC_ARG_WITH([valgrind], + [AC_HELP_STRING([--with-valgrind], + [enable internal support for valgrind] + )], + [WITH_VALGRIND=$withval], + [WITH_VALGRIND=no] +) +AC_MSG_RESULT([$WITH_VALGRIND]) + +if test "$WITH_VALGRIND" != no; then + AC_CHECK_HEADERS([valgrind/valgrind.h], [], [ + AC_MSG_ERROR([valgrind headers not found. install them or build without --with-valgrind]) + ]) +fi + +dnl Checking for libunwind +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for libunwind]) +AC_ARG_WITH([libunwind], + [AC_HELP_STRING([--with-libunwind], + [Include libunwind support for backtraces on assert failures] + )], + [WITH_LIBUNWIND=$withval], + [WITH_LIBUNWIND=no] +) +AC_MSG_RESULT([$WITH_LIBUNWIND]) + +if test "$WITH_LIBUNWIND" != no; then + PKG_CHECK_MODULES([LIBUNWIND], [libunwind], [], [ + AC_MSG_ERROR([libunwind not found. install it or build without --with-libunwind]) + ]) + AC_DEFINE([HAVE_LIBUNWIND], [1], [Have libunwind support]) +fi + +dnl Checking for kerberos5 +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for kerberos5]) +AC_ARG_WITH([krb5], + [AC_HELP_STRING([--with-krb5@<:@=DIR@:>@], [Use Kerberos 5])], + [WITH_KRB5=$withval], + [WITH_KRB5=no] +) +AC_MSG_RESULT([$WITH_KRB5]) + +if test "$WITH_KRB5" != no; then + if test "$WITH_KRB5" != yes; then + krb5_append_CPPFLAGS=" -I$WITH_KRB5/include" + krb5_append_LDFLAGS=" -L$WITH_KRB5/lib" + fi +fi + +AC_MSG_CHECKING([custom include directory for kerberos5]) +AC_ARG_WITH([krb5-includes], + [AC_HELP_STRING([--with-krb5-includes=DIR], [Kerberos includes])], + [ + if test "$WITH_KRB5" = no; then + AC_MSG_ERROR([build --with-krb5 to use --with-krb5-includes]) + fi + krb5_append_CPPFLAGS=" -I$withval" + AC_MSG_RESULT([$withval]) + ], + [AC_MSG_RESULT([no])] +) + +AC_MSG_CHECKING([custom lib directory for kerberos5]) +AC_ARG_WITH([krb5-libs], + [AC_HELP_STRING([--with-krb5-libs=DIR], [Kerberos libraries])], + [ + if test "$WITH_KRB5" = no; then + AC_MSG_ERROR([build --with-krb5 to use --with-krb5-libs]) + fi + krb5_append_LDFLAGS=" -L$withval" + AC_MSG_RESULT([$withval]) + ], + [AC_MSG_RESULT([no])] +) + +if test "$WITH_KRB5" != no; then + CPPFLAGS="${CPPFLAGS}${krb5_append_CPPFLAGS}" + LDFLAGS="${LDFLAGS}${krb5_append_LDFLAGS}" + + AC_CHECK_LIB([gssapi_krb5], [gss_acquire_cred], + [AC_CHECK_HEADERS([gssapi/gssapi_krb5.h], + [ + KRB5_LIB="-lkrb5 -lgssapi_krb5" + AC_DEFINE([HAVE_KRB5], [1], [libgssapi_krb5]) + ], + [AC_MSG_ERROR([gssapi_krb5 headers were not found, install them or build without --with-krb5])] + )], + [AC_MSG_ERROR([gssapi_krb5 libs were not found, install them or build without --with-krb5])] + ) + case "$host_os" in + *darwin*|*cygwin* ) KRB5_LIB="$KRB5_LIB -lcom_err" ;; + * ) ;; + esac +fi + +AM_CONDITIONAL([BUILD_WITH_KRB5], [test "$WITH_KRB5" != no]) +AC_SUBST([KRB5_LIB]) + +dnl Check for openssl +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for OpenSSL]) +AC_ARG_WITH([openssl], + [AC_HELP_STRING([--with-openssl@<:@=DIR@:>@], + [Include openssl support (default no)] + )], + [WITH_OPENSSL=$withval], + [WITH_OPENSSL=no] +) +AC_MSG_RESULT([$WITH_OPENSSL]) + +if test "$WITH_OPENSSL" != no; then + if test "$WITH_OPENSSL" != yes; then + openssl_append_CPPFLAGS=" -I$WITH_OPENSSL/include" + openssl_append_LDFLAGS=" -L$WITH_OPENSSL/lib" + fi +fi + +AC_MSG_CHECKING([custom include directory for openssl]) +AC_ARG_WITH([openssl-includes], + [AC_HELP_STRING([--with-openssl-includes=DIR], [OpenSSL includes])], + [ + if test "$WITH_OPENSSL" = no; then + AC_MSG_ERROR([build --with-openssl to use --with-openssl-includes]) + fi + openssl_append_CPPFLAGS=" -I$withval" + AC_MSG_RESULT([$withval]) + ], + [AC_MSG_RESULT([no])] +) + +AC_MSG_CHECKING([custom lib directory for openssl]) +AC_ARG_WITH([openssl-libs], + [AC_HELP_STRING([--with-openssl-libs=DIR], [OpenSSL libraries])], + [ + if test "$WITH_OPENSSL" = no; then + AC_MSG_ERROR([build --with-openssl to use --with-openssl-libs]) + fi + openssl_append_LDFLAGS=" -L$withval" + AC_MSG_RESULT([$withval]) + ], + [AC_MSG_RESULT([no])] +) + +if test "$WITH_OPENSSL" != no; then + if test "$WITH_KRB5" != no; then + AC_DEFINE([USE_OPENSSL_KERBEROS], [1], [with kerberos]) + fi + + CPPFLAGS="${CPPFLAGS}${openssl_append_CPPFLAGS}" + LDFLAGS="${LDFLAGS}${openssl_append_LDFLAGS}" + + AC_CHECK_HEADERS([openssl/ssl.h], [], [ + AC_MSG_ERROR([openssl headers not found. install them or build without --with-openssl]) + ]) + AC_CHECK_LIB([crypto], [BIO_f_base64], + [CRYPTO_LIB="-lcrypto"], + [AC_MSG_ERROR([openssl crypto library not found. install it or build without --with-openssl])] + ) + AC_CHECK_LIB([ssl], [SSL_new], + [SSL_LIB="-lssl -lcrypto"], + [AC_MSG_ERROR([openssl ssl library not found. install it or build without --with-openssl])], + [ -lcrypto "$DL_LIB" ] + ) + + AC_DEFINE([HAVE_LIBSSL], [], [Have libssl]) + AC_SUBST([SSL_LIB]) + AC_SUBST([CRYPTO_LIB]) +fi + +dnl Check for wolfSSL +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for wolfSSL]) +AC_ARG_WITH([wolfssl], + [AC_HELP_STRING([--with-wolfssl@<:@=DIR@:>@], + [Include openssl support (default no)] + )], + [WITH_WOLFSSL=$withval], + [WITH_WOLFSSL=no] +) +AC_MSG_RESULT([$WITH_WOLFSSL]) + +if test "$WITH_WOLFSSL" != no; then + if test "$WITH_WOLFSSL" = yes; then + WITH_WOLFSSL="/usr/local" + fi + + CPPFLAGS="${CPPFLAGS} -I$WITH_WOLFSSL/include -I$WITH_WOLFSSL/include/wolfssl" + LDFLAGS="${LDFLAGS} -L$WITH_WOLFSSL/lib" + + AC_CHECK_HEADERS([wolfssl/ssl.h], [], [ + AC_MSG_ERROR([wolfssl headers not found. install them or build without --with-wolfssl]) + ]) + AC_CHECK_LIB([wolfssl], [wolfSSL_Init], + [CRYPTO_LIB="-lwolfssl"], + [AC_MSG_ERROR([wolfssl crypto library not found. install it or build without --with-wolfssl])] + ) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ + #include <wolfssl/options.h> + #if !defined(HAVE_LIGHTY) && !defined(OPENSSL_ALL) + #error HAVE_LIGHTY macro not defined + #endif + ]])], [], [AC_MSG_ERROR([wolfssl must be built with ./configure --enable-lighty])]) + SSL_LIB="-lwolfssl" + + AC_SUBST([SSL_LIB]) + AC_SUBST([CRYPTO_LIB]) +fi + +AM_CONDITIONAL([BUILD_WITH_OPENSSL], + [test "$WITH_OPENSSL" != no || test "$WITH_WOLFSSL" != no]) + +if test "$WITH_OPENSSL" != no && test "$WITH_WOLFSSL" != no; then + AC_MSG_ERROR([lighttpd should not be built with both --with-openssl and --with-wolfssl]) +fi + + +dnl pcre support +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for perl regular expressions support]) +AC_ARG_WITH([pcre], + [AC_HELP_STRING([--with-pcre], [Enable pcre support (default yes)])], + [WITH_PCRE=$withval], + [WITH_PCRE=yes] +) +AC_MSG_RESULT([$WITH_PCRE]) + +if test "$WITH_PCRE" != no; then + if test "$WITH_PCRE" != yes; then + PCRE_LIB="-L$WITH_PCRE/lib -lpcre" + CPPFLAGS="$CPPFLAGS -I$WITH_PCRE/include" + else + AC_PATH_PROG([PCRECONFIG], [pcre-config]) + if test -n "$PCRECONFIG"; then + PCRE_LIB=`"$PCRECONFIG" --libs` + CPPFLAGS="$CPPFLAGS `"$PCRECONFIG" --cflags`" + fi + fi + + if test -z "$PCRE_LIB"; then + AC_MSG_ERROR([pcre-config not found, install the pcre-devel package or build with --without-pcre]) + fi + + AC_DEFINE([HAVE_LIBPCRE], [1], [libpcre]) + AC_DEFINE([HAVE_PCRE_H], [1], [pcre.h]) + AC_SUBST([PCRE_LIB]) +fi + +dnl zlib +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for zlib support]) +AC_ARG_WITH([zlib], + [AC_HELP_STRING([--with-zlib], + [Enable zlib support for mod_compress] + )], + [WITH_ZLIB=$withval], + [WITH_ZLIB=yes] +) +AC_MSG_RESULT([$WITH_ZLIB]) + +if test "$WITH_ZLIB" != no; then + if test "$WITH_ZLIB" != yes; then + Z_LIB="-L$WITH_ZLIB -lz" + CPPFLAGS="$CPPFLAGS -I$WITH_ZLIB" + else + AC_CHECK_HEADERS([zlib.h], [], + [AC_MSG_ERROR([zlib headers not found, install them or build without --with-zlib])] + ) + AC_CHECK_LIB([z], [deflate], + [Z_LIB=-lz], + [AC_MSG_ERROR([zlib library not found, install it or build without --with-zlib])] + ) + fi + + AC_DEFINE([HAVE_LIBZ], [1], [libz]) + AC_DEFINE([HAVE_ZLIB_H], [1]) + AC_SUBST([Z_LIB]) +fi + +dnl bzip2 +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for bzip2 support]) +AC_ARG_WITH([bzip2], + [AC_HELP_STRING([--with-bzip2], + [Enable bzip2 support for mod_compress] + )], + [WITH_BZIP2=$withval], + [WITH_BZIP2=yes] +) +AC_MSG_RESULT([$WITH_BZIP2]) + +if test "$WITH_BZIP2" != no; then + if test "$WITH_BZIP2" != yes; then + BZ_LIB="-L$WITH_BZIP2 -lbz2" + CPPFLAGS="$CPPFLAGS -I$WITH_BZIP2" + else + AC_CHECK_HEADERS([bzlib.h], [], [ + AC_MSG_ERROR([bzip2 headers not found, install them or build without --with-bzip2]) + ]) + AC_CHECK_LIB([bz2], [BZ2_bzCompress], + [BZ_LIB=-lbz2], + [AC_MSG_ERROR([bzip2 library not found, install it or build without --with-bzip2])] + ) + fi + + AC_DEFINE([HAVE_LIBBZ2], [1], [libbz2]) + AC_DEFINE([HAVE_BZLIB_H], [1]) + AC_SUBST([BZ_LIB]) +fi + +dnl Check for fam/gamin +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for FAM]) +AC_ARG_WITH([fam], + [AC_HELP_STRING([--with-fam], + [fam/gamin for reducing number of stat() calls] + )], + [WITH_FAM=$withval], + [WITH_FAM=no] +) +AC_MSG_RESULT([$WITH_FAM]) + +if test "$WITH_FAM" != no; then + if test "$WITH_FAM" != yes; then + FAM_LIBS="-L$WITH_FAM -lfam" + CPPFLAGS="$CPPFLAGS -I$WITH_FAM" + else + AC_CHECK_LIB([fam], [FAMOpen2], [ + AC_CHECK_HEADERS([fam.h], [FAM_LIBS=-lfam]) + ]) + dnl fam has no pkg-config so far, so just search for gamin as fallback + if test -z "$FAM_LIBS"; then + PKG_CHECK_MODULES([FAM], [gamin >= 0.1.0]) + fi + fi + + if test -z "$FAM_LIBS"; then + AC_MSG_ERROR([fam/gamin headers and/or libs were not found, install them or build without --with-fam]) + fi + + OLD_LIBS=$LIBS + LIBS=$FAM_LIBS + AC_CHECK_FUNCS([FAMNoExists]) + LIBS=$OLD_LIBS + + AC_DEFINE([HAVE_LIBFAM], [1], [libfam]) + AC_DEFINE([HAVE_FAM_H], [1], [fam.h]) + AC_SUBST([FAM_LIBS]) +fi + + +dnl webdav props (xml2 and sqlite3) +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for properties in mod_webdav]) +AC_ARG_WITH([webdav-props], + [AC_HELP_STRING([--with-webdav-props], [properties in mod_webdav])], + [WITH_WEBDAV_PROPS=$withval], + [WITH_WEBDAV_PROPS=no] +) +AC_MSG_RESULT([$WITH_WEBDAV_PROPS]) + +if test "$WITH_WEBDAV_PROPS" != no; then + AC_MSG_CHECKING([for libxml2]) + AC_ARG_WITH([libxml], + [AC_HELP_STRING([--with-libxml], + [libxml2 for properties in mod_webdav] + )], + [WITH_LIBXML=$withval], + [WITH_LIBXML=yes] + ) + AC_MSG_RESULT([$WITH_LIBXML]) + + if test "$WITH_LIBXML" = no; then + AC_MSG_ERROR([--with-webdav-props requires libxml]) + fi + + if test "$WITH_LIBXML" != yes; then + XML_LIBS="-L$WITH_LIBXML/.libs -lxml2" + XML_CFLAGS="-I$WITH_LIBXML/include" + else + PKG_CHECK_MODULES([XML], [libxml-2.0], [], [ + AC_MSG_ERROR([libxml2 not found, install it or build without --with-webdav-props]) + ]) + fi + + AC_DEFINE([HAVE_LIBXML2], [1], [libxml2]) + AC_DEFINE([HAVE_LIBXML_H], [1], [libxml.h]) + AC_SUBST([XML_LIBS]) + AC_SUBST([XML_CFLAGS]) + + AC_MSG_CHECKING([for sqlite]) + AC_ARG_WITH([sqlite], + [AC_HELP_STRING([--with-sqlite], + [sqlite for properties in mod_webdav] + )], + [WITH_SQLITE=$withval], + [WITH_SQLITE=yes] + ) + AC_MSG_RESULT([$WITH_SQLITE]) + + if test "$WITH_SQLITE" = no; then + AC_MSG_ERROR([--with-webdav-props requires sqlite]) + fi + + if test "$WITH_SQLITE" != yes; then + SQLITE_LIBS="-L$WITH_SQLITE/.libs -lsqlite3" + SQLITE_CFLAGS="-I$WITH_SQLITE" + else + PKG_CHECK_MODULES([SQLITE], [sqlite3], [], [ + AC_MSG_ERROR([sqlite3 not found, install it or build without --with-webdav-props]) + ]) + fi + + AC_DEFINE([HAVE_SQLITE3], [1], [libsqlite3]) + AC_DEFINE([HAVE_SQLITE3_H], [1], [sqlite3.h]) + AC_SUBST([SQLITE_LIBS]) + AC_SUBST([SQLITE_CFLAGS]) +fi + + +dnl webdav locks (uuid) +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for locks in mod_webdav]) +AC_ARG_WITH([webdav-locks], + [AC_HELP_STRING([--with-webdav-locks], + [locks in mod_webdav (requires webdav properties)] + )], + [WITH_WEBDAV_LOCKS=$withval], + [WITH_WEBDAV_LOCKS=no] +) +AC_MSG_RESULT([$WITH_WEBDAV_LOCKS]) + +if test "$WITH_WEBDAV_LOCKS" != no; then + if test "$WITH_WEBDAV_PROPS" = no; then + AC_MSG_ERROR([--with-webdav-locks requires --with-webdav-props]) + fi + + AC_MSG_CHECKING([for libuuid]) + AC_ARG_WITH([uuid], + [AC_HELP_STRING([--with-uuid], [uuid for locks in mod_webdav])], + [WITH_UUID=$withval], + [WITH_UUID=yes] + ) + AC_MSG_RESULT([$WITH_UUID]) + + if test "$WITH_UUID" = no; then + AC_MSG_ERROR([--with-webdav-locks requires uuid]) + fi + + if test "$WITH_UUID" != yes; then + UUID_LIBS="-L$WITH_UUID -luuid" + CPPFLAGS="$CPPFLAGS -I$WITH_UUID" + else + AC_CHECK_LIB([uuid], [uuid_unparse], + [UUID_LIBS=-luuid], + [AC_MSG_ERROR([uuid lib not found, install it or build without --with-webdav-locks])] + ) + AC_CHECK_HEADERS([uuid/uuid.h], [], + [AC_MSG_ERROR([uuid headers not found, install them or build without --with-webdav-locks])] + ) + fi + + AC_DEFINE([HAVE_UUID], [1], [libuuid]) + AC_DEFINE([HAVE_UUID_H], [1], [uuid/uuid.h is available]) + AC_SUBST([UUID_LIBS]) +fi + +dnl Check for gdbm +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for gdbm]) +AC_ARG_WITH([gdbm], + [AC_HELP_STRING([--with-gdbm], [gdbm storage for mod_trigger_b4_dl])], + [WITH_GDBM=$withval], + [WITH_GDBM=no] +) +AC_MSG_RESULT([$WITH_GDBM]) + +if test "$WITH_GDBM" != no; then + if test "$WITH_GDBM" != yes; then + GDBM_LIB="-L$WITH_GDBM -lgdbm" + CPPFLAGS="$CPPFLAGS -I$WITH_GDBM" + else + AC_CHECK_LIB([gdbm], [gdbm_open], + [GDBM_LIB=-lgdbm], + [AC_MSG_ERROR([gdbm lib not found, install it or build without --with-gdbm])] + ) + AC_CHECK_HEADERS([gdbm.h], [], + [AC_MSG_ERROR([gdbm headers not found, install them or build without --with-gdbm])] + ) + fi + + AC_DEFINE([HAVE_GDBM], [1], [libgdbm]) + AC_DEFINE([HAVE_GDBM_H], [1]) + AC_SUBST([GDBM_LIB]) +fi +AM_CONDITIONAL([BUILD_WITH_GDBM], [test "$WITH_GDBM" != no]) + +dnl Check for GeoIP +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for GeoIP]) +AC_ARG_WITH([geoip], + [AC_HELP_STRING([--with-geoip], [IP-based geolocation lookup])], + [WITH_GEOIP=$withval], + [WITH_GEOIP=no] +) +AC_MSG_RESULT([$WITH_GEOIP]) + +if test "$WITH_GEOIP" != no; then + if test "$WITH_GEOIP" != yes; then + GEOIP_LIB="-L$WITH_GEOIP -lGeoIP" + CPPFLAGS="$CPPFLAGS -I$WITH_GEOIP" + else + AC_CHECK_LIB([GeoIP], [GeoIP_country_name_by_addr], + [GEOIP_LIB=-lGeoIP], + [AC_MSG_ERROR([GeoIP lib not found, install it or build without --with-geoip])] + ) + AC_CHECK_HEADERS([GeoIP.h], [], + [AC_MSG_ERROR([GeoIP headers not found, install them or build without --with-geoip])] + ) + fi + + AC_DEFINE([HAVE_GEOIP], [1], [libGeoIP]) + AC_DEFINE([HAVE_GEOIP_H], [1]) + AC_SUBST([GEOIP_LIB]) +fi +AM_CONDITIONAL([BUILD_WITH_GEOIP], [test "$WITH_GEOIP" != no]) + +dnl Check for memcached +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for memcached]) +AC_ARG_WITH([memcached], + [AC_HELP_STRING([--with-memcached], + [memcached storage for mod_trigger_b4_dl/mod_cml] + )], + [WITH_MEMCACHED=$withval], + [WITH_MEMCACHED=no] +) +AC_MSG_RESULT([$WITH_MEMCACHED]) + +if test "$WITH_MEMCACHED" != no; then + if test "$WITH_MEMCACHED" != yes; then + MEMCACHED_LIB="-L$WITH_MEMCACHED -lMEMCACHED" + CPPFLAGS="$CPPFLAGS -I$WITH_MEMCACHED" + else + AC_CHECK_LIB([memcached], [memcached], + [ MEMCACHED_LIB=-lmemcached ], + [AC_MSG_ERROR([memcached lib not found, install it or build without --with-memcached])] + ) + AC_CHECK_HEADERS([libmemcached/memcached.h], [], + [AC_MSG_ERROR([memcached headers not found, install them or build without --with-memcached])] + ) + fi + + AC_DEFINE([USE_MEMCACHED], [1], [libmemcached]) + AC_SUBST([MEMCACHED_LIB]) +fi +AM_CONDITIONAL([BUILD_WITH_MEMCACHED], [test "$WITH_MEMCACHED" != no]) + +BUILD_MOD_TRIGGER_B4_DL=no +if test "$WITH_MEMCACHED" != no || test "$WITH_GDBM" != no ; then + BUILD_MOD_TRIGGER_B4_DL=yes +fi + +AM_CONDITIONAL([BUILD_MOD_TRIGGER_B4_DL], [test "$BUILD_MOD_TRIGGER_B4_DL" != no]) + +dnl Check for lua +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([if lua-support is requested]) +AC_ARG_WITH([lua], + [AC_HELP_STRING([--with-lua], [lua engine for mod_magnet/mod_cml])], + [WITH_LUA=$withval], + [WITH_LUA=no] +) +AC_MSG_RESULT([$WITH_LUA]) + +if test "$WITH_LUA" != no; then + found_lua=0 + if test "$WITH_LUA" != yes; then + PKG_CHECK_MODULES([LUA], [$WITH_LUA >= 5.1], + [found_lua=1], + [AC_MSG_NOTICE([Couldn\'t find requested lua pkg-config module $WITH_LUA])] + ) + if test "$found_lua" = "0"; then + LUA_LIBS="-L$WITH_LUA -llua" + LUA_CFLAGS="-I$WITH_LUA" + fi + else + for luaname in lua5.3 lua-5.3 lua5.2 lua-5.2 lua5.1 lua-5.1 lua; do + if test "$found_lua" = "0"; then + PKG_CHECK_MODULES([LUA], [$luaname >= 5.1], + [found_lua=1], + [AC_MSG_NOTICE([Couldn\'t find $luaname])] + ) + fi + done + if test "$found_lua" = "0"; then + AC_MSG_ERROR([Couldn\'t find any lua pkg-config module]) + fi + fi + + AC_DEFINE([HAVE_LUA], [1], [liblua]) + AC_DEFINE([HAVE_LUA_H], [1], [lua.h]) + AC_SUBST([LUA_LIBS]) + AC_SUBST([LUA_CFLAGS]) +fi +AM_CONDITIONAL([BUILD_WITH_LUA], [test "$WITH_LUA" != no]) + +dnl "--with-FEATURE" blocks end +AC_MSG_NOTICE([----------------------------------------]) + +dnl search for crypt_r and (fallback) for crypt +save_LIBS=$LIBS +LIBS= +found_crypt=no +AC_SEARCH_LIBS([crypt_r], [crypt], + [ + AC_DEFINE([HAVE_CRYPT_R], [1], [crypt_r]) + AC_CHECK_HEADERS([crypt.h]) + CRYPT_LIB=$LIBS + found_crypt=crypt_r + ], + [AC_SEARCH_LIBS([crypt], [crypt], [ + AC_DEFINE([HAVE_CRYPT], [1], [crypt]) + AC_CHECK_HEADERS([crypt.h]) + CRYPT_LIB=$LIBS + found_crypt=crypt + ])] +) +LIBS=$save_LIBS +AC_SUBST([CRYPT_LIB]) + +AC_MSG_CHECKING([crypt_r/crypt support]) +AC_MSG_RESULT([$found_crypt]) + +dnl check whether sendfilev needs -lsendfile +AC_MSG_NOTICE([----------------------------------------]) +save_LIBS=$LIBS +LIBS= +have_sendfilev=no +AC_SEARCH_LIBS([sendfilev], [sendfile], [ + if test -z "$LIBS"; then + have_sendfilev=yes + else + have_sendfilev=$LIBS + fi + SENDFILE_LIB=$LIBS + AC_DEFINE([HAVE_SENDFILEV], [1], [solaris sendfilev]) +]) +LIBS=$save_LIBS +AC_SUBST([SENDFILE_LIB]) + +AC_MSG_CHECKING([solaris sendfilev present]) +AC_MSG_RESULT([$have_sendfilev]) + +AC_MSG_NOTICE([----------------------------------------]) + +case "$host_os" in +*mingw* ) LIBS="$LIBS -lwsock32" ;; +* ) ;; +esac + +AC_CHECK_FUNCS([\ + arc4random_buf \ + chroot \ + clock_gettime \ + epoll_ctl \ + explicit_bzero \ + fork \ + getloadavg \ + getrlimit \ + getuid \ + gmtime_r \ + inet_pton \ + issetugid \ + jrand48 \ + kqueue \ + localtime_r \ + lstat \ + madvise \ + memset \ + memset_s \ + mmap \ + pathconf \ + pipe2 \ + poll \ + port_create \ + select \ + send_file \ + sendfile \ + sendfile64 \ + sigaction \ + signal \ + srandom \ + writev \ +]) +AC_CHECK_HEADERS([sys/random.h], [AC_CHECK_FUNCS([getentropy])]) +AC_CHECK_HEADERS([linux/random.h], [AC_CHECK_FUNCS([getrandom])]) + +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([if weak symbols are supported]) +AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[ + __attribute__((weak)) void __dummy(void *x) { } + void f(void *x) { __dummy(x); } + ]])], + [ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_WEAK_SYMBOLS], [1], [weak symbols are supported]) + ], + [AC_MSG_RESULT([no])] +) + +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([for Large File System support]) +AC_ARG_ENABLE([lfs], + [AC_HELP_STRING([--enable-lfs], + [Turn on Large File System (default)] + )], + [ + case "${enableval}" in + yes) ENABLE_LFS=yes ;; + no) ENABLE_LFS=no ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-lfs]) ;; + esac + ], + [ ENABLE_LFS=yes ] +) +AC_MSG_RESULT([$ENABLE_LFS]) +if test "$ENABLE_LFS" = yes; then + CPPFLAGS="${CPPFLAGS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES" +fi + +dnl check if sendfile works +if test "$ac_cv_func_sendfile" = yes; then + AC_MSG_NOTICE([----------------------------------------]) + AC_MSG_CHECKING([if sendfile works]) + if test "$cross_compiling" = no; then + AC_TRY_RUN( + [ + #ifdef HAVE_SYS_SENDFILE_H + #include <sys/sendfile.h> + #endif /* HAVE_SYS_SENDFILE_H */ + #include <errno.h> + int main() { + int o = 0; + if (-1 == sendfile(-1, 0, &o, 0) && errno == ENOSYS) return -1; + return 0; + } + ], + [AC_MSG_RESULT([yes])], + [ + AC_MSG_RESULT([no]) + AC_DEFINE([HAVE_SENDFILE_BROKEN], [1], [broken sendfile]) + ] + ) + fi +fi + +dnl Check for IPv6 support +AC_MSG_NOTICE([----------------------------------------]) +AC_ARG_ENABLE([ipv6], + [AC_HELP_STRING([--disable-ipv6], [disable IPv6 support])], + [ + case "${enableval}" in + yes) ipv6=true ;; + no) ipv6=false ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-ipv6]) ;; + esac + ], + [ipv6=true] +) + +if test "$ipv6" = true; then + AC_CACHE_CHECK([for IPv6 support], [ac_cv_ipv6_support], [ + AC_TRY_LINK( + [ + #include <sys/types.h> + #include <sys/socket.h> + #include <netinet/in.h> + ], + [ + struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0; + ], + [ac_cv_ipv6_support=yes], + [ac_cv_ipv6_support=no] + ) + ]) + + if test "$ac_cv_ipv6_support" = yes; then + AC_DEFINE([HAVE_IPV6], [1], [Whether to enable IPv6 support]) + else + AC_MSG_ERROR([IPv6 seems broken. Fix it or build with --disable-ipv6]) + fi +fi + +# disable mmap by default +# lighttpd may always use mmap with files it owns (created tmp files) +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([use mmap if available]) +AC_ARG_ENABLE([mmap], + [AC_HELP_STRING([--enable-mmap], + [use mmap if available] + )], + [ + case "${enableval}" in + yes) mmap=true ;; + no) mmap=false ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-mmap]) ;; + esac + ], + [mmap=false] +) +AC_MSG_RESULT([$mmap]) + +if test "$mmap" = true; then + AC_DEFINE([ENABLE_MMAP], [1], [Use mmap if available]) +fi + +dnl check for fastcgi lib, for the tests only +AC_MSG_NOTICE([----------------------------------------]) +fastcgi_found=no +AC_CHECK_LIB([fcgi], [FCGI_Accept], [ + AC_CHECK_HEADERS([fastcgi.h fastcgi/fastcgi.h], [ + fastcgi_found=yes + ]) +]) + +AM_CONDITIONAL([CHECK_WITH_FASTCGI], [test "$fastcgi_found" = yes]) + + +AC_MSG_NOTICE([----------------------------------------]) +dnl check for extra compiler options (warning options) +if test "${GCC}" = yes; then + TRY_CFLAGS([-Wall -W -Wshadow -pedantic]) +fi + +AC_ARG_ENABLE([extra-warnings], + [AC_HELP_STRING([--enable-extra-warnings], + [enable extra warnings (gcc specific)] + )], + [ + case "${enableval}" in + error) extrawarnings=error ;; + yes) extrawarnings=true ;; + no) extrawarnings=false ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-extra-warnings]) ;; + esac + ], + [extrawarnings=false] +) + +if test "$extrawarnings" = true || test "$extrawarnings" = error; then + 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]) + TRY_LDFLAGS([-Wl,--as-needed]) + if test "$extrawarnings" = error; then + AS_VAR_APPEND([CFLAGS], [" -Werror"]) + AS_VAR_APPEND([LDFLAGS], [" -Wl,--fatal-warnings"]) + fi +fi + +dnl build version-id +LIGHTTPD_VERSION_ID=m4_format([0x%x%02x%02x], m4_unquote(m4_split(AC_PACKAGE_VERSION, [\.]))) +AC_DEFINE_UNQUOTED([LIGHTTPD_VERSION_ID], [$LIGHTTPD_VERSION_ID], [lighttpd-version-id]) + +AC_CONFIG_FILES([\ + distribute.sh \ + doc/config/conf.d/Makefile \ + doc/config/Makefile \ + doc/config/vhosts.d/Makefile \ + doc/Makefile \ + doc/outdated/Makefile \ + doc/scripts/Makefile \ + doc/systemd/Makefile \ + Makefile \ + src/Makefile \ + tests/docroot/123/Makefile \ + tests/docroot/Makefile \ + tests/docroot/www/expire/Makefile \ + tests/docroot/www/go/Makefile \ + tests/docroot/www/indexfile/Makefile \ + tests/docroot/www/Makefile \ + tests/Makefile \ +]) +AC_OUTPUT + +do_build="\ + mod_access \ + mod_accesslog \ + mod_alias \ + mod_auth \ + mod_authn_file \ + mod_cgi \ + mod_compress \ + mod_deflate \ + mod_dirlisting \ + mod_evhost \ + mod_expire \ + mod_extforward \ + mod_fastcgi \ + mod_flv_streaming \ + mod_indexfile \ + mod_proxy \ + mod_redirect \ + mod_rewrite \ + mod_rrdtool \ + mod_scgi \ + mod_secdownload \ + mod_setenv \ + mod_simple_vhost \ + mod_sockproxy \ + mod_ssi \ + mod_staticfile \ + mod_status \ + mod_userdir \ + mod_usertrack \ + mod_vhostdb \ + mod_webdav \ + mod_wstunnel \ +" + +lighty_track_feature() { + if eval "$3"; then + enable_feature="$enable_feature $1" + do_build="$do_build $2" + else + disable_feature="$disable_feature $1" + no_build="$no_build $2" + fi +} + +lighty_track_feature "regex-conditionals" "" \ + 'test "$WITH_PCRE" != no' + +lighty_track_feature "storage-gdbm" "" \ + 'test "$WITH_GDBM" != no' + +lighty_track_feature "storage-memcached" "" \ + 'test "$WITH_MEMCACHED" != no' + +lighty_track_feature "" "mod_trigger_b4_dl" \ + 'test "$BUILD_MOD_TRIGGER_B4_DL" != no' + +lighty_track_feature "mysql" "mod_authn_mysql mod_mysql_vhost mod_vhostdb_mysql" \ + 'test "$WITH_MYSQL" != no' + +lighty_track_feature "postgresql" "mod_vhostdb_pgsql" \ + 'test "$WITH_PGSQL" != no' + +lighty_track_feature "dbi" "mod_vhostdb_dbi" \ + 'test "$WITH_DBI" != no' + +lighty_track_feature "lua" "mod_cml mod_magnet" \ + 'test "$WITH_LUA" != no' + +lighty_track_feature "geoip" "mod_geoip" \ + 'test "$WITH_GEOIP" != no' + +lighty_track_feature "compress-gzip compress-deflate" "" \ + 'test "$WITH_ZLIB" != no' + +lighty_track_feature "compress-bzip2" "" \ + 'test "$WITH_BZIP2" != no' + +lighty_track_feature "kerberos" "mod_authn_gssapi" \ + 'test "$WITH_KRB5" != no' + +lighty_track_feature "ldap" "mod_authn_ldap mod_vhostdb_ldap" \ + 'test "$WITH_LDAP" != no' + +lighty_track_feature "pam" "mod_authn_pam" \ + 'test "$WITH_PAM" != no' + +lighty_track_feature "network-openssl" "mod_openssl" \ + 'test "$WITH_OPENSSL" != no || test "$WITH_WOLFSSL" != no' + +lighty_track_feature "auth-crypt" "" \ + 'test "$found_crypt" != no' + +lighty_track_feature "network-ipv6" "" \ + 'test "$ac_cv_ipv6_support" != no' + +lighty_track_feature "large-files" "" \ + 'test "$ENABLE_LFS" = yes' + +lighty_track_feature "stat-cache-fam" "" \ + 'test "$WITH_FAM" != no' + +lighty_track_feature "webdav-properties" "" \ + 'test "$WITH_WEBDAV_PROPS" != no' + +lighty_track_feature "webdav-locks" "" \ + 'test "$WITH_WEBDAV_LOCKS" != no' + +dnl output + +$ECHO +$ECHO "Plugins:" +$ECHO + +$ECHO "enabled: " +for p in $do_build; do + $ECHO " $p" +done | sort + +$ECHO "disabled: " +for p in $no_build; do + $ECHO " $p" +done | sort + +$ECHO +$ECHO "Features:" +$ECHO + +$ECHO "enabled: " +for p in $enable_feature; do + $ECHO " $p" +done | sort + +$ECHO "disabled: " +for p in $disable_feature; do + $ECHO " $p" +done | sort + +$ECHO |