diff options
author | Glenn Strauss <gstrauss@gluelogic.com> | 2017-10-28 22:49:40 -0400 |
---|---|---|
committer | Glenn Strauss <gstrauss@gluelogic.com> | 2017-10-28 22:49:40 -0400 |
commit | 02ad06b080148478f5748131849f5ee1273bfb88 (patch) | |
tree | b13ee7e9778cd534136bced539100f5ca44cbeb0 | |
parent | 735d9757f76cd3e0d01fa4e38cd1ba08c5aaddc7 (diff) | |
parent | 6976b5e8a8f18e4247614c8d7c5a4586a84cc307 (diff) | |
download | lighttpd-git-02ad06b080148478f5748131849f5ee1273bfb88.tar.gz |
[autobuild] Merge branch 'personal/stbuehler/autobuild-cleanup'
-rw-r--r-- | configure.ac | 1892 |
1 files changed, 1054 insertions, 838 deletions
diff --git a/configure.ac b/configure.ac index 25c3bcac..33ba1276 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,19 @@ dnl -*- Autoconf -*- dnl Process this file with autoconf to produce a configure script. -AC_PREREQ(2.57) +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.48], [contact@lighttpd.net]) AC_CONFIG_SRCDIR([src/server.c]) AC_CONFIG_HEADER([config.h]) @@ -8,21 +21,7 @@ AC_CONFIG_MACRO_DIR([m4]) AC_CANONICAL_HOST -dnl HOW FUCKING BROKEN IS AUTOMAKE... -dnl serial-tests is not recognized before 1.12, and required for serial tests with 1.13, sane version checks "impossible" -dnl if you don't use the default (symlinked) automake on your box, set AUTOMAKE to the path you're using -m4_define([serial_tests], [ - m4_esyscmd([case `${AUTOMAKE:-automake} --version | head -n 1` in - *1.11.*|*1.10.*|*1.9.*);; - *) echo serial-tests;; - esac]) -]) - -AM_INIT_AUTOMAKE([-Wall -Wno-portability -Wno-override foreign dist-xz tar-ustar] serial_tests) - -dnl enable with --enable-silent-rules or make V=0 (needs automake >= 1.11) -m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES]) - +AM_INIT_AUTOMAKE([1.14 -Wall -Wno-portability -Wno-override foreign dist-xz tar-ustar serial-tests silent-rules]) dnl @synopsis TRY_CFLAGS [compiler flags] dnl @summary check whether compiler supports given flags and adds them to CFLAGS @@ -64,37 +63,22 @@ dnl Checks for programs. AC_PROG_CC AC_PROG_CC_STDC AX_PROG_CC_FOR_BUILD -AM_PROG_CC_C_O AC_PROG_LD AC_PROG_INSTALL -AC_PROG_AWK AC_PROG_CPP -dnl AC_PROG_CXX -AC_PROG_LN_S AC_PROG_MAKE_SET -dnl AM_PROG_AR is needed for some linker stuff -dnl AC_USE_SYSTEM_EXTENSIONS requires autoconf 2.60 -m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [AC_USE_SYSTEM_EXTENSIONS]) -dnl AM_PROG_AR requires automake 1.11 (and uses AC_COMPILE_IFELSE which wants AC_USE_SYSTEM_EXTENSIONS) -m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) - -dnl check environment -AC_AIX -AC_ISC_POSIX -AC_MINIX +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;; +case "$host_os" in +*darwin*|*cygwin*|*aix*|*mingw*|*midipix* ) NO_RDYNAMIC=yes ;; +* ) NO_RDYNAMIC=no ;; esac -AM_CONDITIONAL(NO_RDYNAMIC, test x$NO_RDYNAMIC = xyes) +AM_CONDITIONAL([NO_RDYNAMIC], [test "$NO_RDYNAMIC" = yes]) -if test -z "$LIGHTTPD_STATIC"; then - LIGHTTPD_STATIC=no -fi -AM_CONDITIONAL(LIGHTTPD_STATIC, test x$LIGHTTPD_STATIC = xyes) +AM_CONDITIONAL([LIGHTTPD_STATIC], [test "$LIGHTTPD_STATIC" = yes]) AC_EXEEXT @@ -106,689 +90,884 @@ AC_LIBTOOL_DLOPEN AC_PROG_LIBTOOL dnl for solaris -CPPFLAGS="${CPPFLAGS} -D_REENTRANT -D__EXTENSIONS__" +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([arpa/inet.h fcntl.h netinet/in.h stdlib.h string.h strings.h \ -sys/socket.h sys/time.h unistd.h sys/sendfile.h sys/uio.h \ -getopt.h sys/epoll.h sys/select.h poll.h sys/poll.h sys/devpoll.h sys/filio.h \ -sys/mman.h sys/event.h port.h pwd.h \ -sys/resource.h sys/un.h syslog.h sys/prctl.h uuid/uuid.h]) +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_C_CHAR_UNSIGNED 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(struct sockaddr_storage,,,[#include <sys/socket.h>]) -AC_CHECK_TYPES(socklen_t,,,[#include <sys/types.h> -#include <sys/socket.h>]) +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 Checks for library functions. -AC_FUNC_FORK -dnl AC_FUNC_MALLOC -dnl AC_FUNC_MMAP -dnl AC_FUNC_REALLOC -AC_TYPE_SIGNAL -AC_FUNC_STAT -AC_FUNC_STRFTIME +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 if test -z "$PKG_CONFIG"; then - AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + AC_PATH_PROG([PKG_CONFIG], [pkg-config], [no]) fi +PKG_PROG_PKG_CONFIG dnl checking for libev -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]) - -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 not found]) - ] - ) - fi - ]) - - AC_DEFINE([HAVE_LIBEV], [1], [libev support]) -fi - -AC_SUBST(LIBEV_CFLAGS) -AC_SUBST(LIBEV_LIBS) +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]) -dnl Checks for database. -MYSQL_INCLUDE="" -MYSQL_LIBS="" +LIBEV_CFLAGS= +LIBEV_LIBS= -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]) +if test "$WITH_LIBEV" != no; then + PKG_CHECK_MODULES([LIBEV], [libev], [], [ + dnl no pkg-config for libev, searching manually: -if test "$WITH_MYSQL" != "no"; then - AC_MSG_RESULT(yes) - if test "$WITH_MYSQL" = "yes"; then - AC_PATH_PROG(MYSQL_CONFIG, mysql_config) + 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_INCLUDE= +MYSQL_LIBS= + +if test "$WITH_MYSQL" != no; then + if test "$WITH_MYSQL" = yes; then + AC_PATH_PROG([MYSQL_CONFIG], [mysql_config]) else MYSQL_CONFIG=$WITH_MYSQL fi - if test "$MYSQL_CONFIG" = ""; then - AC_MSG_ERROR(mysql_config is not found) + 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) + 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_INCLUDE="`$MYSQL_CONFIG --include | sed s/\'//g`" + if "$MYSQL_CONFIG" | grep -- '--include' > /dev/null ; then + MYSQL_INCLUDE=`"$MYSQL_CONFIG" --include | sed s/\'//g` else - MYSQL_INCLUDE="`$MYSQL_CONFIG --cflags | sed s/\'//g`" + MYSQL_INCLUDE=`"$MYSQL_CONFIG" --cflags | sed s/\'//g` fi - MYSQL_LIBS="`$MYSQL_CONFIG --libs | sed s/\'//g`" + MYSQL_LIBS=`"$MYSQL_CONFIG" --libs | sed s/\'//g` - AC_MSG_CHECKING(for MySQL includes at) - AC_MSG_RESULT($MYSQL_INCLUDE) + AC_MSG_CHECKING([for MySQL includes at]) + AC_MSG_RESULT([$MYSQL_INCLUDE]) - AC_MSG_CHECKING(for MySQL libraries at) - AC_MSG_RESULT($MYSQL_LIBS) -dnl check for errmsg.h, which isn't installed by some versions of 3.21 - old_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $MYSQL_INCLUDE" - AC_CHECK_HEADERS(errmsg.h mysql.h) - CPPFLAGS="$old_CPPFLAGS" + AC_MSG_CHECKING([for MySQL libraries at]) + AC_MSG_RESULT([$MYSQL_LIBS]) AC_DEFINE([HAVE_MYSQL], [1], [mysql support]) -else - AC_MSG_RESULT(no) fi -AM_CONDITIONAL(BUILD_WITH_MYSQL, test ! $WITH_MYSQL = no) - -AC_SUBST(MYSQL_LIBS) -AC_SUBST(MYSQL_INCLUDE) - - -dnl Checks for database. -PGSQL_INCLUDE="" -PGSQL_LIBS="" +AM_CONDITIONAL([BUILD_WITH_MYSQL], [test "$WITH_MYSQL" != no]) + +AC_SUBST([MYSQL_LIBS]) +AC_SUBST([MYSQL_INCLUDE]) + +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]) -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]) +PGSQL_INCLUDE= +PGSQL_LIBS= -if test "$WITH_PGSQL" != "no"; then - AC_MSG_RESULT(yes) - if test "$WITH_PGSQL" = "yes"; then - AC_PATH_PROG(PGSQL_CONFIG, pg_config) +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 "$PGSQL_CONFIG" = ""; then - AC_MSG_ERROR(pg_config is not found) + 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) + 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" + 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 includes at]) + AC_MSG_RESULT([$PGSQL_INCLUDE]) - AC_MSG_CHECKING(for PgSQL libraries at) - AC_MSG_RESULT($PGSQL_LIBS) + AC_MSG_CHECKING([for PgSQL libraries at]) + AC_MSG_RESULT([$PGSQL_LIBS]) AC_DEFINE([HAVE_PGSQL], [1], [pgsql support]) -else - AC_MSG_RESULT(no) fi -AM_CONDITIONAL(BUILD_WITH_PGSQL, test ! $WITH_PGSQL = no) - -AC_SUBST(PGSQL_LIBS) -AC_SUBST(PGSQL_INCLUDE) +AM_CONDITIONAL([BUILD_WITH_PGSQL], [test "$WITH_PGSQL" != no]) +AC_SUBST([PGSQL_LIBS]) +AC_SUBST([PGSQL_INCLUDE]) dnl Checks for libdbi library -DBI_INCLUDE="" -DBI_LIBS="" - -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]) - -if test "$WITH_DBI" != "no"; then - AC_MSG_RESULT(yes) - if test "$WITH_DBI" != "yes"; then - DBI_CFLAGS="-I$WITH_LIBDBI/include" - DBI_LIBS="-L$WITH_LIBDBI/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 not found]) - ] - ) - fi - - AC_DEFINE([HAVE_DBI], [1], [LibDBI support]) -else - AC_MSG_RESULT(no) +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_LIBDBI/include" + DBI_LIBS="-L$WITH_LIBDBI/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) +AM_CONDITIONAL([BUILD_WITH_DBI], [test "$WITH_DBI" != no]) -AC_SUBST(DBI_LIBS) -AC_SUBST(DBI_CFLAGS) +AC_SUBST([DBI_LIBS]) +AC_SUBST([DBI_CFLAGS]) dnl Check for LDAP -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([$withval]) -if test "$WITH_LDAP" != "no"; then - AC_CHECK_LIB(ldap, ldap_bind, [ - AC_CHECK_HEADERS([ldap.h],[ - LDAP_LIB=-lldap - AC_DEFINE([HAVE_LIBLDAP], [1], [libldap]) - AC_DEFINE([HAVE_LDAP_H], [1]) - AC_DEFINE([LDAP_DEPRECATED], [1], [Using deprecated ldap api]) - ]) - ]) - 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_SUBST(LBER_LIB) +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_bind], + [AC_CHECK_HEADERS([ldap.h], + [ + LDAP_LIB=-lldap + AC_DEFINE([HAVE_LIBLDAP], [1], [libldap]) + AC_DEFINE([HAVE_LDAP_H], [1]) + AC_DEFINE([LDAP_DEPRECATED], [1], [Using deprecated ldap api]) + ], + [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) +AM_CONDITIONAL([BUILD_WITH_LDAP], [test "$WITH_LDAP" != no]) dnl Check for xattr -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($withval) -if test "$WITH_ATTR" != "no"; then +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],[ + 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) + AC_SUBST([ATTR_LIB]) # (Free)BSD extattr AC_CHECK_FUNC([extattr_get_file], [ - AC_CHECK_HEADERS([sys/extattr.h],[ + AC_CHECK_HEADERS([sys/extattr.h], [ AC_DEFINE([HAVE_EXTATTR], [1], [BSD extended attributes]) AC_DEFINE([HAVE_SYS_EXTATTR_H], [1]) + have_xattr=yes ]) ]) -fi - -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]) -save_LIBS=$LIBS -AC_SEARCH_LIBS(dlopen,dl,[ - AC_CHECK_HEADERS([dlfcn.h],[ - if test "$ac_cv_search_dlopen" != no; then - test "$ac_cv_search_dlopen" = "none required" || DL_LIB="$ac_cv_search_dlopen" - fi - - AC_DEFINE([HAVE_LIBDL], [1], [libdl]) - AC_DEFINE([HAVE_DLFCN_H], [1]) - ]) -]) -LIBS=$save_LIBS -AC_SUBST(DL_LIB) + if test "$have_xattr" = no; then + AC_MSG_ERROR([no backend found implementing extended attributes]) + fi +fi dnl Check for valgrind -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_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]) + +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_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]) - -if test "$WITH_LIBUNWIND" != "no"; then - PKG_CHECK_MODULES(LIBUNWIND, libunwind) - AC_DEFINE(HAVE_LIBUNWIND, 1, [Have libunwind support]) -fi +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_CHECKING(for kerberos5) -AC_ARG_WITH(krb5, - AC_HELP_STRING([--with-krb5@<:@=DIR@:>@],[Use Kerberos 5]), - [WITH_KRB5=$withval],[WITH_KRB5=no]) -if test "$WITH_KRB5" != "no"; then - use_krb5=yes - if test "x$WITH_KRB5" != "xyes"; then - CPPFLAGS="$CPPFLAGS -I$WITH_KRB5/include" - LDFLAGS="$LDFLAGS -L$WITH_KRB5/lib" - fi -else - use_krb5=no +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_RESULT([$use_krb5]) -AM_CONDITIONAL(BUILD_WITH_KRB5, test ! $WITH_KRB5 = no) -AC_ARG_WITH(krb5-includes, - AC_HELP_STRING([--with-krb5-includes=DIR],[Kerberos includes]), - [ use_krb5=yes CPPFLAGS="$CPPFLAGS -I$withval" ] +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_ARG_WITH(krb5-libs, - AC_HELP_STRING([--with-krb5-libs=DIR],[Kerberos libraries]), - [ use_krb5=yes LDFLAGS="$LDFLAGS -L$withval" ] +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 "x$use_krb5" = "xyes"; then - 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]) - ]) - ]) - if test "x$KRB5_LIB" = x; then - AC_MSG_ERROR([gssapi_krb5 headers and/or libs where not found, install them or build with --without-krb5]) - fi - case $host_os in - *darwin*|*cygwin* ) KRB5_LIB="$KRB5_LIB -lcom_err";; - * ) ;; - esac +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 -AC_SUBST(KRB5_LIB) + +AM_CONDITIONAL([BUILD_WITH_KRB5], [test "$WITH_KRB5" != no]) +AC_SUBST([KRB5_LIB]) dnl Check for openssl -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]) - -if test "$WITH_OPENSSL" != "no"; then - use_openssl=yes - if test "$WITH_OPENSSL" != "yes"; then - CPPFLAGS="$CPPFLAGS -I$WITH_OPENSSL/include" - LDFLAGS="$LDFLAGS -L$WITH_OPENSSL/lib" - fi -else - use_openssl=no +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_RESULT([$use_openssl]) -AM_CONDITIONAL(BUILD_WITH_OPENSSL, test ! $WITH_OPENSSL = no) -AC_ARG_WITH(openssl-includes, - AC_HELP_STRING([--with-openssl-includes=DIR],[OpenSSL includes]), - [ use_openssl=yes CPPFLAGS="$CPPFLAGS -I$withval" ] +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_ARG_WITH(openssl-libs, - AC_HELP_STRING([--with-openssl-libs=DIR],[OpenSSL libraries]), - [ use_openssl=yes LDFLAGS="$LDFLAGS -L$withval" ] +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 "x$use_openssl" = "xyes"; then - if test "x$use_krb5" = "xyes"; then - AC_DEFINE([USE_OPENSSL_KERBEROS], [1], [with kerberos]) - fi +AM_CONDITIONAL([BUILD_WITH_OPENSSL], [test "$WITH_OPENSSL" != 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]) - OLDLIBS="$LIBS" - AC_CHECK_LIB(crypto, BIO_f_base64, [ - AC_CHECK_LIB(ssl, SSL_new, [ SSL_LIB="-lssl -lcrypto" - CRYPTO_LIB="-lcrypto" - AC_DEFINE(HAVE_LIBSSL, [], [Have libssl]) ], [], [ -lcrypto "$DL_LIB" ]) - ], [], []) - LIBS="$OLDLIBS" - AC_SUBST(SSL_LIB) - AC_SUBST(CRYPTO_LIB) + 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 -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]) +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 x"$PCRECONFIG" != x; then - PCRE_LIB=`$PCRECONFIG --libs` - CPPFLAGS="$CPPFLAGS `$PCRECONFIG --cflags`" - fi - fi - - if test x"$PCRE_LIB" != x; then - AC_DEFINE([HAVE_LIBPCRE], [1], [libpcre]) - AC_DEFINE([HAVE_PCRE_H], [1], [pcre.h]) - AC_SUBST(PCRE_LIB) +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 -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]) +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_LIB(z, deflate, [ - AC_CHECK_HEADERS([zlib.h],[Z_LIB=-lz]) - ]) - fi - - if test x"$Z_LIB" != x; then - AC_DEFINE([HAVE_LIBZ], [1], [libz]) - AC_DEFINE([HAVE_ZLIB_H], [1]) - AC_SUBST(Z_LIB) +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_MSG_ERROR([zlib-headers and/or libs were not found, install them or build with --without-zlib]) + 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 -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]) +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_LIB(bz2, BZ2_bzCompress, [ - AC_CHECK_HEADERS([bzlib.h],[BZ_LIB=-lbz2]) - ]) - fi - - if test x"$BZ_LIB" != x; then - AC_DEFINE([HAVE_LIBBZ2], [1], [libbz2]) - AC_DEFINE([HAVE_BZLIB_H], [1]) - AC_SUBST(BZ_LIB) +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_MSG_ERROR([bzip2-headers and/or libs were not found, install them or build with --without-bzip2]) + 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 gamin -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]) +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]) - ]) - if test "x$FAM_LIBS" = x; then - PKG_CHECK_MODULES(FAM, gamin >= 0.1.0) - fi - fi - - if test x"$FAM_LIBS" != x; then - 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) +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_MSG_ERROR([fam/gamin-headers and/or libs were not found, install them or build with --without-fam]) + 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 -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 +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]) - 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]) +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 - 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) - fi - - if test x"$XML_LIBS" != x; then - AC_DEFINE([HAVE_LIBXML2], [1], [libxml2]) - AC_DEFINE([HAVE_LIBXML_H], [1], [libxml.h]) - AC_SUBST(XML_LIBS) - AC_SUBST(XML_CFLAGS) - else - AC_MSG_ERROR([libxml2-headers and/or libs were not found, install them or build with --without-webdav-props]) - fi + if test "$WITH_LIBXML" = no; then + AC_MSG_ERROR([--with-webdav-props requires libxml]) fi - 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]) + 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 - if test "$WITH_SQLITE" != "yes"; then - SQLITE_LIBS="-L$WITH_SQLITE/.libs -lsqlite3" - SQLITE_CFLAGS="-I$WITH_SQLITE" - else - PKG_CHECK_MODULES(SQLITE, sqlite3) - fi - - if test x"$SQLITE_LIBS" != x; then - AC_DEFINE([HAVE_SQLITE3], [1], [libsqlite3]) - AC_DEFINE([HAVE_SQLITE3_H], [1], [sqlite3.h]) - AC_SUBST(SQLITE_LIBS) - AC_SUBST(SQLITE_CFLAGS) - else - AC_MSG_ERROR([sqlite-headers and/or libs were not found, install them or build with --without-webdav-props]) - fi + if test "$WITH_SQLITE" = no; then + AC_MSG_ERROR([--with-webdav-props requires sqlite]) fi - AC_MSG_CHECKING(for locks in mod_webdav) - AC_ARG_WITH(webdav-locks, AC_HELP_STRING([--with-webdav-locks],[locks in mod_webdav]), - [WITH_WEBDAV_LOCKS=$withval],[WITH_WEBDAV_LOCKS=no]) - AC_MSG_RESULT([$WITH_WEBDAV_LOCKS]) - - if test "$WITH_WEBDAV_LOCKS" != "no"; then - - 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 - if test "$WITH_UUID" != "yes"; then - UUID_LIBS="-L$WITH_UUID -luuid" - CPPFLAGS="$CPPFLAGS -I$WITH_UUID" - else - AC_CHECK_LIB(uuid, uuid_unparse, [ - AC_CHECK_HEADERS([uuid/uuid.h],[UUID_LIBS=-luuid]) - ]) - fi - - if test x"$UUID_LIBS" != x; then - AC_DEFINE([HAVE_UUID], [1], [libuuid]) - AC_DEFINE([HAVE_UUID_H], [1], [uuid/uuid.h is available]) - AC_SUBST(UUID_LIBS) - else - AC_MSG_ERROR([uuid-headers and/or libs were not found, install them or build with --without-webdav-locks]) - fi - 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_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_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, [ - AC_CHECK_HEADERS([gdbm.h],[GDBM_LIB=-lgdbm]) - ]) - fi - - if test x"$GDBM_LIB" != x; then - AC_DEFINE([HAVE_GDBM], [1], [libgdbm]) - AC_DEFINE([HAVE_GDBM_H], [1]) - AC_SUBST(GDBM_LIB) +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_MSG_ERROR([gdbm headers and/or libs were not found, install them or build with --without-gdbm]) + 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) +AM_CONDITIONAL([BUILD_WITH_GDBM], [test "$WITH_GDBM" != no]) dnl Check for GeoIP -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_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, [ - AC_CHECK_HEADERS([GeoIP.h],[GEOIP_LIB=-lGeoIP]) - ]) - fi - - if test x"$GEOIP_LIB" != x; then - AC_DEFINE([HAVE_GEOIP], [1], [libGeoIP]) - AC_DEFINE([HAVE_GEOIP_H], [1]) - AC_SUBST(GEOIP_LIB) +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_MSG_ERROR([GeoIP headers and/or libs were not found, install them or build with --without-geoip]) + 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) +AM_CONDITIONAL([BUILD_WITH_GEOIP], [test "$WITH_GEOIP" != no]) dnl Check for memcached -AC_MSG_CHECKING(for memcached) -AC_ARG_WITH(memcached, AC_HELP_STRING([--with-memcached],[memcached storage for mod_trigger_b4_dl]), -[WITH_MEMCACHED=$withval],[WITH_MEMCACHED=no]) +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, [ - AC_CHECK_HEADERS([libmemcached/memcached.h],[ - MEMCACHED_LIB=-lmemcached - ]) - ]) - fi - - if test x"$MEMCACHED_LIB" != x; then - AC_DEFINE([USE_MEMCACHED], [1], [libmemcached]) - AC_SUBST(MEMCACHED_LIB) +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_MSG_ERROR([memcached headers and/or libs were not found, install them or build with --without-memcached]) + 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) +AM_CONDITIONAL([BUILD_WITH_MEMCACHED], [test "$WITH_MEMCACHED" != no]) -AM_CONDITIONAL(BUILD_MOD_TRIGGER_B4_DL, test ! $WITH_MEMCACHED = no || test ! $WITH_GDBM = 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_CHECKING(if lua-support is requested) -AC_ARG_WITH(lua, AC_HELP_STRING([--with-lua],[lua engine for mod_cml]), -[WITH_LUA=$withval],[WITH_LUA=no]) +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]) -AC_MSG_RESULT($WITH_LUA) -if test "$WITH_LUA" != "no"; then +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 "$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" @@ -796,372 +975,409 @@ if test "$WITH_LUA" != "no"; then 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]) - ]) + 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]) + AC_MSG_ERROR([Couldn\'t find any lua pkg-config module]) fi fi - if test x"$LUA_LIBS" != x; then - AC_DEFINE([HAVE_LUA], [1], [liblua]) - AC_DEFINE([HAVE_LUA_H], [1], [lua.h]) - AC_SUBST(LUA_LIBS) - AC_SUBST(LUA_CFLAGS) - else - AC_MSG_ERROR([lua headers and/or libs were not found, install them or build with --without-lua]) - 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) +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= -AC_SEARCH_LIBS([crypt_r],[crypt],[ - AC_DEFINE([HAVE_CRYPT_R], [1], [crypt_r]) - AC_CHECK_HEADERS([crypt.h],[ - AC_DEFINE([HAVE_CRYPT_H], [1], [crypt.h]) - ]) - - CRYPT_LIB=$LIBS -],[ - AC_SEARCH_LIBS([crypt],[crypt],[ +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],[ - AC_DEFINE([HAVE_CRYPT_H], [1], [crypt.h]) - ]) - + 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 -AC_SEARCH_LIBS(sendfilev,sendfile,[ - if test "$ac_cv_search_sendfilev" != no; then - test "$ac_cv_search_sendfilev" = "none required" || SENDFILE_LIB="$ac_cv_search_sendfilev" - AC_DEFINE([HAVE_SENDFILEV], [1], [solaris sendfilev]) +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_SUBST([SENDFILE_LIB]) -case $host_os in - *mingw* ) LIBS="$LIBS -lwsock32";; - * ) ;; +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([dup2 getcwd inet_ntoa inet_ntop inet_pton issetugid memset mmap munmap strchr \ - strdup strerror strstr strtol sendfile getopt socket lstat \ - gethostbyname poll epoll_ctl getrlimit chroot \ - getuid select signal pathconf madvise posix_fadvise posix_madvise \ - writev sigaction sendfile64 send_file kqueue port_create localtime_r gmtime_r \ - memset_s explicit_bzero clock_gettime pipe2 \ - arc4random_buf jrand48 srandom getloadavg]) -AC_CHECK_HEADERS([sys/random.h],[ - AC_CHECK_FUNC([getentropy], AC_DEFINE([HAVE_GETENTROPY], [1], [getentropy])) -]) -AC_CHECK_HEADERS([linux/random.h],[ - AC_CHECK_FUNC([getrandom], AC_DEFINE([HAVE_GETRANDOM], [1], [getrandom])) +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_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_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) CPPFLAGS="${CPPFLAGS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES" ;; - no) ;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-lfs) ;; - esac],[CPPFLAGS="${CPPFLAGS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES" - enable_lfs=yes]) -AC_MSG_RESULT($enableval) - -AC_CHECK_SIZEOF(long) -AC_CHECK_SIZEOF(off_t) - -if test "x$ac_cv_func_sendfile" = xyes; then - dnl check if sendfile works - AC_MSG_CHECKING(if sendfile works) - if test "x$cross_compiling" = xno; 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]) ] ) - else - AC_MSG_RESULT(no, cross-compiling) - AC_DEFINE([HAVE_SENDFILE_BROKEN], [1], [broken sendfile]) - fi +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 for IPv6 support +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]) + ] + ) + else + AC_MSG_RESULT([no, cross-compiling]) + AC_DEFINE([HAVE_SENDFILE_BROKEN], [1], [broken sendfile]) + fi +fi -AC_ARG_ENABLE(ipv6, - AC_HELP_STRING([--disable-ipv6],[disable IPv6 support]), - [case "${enableval}" in - yes) ipv6=true ;; +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]) + *) AC_MSG_ERROR([bad value ${enableval} for --enable-ipv6]) ;; + esac + ], + [ipv6=true] +) -if test x$ipv6 = xtrue; 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 "$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]) + 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; if a mmapped file gets truncated, the process gets a SIGBUS signal # on reading the truncated area which we can't handle (yet). # lighttpd may always use mmap with files it owns (created tmp files) -AC_ARG_ENABLE(mmap, - AC_HELP_STRING([--enable-mmap],[use mmap if available (DANGEROUS, allows local users to trigger SIGBUS crashes)]), - [case "${enableval}" in - yes) mmap=true ;; +AC_MSG_NOTICE([----------------------------------------]) +AC_MSG_CHECKING([use mmap if available (dangerous)]) +AC_ARG_ENABLE([mmap], + [AC_HELP_STRING([--enable-mmap], + [use mmap if available (DANGEROUS, allows local users to trigger SIGBUS crashes)] + )], + [ + case "${enableval}" in + yes) mmap=true ;; no) mmap=false ;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-mmap) ;; - esac],[mmap=false]) + *) AC_MSG_ERROR([bad value ${enableval} for --enable-mmap]) ;; + esac + ], + [mmap=false] +) +AC_MSG_RESULT([$mmap]) -if test x$mmap = xtrue; then - AC_DEFINE(ENABLE_MMAP, [1], [Use mmap if available]) +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 - ]) +AC_CHECK_LIB([fcgi], [FCGI_Accept], [ + AC_CHECK_HEADERS([fastcgi.h fastcgi/fastcgi.h], [ + fastcgi_found=yes + ]) ]) -AM_CONDITIONAL(CHECK_WITH_FASTCGI, test "x$fastcgi_found" = xyes) +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 +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 ;; +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]) + *) AC_MSG_ERROR([bad value ${enableval} for --enable-extra-warnings]) ;; + esac + ], + [extrawarnings=false] +) -if test x$extrawarnings = xtrue || test x$extrawarnings = xerror; then +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 x$extrawarnings = xerror; then + 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=`echo $PACKAGE_VERSION | $AWK -F '.' '{print "(" $1 " << 16 | " $2 " << 8 | " $3 ")"}'` +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([Makefile src/Makefile - doc/config/conf.d/Makefile \ - doc/config/vhosts.d/Makefile \ - doc/config/Makefile \ - doc/scripts/Makefile \ - doc/systemd/Makefile \ - doc/outdated/Makefile \ - doc/Makefile \ - tests/Makefile \ - tests/docroot/Makefile \ - tests/docroot/123/Makefile \ - tests/docroot/www/Makefile \ - tests/docroot/www/go/Makefile \ - tests/docroot/www/indexfile/Makefile \ - tests/docroot/www/expire/Makefile \ - distribute.sh]) +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_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 +} -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_authn_file mod_status mod_accesslog" -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 mod_deflate" -do_build="$do_build mod_vhostdb mod_wstunnel" +lighty_track_feature "regex-conditionals" "" \ + 'test "$WITH_PCRE" != no' -plugins="mod_rewrite mod_redirect" -features="regex-conditionals" -if test ! "x$PCRE_LIB" = x; then - do_build="$do_build $plugins" - enable_feature="$features" -else - no_build="$no_build $plugins" - disable_feature="$features" -fi +lighty_track_feature "storage-gdbm" "" \ + 'test "$WITH_GDBM" != no' -plugins="mod_trigger_b4_dl" -if test ! "x$PCRE_LIB" = x; then -if test ! "x$WITH_MEMCACHED" = xno || test ! "x$WITH_GDBM" = xno; then - do_build="$do_build $plugins" -else - no_build="$no_build $plugins" -fi -fi +lighty_track_feature "storage-memcached" "" \ + 'test "$WITH_MEMCACHED" != no' -plugins="mod_authn_mysql mod_mysql_vhost mod_vhostdb_mysql" -if test ! "x$MYSQL_LIBS" = x; then - do_build="$do_build $plugins" -else - no_build="$no_build $plugins" -fi +lighty_track_feature "" "mod_trigger_b4_dl" \ + 'test "$BUILD_MOD_TRIGGER_B4_DL" != no' -plugins="mod_vhostdb_pgsql" -if test ! "x$PGSQL_LIBS" = x; then - do_build="$do_build $plugins" -else - no_build="$no_build $plugins" -fi - -plugins="mod_vhostdb_dbi" -if test ! "x$DBI_LIBS" = x; then - do_build="$do_build $plugins" -else - no_build="$no_build $plugins" -fi +lighty_track_feature "mysql" "mod_authn_mysql mod_mysql_vhost mod_vhostdb_mysql" \ + 'test "$WITH_MYSQL" != no' -plugins="mod_cml mod_magnet" -if test ! "x$LUA_LIBS" = x; then - do_build="$do_build $plugins" -else - no_build="$no_build $plugins" -fi - -plugins="mod_geoip" -if test ! "x$GEOIP_LIB" = x; then - do_build="$do_build $plugins" -else - no_build="$no_build $plugins" -fi +lighty_track_feature "postgresql" "mod_vhostdb_pgsql" \ + 'test "$WITH_PGSQL" != no' -features="storage-gdbm" -if test ! "x$GDBM_LIB" = x; then - enable_feature="$enable_feature $features" -else - disable_feature="$disable_feature $features" -fi +lighty_track_feature "dbi" "mod_vhostdb_dbi" \ + 'test "$WITH_DBI" != no' -features="storage-memcached" -if test ! "x$MEMCACHED_LIB" = x; then - enable_feature="$enable_feature $features" -else - disable_feature="$disable_feature $features" -fi +lighty_track_feature "lua" "mod_cml mod_magnet" \ + 'test "$WITH_LUA" != no' -features="compress-gzip compress-deflate" -if test ! "x$Z_LIB" = x; then - enable_feature="$enable_feature $features" -else - disable_feature="$disable_feature $features" -fi +lighty_track_feature "geoip" "mod_geoip" \ + 'test "$WITH_GEOIP" != no' -features="compress-bzip2" -if test ! "x$BZ_LIB" = x; then - enable_feature="$enable_feature $features" -else - disable_feature="$disable_feature $features" -fi +lighty_track_feature "compress-gzip compress-deflate" "" \ + 'test "$WITH_ZLIB" != no' -plugins="mod_authn_gssapi" -if test ! "x$KRB5_LIB" = x; then - do_build="$do_build $plugins" -else - no_build="$no_build $plugins" -fi +lighty_track_feature "compress-bzip2" "" \ + 'test "$WITH_BZIP2" != no' -plugins="mod_authn_ldap mod_vhostdb_ldap" -if test ! "x$LDAP_LIB" = x; then - do_build="$do_build $plugins" -else - no_build="$no_build $plugins" -fi +lighty_track_feature "kerberos" "mod_authn_gssapi" \ + 'test "$WITH_KRB5" != no' -features="network-openssl" -if test ! "x$SSL_LIB" = x; then - enable_feature="$enable_feature $features" -else - disable_feature="$disable_feature $features" -fi +lighty_track_feature "ldap" "mod_authn_ldap mod_vhostdb_ldap" \ + 'test "$WITH_LDAP" != no' -dnl no crypt call -features="auth-crypt" -if test "$ac_cv_search_crypt" = no; then - disable_feature="$disable_feature $features" -else - enable_feature="$enable_feature $features" -fi +lighty_track_feature "network-openssl" "mod_openssl" \ + 'test "$WITH_OPENSSL" != no' -features="network-ipv6" -if test "$ac_cv_ipv6_support" = yes; then - enable_feature="$enable_feature $features" -else - disable_feature="$disable_feature $features" -fi +lighty_track_feature "auth-crypt" "" \ + 'test "$found_crypt" != no' -features="large-files" -if test "$enable_lfs" = yes; then - enable_feature="$enable_feature $features" -else - disable_feature="$disable_feature $features" -fi +lighty_track_feature "network-ipv6" "" \ + 'test "$ac_cv_ipv6_support" != no' -features="stat-cache-fam" -if test ! "x$FAM_LIBS" = x; then - enable_feature="$enable_feature $features" -else - disable_feature="$disable_feature $features" -fi +lighty_track_feature "large-files" "" \ + 'test "$ENABLE_LFS" = yes' -features="webdav-properties" -if test "x$XML_LIBS" \!= x -a "x$SQLITE_LIBS" \!= x; then - enable_feature="$enable_feature $features" -else - disable_feature="$disable_feature $features" -fi +lighty_track_feature "stat-cache-fam" "" \ + 'test "$WITH_FAM" != no' -features="webdav-locks" -if test "x$UUID_LIBS" \!= x; then - enable_feature="$enable_feature $features" -else - disable_feature="$disable_feature $features" -fi +lighty_track_feature "webdav-properties" "" \ + 'test "$WITH_WEBDAV_PROPS" != no' +lighty_track_feature "webdav-locks" "" \ + 'test "$WITH_WEBDAV_LOCKS" != no' dnl output @@ -1171,12 +1387,12 @@ $ECHO $ECHO "enabled: " for p in $do_build; do - $ECHO " $p" + $ECHO " $p" done | sort $ECHO "disabled: " for p in $no_build; do - $ECHO " $p" + $ECHO " $p" done | sort $ECHO @@ -1185,12 +1401,12 @@ $ECHO $ECHO "enabled: " for p in $enable_feature; do - $ECHO " $p" + $ECHO " $p" done | sort $ECHO "disabled: " for p in $disable_feature; do - $ECHO " $p" + $ECHO " $p" done | sort $ECHO |