xref: /lighttpd1.4/configure.ac (revision add03ac2)
1529b0685SStefan Bühlerdnl                                               -*- Autoconf -*-
2529b0685SStefan Bühlerdnl Process this file with autoconf to produce a configure script.
3d8d7d197SStefan Bühlerdnl
4d8d7d197SStefan Bühlerdnl Indentation rules:
5d8d7d197SStefan Bühlerdnl - closing braces not at the beginning of a line must match opening
6d8d7d197SStefan Bühlerdnl   braces earlier on that line
7d8d7d197SStefan Bühlerdnl - closing braces at the beginning of a line:
8d8d7d197SStefan Bühlerdnl   - must not be followed by anything else apart from "," or comments
9d8d7d197SStefan Bühlerdnl   - must match opening braces from another line and indented the
10d8d7d197SStefan Bühlerdnl     same as that other line
11d8d7d197SStefan Bühlerdnl - if one argument was put on a new line, all following arguments
12d8d7d197SStefan Bühlerdnl   must be on their own line too
13d8d7d197SStefan Bühlerdnl - if an argument uses more than one line and is not a single
14d8d7d197SStefan Bühlerdnl   function call, the argument should be on different lines than the
15d8d7d197SStefan Bühlerdnl   wrapping braces
16acca2a3fSGlenn StraussAC_PREREQ([2.60])
17*add03ac2SGlenn StraussAC_INIT([lighttpd],[1.4.70],[https://redmine.lighttpd.net/projects/lighttpd/boards/2],[lighttpd],[https://www.lighttpd.net/])
1881587537SStefan BühlerAC_CONFIG_SRCDIR([src/server.c])
19bb1d35dcSGlenn StraussAC_CONFIG_HEADERS([config.h])
20759121daSStefan BühlerAC_CONFIG_MACRO_DIR([m4])
2181587537SStefan Bühler
22cfd13c79SStefan BühlerAC_CANONICAL_HOST
2381587537SStefan Bühler
246ccccaaaSGlenn StraussAM_INIT_AUTOMAKE([1.13 -Wall -Wno-portability -Wno-override foreign dist-xz tar-ustar serial-tests silent-rules subdir-objects])
25c4f21458SStefan Bühler
26c4f21458SStefan Bühlerdnl @synopsis TRY_CFLAGS [compiler flags]
272b9be8f0SStefan Bühlerdnl @summary check whether compiler supports given flags and adds them to CFLAGS
28c4f21458SStefan BühlerAC_DEFUN([TRY_CFLAGS],
29c4f21458SStefan Bühler[dnl
30c4f21458SStefan Bühler  AC_MSG_CHECKING([if $CC supports $1])
31c4f21458SStefan Bühler  AC_LANG_PUSH([C])
32c4f21458SStefan Bühler  ac_try_cflags_saved_cflags="${CFLAGS}"
33c4f21458SStefan Bühler  CFLAGS="${CFLAGS} $1"
34c4f21458SStefan Bühler  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
35c4f21458SStefan Bühler    [AC_MSG_RESULT([yes])],
36c4f21458SStefan Bühler    [
37c4f21458SStefan Bühler      AC_MSG_ERROR([no])
38c4f21458SStefan Bühler      CFLAGS="${ac_try_cflags_saved_cflags}"
39c4f21458SStefan Bühler    ]
40c4f21458SStefan Bühler  )
41c4f21458SStefan Bühler  AC_LANG_POP([C])
42c4f21458SStefan Bühler])
43c4f21458SStefan Bühler
442b9be8f0SStefan Bühlerdnl @synopsis TRY_LDFLAGS [linker flags]
452b9be8f0SStefan Bühlerdnl @summary check whether linker supports given flags and adds them to LDFLAGS
462b9be8f0SStefan BühlerAC_DEFUN([TRY_LDFLAGS],
472b9be8f0SStefan Bühler[dnl
482b9be8f0SStefan Bühler  AC_MSG_CHECKING([if $LD supports $1])
492b9be8f0SStefan Bühler  AC_LANG_PUSH([C])
502b9be8f0SStefan Bühler  ac_try_ldflags_saved_ldflags="${LDFLAGS}"
512b9be8f0SStefan Bühler  LDFLAGS="${LDFLAGS} $1"
522b9be8f0SStefan Bühler  AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
532b9be8f0SStefan Bühler    [AC_MSG_RESULT([yes])],
542b9be8f0SStefan Bühler    [
552b9be8f0SStefan Bühler      AC_MSG_ERROR([no])
562b9be8f0SStefan Bühler      LDFLAGS="${ac_try_ldflags_saved_cflags}"
572b9be8f0SStefan Bühler    ]
582b9be8f0SStefan Bühler  )
592b9be8f0SStefan Bühler  AC_LANG_POP([C])
602b9be8f0SStefan Bühler])
61c4f21458SStefan Bühler
62529b0685SStefan Bühlerdnl Checks for programs.
6381587537SStefan BühlerAC_PROG_CC
6416823cd9SGlenn StraussAC_PROG_CC_C99
6530c54b65SAndreas OberritterAX_PROG_CC_FOR_BUILD
66acca2a3fSGlenn StraussLT_PATH_LD
6781587537SStefan BühlerAC_PROG_INSTALL
6881587537SStefan BühlerAC_PROG_CPP
6981587537SStefan BühlerAC_PROG_MAKE_SET
7081587537SStefan Bühler
71f107bac8SStefan BühlerAC_USE_SYSTEM_EXTENSIONS
72f107bac8SStefan BühlerAM_PROG_AR
73bb1d35dcSGlenn StraussAC_C_INLINE
74bb1d35dcSGlenn StraussAC_C_RESTRICT
7581587537SStefan Bühler
7681587537SStefan Bühlerdnl AC_CANONICAL_HOST
77d8d7d197SStefan Bühlercase "$host_os" in
78539deb73SGlenn Strauss*darwin*|*cygwin*|*aix*|*mingw*|*midipix* ) NO_RDYNAMIC=yes ;;
7981587537SStefan Bühler* ) NO_RDYNAMIC=no ;;
8081587537SStefan Bühleresac
81d8d7d197SStefan BühlerAM_CONDITIONAL([NO_RDYNAMIC], [test "$NO_RDYNAMIC" = yes])
8281587537SStefan Bühler
83d8d7d197SStefan BühlerAM_CONDITIONAL([LIGHTTPD_STATIC], [test "$LIGHTTPD_STATIC" = yes])
8483d896d0SGlenn Strauss
8581587537SStefan BühlerAC_EXEEXT
8681587537SStefan Bühler
8781587537SStefan Bühlerdnl libtool
88a89e94e0SGlenn StraussLT_INIT([dlopen disable-static shared])
8981587537SStefan Bühler
9081587537SStefan Bühlerdnl for solaris
91f107bac8SStefan BühlerCPPFLAGS="${CPPFLAGS} -D_REENTRANT"
9281587537SStefan Bühler
93529b0685SStefan Bühlerdnl Checks for header files.
94d8d7d197SStefan Bühler
95d8d7d197SStefan Bühlerdnl checks for sys/wait.h => HAVE_SYS_WAIT_H
9681587537SStefan BühlerAC_HEADER_SYS_WAIT
97d8d7d197SStefan BühlerAC_CHECK_HEADERS([\
98d8d7d197SStefan Bühler  getopt.h \
99bb1d35dcSGlenn Strauss  inttypes.h \
100d8d7d197SStefan Bühler  poll.h \
101d8d7d197SStefan Bühler  pwd.h \
102d8d7d197SStefan Bühler  stdlib.h \
103bb1d35dcSGlenn Strauss  stdint.h \
104d8d7d197SStefan Bühler  strings.h \
1057ce8b22cSGlenn Strauss  sys/inotify.h \
1068c9b5480SNiclas Rosenvik  sys/loadavg.h \
107d8d7d197SStefan Bühler  sys/poll.h \
108d8d7d197SStefan Bühler  sys/prctl.h \
109f36908deSGlenn Strauss  sys/procctl.h \
110d8d7d197SStefan Bühler  sys/sendfile.h \
111d8d7d197SStefan Bühler  sys/time.h \
112d8d7d197SStefan Bühler  sys/uio.h \
113d8d7d197SStefan Bühler  sys/un.h \
114d8d7d197SStefan Bühler  syslog.h \
115d8d7d197SStefan Bühler  uuid/uuid.h \
116d8d7d197SStefan Bühler])
11781587537SStefan Bühler
118529b0685SStefan Bühlerdnl Checks for typedefs, structures, and compiler characteristics.
11981587537SStefan BühlerAC_C_CONST
12081587537SStefan BühlerAC_C_INLINE
12181587537SStefan BühlerAC_TYPE_OFF_T
12281587537SStefan BühlerAC_TYPE_PID_T
12381587537SStefan BühlerAC_TYPE_SIZE_T
12481587537SStefan Bühler
125d8d7d197SStefan BühlerAC_CHECK_MEMBER([struct tm.tm_gmtoff],
126d8d7d197SStefan Bühler  [AC_DEFINE([HAVE_STRUCT_TM_GMTOFF], [1], [gmtoff in struct tm])],
127d8d7d197SStefan Bühler  [],
128d8d7d197SStefan Bühler  [#include <time.h>]
129d8d7d197SStefan Bühler)
130d8d7d197SStefan BühlerAC_CHECK_TYPES([socklen_t],
131d8d7d197SStefan Bühler  [], dnl defines HAVE_SOCKLEN_T
132d8d7d197SStefan Bühler  [],
133d8d7d197SStefan Bühler  [
134d8d7d197SStefan Bühler    #include <sys/types.h>
135d8d7d197SStefan Bühler    #include <sys/socket.h>
136d8d7d197SStefan Bühler  ]
137d8d7d197SStefan Bühler)
13881587537SStefan Bühler
139618fb436SGlenn Straussdnl solaris needs -lsocket -lnsl
140618fb436SGlenn Straussdnl Haiku needs -lnetwork
141c0f040eaSDavid CarlierAC_SEARCH_LIBS([socket], [socket network])
142c0f040eaSDavid CarlierAC_SEARCH_LIBS([gethostbyname], [nsl socket network])
143955b029fSStefan Bühler
144955b029fSStefan Bühlerdnl clock_gettime() needs -lrt with glibc < 2.17, and possibly other platforms
145955b029fSStefan BühlerAC_SEARCH_LIBS([clock_gettime], [rt])
146955b029fSStefan Bühler
14752c48983SGlenn Straussdnl FreeBSD elftc_copyfile()
14852c48983SGlenn Strausssave_LIBS=$LIBS
14952c48983SGlenn StraussLIBS=
15052c48983SGlenn StraussAC_SEARCH_LIBS([elftc_copyfile], [elftc], [
15152c48983SGlenn Strauss  AC_CHECK_HEADERS([libelftc.h], [
15252c48983SGlenn Strauss    ELFTC_LIB=$LIBS
15352c48983SGlenn Strauss    AC_DEFINE([HAVE_LIBELFTC], [1], [libelftc])
15452c48983SGlenn Strauss    AC_DEFINE([HAVE_ELFTC_COPYFILE], [1], [elftc_copyfile])
15552c48983SGlenn Strauss  ])
15652c48983SGlenn Strauss])
15752c48983SGlenn StraussLIBS=$save_LIBS
15852c48983SGlenn StraussAC_SUBST([ELFTC_LIB])
15952c48983SGlenn Strauss
160955b029fSStefan Bühlerdnl need dlopen/-ldl to load plugins (when not on windows)
161955b029fSStefan Bühlersave_LIBS=$LIBS
162955b029fSStefan BühlerLIBS=
163955b029fSStefan BühlerAC_SEARCH_LIBS([dlopen], [dl], [
164955b029fSStefan Bühler  AC_CHECK_HEADERS([dlfcn.h], [
165955b029fSStefan Bühler    DL_LIB=$LIBS
166955b029fSStefan Bühler    AC_DEFINE([HAVE_LIBDL], [1], [libdl])
167955b029fSStefan Bühler    AC_DEFINE([HAVE_DLFCN_H], [1])
168955b029fSStefan Bühler  ])
169955b029fSStefan Bühler])
170955b029fSStefan BühlerLIBS=$save_LIBS
171955b029fSStefan BühlerAC_SUBST([DL_LIB])
172955b029fSStefan Bühler
17341cd7d25SStefan Bühlerdnl prepare pkg-config usage below
17441cd7d25SStefan BühlerPKG_PROG_PKG_CONFIG
175b0126de9SStefan Bühler
176f8eb52ebSStefan Bühlerdnl checking for libev
17741cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
178d8d7d197SStefan BühlerAC_MSG_CHECKING([for libev support])
179d8d7d197SStefan BühlerAC_ARG_WITH([libev],
180acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-libev@<:@=PATH@:>@],
181d8d7d197SStefan Bühler    [Include libev support for fdevent handlers in PATH/include and PATH/lib]
182d8d7d197SStefan Bühler  )],
183d8d7d197SStefan Bühler  [WITH_LIBEV=$withval],
184d8d7d197SStefan Bühler  [WITH_LIBEV=no]
185d8d7d197SStefan Bühler)
18641cd7d25SStefan BühlerAC_MSG_RESULT([$WITH_LIBEV])
18733fd0db9SGlenn Straussdnl ignore WITH_LIBEV
188f8eb52ebSStefan Bühler
18941cd7d25SStefan Bühlerdnl Checks for mysql
19041cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
191d8d7d197SStefan BühlerAC_MSG_CHECKING([for MySQL support])
192d8d7d197SStefan BühlerAC_ARG_WITH([mysql],
193acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-mysql@<:@=PATH@:>@],
194d8d7d197SStefan Bühler    [Include MySQL support. PATH is the path to 'mysql_config']
195d8d7d197SStefan Bühler  )],
196d8d7d197SStefan Bühler  [WITH_MYSQL=$withval],
197d8d7d197SStefan Bühler  [WITH_MYSQL=no]
198d8d7d197SStefan Bühler)
19941cd7d25SStefan BühlerAC_MSG_RESULT([$WITH_MYSQL])
20041cd7d25SStefan Bühler
2014608ddecSGlenn StraussMYSQL_CFLAGS=
20241cd7d25SStefan BühlerMYSQL_LIBS=
20381587537SStefan Bühler
204d8d7d197SStefan Bühlerif test "$WITH_MYSQL" != no; then
205d8d7d197SStefan Bühler  if test "$WITH_MYSQL" = yes; then
2064608ddecSGlenn Strauss    PKG_CHECK_MODULES([MYSQL],[mariadb],[
2074608ddecSGlenn Strauss      MYSQL_CONFIG=$PKG_CONFIG
2084608ddecSGlenn Strauss    ],[
2094608ddecSGlenn Strauss      PKG_CHECK_MODULES([MYSQL],[mysqlclient],[
2104608ddecSGlenn Strauss        MYSQL_CONFIG=$PKG_CONFIG
2114608ddecSGlenn Strauss      ],[
212d8d7d197SStefan Bühler        AC_PATH_PROG([MYSQL_CONFIG], [mysql_config])
2134608ddecSGlenn Strauss      ])
2144608ddecSGlenn Strauss    ])
21581587537SStefan Bühler  else
21681587537SStefan Bühler    MYSQL_CONFIG=$WITH_MYSQL
21781587537SStefan Bühler  fi
21881587537SStefan Bühler
2194608ddecSGlenn Strauss  if test "$MYSQL_CONFIG" != "$PKG_CONFIG"; then
220d8d7d197SStefan Bühler    if test -z "$MYSQL_CONFIG"; then
221d8d7d197SStefan Bühler      AC_MSG_ERROR([mysql_config is not found])
22281587537SStefan Bühler    fi
223d8d7d197SStefan Bühler    if test ! -x "$MYSQL_CONFIG"; then
224d8d7d197SStefan Bühler      AC_MSG_ERROR([mysql_config not exists or not executable, use --with-mysql=path-to-mysql_config])
22581587537SStefan Bühler    fi
22681587537SStefan Bühler
227d8d7d197SStefan Bühler    if "$MYSQL_CONFIG" | grep -- '--include' > /dev/null ; then
2284608ddecSGlenn Strauss      MYSQL_CFLAGS=`"$MYSQL_CONFIG" --include | sed s/\'//g`
22981587537SStefan Bühler    else
2304608ddecSGlenn Strauss      MYSQL_CFLAGS=`"$MYSQL_CONFIG" --cflags | sed s/\'//g`
23181587537SStefan Bühler    fi
232d8d7d197SStefan Bühler    MYSQL_LIBS=`"$MYSQL_CONFIG" --libs | sed s/\'//g`
2334608ddecSGlenn Strauss  fi
23481587537SStefan Bühler
235d8d7d197SStefan Bühler  AC_MSG_CHECKING([for MySQL includes at])
2364608ddecSGlenn Strauss  AC_MSG_RESULT([$MYSQL_CFLAGS])
23781587537SStefan Bühler
238d8d7d197SStefan Bühler  AC_MSG_CHECKING([for MySQL libraries at])
239d8d7d197SStefan Bühler  AC_MSG_RESULT([$MYSQL_LIBS])
24081587537SStefan Bühler
24181587537SStefan Bühler  AC_DEFINE([HAVE_MYSQL], [1], [mysql support])
24281587537SStefan Bühlerfi
243d8d7d197SStefan BühlerAM_CONDITIONAL([BUILD_WITH_MYSQL], [test "$WITH_MYSQL" != no])
24481587537SStefan Bühler
245d8d7d197SStefan BühlerAC_SUBST([MYSQL_LIBS])
2464608ddecSGlenn StraussAC_SUBST([MYSQL_CFLAGS])
24781587537SStefan Bühler
24841cd7d25SStefan Bühlerdnl Checks for pgsql
24941cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
250d8d7d197SStefan BühlerAC_MSG_CHECKING([for PgSQL support])
251d8d7d197SStefan BühlerAC_ARG_WITH([pgsql],
252acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-pgsql@<:@=PATH@:>@],
253d8d7d197SStefan Bühler    [Include PgSQL support. PATH is the path to 'pg_config']
254d8d7d197SStefan Bühler  )],
255d8d7d197SStefan Bühler  [WITH_PGSQL=$withval],
256d8d7d197SStefan Bühler  [WITH_PGSQL=no]
257d8d7d197SStefan Bühler)
25841cd7d25SStefan BühlerAC_MSG_RESULT([$WITH_PGSQL])
25941cd7d25SStefan Bühler
260e790203aSGlenn StraussPGSQL_CFLAGS=
26141cd7d25SStefan BühlerPGSQL_LIBS=
2622f83aac9SGlenn Strauss
263d8d7d197SStefan Bühlerif test "$WITH_PGSQL" != no; then
264d8d7d197SStefan Bühler  if test "$WITH_PGSQL" = yes; then
2653eff9bacSGlenn Strauss    PKG_CHECK_MODULES([PGSQL],[libpq],[
2663eff9bacSGlenn Strauss      PGSQL_CONFIG=$PKG_CONFIG
2673eff9bacSGlenn Strauss    ],[
268d8d7d197SStefan Bühler      AC_PATH_PROG([PGSQL_CONFIG], [pg_config])
2693eff9bacSGlenn Strauss    ])
2702f83aac9SGlenn Strauss  else
2712f83aac9SGlenn Strauss    PGSQL_CONFIG=$WITH_PGSQL
2722f83aac9SGlenn Strauss  fi
2732f83aac9SGlenn Strauss
2743eff9bacSGlenn Strauss  if test "$PGSQL_CONFIG" != "$PKG_CONFIG"; then
275d8d7d197SStefan Bühler    if test -z "$PGSQL_CONFIG"; then
276d8d7d197SStefan Bühler      AC_MSG_ERROR([pg_config is not found])
2772f83aac9SGlenn Strauss    fi
278d8d7d197SStefan Bühler    if test ! -x "$PGSQL_CONFIG"; then
279d8d7d197SStefan Bühler      AC_MSG_ERROR([pg_config not exists or not executable, use --with-pgsql=path-to-pg_config])
2802f83aac9SGlenn Strauss    fi
2812f83aac9SGlenn Strauss
282e790203aSGlenn Strauss    PGSQL_CFLAGS="-I`"$PGSQL_CONFIG" --includedir`"
283d8d7d197SStefan Bühler    PGSQL_LIBS="-L`"$PGSQL_CONFIG" --libdir` -lpq"
2843eff9bacSGlenn Strauss  fi
2852f83aac9SGlenn Strauss
286d8d7d197SStefan Bühler  AC_MSG_CHECKING([for PgSQL includes at])
287e790203aSGlenn Strauss  AC_MSG_RESULT([$PGSQL_CFLAGS])
2882f83aac9SGlenn Strauss
289d8d7d197SStefan Bühler  AC_MSG_CHECKING([for PgSQL libraries at])
290d8d7d197SStefan Bühler  AC_MSG_RESULT([$PGSQL_LIBS])
2912f83aac9SGlenn Strauss
2922f83aac9SGlenn Strauss  AC_DEFINE([HAVE_PGSQL], [1], [pgsql support])
2932f83aac9SGlenn Straussfi
294d8d7d197SStefan BühlerAM_CONDITIONAL([BUILD_WITH_PGSQL], [test "$WITH_PGSQL" != no])
2952f83aac9SGlenn Strauss
296d8d7d197SStefan BühlerAC_SUBST([PGSQL_LIBS])
297e790203aSGlenn StraussAC_SUBST([PGSQL_CFLAGS])
2982f83aac9SGlenn Strauss
2992f83aac9SGlenn Straussdnl Checks for libdbi library
30041cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
301d8d7d197SStefan BühlerAC_MSG_CHECKING([for LibDBI support])
302d8d7d197SStefan BühlerAC_ARG_WITH([dbi],
303acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-dbi@<:@=PATH@:>@],
304d8d7d197SStefan Bühler    [Include DBI support in PATH/include/dbi.h and PATH/lib]
305d8d7d197SStefan Bühler  )],
306d8d7d197SStefan Bühler  [WITH_DBI=$withval],
307d8d7d197SStefan Bühler  [WITH_DBI=no]
308d8d7d197SStefan Bühler)
30941cd7d25SStefan BühlerAC_MSG_RESULT([$WITH_DBI])
31041cd7d25SStefan Bühler
31141cd7d25SStefan BühlerDBI_INCLUDE=
31241cd7d25SStefan BühlerDBI_LIBS=
3132f83aac9SGlenn Strauss
314d8d7d197SStefan Bühlerif test "$WITH_DBI" != no; then
315d8d7d197SStefan Bühler  if test "$WITH_DBI" != yes; then
316d61714ddSGlenn Strauss    DBI_CFLAGS="-I$WITH_DBI/include"
317d61714ddSGlenn Strauss    DBI_LIBS="-L$WITH_DBI/lib -ldbi"
3182f83aac9SGlenn Strauss  else
319d8d7d197SStefan Bühler    AC_CHECK_HEADERS([dbi/dbi.h],
320d8d7d197SStefan Bühler      [AC_CHECK_LIB([dbi], [dbi_version],
321d8d7d197SStefan Bühler        [
322d8d7d197SStefan Bühler          DBI_CFLAGS=
3232f83aac9SGlenn Strauss          DBI_LIBS="-ldbi"
324d8d7d197SStefan Bühler        ],
325d8d7d197SStefan Bühler        [AC_MSG_ERROR([LibDBI not found])]
326d8d7d197SStefan Bühler      )],
32741cd7d25SStefan Bühler      [AC_MSG_ERROR([LibDBI header not found])]
3282f83aac9SGlenn Strauss    )
3292f83aac9SGlenn Strauss  fi
3302f83aac9SGlenn Strauss
3312f83aac9SGlenn Strauss  AC_DEFINE([HAVE_DBI], [1], [LibDBI support])
3322f83aac9SGlenn Straussfi
333d8d7d197SStefan BühlerAM_CONDITIONAL([BUILD_WITH_DBI], [test "$WITH_DBI" != no])
3342f83aac9SGlenn Strauss
335d8d7d197SStefan BühlerAC_SUBST([DBI_LIBS])
336d8d7d197SStefan BühlerAC_SUBST([DBI_CFLAGS])
3372f83aac9SGlenn Strauss
338d61714ddSGlenn Straussdnl Checks for libsasl2 library
339d61714ddSGlenn StraussAC_MSG_NOTICE([----------------------------------------])
340d61714ddSGlenn StraussAC_MSG_CHECKING([for LibSASL support])
341d61714ddSGlenn StraussAC_ARG_WITH([sasl],
342acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-sasl@<:@=PATH@:>@],
343d61714ddSGlenn Strauss    [Include SASL support in PATH/include/sasl/sasl.h and PATH/lib]
344d61714ddSGlenn Strauss  )],
345d61714ddSGlenn Strauss  [WITH_SASL=$withval],
346d61714ddSGlenn Strauss  [WITH_SASL=no]
347d61714ddSGlenn Strauss)
348d61714ddSGlenn StraussAC_MSG_RESULT([$WITH_SASL])
349d61714ddSGlenn Strauss
350d61714ddSGlenn StraussSASL_INCLUDE=
351d61714ddSGlenn StraussSASL_LIBS=
352d61714ddSGlenn Strauss
353d61714ddSGlenn Straussif test "$WITH_SASL" != no; then
354d61714ddSGlenn Strauss  if test "$WITH_SASL" != yes; then
355d61714ddSGlenn Strauss    SASL_CFLAGS="-I$WITH_SASL/include"
356d61714ddSGlenn Strauss    SASL_LIBS="-L$WITH_SASL/lib -lsasl2"
357d61714ddSGlenn Strauss  else
358d61714ddSGlenn Strauss    AC_CHECK_HEADERS([sasl/sasl.h],
359d61714ddSGlenn Strauss      [AC_CHECK_LIB([sasl2], [sasl_server_init],
360d61714ddSGlenn Strauss        [
361d61714ddSGlenn Strauss          SASL_CFLAGS=
362d61714ddSGlenn Strauss          SASL_LIBS="-lsasl2"
363d61714ddSGlenn Strauss        ],
364d61714ddSGlenn Strauss        [AC_MSG_ERROR([libsasl2 not found])]
365d61714ddSGlenn Strauss      )],
366d61714ddSGlenn Strauss      [AC_MSG_ERROR([SASL header not found])]
367d61714ddSGlenn Strauss    )
368d61714ddSGlenn Strauss  fi
369d61714ddSGlenn Strauss
370d61714ddSGlenn Strauss  AC_DEFINE([HAVE_SASL], [1], [LibSASL support])
371d61714ddSGlenn Straussfi
372d61714ddSGlenn StraussAM_CONDITIONAL([BUILD_WITH_SASL], [test "$WITH_SASL" != no])
373d61714ddSGlenn Strauss
374d61714ddSGlenn StraussAC_SUBST([SASL_LIBS])
375d61714ddSGlenn StraussAC_SUBST([SASL_CFLAGS])
376d61714ddSGlenn Strauss
3772f83aac9SGlenn Strauss
37881587537SStefan Bühlerdnl Check for LDAP
37941cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
380d8d7d197SStefan BühlerAC_MSG_CHECKING([for LDAP support])
381d8d7d197SStefan BühlerAC_ARG_WITH([ldap],
382acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-ldap], [enable LDAP support])],
383d8d7d197SStefan Bühler  [WITH_LDAP=$withval],
384d8d7d197SStefan Bühler  [WITH_LDAP=no]
385d8d7d197SStefan Bühler)
38641cd7d25SStefan BühlerAC_MSG_RESULT([$WITH_LDAP])
38741cd7d25SStefan Bühler
388d8d7d197SStefan Bühlerif test "$WITH_LDAP" != no; then
389fdc4c324SGlenn Strauss  AC_CHECK_LIB([ldap], [ldap_sasl_bind_s],
39041cd7d25SStefan Bühler    [AC_CHECK_HEADERS([ldap.h],
39141cd7d25SStefan Bühler      [
39281587537SStefan Bühler        LDAP_LIB=-lldap
39381587537SStefan Bühler        AC_DEFINE([HAVE_LIBLDAP], [1], [libldap])
39481587537SStefan Bühler        AC_DEFINE([HAVE_LDAP_H], [1])
39541cd7d25SStefan Bühler      ],
39641cd7d25SStefan Bühler      [AC_MSG_ERROR([ldap headers not found, install them or build without --with-ldap])]
39741cd7d25SStefan Bühler    )],
39841cd7d25SStefan Bühler    [AC_MSG_ERROR([ldap library not found, install it or build without --with-ldap])]
399d8d7d197SStefan Bühler  )
400d8d7d197SStefan Bühler  AC_SUBST([LDAP_LIB])
401d8d7d197SStefan Bühler  AC_CHECK_LIB([lber], [ber_printf],
40241cd7d25SStefan Bühler    [AC_CHECK_HEADERS([lber.h],
40341cd7d25SStefan Bühler      [
40481587537SStefan Bühler        LBER_LIB=-llber
40581587537SStefan Bühler        AC_DEFINE([HAVE_LIBLBER], [1], [liblber])
40681587537SStefan Bühler        AC_DEFINE([HAVE_LBER_H], [1])
40741cd7d25SStefan Bühler      ],
40841cd7d25SStefan Bühler      [AC_MSG_ERROR([lber headers not found, install them or build without --with-ldap])]
40941cd7d25SStefan Bühler    )],
41041cd7d25SStefan Bühler    [AC_MSG_ERROR([lber library not found, install it or build without --with-ldap])]
411d8d7d197SStefan Bühler  )
412d8d7d197SStefan Bühler  AC_SUBST([LBER_LIB])
41381587537SStefan Bühlerfi
414d8d7d197SStefan BühlerAM_CONDITIONAL([BUILD_WITH_LDAP], [test "$WITH_LDAP" != no])
41581587537SStefan Bühler
416df4812ecSGlenn Straussdnl Check for PAM
417df4812ecSGlenn StraussAC_MSG_NOTICE([----------------------------------------])
418df4812ecSGlenn StraussAC_MSG_CHECKING(for PAM support)
419df4812ecSGlenn StraussAC_ARG_WITH([pam],
420acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-pam],[enable PAM support])],
421df4812ecSGlenn Strauss  [WITH_PAM=$withval],
422df4812ecSGlenn Strauss  [WITH_PAM=no]
423df4812ecSGlenn Strauss)
424df4812ecSGlenn StraussAC_MSG_RESULT([$withval])
425df4812ecSGlenn Strauss
426df4812ecSGlenn Straussif test "$WITH_PAM" != "no"; then
427df4812ecSGlenn Strauss  AC_CHECK_LIB([pam], [pam_start],
428df4812ecSGlenn Strauss    [AC_CHECK_HEADERS([security/pam_appl.h],[
429df4812ecSGlenn Strauss      PAM_LIB=-lpam
430df4812ecSGlenn Strauss      AC_DEFINE([HAVE_PAM], [1], [libpam])
431df4812ecSGlenn Strauss      AC_DEFINE([HAVE_SECURITY_PAM_APPL_H], [1])
432df4812ecSGlenn Strauss      ],
433df4812ecSGlenn Strauss      [AC_MSG_ERROR([pam headers not found, install them or build without --with-pam])]
434df4812ecSGlenn Strauss    )],
435df4812ecSGlenn Strauss    [AC_MSG_ERROR([pam library not found, install it or build without --with-pam])]
436df4812ecSGlenn Strauss  )
437df4812ecSGlenn Strauss  AC_SUBST(PAM_LIB)
438df4812ecSGlenn Straussfi
439df4812ecSGlenn StraussAM_CONDITIONAL([BUILD_WITH_PAM], [test "$WITH_PAM" != no])
440df4812ecSGlenn Strauss
44181587537SStefan Bühlerdnl Check for xattr
44241cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
443d8d7d197SStefan BühlerAC_MSG_CHECKING([for extended attributes support])
444d8d7d197SStefan BühlerAC_ARG_WITH([attr],
445acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-attr], [enable extended attribute support])],
446d8d7d197SStefan Bühler  [WITH_ATTR=$withval],
447d8d7d197SStefan Bühler  [WITH_ATTR=no]
448d8d7d197SStefan Bühler)
44941cd7d25SStefan BühlerAC_MSG_RESULT([$WITH_ATTR])
45041cd7d25SStefan Bühler
451d8d7d197SStefan Bühlerif test "$WITH_ATTR" != no; then
45241cd7d25SStefan Bühler  have_xattr=no
4534d55d4adSMoritz Wilhelmy
454455dc037SGlenn Strauss  # Linux getxattr
455455dc037SGlenn Strauss  AC_CHECK_FUNC([getxattr], [
456455dc037SGlenn Strauss    AC_CHECK_HEADERS([sys/xattr.h], [
457455dc037SGlenn Strauss      AC_DEFINE([HAVE_XATTR], [1], [Linux extended attributes])
458455dc037SGlenn Strauss      AC_DEFINE([HAVE_SYS_XATTR_H], [1])
459455dc037SGlenn Strauss      have_xattr=yes
460455dc037SGlenn Strauss    ])
461455dc037SGlenn Strauss  ])
462455dc037SGlenn Strauss
4634d55d4adSMoritz Wilhelmy  # (Free)BSD extattr
4644d55d4adSMoritz Wilhelmy  AC_CHECK_FUNC([extattr_get_file], [
4654d55d4adSMoritz Wilhelmy    AC_CHECK_HEADERS([sys/extattr.h], [
4664d55d4adSMoritz Wilhelmy      AC_DEFINE([HAVE_EXTATTR], [1], [BSD extended attributes])
4674d55d4adSMoritz Wilhelmy      AC_DEFINE([HAVE_SYS_EXTATTR_H], [1])
46841cd7d25SStefan Bühler      have_xattr=yes
4694d55d4adSMoritz Wilhelmy    ])
4704d55d4adSMoritz Wilhelmy  ])
47141cd7d25SStefan Bühler
47218850c5cSGlenn Strauss  # libattr (linux only?)
47318850c5cSGlenn Strauss  if test "$have_xattr" = no; then
47418850c5cSGlenn Strauss    AC_CHECK_LIB([attr], [attr_get], [
47518850c5cSGlenn Strauss      AC_CHECK_HEADERS([attr/attributes.h], [
47618850c5cSGlenn Strauss        ATTR_LIB=-lattr
47718850c5cSGlenn Strauss        AC_DEFINE([HAVE_XATTR], [1], [libattr])
47818850c5cSGlenn Strauss        AC_DEFINE([HAVE_ATTR_ATTRIBUTES_H], [1])
47918850c5cSGlenn Strauss        have_xattr=yes
48018850c5cSGlenn Strauss      ])
48118850c5cSGlenn Strauss    ])
48218850c5cSGlenn Strauss  fi
48318850c5cSGlenn Strauss  AC_SUBST([ATTR_LIB])
48418850c5cSGlenn Strauss
48541cd7d25SStefan Bühler  if test "$have_xattr" = no; then
48641cd7d25SStefan Bühler    AC_MSG_ERROR([no backend found implementing extended attributes])
48741cd7d25SStefan Bühler  fi
48881587537SStefan Bühlerfi
48981587537SStefan Bühler
49081587537SStefan Bühlerdnl Check for valgrind
49141cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
492d8d7d197SStefan BühlerAC_MSG_CHECKING([for valgrind])
493d8d7d197SStefan BühlerAC_ARG_WITH([valgrind],
494acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-valgrind],
495d8d7d197SStefan Bühler    [enable internal support for valgrind]
496d8d7d197SStefan Bühler  )],
497d8d7d197SStefan Bühler  [WITH_VALGRIND=$withval],
498d8d7d197SStefan Bühler  [WITH_VALGRIND=no]
499d8d7d197SStefan Bühler)
50081587537SStefan BühlerAC_MSG_RESULT([$WITH_VALGRIND])
50141cd7d25SStefan Bühler
502d8d7d197SStefan Bühlerif test "$WITH_VALGRIND" != no; then
50341cd7d25SStefan Bühler  AC_CHECK_HEADERS([valgrind/valgrind.h], [], [
50441cd7d25SStefan Bühler    AC_MSG_ERROR([valgrind headers not found. install them or build without --with-valgrind])
50541cd7d25SStefan Bühler  ])
50681587537SStefan Bühlerfi
50781587537SStefan Bühler
5083521be8bSStefan Bühlerdnl Checking for libunwind
50941cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
510d8d7d197SStefan BühlerAC_MSG_CHECKING([for libunwind])
511d8d7d197SStefan BühlerAC_ARG_WITH([libunwind],
512acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-libunwind],
513d8d7d197SStefan Bühler    [Include libunwind support for backtraces on assert failures]
514d8d7d197SStefan Bühler  )],
515d8d7d197SStefan Bühler  [WITH_LIBUNWIND=$withval],
516d8d7d197SStefan Bühler  [WITH_LIBUNWIND=no]
517d8d7d197SStefan Bühler)
5181c1a6378SGlenn StraussAC_MSG_RESULT([$WITH_LIBUNWIND])
5191c1a6378SGlenn Strauss
52041cd7d25SStefan Bühlerif test "$WITH_LIBUNWIND" != no; then
52141cd7d25SStefan Bühler  PKG_CHECK_MODULES([LIBUNWIND], [libunwind], [], [
52241cd7d25SStefan Bühler    AC_MSG_ERROR([libunwind not found. install it or build without --with-libunwind])
52341cd7d25SStefan Bühler  ])
52441cd7d25SStefan Bühler  AC_DEFINE([HAVE_LIBUNWIND], [1], [Have libunwind support])
52541cd7d25SStefan Bühlerfi
52641cd7d25SStefan Bühler
5271c1a6378SGlenn Straussdnl Checking for kerberos5
52841cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
529d8d7d197SStefan BühlerAC_MSG_CHECKING([for kerberos5])
530d8d7d197SStefan BühlerAC_ARG_WITH([krb5],
531acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-krb5@<:@=DIR@:>@], [Use Kerberos 5])],
532d8d7d197SStefan Bühler  [WITH_KRB5=$withval],
533d8d7d197SStefan Bühler  [WITH_KRB5=no]
534d8d7d197SStefan Bühler)
53541cd7d25SStefan BühlerAC_MSG_RESULT([$WITH_KRB5])
53641cd7d25SStefan Bühler
537d8d7d197SStefan Bühlerif test "$WITH_KRB5" != no; then
538d8d7d197SStefan Bühler  if test "$WITH_KRB5" != yes; then
5392c69ef67SStefan Bühler    krb5_append_CPPFLAGS=" -I$WITH_KRB5/include"
5402c69ef67SStefan Bühler    krb5_append_LDFLAGS=" -L$WITH_KRB5/lib"
5411c1a6378SGlenn Strauss  fi
5421c1a6378SGlenn Straussfi
5431c1a6378SGlenn Strauss
5442c69ef67SStefan BühlerAC_MSG_CHECKING([custom include directory for kerberos5])
545d8d7d197SStefan BühlerAC_ARG_WITH([krb5-includes],
546acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-krb5-includes=DIR], [Kerberos includes])],
547d8d7d197SStefan Bühler  [
5482c69ef67SStefan Bühler    if test "$WITH_KRB5" = no; then
5492c69ef67SStefan Bühler      AC_MSG_ERROR([build --with-krb5 to use --with-krb5-includes])
5502c69ef67SStefan Bühler    fi
5512c69ef67SStefan Bühler    krb5_append_CPPFLAGS=" -I$withval"
5522c69ef67SStefan Bühler    AC_MSG_RESULT([$withval])
5532c69ef67SStefan Bühler  ],
5542c69ef67SStefan Bühler  [AC_MSG_RESULT([no])]
5551c1a6378SGlenn Strauss)
5561c1a6378SGlenn Strauss
5572c69ef67SStefan BühlerAC_MSG_CHECKING([custom lib directory for kerberos5])
558d8d7d197SStefan BühlerAC_ARG_WITH([krb5-libs],
559acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-krb5-libs=DIR], [Kerberos libraries])],
560d8d7d197SStefan Bühler  [
5612c69ef67SStefan Bühler    if test "$WITH_KRB5" = no; then
5622c69ef67SStefan Bühler      AC_MSG_ERROR([build --with-krb5 to use --with-krb5-libs])
5632c69ef67SStefan Bühler    fi
5642c69ef67SStefan Bühler    krb5_append_LDFLAGS=" -L$withval"
5652c69ef67SStefan Bühler    AC_MSG_RESULT([$withval])
5662c69ef67SStefan Bühler  ],
5672c69ef67SStefan Bühler  [AC_MSG_RESULT([no])]
5681c1a6378SGlenn Strauss)
5691c1a6378SGlenn Strauss
5702c69ef67SStefan Bühlerif test "$WITH_KRB5" != no; then
5712c69ef67SStefan Bühler  CPPFLAGS="${CPPFLAGS}${krb5_append_CPPFLAGS}"
5722c69ef67SStefan Bühler  LDFLAGS="${LDFLAGS}${krb5_append_LDFLAGS}"
5732c69ef67SStefan Bühler
574d8d7d197SStefan Bühler  AC_CHECK_LIB([gssapi_krb5], [gss_acquire_cred],
575d8d7d197SStefan Bühler    [AC_CHECK_HEADERS([gssapi/gssapi_krb5.h],
576d8d7d197SStefan Bühler      [
5775feb2694SGlenn Strauss        KRB5_LIB="-lkrb5 -lgssapi_krb5"
578d8d7d197SStefan Bühler        AC_DEFINE([HAVE_KRB5], [1], [libgssapi_krb5])
5792c69ef67SStefan Bühler      ],
5802c69ef67SStefan Bühler      [AC_MSG_ERROR([gssapi_krb5 headers were not found, install them or build without --with-krb5])]
5812c69ef67SStefan Bühler    )],
5822c69ef67SStefan Bühler    [AC_MSG_ERROR([gssapi_krb5 libs were not found, install them or build without --with-krb5])]
583d8d7d197SStefan Bühler  )
584d8d7d197SStefan Bühler  case "$host_os" in
5856be68f56SGlenn Strauss  *darwin*|*cygwin* ) KRB5_LIB="$KRB5_LIB -lcom_err" ;;
586f94d666dSGlenn Strauss  * ) ;;
587f94d666dSGlenn Strauss  esac
5881c1a6378SGlenn Straussfi
5892c69ef67SStefan Bühler
5902c69ef67SStefan BühlerAM_CONDITIONAL([BUILD_WITH_KRB5], [test "$WITH_KRB5" != no])
591d8d7d197SStefan BühlerAC_SUBST([KRB5_LIB])
5923521be8bSStefan Bühler
59381587537SStefan Bühlerdnl Check for openssl
59441cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
595d8d7d197SStefan BühlerAC_MSG_CHECKING([for OpenSSL])
596d8d7d197SStefan BühlerAC_ARG_WITH([openssl],
597acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-openssl@<:@=DIR@:>@],
598d8d7d197SStefan Bühler    [Include openssl support (default no)]
599d8d7d197SStefan Bühler  )],
600d8d7d197SStefan Bühler  [WITH_OPENSSL=$withval],
601d8d7d197SStefan Bühler  [WITH_OPENSSL=no]
602d8d7d197SStefan Bühler)
60341cd7d25SStefan BühlerAC_MSG_RESULT([$WITH_OPENSSL])
604c3a85c9bSGlenn StraussAM_CONDITIONAL([BUILD_WITH_OPENSSL], test ! "$WITH_OPENSSL" = no)
60581587537SStefan Bühler
606d8d7d197SStefan Bühlerif test "$WITH_OPENSSL" != no; then
607d8d7d197SStefan Bühler  if test "$WITH_OPENSSL" != yes; then
60834ded724SStefan Bühler    openssl_append_CPPFLAGS=" -I$WITH_OPENSSL/include"
60934ded724SStefan Bühler    openssl_append_LDFLAGS=" -L$WITH_OPENSSL/lib"
61081587537SStefan Bühler  fi
61181587537SStefan Bühlerfi
61281587537SStefan Bühler
61334ded724SStefan BühlerAC_MSG_CHECKING([custom include directory for openssl])
614d8d7d197SStefan BühlerAC_ARG_WITH([openssl-includes],
615acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-openssl-includes=DIR], [OpenSSL includes])],
616d8d7d197SStefan Bühler  [
61734ded724SStefan Bühler    if test "$WITH_OPENSSL" = no; then
61834ded724SStefan Bühler      AC_MSG_ERROR([build --with-openssl to use --with-openssl-includes])
61934ded724SStefan Bühler    fi
62034ded724SStefan Bühler    openssl_append_CPPFLAGS=" -I$withval"
62134ded724SStefan Bühler    AC_MSG_RESULT([$withval])
62234ded724SStefan Bühler  ],
62334ded724SStefan Bühler  [AC_MSG_RESULT([no])]
62481587537SStefan Bühler)
62581587537SStefan Bühler
62634ded724SStefan BühlerAC_MSG_CHECKING([custom lib directory for openssl])
627d8d7d197SStefan BühlerAC_ARG_WITH([openssl-libs],
628acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-openssl-libs=DIR], [OpenSSL libraries])],
629d8d7d197SStefan Bühler  [
63034ded724SStefan Bühler    if test "$WITH_OPENSSL" = no; then
63134ded724SStefan Bühler      AC_MSG_ERROR([build --with-openssl to use --with-openssl-libs])
63234ded724SStefan Bühler    fi
63334ded724SStefan Bühler    openssl_append_LDFLAGS=" -L$withval"
63434ded724SStefan Bühler    AC_MSG_RESULT([$withval])
63534ded724SStefan Bühler  ],
63634ded724SStefan Bühler  [AC_MSG_RESULT([no])]
63781587537SStefan Bühler)
63881587537SStefan Bühler
63934ded724SStefan Bühlerif test "$WITH_OPENSSL" != no; then
6402c69ef67SStefan Bühler  if test "$WITH_KRB5" != no; then
6411ca52fdcSGlenn Strauss    AC_DEFINE([USE_OPENSSL_KERBEROS], [1], [with kerberos])
64281587537SStefan Bühler  fi
64381587537SStefan Bühler
64434ded724SStefan Bühler  CPPFLAGS="${CPPFLAGS}${openssl_append_CPPFLAGS}"
64534ded724SStefan Bühler  LDFLAGS="${LDFLAGS}${openssl_append_LDFLAGS}"
64634ded724SStefan Bühler
64734ded724SStefan Bühler  AC_CHECK_HEADERS([openssl/ssl.h], [], [
64834ded724SStefan Bühler    AC_MSG_ERROR([openssl headers not found. install them or build without --with-openssl])
64934ded724SStefan Bühler  ])
650b17c37c5SGlenn Strauss  AC_CHECK_LIB([crypto], [RAND_bytes],
65134ded724SStefan Bühler    [CRYPTO_LIB="-lcrypto"],
65234ded724SStefan Bühler    [AC_MSG_ERROR([openssl crypto library not found. install it or build without --with-openssl])]
653d8d7d197SStefan Bühler  )
65434ded724SStefan Bühler  AC_CHECK_LIB([ssl], [SSL_new],
655c3a85c9bSGlenn Strauss    [OPENSSL_LIBS="${openssl_append_LDFLAGS} -lssl -lcrypto"],
65634ded724SStefan Bühler    [AC_MSG_ERROR([openssl ssl library not found. install it or build without --with-openssl])],
65734ded724SStefan Bühler    [ -lcrypto "$DL_LIB" ]
65834ded724SStefan Bühler  )
65934ded724SStefan Bühler
660cb753ec5SGlenn Strauss  AC_DEFINE([HAVE_LIBSSL], [1], [Have libssl])
661c3a85c9bSGlenn Strauss  OPENSSL_CFLAGS="${openssl_append_CPPFLAGS}"
662c3a85c9bSGlenn Strauss  AC_SUBST([OPENSSL_CFLAGS])
663c3a85c9bSGlenn Strauss  AC_SUBST([OPENSSL_LIBS])
664d8d7d197SStefan Bühler  AC_SUBST([CRYPTO_LIB])
66581587537SStefan Bühlerfi
66681587537SStefan Bühler
667778b07a0SGlenn Straussdnl Check for wolfSSL
668778b07a0SGlenn StraussAC_MSG_NOTICE([----------------------------------------])
669778b07a0SGlenn StraussAC_MSG_CHECKING([for wolfSSL])
670778b07a0SGlenn StraussAC_ARG_WITH([wolfssl],
671acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-wolfssl@<:@=DIR@:>@],
672ceddd40aSGlenn Strauss    [Include wolfSSL support (default no)]
673778b07a0SGlenn Strauss  )],
674778b07a0SGlenn Strauss  [WITH_WOLFSSL=$withval],
675778b07a0SGlenn Strauss  [WITH_WOLFSSL=no]
676778b07a0SGlenn Strauss)
677778b07a0SGlenn StraussAC_MSG_RESULT([$WITH_WOLFSSL])
678c3a85c9bSGlenn StraussAM_CONDITIONAL([BUILD_WITH_WOLFSSL], test ! "$WITH_WOLFSSL" = no)
679778b07a0SGlenn Strauss
680778b07a0SGlenn Straussif test "$WITH_WOLFSSL" != no; then
681c3a85c9bSGlenn Strauss  CPPFLAGS_SAVE="${CPPFLAGS}"
682c3a85c9bSGlenn Strauss  LDFLAGS_SAVE="${LDFLAGS}"
683c3a85c9bSGlenn Strauss  if test "$WITH_WOLFSSL" != yes; then
684c3a85c9bSGlenn Strauss    WOLFSSL_CFLAGS="-I$WITH_WOLFSSL/include -I$WITH_WOLFSSL/include/wolfssl"
685c3a85c9bSGlenn Strauss    WOLFSSL_LIBS="-L$WITH_WOLFSSL/lib -lwolfssl"
6868f31ed7fSGlenn Strauss    LDFLAGS="${LDFLAGS} -L$WITH_WOLFSSL/lib"
6878f31ed7fSGlenn Strauss  else
6888f31ed7fSGlenn Strauss    PKG_CHECK_MODULES([WOLFSSL], [wolfssl], [], [
6898f31ed7fSGlenn Strauss      AC_MSG_ERROR([wolfssl not found, install it or build without --with-wolfssl])
6908f31ed7fSGlenn Strauss    ])
6918f31ed7fSGlenn Strauss    if test "$WOLFSSL_LIBS" != "-lwolfssl"; then
6928f31ed7fSGlenn Strauss      LDFLAGS="${LDFLAGS} ${WOLFSSL_LIBS% -lwolfssl}"
6938f31ed7fSGlenn Strauss    fi
694778b07a0SGlenn Strauss  fi
695778b07a0SGlenn Strauss
6968f31ed7fSGlenn Strauss  CPPFLAGS="${CPPFLAGS} $WOLFSSL_CFLAGS"
697778b07a0SGlenn Strauss  AC_CHECK_HEADERS([wolfssl/ssl.h], [], [
698778b07a0SGlenn Strauss    AC_MSG_ERROR([wolfssl headers not found. install them or build without --with-wolfssl])
699778b07a0SGlenn Strauss  ])
700778b07a0SGlenn Strauss  AC_CHECK_LIB([wolfssl], [wolfSSL_Init],
701c3a85c9bSGlenn Strauss    [WOLFSSL_CRYPTO_LIB="-lwolfssl"],
702778b07a0SGlenn Strauss    [AC_MSG_ERROR([wolfssl crypto library not found. install it or build without --with-wolfssl])]
703778b07a0SGlenn Strauss  )
704778b07a0SGlenn Strauss  AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
705778b07a0SGlenn Strauss    #include <wolfssl/options.h>
70617d8d9c9SGlenn Strauss    #if !defined(HAVE_LIGHTY) && !defined(OPENSSL_EXTRA)
707778b07a0SGlenn Strauss    #error HAVE_LIGHTY macro not defined
708778b07a0SGlenn Strauss    #endif
709778b07a0SGlenn Strauss  ]])], [], [AC_MSG_ERROR([wolfssl must be built with ./configure --enable-lighty])])
710778b07a0SGlenn Strauss
711c3a85c9bSGlenn Strauss  AC_SUBST([WOLFSSL_CFLAGS])
712c3a85c9bSGlenn Strauss  AC_SUBST([WOLFSSL_LIBS])
713c3a85c9bSGlenn Strauss  if test "$WITH_OPENSSL" = no; then
714c3a85c9bSGlenn Strauss    CRYPTO_LIB="$WOLFSSL_CRYPTO_LIB"
715778b07a0SGlenn Strauss    AC_SUBST([CRYPTO_LIB])
716c3a85c9bSGlenn Strauss  else
717c3a85c9bSGlenn Strauss    CPPFLAGS="${CPPFLAGS_SAVE}"
718c3a85c9bSGlenn Strauss    LDFLAGS="${LDFLAGS_SAVE}"
719778b07a0SGlenn Strauss  fi
720778b07a0SGlenn Straussfi
721778b07a0SGlenn Strauss
722cb753ec5SGlenn Straussdnl Check for mbedTLS
723cb753ec5SGlenn StraussAC_MSG_NOTICE([----------------------------------------])
724cb753ec5SGlenn StraussAC_MSG_CHECKING([for mbedTLS])
725cb753ec5SGlenn StraussAC_ARG_WITH([mbedtls],
726acca2a3fSGlenn Strauss  AS_HELP_STRING([--with-mbedtls@<:@=DIR@:>@],[Include mbedTLS support. DIR points to the installation root. (default no)]),
727cb753ec5SGlenn Strauss  [WITH_MBEDTLS=$withval],
728cb753ec5SGlenn Strauss  [WITH_MBEDTLS=no]
729cb753ec5SGlenn Strauss)
730cb753ec5SGlenn Strauss
731cb753ec5SGlenn Straussif test "$WITH_MBEDTLS" != "no"; then
732cb753ec5SGlenn Strauss  use_mbedtls=yes
733cb753ec5SGlenn Strauss  if test "$WITH_MBEDTLS" != "yes"; then
734cb753ec5SGlenn Strauss      CPPFLAGS="$CPPFLAGS -I$WITH_MBEDTLS/include"
735cb753ec5SGlenn Strauss      LDFLAGS="$LDFLAGS -L$WITH_MBEDTLS/lib"
736cb753ec5SGlenn Strauss  fi
737cb753ec5SGlenn Strausselse
738cb753ec5SGlenn Strauss  use_mbedtls=no
739cb753ec5SGlenn Straussfi
740cb753ec5SGlenn StraussAC_MSG_RESULT([$use_mbedtls])
741cb753ec5SGlenn StraussAM_CONDITIONAL(BUILD_WITH_MBEDTLS, test ! $WITH_MBEDTLS = no)
742cb753ec5SGlenn Strauss
743cb753ec5SGlenn Straussif test "x$use_mbedtls" = "xyes"; then
744cb753ec5SGlenn Strauss  AC_CHECK_HEADERS([mbedtls/ssl.h])
745cb753ec5SGlenn Strauss  OLDLIBS="$LIBS"
746cb753ec5SGlenn Strauss  AC_CHECK_LIB(mbedcrypto, mbedtls_base64_encode,
747cb753ec5SGlenn Strauss    [AC_CHECK_LIB(mbedx509, mbedtls_x509_get_name,
748955c95bfSGlenn Strauss      [AC_CHECK_LIB(mbedtls, mbedtls_ssl_init,
749c3a85c9bSGlenn Strauss        [MTLS_LIBS="-lmbedtls -lmbedx509 -lmbedcrypto"
750cb753ec5SGlenn Strauss         CRYPTO_LIB="-lmbedcrypto"
751cb753ec5SGlenn Strauss         AC_DEFINE(HAVE_LIBMBEDTLS, [1], [Have libmbedtls library])
752cb753ec5SGlenn Strauss         AC_DEFINE(HAVE_LIBMBEDX509, [1], [Have libmbedx509 library])
753cb753ec5SGlenn Strauss         AC_DEFINE(HAVE_LIBMBEDCRYPTO, [1], [Have libmbedcrypto library]) ],
754cb753ec5SGlenn Strauss        [],[-lmbedcrypto "$DL_LIB"])
755cb753ec5SGlenn Strauss      ],[],[-lmbedcrypto "$DL_LIB"])
756cb753ec5SGlenn Strauss    ],[],[])
757cb753ec5SGlenn Strauss  LIBS="$OLDLIBS"
758c3a85c9bSGlenn Strauss  AC_SUBST(MTLS_LIBS)
759cb753ec5SGlenn Strauss  AC_SUBST(CRYPTO_LIB)
760cb753ec5SGlenn Straussfi
761cb753ec5SGlenn Strauss
762b28a3714SGlenn Straussdnl Check for Nettle (and overwrite CRYPTO_LIB if set by OpenSSL or wolfSSL)
763b28a3714SGlenn StraussAC_MSG_NOTICE([----------------------------------------])
764b28a3714SGlenn StraussAC_MSG_CHECKING([for Nettle])
765b28a3714SGlenn StraussAC_ARG_WITH([nettle],
766acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-nettle@<:@=DIR@:>@],
767b28a3714SGlenn Strauss    [Include Nettle support (default no)]
768b28a3714SGlenn Strauss  )],
769b28a3714SGlenn Strauss  [WITH_NETTLE=$withval],
770b28a3714SGlenn Strauss  [WITH_NETTLE=no]
771b28a3714SGlenn Strauss)
772b28a3714SGlenn StraussAC_MSG_RESULT([$WITH_NETTLE])
773b28a3714SGlenn Strauss
774b28a3714SGlenn Straussif test "$WITH_NETTLE" != no; then
775b28a3714SGlenn Strauss  if test "$WITH_NETTLE" != yes; then
776b28a3714SGlenn Strauss    CPPFLAGS="${CPPFLAGS} -I$WITH_NETTLE/include"
777b28a3714SGlenn Strauss    LDFLAGS="${LDFLAGS} -L$WITH_NETTLE/lib"
778b28a3714SGlenn Strauss  fi
779b28a3714SGlenn Strauss
780b28a3714SGlenn Strauss  AC_CHECK_HEADERS([nettle/nettle-types.h], [], [
781b28a3714SGlenn Strauss    AC_MSG_ERROR([nettle headers not found. install them or build without --with-nettle])
782b28a3714SGlenn Strauss  ])
783b28a3714SGlenn Strauss  AC_CHECK_LIB([nettle], [nettle_md5_init],
784b28a3714SGlenn Strauss    [CRYPTO_LIB="-lnettle"],
785b28a3714SGlenn Strauss    [AC_MSG_ERROR([nettle crypto library not found. install it or build without --with-nettle])]
786b28a3714SGlenn Strauss  )
787b28a3714SGlenn Strauss
788b28a3714SGlenn Strauss  AC_SUBST([CRYPTO_LIB])
789b28a3714SGlenn Straussfi
790b28a3714SGlenn Strauss
791bf4054f8SGlenn Straussdnl Check for GnuTLS
792bf4054f8SGlenn StraussAC_MSG_NOTICE([----------------------------------------])
793bf4054f8SGlenn StraussAC_MSG_CHECKING([for GnuTLS])
794bf4054f8SGlenn StraussAC_ARG_WITH([gnutls],
795acca2a3fSGlenn Strauss  AS_HELP_STRING([--with-gnutls@<:@=DIR@:>@],[Include GnuTLS support. DIR points to the installation root. (default no)]),
796bf4054f8SGlenn Strauss  [WITH_GNUTLS=$withval],
797bf4054f8SGlenn Strauss  [WITH_GNUTLS=no]
798bf4054f8SGlenn Strauss)
799bf4054f8SGlenn Strauss
800bf4054f8SGlenn Straussif test "$WITH_GNUTLS" != "no"; then
801bf4054f8SGlenn Strauss  use_gnutls=yes
802bf4054f8SGlenn Strausselse
803bf4054f8SGlenn Strauss  use_gnutls=no
804bf4054f8SGlenn Straussfi
805bf4054f8SGlenn StraussAC_MSG_RESULT([$use_gnutls])
806bf4054f8SGlenn StraussAM_CONDITIONAL(BUILD_WITH_GNUTLS, test ! $WITH_GNUTLS = no)
807bf4054f8SGlenn Strauss
808bf4054f8SGlenn StraussGNUTLS_CFLAGS=
809bf4054f8SGlenn StraussGNUTLS_LIBS=
810bf4054f8SGlenn Strauss
811bf4054f8SGlenn Straussif test "x$use_gnutls" = "xyes"; then
812bf4054f8SGlenn Strauss  if test "$WITH_GNUTLS" != "yes"; then
813bf4054f8SGlenn Strauss      GNUTLS_CFLAGS="-I$WITH_GNUTLS/include"
814db7252ecSGlenn Strauss      GNUTLS_LIBS="-L$WITH_GNUTLS/lib -lgnutls"
815bf4054f8SGlenn Strauss  else
816bf4054f8SGlenn Strauss      dnl oldest GnuTLS supported release is 3.3.x at time this is being written
817bf4054f8SGlenn Strauss      PKG_CHECK_MODULES([GNUTLS], [gnutls >= 3.3.0])
818bf4054f8SGlenn Strauss  fi
819bf4054f8SGlenn Strauss  AC_SUBST([GNUTLS_CFLAGS])
820bf4054f8SGlenn Strauss  AC_SUBST([GNUTLS_LIBS])
821bf4054f8SGlenn Strauss  AC_DEFINE([HAVE_GNUTLS_CRYPTO_H], [1], [gnutls/crypto.h])
822bf4054f8SGlenn Strauss  if test "$WITH_OPENSSL" = no && test "$WITH_WOLFSSL" = no && \
823bf4054f8SGlenn Strauss     test "$WITH_MBEDTLS" = no && test "$WITH_NETTLE" = no; then
824bf4054f8SGlenn Strauss      AC_SUBST([CRYPTO_LIB],[$GNUTLS_LIBS])
825bf4054f8SGlenn Strauss  fi
826bf4054f8SGlenn Straussfi
827bf4054f8SGlenn Strauss
828e00deb55SGlenn Straussdnl Check for NSS
829e00deb55SGlenn StraussAC_MSG_NOTICE([----------------------------------------])
830e00deb55SGlenn StraussAC_MSG_CHECKING([for NSS])
831e00deb55SGlenn StraussAC_ARG_WITH([nss],
832acca2a3fSGlenn Strauss  AS_HELP_STRING([--with-nss@<:@=DIR@:>@],[Include NSS support. DIR points to the installation root. (default no)]),
833e00deb55SGlenn Strauss  [WITH_NSS=$withval],
834e00deb55SGlenn Strauss  [WITH_NSS=no]
835e00deb55SGlenn Strauss)
836e00deb55SGlenn Strauss
837e00deb55SGlenn Straussif test "$WITH_NSS" != "no"; then
838e00deb55SGlenn Strauss  use_nss=yes
839e00deb55SGlenn Strausselse
840e00deb55SGlenn Strauss  use_nss=no
841e00deb55SGlenn Straussfi
842e00deb55SGlenn StraussAC_MSG_RESULT([$use_nss])
843e00deb55SGlenn StraussAM_CONDITIONAL(BUILD_WITH_NSS, test ! $WITH_NSS = no)
844e00deb55SGlenn Strauss
845e00deb55SGlenn StraussNSS_CFLAGS=
846e00deb55SGlenn StraussNSS_LIBS=
847e00deb55SGlenn Strauss
848e00deb55SGlenn Straussif test "x$use_nss" = "xyes"; then
849e00deb55SGlenn Strauss  if test "$WITH_NSS" != "yes"; then
850e00deb55SGlenn Strauss      NSS_CFLAGS="-I$WITH_NSS/include"
851db7252ecSGlenn Strauss      NSS_LIBS="-L$WITH_NSS/lib -lnss3"
852e00deb55SGlenn Strauss  else
853e00deb55SGlenn Strauss      PKG_CHECK_MODULES([NSS],[nss])
854871ef50eSGlenn Strauss      if test "x$CRYPTO_LIB" = "x"; then
855871ef50eSGlenn Strauss        PKG_CHECK_MODULES([NSPR],[nspr])
856871ef50eSGlenn Strauss        CPPFLAGS="$CPPFLAGS $NSPR_CFLAGS"
857871ef50eSGlenn Strauss      fi
858e00deb55SGlenn Strauss  fi
85931a7f0d4SGlenn Strauss  AC_DEFINE([HAVE_NSS_NSS_H], [1], [nss/nss.h])
860e00deb55SGlenn Strauss  AC_DEFINE([HAVE_NSS3_NSS_H], [1], [nss3/nss.h])
861e00deb55SGlenn Strauss  AC_SUBST([NSS_CFLAGS])
862e00deb55SGlenn Strauss  AC_SUBST([NSS_LIBS])
863a46f519eSGlenn Strauss  if test "x$CRYPTO_LIB" = "x"; then
864a46f519eSGlenn Strauss    CRYPTO_LIB="-lnss3"
865a46f519eSGlenn Strauss    AC_SUBST([CRYPTO_LIB])
866a46f519eSGlenn Strauss  fi
867e00deb55SGlenn Straussfi
868e00deb55SGlenn Strauss
869778b07a0SGlenn Strauss
870750414d3SGlenn Straussdnl pcre support
871750414d3SGlenn StraussAC_MSG_NOTICE([----------------------------------------])
872750414d3SGlenn StraussAC_MSG_CHECKING([for perl regular expressions support])
873750414d3SGlenn StraussAC_ARG_WITH([pcre],
874e563ae01SGlenn Strauss  [AS_HELP_STRING([--with-pcre], [Enable pcre support (default no)])],
875750414d3SGlenn Strauss  [WITH_PCRE=$withval],
876750414d3SGlenn Strauss  [WITH_PCRE=no]
877750414d3SGlenn Strauss)
878750414d3SGlenn StraussAC_MSG_RESULT([$WITH_PCRE])
879750414d3SGlenn Strauss
8807512d82cSGlenn Straussdnl pcre2 support
8817512d82cSGlenn StraussAC_MSG_NOTICE([----------------------------------------])
8827512d82cSGlenn StraussAC_MSG_CHECKING([for perl regular expressions support])
8837512d82cSGlenn StraussAC_ARG_WITH([pcre2],
884e563ae01SGlenn Strauss  [AS_HELP_STRING([--with-pcre2], [Enable pcre2 support (default yes)])],
8857512d82cSGlenn Strauss  [WITH_PCRE2=$withval],
886750414d3SGlenn Strauss  [WITH_PCRE2=yes]
8877512d82cSGlenn Strauss)
8887512d82cSGlenn StraussAC_MSG_RESULT([$WITH_PCRE2])
8897512d82cSGlenn Strauss
890750414d3SGlenn Straussif test "$WITH_PCRE2" != no && test "$WITH_PCRE" = "no"; then
8917512d82cSGlenn Strauss  if test "$WITH_PCRE2" != yes; then
8927512d82cSGlenn Strauss    PCRE_LIB="-L$WITH_PCRE2/lib -lpcre2-8"
8933b728179SGlenn Strauss    CPPFLAGS="$CPPFLAGS -I$WITH_PCRE2/include"
8947512d82cSGlenn Strauss  else
895fa82e037SGlenn Strauss    PKG_CHECK_MODULES([PCRE2],[libpcre2-8],[
896fa82e037SGlenn Strauss      PCRE_LIB="$PCRE2_LIBS"
897fa82e037SGlenn Strauss      CPPFLAGS="$CPPFLAGS $PCRE2_CFLAGS"
898fa82e037SGlenn Strauss    ],[
8997512d82cSGlenn Strauss      AC_PATH_PROG([PCRE2CONFIG], [pcre2-config])
9007512d82cSGlenn Strauss      if test -n "$PCRE2CONFIG"; then
9017512d82cSGlenn Strauss        PCRE_LIB=`"$PCRE2CONFIG" --libs8`
9027512d82cSGlenn Strauss        CPPFLAGS="$CPPFLAGS `"$PCRE2CONFIG" --cflags`"
9037512d82cSGlenn Strauss      fi
904fa82e037SGlenn Strauss    ])
9057512d82cSGlenn Strauss  fi
9067512d82cSGlenn Strauss
9077512d82cSGlenn Strauss  if test -z "$PCRE_LIB"; then
9087512d82cSGlenn Strauss    AC_MSG_ERROR([pcre2-config not found, install the pcre2-devel package or build with --without-pcre2])
9097512d82cSGlenn Strauss  fi
9107512d82cSGlenn Strauss
9117512d82cSGlenn Strauss  AC_DEFINE([HAVE_PCRE], [1], [libpcre2-8])
9127512d82cSGlenn Strauss  AC_DEFINE([HAVE_PCRE2_H], [1], [pcre.h])
9137512d82cSGlenn Strauss  AC_SUBST([PCRE_LIB])
9147512d82cSGlenn Straussfi
9157512d82cSGlenn Strauss
916750414d3SGlenn Straussif test "$WITH_PCRE" != no; then
917d8d7d197SStefan Bühler  if test "$WITH_PCRE" != yes; then
918427acbf0SGlenn Strauss    PCRE_LIB="-L$WITH_PCRE/lib -lpcre"
919427acbf0SGlenn Strauss    CPPFLAGS="$CPPFLAGS -I$WITH_PCRE/include"
920427acbf0SGlenn Strauss  else
921d8d7d197SStefan Bühler    AC_PATH_PROG([PCRECONFIG], [pcre-config])
922d8d7d197SStefan Bühler    if test -n "$PCRECONFIG"; then
923d8d7d197SStefan Bühler      PCRE_LIB=`"$PCRECONFIG" --libs`
924d8d7d197SStefan Bühler      CPPFLAGS="$CPPFLAGS `"$PCRECONFIG" --cflags`"
925427acbf0SGlenn Strauss    fi
926427acbf0SGlenn Strauss  fi
927427acbf0SGlenn Strauss
92841cd7d25SStefan Bühler  if test -z "$PCRE_LIB"; then
92941cd7d25SStefan Bühler    AC_MSG_ERROR([pcre-config not found, install the pcre-devel package or build with --without-pcre])
93041cd7d25SStefan Bühler  fi
93141cd7d25SStefan Bühler
9327512d82cSGlenn Strauss  AC_DEFINE([HAVE_PCRE], [1], [libpcre])
93381587537SStefan Bühler  AC_DEFINE([HAVE_PCRE_H], [1], [pcre.h])
934d8d7d197SStefan Bühler  AC_SUBST([PCRE_LIB])
93581587537SStefan Bühlerfi
93681587537SStefan Bühler
937750414d3SGlenn Strauss
93841cd7d25SStefan Bühlerdnl zlib
93941cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
940d8d7d197SStefan BühlerAC_MSG_CHECKING([for zlib support])
941d8d7d197SStefan BühlerAC_ARG_WITH([zlib],
942acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-zlib],
943bc5d4b34SGlenn Strauss    [Enable zlib support for mod_deflate]
944d8d7d197SStefan Bühler  )],
945d8d7d197SStefan Bühler  [WITH_ZLIB=$withval],
946d8d7d197SStefan Bühler  [WITH_ZLIB=yes]
947d8d7d197SStefan Bühler)
94881587537SStefan BühlerAC_MSG_RESULT([$WITH_ZLIB])
94981587537SStefan Bühler
950d8d7d197SStefan Bühlerif test "$WITH_ZLIB" != no; then
951d8d7d197SStefan Bühler  if test "$WITH_ZLIB" != yes; then
952427acbf0SGlenn Strauss    Z_LIB="-L$WITH_ZLIB -lz"
953427acbf0SGlenn Strauss    CPPFLAGS="$CPPFLAGS -I$WITH_ZLIB"
954427acbf0SGlenn Strauss  else
95541cd7d25SStefan Bühler    AC_CHECK_HEADERS([zlib.h], [],
95641cd7d25SStefan Bühler      [AC_MSG_ERROR([zlib headers not found, install them or build without --with-zlib])]
95741cd7d25SStefan Bühler    )
95841cd7d25SStefan Bühler    AC_CHECK_LIB([z], [deflate],
95941cd7d25SStefan Bühler      [Z_LIB=-lz],
96041cd7d25SStefan Bühler      [AC_MSG_ERROR([zlib library not found, install it or build without --with-zlib])]
96141cd7d25SStefan Bühler    )
962427acbf0SGlenn Strauss  fi
963427acbf0SGlenn Strauss
96481587537SStefan Bühler  AC_DEFINE([HAVE_LIBZ], [1], [libz])
96581587537SStefan Bühler  AC_DEFINE([HAVE_ZLIB_H], [1])
966d8d7d197SStefan Bühler  AC_SUBST([Z_LIB])
967427acbf0SGlenn Straussfi
96881587537SStefan Bühler
9699211fb3dSGlenn Straussdnl zstd
9709211fb3dSGlenn StraussAC_MSG_NOTICE([----------------------------------------])
9719211fb3dSGlenn StraussAC_MSG_CHECKING([for zstd support])
9729211fb3dSGlenn StraussAC_ARG_WITH([zstd],
9739211fb3dSGlenn Strauss  [AS_HELP_STRING([--with-zstd],
9749211fb3dSGlenn Strauss    [Enable zstd support for mod_deflate]
9759211fb3dSGlenn Strauss  )],
9769211fb3dSGlenn Strauss  [WITH_ZSTD=$withval],
9779211fb3dSGlenn Strauss  [WITH_ZSTD=no]
9789211fb3dSGlenn Strauss)
9799211fb3dSGlenn StraussAC_MSG_RESULT([$WITH_ZSTD])
9809211fb3dSGlenn Strauss
9819211fb3dSGlenn Straussif test "$WITH_ZSTD" != no; then
9829211fb3dSGlenn Strauss  if test "$WITH_ZSTD" != yes; then
9839211fb3dSGlenn Strauss    ZSTD_LIB="-L$WITH_ZSTD -lzstd"
9849211fb3dSGlenn Strauss    CPPFLAGS="$CPPFLAGS -I$WITH_ZSTD"
9859211fb3dSGlenn Strauss  else
9869211fb3dSGlenn Strauss    AC_CHECK_HEADERS([zstd.h], [],
9879211fb3dSGlenn Strauss      [AC_MSG_ERROR([zstd headers not found, install them or build without --with-zstd])]
9889211fb3dSGlenn Strauss    )
9899211fb3dSGlenn Strauss    AC_CHECK_LIB([zstd], [ZSTD_versionNumber],
9909211fb3dSGlenn Strauss      [ZSTD_LIB=-lzstd],
9919211fb3dSGlenn Strauss      [AC_MSG_ERROR([zstd library not found, install it or build without --with-zstd])]
9929211fb3dSGlenn Strauss    )
9939211fb3dSGlenn Strauss  fi
9949211fb3dSGlenn Strauss
9959211fb3dSGlenn Strauss  AC_DEFINE([HAVE_ZSTD], [1], [libzstd])
9969211fb3dSGlenn Strauss  AC_DEFINE([HAVE_ZSTD_H], [1])
9979211fb3dSGlenn Strauss  AC_SUBST([ZSTD_LIB])
9989211fb3dSGlenn Straussfi
9999211fb3dSGlenn Strauss
100041cd7d25SStefan Bühlerdnl bzip2
100141cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
1002d8d7d197SStefan BühlerAC_MSG_CHECKING([for bzip2 support])
1003d8d7d197SStefan BühlerAC_ARG_WITH([bzip2],
1004acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-bzip2],
1005bc5d4b34SGlenn Strauss    [Enable bzip2 support for mod_deflate]
1006d8d7d197SStefan Bühler  )],
1007d8d7d197SStefan Bühler  [WITH_BZIP2=$withval],
1008f47ffb43SGlenn Strauss  [WITH_BZIP2=no]
1009d8d7d197SStefan Bühler)
101081587537SStefan BühlerAC_MSG_RESULT([$WITH_BZIP2])
101181587537SStefan Bühler
1012d8d7d197SStefan Bühlerif test "$WITH_BZIP2" != no; then
1013d8d7d197SStefan Bühler  if test "$WITH_BZIP2" != yes; then
1014427acbf0SGlenn Strauss    BZ_LIB="-L$WITH_BZIP2 -lbz2"
1015427acbf0SGlenn Strauss    CPPFLAGS="$CPPFLAGS -I$WITH_BZIP2"
1016427acbf0SGlenn Strauss  else
101741cd7d25SStefan Bühler    AC_CHECK_HEADERS([bzlib.h], [], [
101841cd7d25SStefan Bühler      AC_MSG_ERROR([bzip2 headers not found, install them or build without --with-bzip2])
1019427acbf0SGlenn Strauss    ])
102041cd7d25SStefan Bühler    AC_CHECK_LIB([bz2], [BZ2_bzCompress],
102141cd7d25SStefan Bühler      [BZ_LIB=-lbz2],
102241cd7d25SStefan Bühler      [AC_MSG_ERROR([bzip2 library not found, install it or build without --with-bzip2])]
102341cd7d25SStefan Bühler    )
1024427acbf0SGlenn Strauss  fi
1025427acbf0SGlenn Strauss
102681587537SStefan Bühler  AC_DEFINE([HAVE_LIBBZ2], [1], [libbz2])
102781587537SStefan Bühler  AC_DEFINE([HAVE_BZLIB_H], [1])
1028d8d7d197SStefan Bühler  AC_SUBST([BZ_LIB])
1029427acbf0SGlenn Straussfi
103081587537SStefan Bühler
10318d5e237cSGlenn Straussdnl brotli
10328d5e237cSGlenn StraussAC_MSG_NOTICE([----------------------------------------])
10338d5e237cSGlenn StraussAC_MSG_CHECKING([for brotli support])
10348d5e237cSGlenn StraussAC_ARG_WITH([brotli],
1035acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-brotli],
10368d5e237cSGlenn Strauss    [Enable brotli support for mod_deflate]
10378d5e237cSGlenn Strauss  )],
10388d5e237cSGlenn Strauss  [WITH_BROTLI=$withval],
10398d5e237cSGlenn Strauss  [WITH_BROTLI=no]
10408d5e237cSGlenn Strauss)
10418d5e237cSGlenn StraussAC_MSG_RESULT([$WITH_BROTLI])
10428d5e237cSGlenn Strauss
10438d5e237cSGlenn Straussif test "$WITH_BROTLI" != no; then
10448d5e237cSGlenn Strauss  if test "$WITH_BROTLI" != yes; then
10457ff2a467SGlenn Strauss    BROTLI_LIBS="-L$WITH_BROTLI -lbrotlienc"
10468d5e237cSGlenn Strauss    CPPFLAGS="$CPPFLAGS -I$WITH_BROTLI"
10478d5e237cSGlenn Strauss  else
10488d5e237cSGlenn Strauss    PKG_CHECK_MODULES([BROTLI], [libbrotlienc], [], [
10498d5e237cSGlenn Strauss      AC_MSG_ERROR([brotli not found, install it or build without --with-brotli])
10508d5e237cSGlenn Strauss    ])
10518d5e237cSGlenn Strauss  fi
10528d5e237cSGlenn Strauss
10538d5e237cSGlenn Strauss  AC_DEFINE([HAVE_BROTLI_ENCODE_H], [1], [brotli/encode.h])
10548d5e237cSGlenn Strauss  AC_DEFINE([HAVE_BROTLI], [1], [libbrotlienc])
10558d5e237cSGlenn Strauss  AC_SUBST([BROTLI_CFLAGS])
10568d5e237cSGlenn Strauss  AC_SUBST([BROTLI_LIBS])
10578d5e237cSGlenn Straussfi
10588d5e237cSGlenn Strauss
1059d68fc639SGlenn Straussdnl libdeflate
1060d68fc639SGlenn StraussAC_MSG_NOTICE([----------------------------------------])
1061d68fc639SGlenn StraussAC_MSG_CHECKING([for libdeflate support])
1062d68fc639SGlenn StraussAC_ARG_WITH([libdeflate],
1063d68fc639SGlenn Strauss  [AS_HELP_STRING([--with-libdeflate],
1064d68fc639SGlenn Strauss    [Enable libdeflate support for mod_deflate]
1065d68fc639SGlenn Strauss  )],
1066d68fc639SGlenn Strauss  [WITH_LIBDEFLATE=$withval],
1067d68fc639SGlenn Strauss  [WITH_LIBDEFLATE=no]
1068d68fc639SGlenn Strauss)
1069d68fc639SGlenn StraussAC_MSG_RESULT([$WITH_LIBDEFLATE])
1070d68fc639SGlenn Strauss
1071d68fc639SGlenn Straussif test "$WITH_LIBDEFLATE" != no; then
1072d68fc639SGlenn Strauss  if test "$WITH_LIBDEFLATE" != yes; then
1073d68fc639SGlenn Strauss    DEFLATE_LIBS="-L$WITH_LIBDEFLATE -ldeflate"
1074d68fc639SGlenn Strauss    CPPFLAGS="$CPPFLAGS -I$WITH_LIBDEFLATE"
1075d68fc639SGlenn Strauss  else
1076d68fc639SGlenn Strauss    AC_CHECK_HEADERS([libdeflate.h], [],
1077d68fc639SGlenn Strauss      [AC_MSG_ERROR([libdeflate header not found, install them or build without --with-libdeflate])]
1078d68fc639SGlenn Strauss    )
1079d68fc639SGlenn Strauss    AC_CHECK_LIB([deflate], [libdeflate_alloc_compressor],
1080d68fc639SGlenn Strauss      [DEFLATE_LIBS=-ldeflate],
1081d68fc639SGlenn Strauss      [AC_MSG_ERROR([libdeflate library not found, install it or build without --with-libdeflate])]
1082d68fc639SGlenn Strauss    )
1083d68fc639SGlenn Strauss  fi
1084d68fc639SGlenn Strauss
1085d68fc639SGlenn Strauss  AC_DEFINE([HAVE_LIBDEFLATE], [1], [libdeflate])
1086d68fc639SGlenn Strauss  AC_SUBST([DEFLATE_LIBS])
1087d68fc639SGlenn Straussfi
1088d68fc639SGlenn Strauss
108941cd7d25SStefan Bühlerdnl Check for fam/gamin
109041cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
1091d8d7d197SStefan BühlerAC_MSG_CHECKING([for FAM])
1092d8d7d197SStefan BühlerAC_ARG_WITH([fam],
1093acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-fam],
1094d8d7d197SStefan Bühler    [fam/gamin for reducing number of stat() calls]
1095d8d7d197SStefan Bühler  )],
1096d8d7d197SStefan Bühler  [WITH_FAM=$withval],
1097d8d7d197SStefan Bühler  [WITH_FAM=no]
1098d8d7d197SStefan Bühler)
109981587537SStefan BühlerAC_MSG_RESULT([$WITH_FAM])
110081587537SStefan Bühler
110128fc51c7SGlenn Straussdnl "$ac_cv_func_kqueue" is set further below
110228fc51c7SGlenn Strausscase "$host_os" in
110328fc51c7SGlenn Strauss*bsd*|*darwin* ) WITH_FAM=no ;;
110428fc51c7SGlenn Strauss* ) ;;
110528fc51c7SGlenn Straussesac
110628fc51c7SGlenn Strauss
110728fc51c7SGlenn Straussif test "$ac_cv_header_sys_inotify_h" != no; then
11087ce8b22cSGlenn Strauss  WITH_FAM=no
11097ce8b22cSGlenn Straussfi
11107ce8b22cSGlenn Strauss
1111d8d7d197SStefan Bühlerif test "$WITH_FAM" != no; then
1112d8d7d197SStefan Bühler  if test "$WITH_FAM" != yes; then
1113427acbf0SGlenn Strauss    FAM_LIBS="-L$WITH_FAM -lfam"
1114427acbf0SGlenn Strauss    CPPFLAGS="$CPPFLAGS -I$WITH_FAM"
1115427acbf0SGlenn Strauss  else
1116d8d7d197SStefan Bühler    AC_CHECK_LIB([fam], [FAMOpen2], [
1117427acbf0SGlenn Strauss      AC_CHECK_HEADERS([fam.h], [FAM_LIBS=-lfam])
111881587537SStefan Bühler    ])
111941cd7d25SStefan Bühler    dnl fam has no pkg-config so far, so just search for gamin as fallback
1120d8d7d197SStefan Bühler    if test -z "$FAM_LIBS"; then
1121d8d7d197SStefan Bühler      PKG_CHECK_MODULES([FAM], [gamin >= 0.1.0])
112281587537SStefan Bühler    fi
1123427acbf0SGlenn Strauss  fi
1124427acbf0SGlenn Strauss
112541cd7d25SStefan Bühler  if test -z "$FAM_LIBS"; then
112641cd7d25SStefan Bühler    AC_MSG_ERROR([fam/gamin headers and/or libs were not found, install them or build without --with-fam])
112741cd7d25SStefan Bühler  fi
112841cd7d25SStefan Bühler
112981587537SStefan Bühler  OLD_LIBS=$LIBS
113081587537SStefan Bühler  LIBS=$FAM_LIBS
113181587537SStefan Bühler  AC_CHECK_FUNCS([FAMNoExists])
113281587537SStefan Bühler  LIBS=$OLD_LIBS
113381587537SStefan Bühler
1134427acbf0SGlenn Strauss  AC_DEFINE([HAVE_LIBFAM], [1], [libfam])
1135427acbf0SGlenn Strauss  AC_DEFINE([HAVE_FAM_H], [1], [fam.h])
1136d8d7d197SStefan Bühler  AC_SUBST([FAM_LIBS])
113781587537SStefan Bühlerfi
113881587537SStefan Bühler
113941cd7d25SStefan Bühler
114041cd7d25SStefan Bühlerdnl webdav props (xml2 and sqlite3)
114141cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
1142d8d7d197SStefan BühlerAC_MSG_CHECKING([for properties in mod_webdav])
1143d8d7d197SStefan BühlerAC_ARG_WITH([webdav-props],
1144acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-webdav-props], [properties in mod_webdav])],
1145d8d7d197SStefan Bühler  [WITH_WEBDAV_PROPS=$withval],
1146d8d7d197SStefan Bühler  [WITH_WEBDAV_PROPS=no]
1147d8d7d197SStefan Bühler)
114881587537SStefan BühlerAC_MSG_RESULT([$WITH_WEBDAV_PROPS])
114981587537SStefan Bühler
1150d8d7d197SStefan Bühlerif test "$WITH_WEBDAV_PROPS" != no; then
1151d8d7d197SStefan Bühler  AC_MSG_CHECKING([for libxml2])
1152d8d7d197SStefan Bühler  AC_ARG_WITH([libxml],
1153acca2a3fSGlenn Strauss    [AS_HELP_STRING([--with-libxml],
1154d8d7d197SStefan Bühler      [libxml2 for properties in mod_webdav]
1155d8d7d197SStefan Bühler    )],
1156d8d7d197SStefan Bühler    [WITH_LIBXML=$withval],
1157d8d7d197SStefan Bühler    [WITH_LIBXML=yes]
1158d8d7d197SStefan Bühler  )
1159427acbf0SGlenn Strauss  AC_MSG_RESULT([$WITH_LIBXML])
1160427acbf0SGlenn Strauss
116141cd7d25SStefan Bühler  if test "$WITH_LIBXML" = no; then
116241cd7d25SStefan Bühler    AC_MSG_ERROR([--with-webdav-props requires libxml])
116341cd7d25SStefan Bühler  fi
116441cd7d25SStefan Bühler
1165d8d7d197SStefan Bühler  if test "$WITH_LIBXML" != yes; then
1166427acbf0SGlenn Strauss    XML_LIBS="-L$WITH_LIBXML/.libs -lxml2"
1167427acbf0SGlenn Strauss    XML_CFLAGS="-I$WITH_LIBXML/include"
1168427acbf0SGlenn Strauss  else
116941cd7d25SStefan Bühler    PKG_CHECK_MODULES([XML], [libxml-2.0], [], [
117041cd7d25SStefan Bühler      AC_MSG_ERROR([libxml2 not found, install it or build without --with-webdav-props])
117141cd7d25SStefan Bühler    ])
1172427acbf0SGlenn Strauss  fi
1173427acbf0SGlenn Strauss
117481587537SStefan Bühler  AC_DEFINE([HAVE_LIBXML2], [1], [libxml2])
117581587537SStefan Bühler  AC_DEFINE([HAVE_LIBXML_H], [1], [libxml.h])
1176d8d7d197SStefan Bühler  AC_SUBST([XML_LIBS])
1177d8d7d197SStefan Bühler  AC_SUBST([XML_CFLAGS])
1178427acbf0SGlenn Strauss
1179d8d7d197SStefan Bühler  AC_MSG_CHECKING([for sqlite])
1180d8d7d197SStefan Bühler  AC_ARG_WITH([sqlite],
1181acca2a3fSGlenn Strauss    [AS_HELP_STRING([--with-sqlite],
1182d8d7d197SStefan Bühler      [sqlite for properties in mod_webdav]
1183d8d7d197SStefan Bühler    )],
1184d8d7d197SStefan Bühler    [WITH_SQLITE=$withval],
1185d8d7d197SStefan Bühler    [WITH_SQLITE=yes]
1186d8d7d197SStefan Bühler  )
1187427acbf0SGlenn Strauss  AC_MSG_RESULT([$WITH_SQLITE])
1188427acbf0SGlenn Strauss
118941cd7d25SStefan Bühler  if test "$WITH_SQLITE" = no; then
119041cd7d25SStefan Bühler    AC_MSG_ERROR([--with-webdav-props requires sqlite])
119141cd7d25SStefan Bühler  fi
119241cd7d25SStefan Bühler
1193d8d7d197SStefan Bühler  if test "$WITH_SQLITE" != yes; then
1194427acbf0SGlenn Strauss    SQLITE_LIBS="-L$WITH_SQLITE/.libs -lsqlite3"
1195427acbf0SGlenn Strauss    SQLITE_CFLAGS="-I$WITH_SQLITE"
1196427acbf0SGlenn Strauss  else
119741cd7d25SStefan Bühler    PKG_CHECK_MODULES([SQLITE], [sqlite3], [], [
119841cd7d25SStefan Bühler      AC_MSG_ERROR([sqlite3 not found, install it or build without --with-webdav-props])
119941cd7d25SStefan Bühler    ])
1200427acbf0SGlenn Strauss  fi
1201427acbf0SGlenn Strauss
120281587537SStefan Bühler  AC_DEFINE([HAVE_SQLITE3], [1], [libsqlite3])
120381587537SStefan Bühler  AC_DEFINE([HAVE_SQLITE3_H], [1], [sqlite3.h])
1204d8d7d197SStefan Bühler  AC_SUBST([SQLITE_LIBS])
1205d8d7d197SStefan Bühler  AC_SUBST([SQLITE_CFLAGS])
1206427acbf0SGlenn Straussfi
120781587537SStefan Bühler
120841cd7d25SStefan Bühler
120941cd7d25SStefan Bühlerdnl webdav locks (uuid)
121041cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
1211d8d7d197SStefan BühlerAC_MSG_CHECKING([for locks in mod_webdav])
1212d8d7d197SStefan BühlerAC_ARG_WITH([webdav-locks],
1213acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-webdav-locks],
121441cd7d25SStefan Bühler    [locks in mod_webdav (requires webdav properties)]
121541cd7d25SStefan Bühler  )],
1216d8d7d197SStefan Bühler  [WITH_WEBDAV_LOCKS=$withval],
1217d8d7d197SStefan Bühler  [WITH_WEBDAV_LOCKS=no]
1218d8d7d197SStefan Bühler)
121981587537SStefan BühlerAC_MSG_RESULT([$WITH_WEBDAV_LOCKS])
122081587537SStefan Bühler
1221d8d7d197SStefan Bühlerif test "$WITH_WEBDAV_LOCKS" != no; then
122241cd7d25SStefan Bühler  if test "$WITH_WEBDAV_PROPS" = no; then
122341cd7d25SStefan Bühler    AC_MSG_ERROR([--with-webdav-locks requires --with-webdav-props])
122441cd7d25SStefan Bühler  fi
122541cd7d25SStefan Bühler
1226d8d7d197SStefan Bühler  AC_MSG_CHECKING([for libuuid])
1227d8d7d197SStefan Bühler  AC_ARG_WITH([uuid],
1228acca2a3fSGlenn Strauss    [AS_HELP_STRING([--with-uuid], [uuid for locks in mod_webdav])],
1229d8d7d197SStefan Bühler    [WITH_UUID=$withval],
1230d8d7d197SStefan Bühler    [WITH_UUID=yes]
1231d8d7d197SStefan Bühler  )
1232427acbf0SGlenn Strauss  AC_MSG_RESULT([$WITH_UUID])
1233427acbf0SGlenn Strauss
123441cd7d25SStefan Bühler  if test "$WITH_UUID" = no; then
123541cd7d25SStefan Bühler    AC_MSG_ERROR([--with-webdav-locks requires uuid])
123641cd7d25SStefan Bühler  fi
123741cd7d25SStefan Bühler
1238d8d7d197SStefan Bühler  if test "$WITH_UUID" != yes; then
1239427acbf0SGlenn Strauss    UUID_LIBS="-L$WITH_UUID -luuid"
1240427acbf0SGlenn Strauss    CPPFLAGS="$CPPFLAGS -I$WITH_UUID"
1241427acbf0SGlenn Strauss  else
124241cd7d25SStefan Bühler    AC_CHECK_LIB([uuid], [uuid_unparse],
124341cd7d25SStefan Bühler      [UUID_LIBS=-luuid],
124441cd7d25SStefan Bühler      [AC_MSG_ERROR([uuid lib not found, install it or build without --with-webdav-locks])]
124541cd7d25SStefan Bühler    )
124641cd7d25SStefan Bühler    AC_CHECK_HEADERS([uuid/uuid.h], [],
124741cd7d25SStefan Bühler      [AC_MSG_ERROR([uuid headers not found, install them or build without --with-webdav-locks])]
124841cd7d25SStefan Bühler    )
1249427acbf0SGlenn Strauss  fi
1250427acbf0SGlenn Strauss
12516962fc2aSyangfl  AC_DEFINE([HAVE_LIBUUID], [1], [libuuid])
12526962fc2aSyangfl  AC_DEFINE([HAVE_UUID_UUID_H], [1], [uuid/uuid.h is available])
1253d8d7d197SStefan Bühler  AC_SUBST([UUID_LIBS])
1254427acbf0SGlenn Straussfi
125581587537SStefan Bühler
125607622251SGlenn Straussdnl xxhash
125707622251SGlenn StraussAC_MSG_NOTICE([----------------------------------------])
125807622251SGlenn StraussAC_MSG_CHECKING([for xxhash support])
125907622251SGlenn StraussAC_ARG_WITH([xxhash],
1260acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-xxhash],
126107622251SGlenn Strauss    [Enable system-provided xxhash]
126207622251SGlenn Strauss  )],
126307622251SGlenn Strauss  [WITH_XXHASH=$withval],
126407622251SGlenn Strauss  [WITH_XXHASH=no]
126507622251SGlenn Strauss)
126607622251SGlenn StraussAC_MSG_RESULT([$WITH_XXHASH])
126707622251SGlenn Strauss
126807622251SGlenn Straussif test "$WITH_XXHASH" != no; then
126907622251SGlenn Strauss  if test "$WITH_XXHASH" != yes; then
127007622251SGlenn Strauss    XXHASH_LIBS="-L$WITH_XXHASH -lxxhash"
127107622251SGlenn Strauss    CPPFLAGS="$CPPFLAGS -I$WITH_XXHASH"
127207622251SGlenn Strauss  else
127307622251SGlenn Strauss    PKG_CHECK_MODULES([XXHASH], [libxxhash], [], [
12745e711068SGlenn Strauss      AC_CHECK_LIB([xxhash], [XXH_versionNumber],
12755e711068SGlenn Strauss        [XXHASH_LIBS=-lxxhash],
12765e711068SGlenn Strauss        [AC_MSG_ERROR([xxhash not found, install it or build without --with-xxhash])]
12775e711068SGlenn Strauss      )
12785e711068SGlenn Strauss      AC_CHECK_HEADERS([xxhash.h], [],
12795e711068SGlenn Strauss        [AC_MSG_ERROR([xxhash not found, install it or build without --with-xxhash])]
12805e711068SGlenn Strauss      )
128107622251SGlenn Strauss    ])
128207622251SGlenn Strauss  fi
128307622251SGlenn Strauss
128407622251SGlenn Strauss  AC_DEFINE([HAVE_XXHASH_H], [1], [xxhash.h])
128507622251SGlenn Strauss  AC_DEFINE([HAVE_XXHASH], [1], [xxhash])
128607622251SGlenn Strauss  AC_SUBST([XXHASH_CFLAGS])
128707622251SGlenn Strauss  AC_SUBST([XXHASH_LIBS])
128807622251SGlenn Straussfi
128907622251SGlenn Strauss
12904ac239c4SGlenn Straussdnl Check for maxminddb
12914ac239c4SGlenn StraussAC_MSG_NOTICE([----------------------------------------])
12924ac239c4SGlenn StraussAC_MSG_CHECKING([for maxminddb])
12934ac239c4SGlenn StraussAC_ARG_WITH([maxminddb],
1294acca2a3fSGlenn Strauss  [AS_HELP_STRING([--with-maxminddb], [IP-based geolocation lookup])],
12954ac239c4SGlenn Strauss  [WITH_MAXMINDDB=$withval],
12964ac239c4SGlenn Strauss  [WITH_MAXMINDDB=no]
12974ac239c4SGlenn Strauss)
12984ac239c4SGlenn StraussAC_MSG_RESULT([$WITH_MAXMINDDB])
12994ac239c4SGlenn Strauss
13004ac239c4SGlenn Straussif test "$WITH_MAXMINDDB" != no; then
13014ac239c4SGlenn Strauss  if test "$WITH_MAXMINDDB" != yes; then
13024ac239c4SGlenn Strauss    MAXMINDDB_LIB="-L$WITH_MAXMINDDB -lmaxminddb"
13034ac239c4SGlenn Strauss    CPPFLAGS="$CPPFLAGS -I$WITH_MAXMINDDB"
13044ac239c4SGlenn Strauss  else
13054ac239c4SGlenn Strauss    AC_CHECK_LIB([maxminddb], [MMDB_open],
13064ac239c4SGlenn Strauss      [MAXMINDDB_LIB=-lmaxminddb],
13074ac239c4SGlenn Strauss      [AC_MSG_ERROR([maxminddb lib not found, install it or build without --with-maxminddb])]
13084ac239c4SGlenn Strauss    )
13094ac239c4SGlenn Strauss    AC_CHECK_HEADERS([maxminddb.h], [],
13104ac239c4SGlenn Strauss      [AC_MSG_ERROR([maxminddb headers not found, install them or build without --with-maxminddb])]
13114ac239c4SGlenn Strauss    )
13124ac239c4SGlenn Strauss  fi
13134ac239c4SGlenn Strauss
13144ac239c4SGlenn Strauss  AC_DEFINE([HAVE_MAXMINDDB], [1], [libmaxminddb])
13154ac239c4SGlenn Strauss  AC_DEFINE([HAVE_MAXMINDDB_H], [1])
13164ac239c4SGlenn Strauss  AC_SUBST([MAXMINDDB_LIB])
13174ac239c4SGlenn Straussfi
13184ac239c4SGlenn StraussAM_CONDITIONAL([BUILD_WITH_MAXMINDDB], [test "$WITH_MAXMINDDB" != no])
13194ac239c4SGlenn Strauss
132081587537SStefan Bühlerdnl Check for lua
132141cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
1322d8d7d197SStefan BühlerAC_MSG_CHECKING([if lua-support is requested])
1323d8d7d197SStefan BühlerAC_ARG_WITH([lua],
132486c2d309SGlenn Strauss  [AS_HELP_STRING([--with-lua], [lua engine for mod_magnet])],
1325d8d7d197SStefan Bühler  [WITH_LUA=$withval],
1326d8d7d197SStefan Bühler  [WITH_LUA=no]
1327d8d7d197SStefan Bühler)
132841cd7d25SStefan BühlerAC_MSG_RESULT([$WITH_LUA])
132981587537SStefan Bühler
1330d8d7d197SStefan Bühlerif test "$WITH_LUA" != no; then
1331427acbf0SGlenn Strauss  found_lua=0
1332d8d7d197SStefan Bühler  if test "$WITH_LUA" != yes; then
1333d8d7d197SStefan Bühler    PKG_CHECK_MODULES([LUA], [$WITH_LUA >= 5.1],
1334d8d7d197SStefan Bühler      [found_lua=1],
1335d8d7d197SStefan Bühler      [AC_MSG_NOTICE([Couldn\'t find requested lua pkg-config module $WITH_LUA])]
1336d8d7d197SStefan Bühler    )
1337427acbf0SGlenn Strauss    if test "$found_lua" = "0"; then
1338427acbf0SGlenn Strauss      LUA_LIBS="-L$WITH_LUA -llua"
1339427acbf0SGlenn Strauss      LUA_CFLAGS="-I$WITH_LUA"
1340427acbf0SGlenn Strauss    fi
1341c354229fSStefan Bühler  else
134264aff80dSGlenn Strauss    for luaname in lua5.4 lua-5.4 lua5.3 lua-5.3 lua5.2 lua-5.2 lua5.1 lua-5.1 lua; do
1343c354229fSStefan Bühler      if test "$found_lua" = "0"; then
1344d8d7d197SStefan Bühler        PKG_CHECK_MODULES([LUA], [$luaname >= 5.1],
1345d8d7d197SStefan Bühler          [found_lua=1],
1346d8d7d197SStefan Bühler          [AC_MSG_NOTICE([Couldn\'t find $luaname])]
1347d8d7d197SStefan Bühler        )
1348c354229fSStefan Bühler      fi
1349c354229fSStefan Bühler    done
1350c354229fSStefan Bühler    if test "$found_lua" = "0"; then
1351d8d7d197SStefan Bühler      AC_MSG_ERROR([Couldn\'t find any lua pkg-config module])
1352c354229fSStefan Bühler    fi
1353c354229fSStefan Bühler  fi
135481587537SStefan Bühler
1355427acbf0SGlenn Strauss  AC_DEFINE([HAVE_LUA_H], [1], [lua.h])
1356d8d7d197SStefan Bühler  AC_SUBST([LUA_LIBS])
1357d8d7d197SStefan Bühler  AC_SUBST([LUA_CFLAGS])
135881587537SStefan Bühlerfi
1359d8d7d197SStefan BühlerAM_CONDITIONAL([BUILD_WITH_LUA], [test "$WITH_LUA" != no])
136081587537SStefan Bühler
136141cd7d25SStefan Bühlerdnl "--with-FEATURE" blocks end
136241cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
136341cd7d25SStefan Bühler
1364c9249672SStefan Bühlerdnl search for crypt_r and (fallback) for crypt
136581587537SStefan Bühlersave_LIBS=$LIBS
1366c9249672SStefan BühlerLIBS=
136758544669SStefan Bühlerfound_crypt=no
1368d8d7d197SStefan BühlerAC_SEARCH_LIBS([crypt_r], [crypt],
1369d8d7d197SStefan Bühler  [
1370c9249672SStefan Bühler    AC_DEFINE([HAVE_CRYPT_R], [1], [crypt_r])
137158544669SStefan Bühler    AC_CHECK_HEADERS([crypt.h])
1372c9249672SStefan Bühler    CRYPT_LIB=$LIBS
137358544669SStefan Bühler    found_crypt=crypt_r
1374d8d7d197SStefan Bühler  ],
137558544669SStefan Bühler  [AC_SEARCH_LIBS([crypt], [crypt], [
1376d7cd5b08SStefan Bühler    AC_DEFINE([HAVE_CRYPT], [1], [crypt])
137758544669SStefan Bühler    AC_CHECK_HEADERS([crypt.h])
1378c9249672SStefan Bühler    CRYPT_LIB=$LIBS
137958544669SStefan Bühler    found_crypt=crypt
138058544669SStefan Bühler  ])]
1381d8d7d197SStefan Bühler)
138281587537SStefan BühlerLIBS=$save_LIBS
1383c9249672SStefan BühlerAC_SUBST([CRYPT_LIB])
138481587537SStefan Bühler
138558544669SStefan BühlerAC_MSG_CHECKING([crypt_r/crypt support])
138658544669SStefan BühlerAC_MSG_RESULT([$found_crypt])
138758544669SStefan Bühler
138841cd7d25SStefan Bühlerdnl check whether sendfilev needs -lsendfile
1389c0ced4e8SGlenn Strausscase "$host_os" in
1390c0ced4e8SGlenn Strauss*sunos*|*solaris* )
139141cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
139281587537SStefan Bühlersave_LIBS=$LIBS
139341cd7d25SStefan BühlerLIBS=
139441cd7d25SStefan Bühlerhave_sendfilev=no
1395d8d7d197SStefan BühlerAC_SEARCH_LIBS([sendfilev], [sendfile], [
139641cd7d25SStefan Bühler  if test -z "$LIBS"; then
139741cd7d25SStefan Bühler    have_sendfilev=yes
139841cd7d25SStefan Bühler  else
139941cd7d25SStefan Bühler    have_sendfilev=$LIBS
140081587537SStefan Bühler  fi
140141cd7d25SStefan Bühler  SENDFILE_LIB=$LIBS
140241cd7d25SStefan Bühler  AC_DEFINE([HAVE_SENDFILEV], [1], [solaris sendfilev])
140381587537SStefan Bühler])
140481587537SStefan BühlerLIBS=$save_LIBS
1405d8d7d197SStefan BühlerAC_SUBST([SENDFILE_LIB])
140681587537SStefan Bühler
140741cd7d25SStefan BühlerAC_MSG_CHECKING([solaris sendfilev present])
140841cd7d25SStefan BühlerAC_MSG_RESULT([$have_sendfilev])
1409c0ced4e8SGlenn Strauss  ;;
1410c0ced4e8SGlenn Strauss* ) ;;
1411c0ced4e8SGlenn Straussesac
141241cd7d25SStefan Bühler
141341cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
141441cd7d25SStefan Bühler
1415d8d7d197SStefan Bühlercase "$host_os" in
141681587537SStefan Bühler*mingw* ) LIBS="$LIBS -lwsock32" ;;
141781587537SStefan Bühler* ) ;;
141881587537SStefan Bühleresac
141981587537SStefan Bühler
1420d8d7d197SStefan BühlerAC_CHECK_FUNCS([\
1421d8d7d197SStefan Bühler  arc4random_buf \
1422d8d7d197SStefan Bühler  chroot \
1423d8d7d197SStefan Bühler  clock_gettime \
14240d62b865SGlenn Strauss  copy_file_range \
1425d8d7d197SStefan Bühler  explicit_bzero \
142679760d93SStefan Bühler  explicit_memset \
142767515718SStefan Bühler  fork \
1428d8d7d197SStefan Bühler  getloadavg \
1429d8d7d197SStefan Bühler  getuid \
1430d8d7d197SStefan Bühler  gmtime_r \
14313579c322SGlenn Strauss  inet_aton \
1432d8d7d197SStefan Bühler  inet_pton \
1433d8d7d197SStefan Bühler  issetugid \
1434d8d7d197SStefan Bühler  jrand48 \
1435d8d7d197SStefan Bühler  localtime_r \
1436d8d7d197SStefan Bühler  lstat \
1437d8d7d197SStefan Bühler  madvise \
143882fbfcbaSGlenn Strauss  mempcpy \
1439d8d7d197SStefan Bühler  memset_s \
14409f62f1b1SGlenn Strauss  mkostemp \
1441d8d7d197SStefan Bühler  pipe2 \
1442d8d7d197SStefan Bühler  poll \
14435cab11b7SGlenn Strauss  pread \
14445cab11b7SGlenn Strauss  pwrite \
1445d8d7d197SStefan Bühler  sendfile \
1446d8d7d197SStefan Bühler  sendfile64 \
14475cab11b7SGlenn Strauss  splice \
1448d8d7d197SStefan Bühler  srandom \
144986c39754SGlenn Strauss  strerror_r \
1450f8cc9fb9SGlenn Strauss  timegm \
1451d8d7d197SStefan Bühler])
145241cd7d25SStefan BühlerAC_CHECK_HEADERS([linux/random.h],   [AC_CHECK_FUNCS([getrandom])])
1453aeba3144SGlenn StraussAC_CHECK_HEADERS([malloc.h],         [AC_CHECK_FUNCS([malloc_trim mallopt])])
1454aeba3144SGlenn StraussAC_CHECK_HEADERS([signal.h],         [AC_CHECK_FUNCS([signal sigaction])])
1455aeba3144SGlenn StraussAC_CHECK_HEADERS([sys/epoll.h],      [AC_CHECK_FUNCS([epoll_ctl])])
1456aeba3144SGlenn StraussAC_CHECK_HEADERS([sys/event.h],      [AC_CHECK_FUNCS([kqueue])])
1457aeba3144SGlenn StraussAC_CHECK_HEADERS([sys/mman.h],       [AC_CHECK_FUNCS([mmap])])
1458aeba3144SGlenn StraussAC_CHECK_HEADERS([sys/random.h],     [AC_CHECK_FUNCS([getentropy])])
1459aeba3144SGlenn StraussAC_CHECK_HEADERS([sys/resource.h],   [AC_CHECK_FUNCS([getrlimit])])
1460aeba3144SGlenn StraussAC_CHECK_HEADERS([sys/uio.h],        [AC_CHECK_FUNCS([preadv pwritev writev])])
1461aeba3144SGlenn Straussif test "$ac_cv_func_poll" = no; then
1462aeba3144SGlenn Strauss  AC_CHECK_HEADERS([sys/select.h])
1463aeba3144SGlenn Strauss  AC_CHECK_FUNCS([select])
1464aeba3144SGlenn Straussfi
1465448621e0SGlenn Strauss
1466b6bd11c1SDavid Carliercase "$host_os" in
1467448621e0SGlenn Strauss*sunos*|*solaris* )
1468448621e0SGlenn Strauss  AC_CHECK_HEADERS([priv.h], [AC_CHECK_FUNCS([setpflags])])
1469448621e0SGlenn Strauss  AC_CHECK_HEADERS([port.h], [AC_CHECK_FUNCS([port_create])])
1470448621e0SGlenn Strauss  AC_CHECK_HEADERS([\
1471448621e0SGlenn Strauss    sys/devpoll.h \
1472448621e0SGlenn Strauss    sys/filio.h \
1473448621e0SGlenn Strauss  ])
1474448621e0SGlenn Strauss  ;;
1475b6bd11c1SDavid Carlier* ) ;;
1476b6bd11c1SDavid Carlieresac
1477d7be04beSLoganaden Velvindron
147841cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
1479d8d7d197SStefan BühlerAC_MSG_CHECKING([if weak symbols are supported])
1480d8d7d197SStefan BühlerAC_LINK_IFELSE(
1481d8d7d197SStefan Bühler  [AC_LANG_PROGRAM([[
1482d7be04beSLoganaden Velvindron    __attribute__((weak)) void __dummy(void *x) { }
1483d7be04beSLoganaden Velvindron    void f(void *x) { __dummy(x); }
1484d7be04beSLoganaden Velvindron  ]])],
1485d7be04beSLoganaden Velvindron  [
1486d8d7d197SStefan Bühler    AC_MSG_RESULT([yes])
1487d7be04beSLoganaden Velvindron    AC_DEFINE([HAVE_WEAK_SYMBOLS], [1], [weak symbols are supported])
1488d8d7d197SStefan Bühler  ],
1489d8d7d197SStefan Bühler  [AC_MSG_RESULT([no])]
1490d8d7d197SStefan Bühler)
149181587537SStefan Bühler
149241cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
1493d8d7d197SStefan BühlerAC_MSG_CHECKING([for Large File System support])
1494d8d7d197SStefan BühlerAC_ARG_ENABLE([lfs],
1495acca2a3fSGlenn Strauss  [AS_HELP_STRING([--enable-lfs],
1496d8d7d197SStefan Bühler    [Turn on Large File System (default)]
1497d8d7d197SStefan Bühler  )],
1498d8d7d197SStefan Bühler  [
1499d8d7d197SStefan Bühler    case "${enableval}" in
150041cd7d25SStefan Bühler    yes) ENABLE_LFS=yes ;;
150147df989cSGlenn Strauss    no) ENABLE_LFS=yes
150247df989cSGlenn Strauss        AC_MSG_NOTICE([large file support forced; --disable-lfs ignored]) ;;
1503d8d7d197SStefan Bühler    *) AC_MSG_ERROR([bad value ${enableval} for --enable-lfs]) ;;
1504d8d7d197SStefan Bühler    esac
1505d8d7d197SStefan Bühler  ],
150641cd7d25SStefan Bühler  [ ENABLE_LFS=yes ]
1507d8d7d197SStefan Bühler)
150841cd7d25SStefan BühlerAC_MSG_RESULT([$ENABLE_LFS])
150941cd7d25SStefan Bühlerif test "$ENABLE_LFS" = yes; then
15101bb0cbc7SGlenn Strauss  CPPFLAGS="${CPPFLAGS} -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES -D_DEFAULT_SOURCE"
151182c199dbSGlenn Strauss  AC_SYS_LARGEFILE
151241cd7d25SStefan Bühlerfi
151381587537SStefan Bühler
1514529b0685SStefan Bühlerdnl check if sendfile works
151541cd7d25SStefan Bühlerif test "$ac_cv_func_sendfile" = yes; then
151641cd7d25SStefan Bühler  AC_MSG_NOTICE([----------------------------------------])
1517d8d7d197SStefan Bühler  AC_MSG_CHECKING([if sendfile works])
1518d8d7d197SStefan Bühler  if test "$cross_compiling" = no; then
1519acca2a3fSGlenn Strauss    AC_RUN_IFELSE([AC_LANG_SOURCE(
1520acca2a3fSGlenn Strauss      [[
152181587537SStefan Bühler        #ifdef HAVE_SYS_SENDFILE_H
152281587537SStefan Bühler        #include <sys/sendfile.h>
152381587537SStefan Bühler        #endif /* HAVE_SYS_SENDFILE_H */
152481587537SStefan Bühler        #include <errno.h>
15250ebcfbd7SGlenn Strauss        #include <sys/types.h>
15260ebcfbd7SGlenn Strauss        #include <sys/socket.h>
15270ebcfbd7SGlenn Strauss        #include <sys/uio.h>
15286516c5a2SGlenn Strauss        int main(void) {
152981587537SStefan Bühler          int o = 0;
153081587537SStefan Bühler          if (-1 == sendfile(-1, 0, &o, 0) && errno == ENOSYS) return -1;
153181587537SStefan Bühler          return 0;
1532d8d7d197SStefan Bühler        }
1533acca2a3fSGlenn Strauss      ]])],
1534d8d7d197SStefan Bühler      [AC_MSG_RESULT([yes])],
1535d8d7d197SStefan Bühler      [
1536d8d7d197SStefan Bühler        AC_MSG_RESULT([no])
1537d8d7d197SStefan Bühler        AC_DEFINE([HAVE_SENDFILE_BROKEN], [1], [broken sendfile])
1538acca2a3fSGlenn Strauss      ],[]
1539d8d7d197SStefan Bühler    )
154081587537SStefan Bühler  fi
154181587537SStefan Bühlerfi
154281587537SStefan Bühler
154381587537SStefan Bühlerdnl Check for IPv6 support
154441cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
1545d8d7d197SStefan BühlerAC_ARG_ENABLE([ipv6],
1546acca2a3fSGlenn Strauss  [AS_HELP_STRING([--disable-ipv6], [disable IPv6 support])],
1547d8d7d197SStefan Bühler  [
1548d8d7d197SStefan Bühler    case "${enableval}" in
154981587537SStefan Bühler    yes) ipv6=true ;;
155081587537SStefan Bühler    no) ipv6=false ;;
1551d8d7d197SStefan Bühler    *) AC_MSG_ERROR([bad value ${enableval} for --enable-ipv6]) ;;
1552d8d7d197SStefan Bühler    esac
1553d8d7d197SStefan Bühler  ],
1554d8d7d197SStefan Bühler  [ipv6=true]
1555d8d7d197SStefan Bühler)
155681587537SStefan Bühler
1557d8d7d197SStefan Bühlerif test "$ipv6" = true; then
1558d8d7d197SStefan Bühler  AC_CACHE_CHECK([for IPv6 support], [ac_cv_ipv6_support], [
1559acca2a3fSGlenn Strauss    AC_LINK_IFELSE([AC_LANG_PROGRAM(
1560acca2a3fSGlenn Strauss      [[
1561d8d7d197SStefan Bühler        #include <sys/types.h>
156281587537SStefan Bühler        #include <sys/socket.h>
1563d8d7d197SStefan Bühler        #include <netinet/in.h>
1564acca2a3fSGlenn Strauss      ]],
1565acca2a3fSGlenn Strauss      [[
1566d8d7d197SStefan Bühler        struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0;
1567acca2a3fSGlenn Strauss      ]])],
1568d8d7d197SStefan Bühler      [ac_cv_ipv6_support=yes],
1569d8d7d197SStefan Bühler      [ac_cv_ipv6_support=no]
1570d8d7d197SStefan Bühler    )
1571d8d7d197SStefan Bühler  ])
157281587537SStefan Bühler
157381587537SStefan Bühler  if test "$ac_cv_ipv6_support" = yes; then
1574d8d7d197SStefan Bühler    AC_DEFINE([HAVE_IPV6], [1], [Whether to enable IPv6 support])
157541cd7d25SStefan Bühler  else
157641cd7d25SStefan Bühler    AC_MSG_ERROR([IPv6 seems broken.  Fix it or build with --disable-ipv6])
157781587537SStefan Bühler  fi
157881587537SStefan Bühlerfi
157981587537SStefan Bühler
1580caab4cdfSGlenn Strauss# disable mmap by default
1581f4c3a99eSStefan Bühler# lighttpd may always use mmap with files it owns (created tmp files)
158241cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
1583caab4cdfSGlenn StraussAC_MSG_CHECKING([use mmap if available])
1584d8d7d197SStefan BühlerAC_ARG_ENABLE([mmap],
1585acca2a3fSGlenn Strauss  [AS_HELP_STRING([--enable-mmap],
1586caab4cdfSGlenn Strauss    [use mmap if available]
1587d8d7d197SStefan Bühler  )],
1588d8d7d197SStefan Bühler  [
1589d8d7d197SStefan Bühler    case "${enableval}" in
1590f4c3a99eSStefan Bühler    yes) mmap=true ;;
1591f4c3a99eSStefan Bühler    no) mmap=false ;;
1592d8d7d197SStefan Bühler    *) AC_MSG_ERROR([bad value ${enableval} for --enable-mmap]) ;;
1593d8d7d197SStefan Bühler    esac
1594d8d7d197SStefan Bühler  ],
1595d8d7d197SStefan Bühler  [mmap=false]
1596d8d7d197SStefan Bühler)
159741cd7d25SStefan BühlerAC_MSG_RESULT([$mmap])
1598f4c3a99eSStefan Bühler
1599d8d7d197SStefan Bühlerif test "$mmap" = true; then
1600d8d7d197SStefan Bühler  AC_DEFINE([ENABLE_MMAP], [1], [Use mmap if available])
1601f4c3a99eSStefan Bühlerfi
1602f4c3a99eSStefan Bühler
160381587537SStefan Bühler
160441cd7d25SStefan BühlerAC_MSG_NOTICE([----------------------------------------])
1605529b0685SStefan Bühlerdnl check for extra compiler options (warning options)
1606d8d7d197SStefan Bühlerif test "${GCC}" = yes; then
1607457d78c6SGlenn Strauss  TRY_CFLAGS([-pipe -Wall -W -Wshadow -pedantic])
160881587537SStefan Bühlerfi
160981587537SStefan Bühler
1610d8d7d197SStefan BühlerAC_ARG_ENABLE([extra-warnings],
1611acca2a3fSGlenn Strauss  [AS_HELP_STRING([--enable-extra-warnings],
1612d8d7d197SStefan Bühler    [enable extra warnings (gcc specific)]
1613d8d7d197SStefan Bühler  )],
1614d8d7d197SStefan Bühler  [
1615d8d7d197SStefan Bühler    case "${enableval}" in
16161e8147fcSGlenn Strauss    error) extrawarnings=error ;;
161781587537SStefan Bühler    yes) extrawarnings=true ;;
161881587537SStefan Bühler    no) extrawarnings=false ;;
1619d8d7d197SStefan Bühler    *) AC_MSG_ERROR([bad value ${enableval} for --enable-extra-warnings]) ;;
1620d8d7d197SStefan Bühler    esac
1621d8d7d197SStefan Bühler  ],
1622d8d7d197SStefan Bühler  [extrawarnings=false]
1623d8d7d197SStefan Bühler)
162481587537SStefan Bühler
1625d8d7d197SStefan Bühlerif test "$extrawarnings" = true || test "$extrawarnings" = error; then
16262f46736eSGlenn Strauss  TRY_CFLAGS([-g -O2 -g2 -Wall -Wmissing-declarations -Wcast-align -Wsign-compare -Wnested-externs -Wpointer-arith -D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security])
1627f95ca5efSGlenn Strauss  TRY_CFLAGS([-fstack-protector-strong])
1628fbefda35SGlenn Strauss  case "$host_os" in
1629fbefda35SGlenn Strauss    *darwin* ) ;;
1630fbefda35SGlenn Strauss    * ) TRY_LDFLAGS([-Wl,--as-needed]) ;;
1631fbefda35SGlenn Strauss  esac
1632d8d7d197SStefan Bühler  if test "$extrawarnings" = error; then
16331e8147fcSGlenn Strauss    AS_VAR_APPEND([CFLAGS], [" -Werror"])
1634fbefda35SGlenn Strauss    case "$host_os" in
1635fbefda35SGlenn Strauss      *darwin* ) ;;
1636fbefda35SGlenn Strauss      * ) AS_VAR_APPEND([LDFLAGS], [" -Wl,--fatal-warnings"]) ;;
1637fbefda35SGlenn Strauss    esac
16381e8147fcSGlenn Strauss  fi
163981587537SStefan Bühlerfi
164081587537SStefan Bühler
164181587537SStefan Bühlerdnl build version-id
16426976b5e8SStefan BühlerLIGHTTPD_VERSION_ID=m4_format([0x%x%02x%02x], m4_unquote(m4_split(AC_PACKAGE_VERSION, [\.])))
164381587537SStefan BühlerAC_DEFINE_UNQUOTED([LIGHTTPD_VERSION_ID], [$LIGHTTPD_VERSION_ID], [lighttpd-version-id])
164481587537SStefan Bühler
1645d8d7d197SStefan BühlerAC_CONFIG_FILES([\
1646d8d7d197SStefan Bühler  distribute.sh \
164706721fcbSMarcus Rückert  doc/config/conf.d/Makefile \
164806721fcbSMarcus Rückert  doc/config/Makefile \
1649d8d7d197SStefan Bühler  doc/config/vhosts.d/Makefile \
1650d8d7d197SStefan Bühler  doc/Makefile \
1651d8d7d197SStefan Bühler  doc/outdated/Makefile \
1652ac087bd9SMarcus Rückert  doc/scripts/Makefile \
165310e5fda6SStefan Bühler  doc/systemd/Makefile \
1654d8d7d197SStefan Bühler  Makefile \
1655d8d7d197SStefan Bühler  src/Makefile \
1656d8d7d197SStefan Bühler  tests/docroot/Makefile \
1657d8d7d197SStefan Bühler  tests/Makefile \
1658d8d7d197SStefan Bühler])
165981587537SStefan BühlerAC_OUTPUT
166081587537SStefan Bühler
1661d8d7d197SStefan Bühlerdo_build="\
1662d8d7d197SStefan Bühler  mod_access \
1663d8d7d197SStefan Bühler  mod_accesslog \
1664a1bb0c0dSGlenn Strauss  mod_ajp13 \
1665d8d7d197SStefan Bühler  mod_alias \
1666d8d7d197SStefan Bühler  mod_auth \
1667d8d7d197SStefan Bühler  mod_authn_file \
1668d8d7d197SStefan Bühler  mod_cgi \
1669d8d7d197SStefan Bühler  mod_deflate \
1670d8d7d197SStefan Bühler  mod_dirlisting \
1671d8d7d197SStefan Bühler  mod_evhost \
1672d8d7d197SStefan Bühler  mod_expire \
1673d8d7d197SStefan Bühler  mod_extforward \
1674d8d7d197SStefan Bühler  mod_fastcgi \
1675d8d7d197SStefan Bühler  mod_indexfile \
1676d8d7d197SStefan Bühler  mod_proxy \
1677a45f3bacSStefan Bühler  mod_redirect \
1678a45f3bacSStefan Bühler  mod_rewrite \
1679d8d7d197SStefan Bühler  mod_rrdtool \
1680d8d7d197SStefan Bühler  mod_scgi \
1681d8d7d197SStefan Bühler  mod_setenv \
1682d8d7d197SStefan Bühler  mod_simple_vhost \
1683fc1ddbedSGlenn Strauss  mod_sockproxy \
1684d8d7d197SStefan Bühler  mod_ssi \
1685d8d7d197SStefan Bühler  mod_staticfile \
1686d8d7d197SStefan Bühler  mod_status \
1687d8d7d197SStefan Bühler  mod_userdir \
1688d8d7d197SStefan Bühler  mod_vhostdb \
1689d8d7d197SStefan Bühler  mod_webdav \
1690d8d7d197SStefan Bühler  mod_wstunnel \
1691d8d7d197SStefan Bühler"
169281587537SStefan Bühler
1693a45f3bacSStefan Bühlerlighty_track_feature() {
1694a45f3bacSStefan Bühler  if eval "$3"; then
1695a45f3bacSStefan Bühler    enable_feature="$enable_feature $1"
1696a45f3bacSStefan Bühler    do_build="$do_build $2"
169781587537SStefan Bühler  else
1698a45f3bacSStefan Bühler    disable_feature="$disable_feature $1"
1699a45f3bacSStefan Bühler    no_build="$no_build $2"
170081587537SStefan Bühler  fi
1701a45f3bacSStefan Bühler}
170281587537SStefan Bühler
1703a45f3bacSStefan Bühlerlighty_track_feature "regex-conditionals" "" \
17049abc08d7SGlenn Strauss  'test "$WITH_PCRE" != no || test "$WITH_PCRE2" != no'
1705c073a31fSGlenn Strauss
170686c2d309SGlenn Strausslighty_track_feature "mysql" "mod_vhostdb_mysql" \
1707a45f3bacSStefan Bühler  'test "$WITH_MYSQL" != no'
170881587537SStefan Bühler
1709a45f3bacSStefan Bühlerlighty_track_feature "postgresql" "mod_vhostdb_pgsql" \
1710a45f3bacSStefan Bühler  'test "$WITH_PGSQL" != no'
1711c073a31fSGlenn Strauss
1712fed2ecaeSGlenn Strausslighty_track_feature "dbi" "mod_authn_dbi mod_vhostdb_dbi" \
1713a45f3bacSStefan Bühler  'test "$WITH_DBI" != no'
171481587537SStefan Bühler
171586c2d309SGlenn Strausslighty_track_feature "lua" "mod_magnet" \
1716a45f3bacSStefan Bühler  'test "$WITH_LUA" != no'
171781587537SStefan Bühler
17184ac239c4SGlenn Strausslighty_track_feature "maxminddb" "mod_maxminddb" \
17194ac239c4SGlenn Strauss  'test "$WITH_MAXMINDDB" != no'
17204ac239c4SGlenn Strauss
1721a45f3bacSStefan Bühlerlighty_track_feature "compress-gzip compress-deflate" "" \
1722a45f3bacSStefan Bühler  'test "$WITH_ZLIB" != no'
172381587537SStefan Bühler
1724a45f3bacSStefan Bühlerlighty_track_feature "compress-bzip2" "" \
1725a45f3bacSStefan Bühler  'test "$WITH_BZIP2" != no'
172606cb0c30SGlenn Strauss
17278d5e237cSGlenn Strausslighty_track_feature "compress-brotli" "" \
17288d5e237cSGlenn Strauss  'test "$WITH_BROTLI" != no'
17298d5e237cSGlenn Strauss
173037dd53baSGlenn Strausslighty_track_feature "compress-zstd" "" \
173137dd53baSGlenn Strauss  'test "$WITH_ZSTD" != no'
173237dd53baSGlenn Strauss
1733a45f3bacSStefan Bühlerlighty_track_feature "kerberos" "mod_authn_gssapi" \
1734a45f3bacSStefan Bühler  'test "$WITH_KRB5" != no'
173581587537SStefan Bühler
1736a45f3bacSStefan Bühlerlighty_track_feature "ldap" "mod_authn_ldap mod_vhostdb_ldap" \
1737a45f3bacSStefan Bühler  'test "$WITH_LDAP" != no'
173881587537SStefan Bühler
1739df4812ecSGlenn Strausslighty_track_feature "pam" "mod_authn_pam" \
1740df4812ecSGlenn Strauss  'test "$WITH_PAM" != no'
1741df4812ecSGlenn Strauss
1742a45f3bacSStefan Bühlerlighty_track_feature "network-openssl" "mod_openssl" \
1743c3a85c9bSGlenn Strauss  'test "$WITH_OPENSSL" != no'
174481587537SStefan Bühler
1745cb753ec5SGlenn Strausslighty_track_feature "network-mbedtls" "mod_mbedtls" \
1746cb753ec5SGlenn Strauss  'test "$WITH_MBEDTLS" != no'
1747cb753ec5SGlenn Strauss
1748bf4054f8SGlenn Strausslighty_track_feature "network-gnutls" "mod_gnutls" \
1749bf4054f8SGlenn Strauss  'test "$WITH_GNUTLS" != no'
1750bf4054f8SGlenn Strauss
1751e00deb55SGlenn Strausslighty_track_feature "network-nss" "mod_nss" \
1752e00deb55SGlenn Strauss  'test "$WITH_NSS" != no'
1753e00deb55SGlenn Strauss
1754c3a85c9bSGlenn Strausslighty_track_feature "network-wolfssl" "mod_wolfssl" \
1755c3a85c9bSGlenn Strauss  'test "$WITH_WOLFSSL" != no'
1756c3a85c9bSGlenn Strauss
1757a45f3bacSStefan Bühlerlighty_track_feature "auth-crypt" "" \
1758a45f3bacSStefan Bühler  'test "$found_crypt" != no'
175981587537SStefan Bühler
1760a45f3bacSStefan Bühlerlighty_track_feature "network-ipv6" "" \
1761a45f3bacSStefan Bühler  'test "$ac_cv_ipv6_support" != no'
176281587537SStefan Bühler
1763a45f3bacSStefan Bühlerlighty_track_feature "large-files" "" \
1764a45f3bacSStefan Bühler  'test "$ENABLE_LFS" = yes'
176581587537SStefan Bühler
176628fc51c7SGlenn Strausscase "$host_os" in
176728fc51c7SGlenn Strauss*linux* )
176828fc51c7SGlenn Strausslighty_track_feature "stat-cache-inotify" "" \
176928fc51c7SGlenn Strauss  'test "$ac_cv_header_sys_inotify_h" != no'
177028fc51c7SGlenn Strauss    ;;
177128fc51c7SGlenn Strauss* ) ;;
177228fc51c7SGlenn Straussesac
177328fc51c7SGlenn Strauss
177428fc51c7SGlenn Strausscase "$host_os" in
177528fc51c7SGlenn Strauss*bsd*|*darwin* )
177628fc51c7SGlenn Strausslighty_track_feature "stat-cache-kqueue" "" \
177728fc51c7SGlenn Strauss  'test "$ac_cv_func_kqueue" != no'
177828fc51c7SGlenn Strauss    ;;
177928fc51c7SGlenn Strauss* ) ;;
178028fc51c7SGlenn Straussesac
178128fc51c7SGlenn Strauss
178228fc51c7SGlenn Strausscase "$host_os" in
178328fc51c7SGlenn Strauss*bsd*|*darwin*|*linux* )
178428fc51c7SGlenn Strauss    ;;
178528fc51c7SGlenn Strauss* )
1786a45f3bacSStefan Bühlerlighty_track_feature "stat-cache-fam" "" \
1787a45f3bacSStefan Bühler  'test "$WITH_FAM" != no'
178828fc51c7SGlenn Strauss    ;;
178928fc51c7SGlenn Straussesac
179081587537SStefan Bühler
1791a45f3bacSStefan Bühlerlighty_track_feature "webdav-properties" "" \
1792a45f3bacSStefan Bühler  'test "$WITH_WEBDAV_PROPS" != no'
179381587537SStefan Bühler
1794a45f3bacSStefan Bühlerlighty_track_feature "webdav-locks" "" \
1795a45f3bacSStefan Bühler  'test "$WITH_WEBDAV_LOCKS" != no'
179681587537SStefan Bühler
1797529b0685SStefan Bühlerdnl output
179881587537SStefan Bühler
179981587537SStefan Bühler$ECHO
180081587537SStefan Bühler$ECHO "Plugins:"
180181587537SStefan Bühler$ECHO
180281587537SStefan Bühler
180381587537SStefan Bühler$ECHO "enabled: "
180481587537SStefan Bühlerfor p in $do_build; do
180581587537SStefan Bühler  $ECHO "  $p"
180681587537SStefan Bühlerdone | sort
180781587537SStefan Bühler
180881587537SStefan Bühler$ECHO "disabled: "
180981587537SStefan Bühlerfor p in $no_build; do
181081587537SStefan Bühler  $ECHO "  $p"
181181587537SStefan Bühlerdone | sort
181281587537SStefan Bühler
181381587537SStefan Bühler$ECHO
181481587537SStefan Bühler$ECHO "Features:"
181581587537SStefan Bühler$ECHO
181681587537SStefan Bühler
181781587537SStefan Bühler$ECHO "enabled: "
181881587537SStefan Bühlerfor p in $enable_feature; do
181981587537SStefan Bühler  $ECHO "  $p"
182081587537SStefan Bühlerdone | sort
182181587537SStefan Bühler
182281587537SStefan Bühler$ECHO "disabled: "
182381587537SStefan Bühlerfor p in $disable_feature; do
182481587537SStefan Bühler  $ECHO "  $p"
182581587537SStefan Bühlerdone | sort
182681587537SStefan Bühler
182781587537SStefan Bühler$ECHO
1828