Annotation of embedaddon/lighttpd/configure.ac, revision 1.1.1.3
1.1 misho 1: dnl -*- Autoconf -*-
2: dnl Process this file with autoconf to produce a configure script.
3: AC_PREREQ(2.57)
1.1.1.3 ! misho 4: AC_INIT([lighttpd], [1.4.41], [contact@lighttpd.net])
1.1 misho 5: AC_CONFIG_SRCDIR([src/server.c])
6: AC_CONFIG_HEADER([config.h])
7: AC_CONFIG_MACRO_DIR([m4])
8:
1.1.1.3 ! misho 9: AC_CANONICAL_HOST
1.1 misho 10:
11: dnl HOW FUCKING BROKEN IS AUTOMAKE...
12: dnl serial-tests is not recognized before 1.12, and required for serial tests with 1.13, sane version checks "impossible"
13: dnl if you don't use the default (symlinked) automake on your box, set AUTOMAKE to the path you're using
14: m4_define([serial_tests], [
15: m4_esyscmd([case `${AUTOMAKE:-automake} --version | head -n 1` in
16: *1.11.*|*1.10.*|*1.9.*);;
17: *) echo serial-tests;;
18: esac])
19: ])
20:
1.1.1.3 ! misho 21: AM_INIT_AUTOMAKE([-Wall -Wno-portability -Wno-override foreign dist-xz tar-ustar] serial_tests)
1.1 misho 22:
23: dnl enable with --enable-silent-rules or make V=0 (needs automake >= 1.11)
24: m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES])
25:
1.1.1.3 ! misho 26:
! 27: dnl @synopsis TRY_CFLAGS [compiler flags]
! 28: dnl @summary check whether compiler supports given flags and adds them to CFLAGS
! 29: AC_DEFUN([TRY_CFLAGS],
! 30: [dnl
! 31: AC_MSG_CHECKING([if $CC supports $1])
! 32: AC_LANG_PUSH([C])
! 33: ac_try_cflags_saved_cflags="${CFLAGS}"
! 34: CFLAGS="${CFLAGS} $1"
! 35: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
! 36: [AC_MSG_RESULT([yes])],
! 37: [
! 38: AC_MSG_ERROR([no])
! 39: CFLAGS="${ac_try_cflags_saved_cflags}"
! 40: ]
! 41: )
! 42: AC_LANG_POP([C])
! 43: ])
! 44:
! 45: dnl @synopsis TRY_LDFLAGS [linker flags]
! 46: dnl @summary check whether linker supports given flags and adds them to LDFLAGS
! 47: AC_DEFUN([TRY_LDFLAGS],
! 48: [dnl
! 49: AC_MSG_CHECKING([if $LD supports $1])
! 50: AC_LANG_PUSH([C])
! 51: ac_try_ldflags_saved_ldflags="${LDFLAGS}"
! 52: LDFLAGS="${LDFLAGS} $1"
! 53: AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
! 54: [AC_MSG_RESULT([yes])],
! 55: [
! 56: AC_MSG_ERROR([no])
! 57: LDFLAGS="${ac_try_ldflags_saved_cflags}"
! 58: ]
! 59: )
! 60: AC_LANG_POP([C])
! 61: ])
! 62:
1.1 misho 63: dnl Checks for programs.
64: AC_PROG_CC
65: AM_PROG_CC_C_O
66: AC_PROG_LD
67: AC_PROG_INSTALL
68: AC_PROG_AWK
69: AC_PROG_CPP
70: dnl AC_PROG_CXX
71: AC_PROG_LN_S
72: AC_PROG_MAKE_SET
73:
74: dnl AM_PROG_AR is needed for some linker stuff
75: dnl AC_USE_SYSTEM_EXTENSIONS requires autoconf 2.60
76: m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [AC_USE_SYSTEM_EXTENSIONS])
77: dnl AM_PROG_AR requires automake 1.11 (and uses AC_COMPILE_IFELSE which wants AC_USE_SYSTEM_EXTENSIONS)
78: m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
79:
80: dnl check environment
81: AC_AIX
82: AC_ISC_POSIX
83: AC_MINIX
84:
85: dnl AC_CANONICAL_HOST
86: case $host_os in
87: *darwin*|*cygwin*|*aix*|*mingw* ) NO_RDYNAMIC=yes;;
88: * ) NO_RDYNAMIC=no;;
89: esac
90: AM_CONDITIONAL(NO_RDYNAMIC, test x$NO_RDYNAMIC = xyes)
91:
1.1.1.3 ! misho 92: if test -z "$LIGHTTPD_STATIC"; then
! 93: LIGHTTPD_STATIC=no
! 94: fi
! 95: AM_CONDITIONAL(LIGHTTPD_STATIC, test x$LIGHTTPD_STATIC = xyes)
! 96:
1.1 misho 97: AC_EXEEXT
98:
99: dnl libtool
100: AC_DISABLE_STATIC
101: AC_ENABLE_SHARED
102:
103: AC_LIBTOOL_DLOPEN
104: AC_PROG_LIBTOOL
105:
106: dnl for solaris
107: CPPFLAGS="${CPPFLAGS} -D_REENTRANT -D__EXTENSIONS__"
108:
109: dnl Checks for header files.
110: AC_HEADER_STDC
111: AC_HEADER_SYS_WAIT
112: AC_CHECK_HEADERS([arpa/inet.h fcntl.h netinet/in.h stdlib.h string.h \
113: sys/socket.h sys/time.h unistd.h sys/sendfile.h sys/uio.h \
114: getopt.h sys/epoll.h sys/select.h poll.h sys/poll.h sys/devpoll.h sys/filio.h \
1.1.1.3 ! misho 115: sys/mman.h sys/event.h port.h pwd.h \
1.1 misho 116: sys/resource.h sys/un.h syslog.h sys/prctl.h uuid/uuid.h])
117:
118: dnl Checks for typedefs, structures, and compiler characteristics.
119: AC_C_CONST
120: AC_C_INLINE
121: AC_C_CHAR_UNSIGNED
122: AC_TYPE_OFF_T
123: AC_TYPE_PID_T
124: AC_TYPE_SIZE_T
125:
126: AC_CHECK_MEMBER(struct tm.tm_gmtoff,[AC_DEFINE([HAVE_STRUCT_TM_GMTOFF],[1],[gmtoff in struct tm])],,[#include <time.h>])
127: AC_CHECK_TYPES(struct sockaddr_storage,,,[#include <sys/socket.h>])
128: AC_CHECK_TYPES(socklen_t,,,[#include <sys/types.h>
129: #include <sys/socket.h>])
130:
131: dnl Checks for library functions.
132: AC_FUNC_FORK
133: dnl AC_FUNC_MALLOC
134: dnl AC_FUNC_MMAP
135: dnl AC_FUNC_REALLOC
136: AC_TYPE_SIGNAL
137: AC_FUNC_STAT
138: AC_FUNC_STRFTIME
139:
140: if test -z "$PKG_CONFIG"; then
141: AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
142: fi
143:
144: dnl checking for libev
145: AC_MSG_CHECKING(for libev support)
146: AC_ARG_WITH(libev,
147: AC_HELP_STRING([--with-libev@<:@=PATH@:>@],[Include libev support for fdevent handlers in PATH/include and PATH/lib]),
148: [WITH_LIBEV=$withval],[WITH_LIBEV=no])
149:
150: LIBEV_CFLAGS=""
151: LIBEV_LIBS=""
152:
153: if test "$WITH_LIBEV" != "no"; then
154: PKG_CHECK_MODULES(LIBEV, libev, [], [
155: dnl no pkg-config for libev, searching manually:
156:
157: if test "$WITH_LIBEV" != "yes"; then
158: LIBEV_CFLAGS="-I$WITH_LIBEV/include"
159: LIBEV_LIBS="-L$WITH_LIBEV/lib -lev"
160: else
161: AC_CHECK_HEADERS([ev.h],[
162: AC_CHECK_LIB([ev], [ev_time], [
163: LIBEV_CFLAGS=""
164: LIBEV_LIBS="-lev"
165: ],[
166: AC_MSG_ERROR([libev not found])
167: ]
168: )],[
169: AC_MSG_ERROR([libev not found])
170: ]
171: )
172: fi
173: ])
174:
175: AC_DEFINE([HAVE_LIBEV], [1], [libev support])
176: fi
177:
178: AC_SUBST(LIBEV_CFLAGS)
179: AC_SUBST(LIBEV_LIBS)
180:
181: dnl Checks for database.
182: MYSQL_INCLUDE=""
183: MYSQL_LIBS=""
184:
185: AC_MSG_CHECKING(for MySQL support)
186: AC_ARG_WITH(mysql,
187: AC_HELP_STRING([--with-mysql@<:@=PATH@:>@],[Include MySQL support. PATH is the path to 'mysql_config']),
188: [WITH_MYSQL=$withval],[WITH_MYSQL=no])
189:
190: if test "$WITH_MYSQL" != "no"; then
191: AC_MSG_RESULT(yes)
192: if test "$WITH_MYSQL" = "yes"; then
193: AC_PATH_PROG(MYSQL_CONFIG, mysql_config)
194: else
195: MYSQL_CONFIG=$WITH_MYSQL
196: fi
197:
198: if test "$MYSQL_CONFIG" = ""; then
199: AC_MSG_ERROR(mysql_config is not found)
200: fi
201: if test \! -x $MYSQL_CONFIG; then
202: AC_MSG_ERROR(mysql_config not exists or not executable, use --with-mysql=path-to-mysql_config)
203: fi
204:
205: if $MYSQL_CONFIG | grep -- '--include' > /dev/null ; then
206: MYSQL_INCLUDE="`$MYSQL_CONFIG --include | sed s/\'//g`"
207: else
208: MYSQL_INCLUDE="`$MYSQL_CONFIG --cflags | sed s/\'//g`"
209: fi
210: MYSQL_LIBS="`$MYSQL_CONFIG --libs | sed s/\'//g`"
211:
212: AC_MSG_CHECKING(for MySQL includes at)
213: AC_MSG_RESULT($MYSQL_INCLUDE)
214:
215: AC_MSG_CHECKING(for MySQL libraries at)
216: AC_MSG_RESULT($MYSQL_LIBS)
217: dnl check for errmsg.h, which isn't installed by some versions of 3.21
218: old_CPPFLAGS="$CPPFLAGS"
219: CPPFLAGS="$CPPFLAGS $MYSQL_INCLUDE"
220: AC_CHECK_HEADERS(errmsg.h mysql.h)
221: CPPFLAGS="$old_CPPFLAGS"
222:
223: AC_DEFINE([HAVE_MYSQL], [1], [mysql support])
224: else
225: AC_MSG_RESULT(no)
226: fi
227:
228: AC_SUBST(MYSQL_LIBS)
229: AC_SUBST(MYSQL_INCLUDE)
230:
231: dnl Check for LDAP
232: AC_MSG_CHECKING(for LDAP support)
233: AC_ARG_WITH(ldap, AC_HELP_STRING([--with-ldap],[enable LDAP support]),
234: [WITH_LDAP=$withval], [WITH_LDAP=no])
235: AC_MSG_RESULT([$withval])
236: if test "$WITH_LDAP" != "no"; then
237: AC_CHECK_LIB(ldap, ldap_bind, [
238: AC_CHECK_HEADERS([ldap.h],[
239: LDAP_LIB=-lldap
240: AC_DEFINE([HAVE_LIBLDAP], [1], [libldap])
241: AC_DEFINE([HAVE_LDAP_H], [1])
242: AC_DEFINE([LDAP_DEPRECATED], [1], [Using deprecated ldap api])
243: ])
244: ])
245: AC_SUBST(LDAP_LIB)
246: AC_CHECK_LIB(lber, ber_printf, [
247: AC_CHECK_HEADERS([lber.h],[
248: LBER_LIB=-llber
249: AC_DEFINE([HAVE_LIBLBER], [1], [liblber])
250: AC_DEFINE([HAVE_LBER_H], [1])
251: ])
252: ])
253: AC_SUBST(LBER_LIB)
254: fi
255:
256: dnl Check for xattr
257: AC_MSG_CHECKING(for extended attributes support)
258: AC_ARG_WITH(attr, AC_HELP_STRING([--with-attr],[enable extended attribute support]),
259: [WITH_ATTR=$withval],[WITH_ATTR=no])
260: AC_MSG_RESULT($withval)
261: if test "$WITH_ATTR" != "no"; then
1.1.1.3 ! misho 262: # libattr (linux only?)
! 263: AC_CHECK_LIB(attr, attr_get, [
! 264: AC_CHECK_HEADERS([attr/attributes.h],[
! 265: ATTR_LIB=-lattr
! 266: AC_DEFINE([HAVE_XATTR], [1], [libattr])
! 267: AC_DEFINE([HAVE_ATTR_ATTRIBUTES_H], [1])
! 268: ])
! 269: ])
! 270: AC_SUBST(ATTR_LIB)
! 271:
! 272: # (Free)BSD extattr
! 273: AC_CHECK_FUNC([extattr_get_file], [
! 274: AC_CHECK_HEADERS([sys/extattr.h],[
! 275: AC_DEFINE([HAVE_EXTATTR], [1], [BSD extended attributes])
! 276: AC_DEFINE([HAVE_SYS_EXTATTR_H], [1])
! 277: ])
! 278: ])
1.1 misho 279: fi
280:
281: dnl openssl on solaris needs -lsocket -lnsl
282: AC_SEARCH_LIBS(socket,socket)
283: AC_SEARCH_LIBS(gethostbyname,nsl socket)
284: AC_SEARCH_LIBS(hstrerror,resolv)
285:
1.1.1.3 ! misho 286: dnl On Haiku accept() and friends are in libnetwork
! 287: AC_SEARCH_LIBS(accept,network)
! 288:
! 289: dnl clock_gettime() needs -lrt with glibc < 2.17, and possibly other platforms
! 290: AC_SEARCH_LIBS([clock_gettime],[rt])
! 291:
1.1 misho 292: save_LIBS=$LIBS
293: AC_SEARCH_LIBS(dlopen,dl,[
294: AC_CHECK_HEADERS([dlfcn.h],[
295: if test "$ac_cv_search_dlopen" != no; then
296: test "$ac_cv_search_dlopen" = "none required" || DL_LIB="$ac_cv_search_dlopen"
297: fi
298:
299: AC_DEFINE([HAVE_LIBDL], [1], [libdl])
300: AC_DEFINE([HAVE_DLFCN_H], [1])
301: ])
302: ])
303: LIBS=$save_LIBS
304: AC_SUBST(DL_LIB)
305:
306: dnl Check for valgrind
307: AC_MSG_CHECKING(for valgrind)
308: AC_ARG_WITH(valgrind, AC_HELP_STRING([--with-valgrind],[enable internal support for valgrind]),
309: [WITH_VALGRIND=$withval],[WITH_VALGRIND=no])
310: AC_MSG_RESULT([$WITH_VALGRIND])
311: if test "$WITH_VALGRIND" != "no"; then
312: AC_CHECK_HEADERS([valgrind/valgrind.h])
313: fi
314:
1.1.1.3 ! misho 315: dnl Checking for libunwind
! 316: AC_MSG_CHECKING(for libunwind)
! 317: AC_ARG_WITH(libunwind,
! 318: AC_HELP_STRING([--with-libunwind],[Include libunwind support for backtraces on assert failures]),
! 319: [WITH_LIBUNWIND=$withval],[WITH_LIBUNWIND=no])
! 320:
! 321: if test "$WITH_LIBUNWIND" != "no"; then
! 322: PKG_CHECK_MODULES(LIBUNWIND, libunwind)
! 323: AC_DEFINE(HAVE_LIBUNWIND, 1, [Have libunwind support])
! 324: fi
! 325:
1.1 misho 326: dnl Check for openssl
327: AC_MSG_CHECKING(for OpenSSL)
328: AC_ARG_WITH(openssl,
329: AC_HELP_STRING([--with-openssl@<:@=DIR@:>@],[Include openssl support (default no)]),
330: [WITH_OPENSSL=$withval],[WITH_OPENSSL=no])
331:
332: if test "$WITH_OPENSSL" != "no"; then
333: use_openssl=yes
334: if test "$WITH_OPENSSL" != "yes"; then
335: CPPFLAGS="$CPPFLAGS -I$WITH_OPENSSL/include"
336: LDFLAGS="$LDFLAGS -L$WITH_OPENSSL/lib"
337: fi
338: else
339: use_openssl=no
340: fi
341: AC_MSG_RESULT([$use_openssl])
342:
343: AC_ARG_WITH(openssl-includes,
344: AC_HELP_STRING([--with-openssl-includes=DIR],[OpenSSL includes]),
345: [ use_openssl=yes CPPFLAGS="$CPPFLAGS -I$withval" ]
346: )
347:
348: AC_ARG_WITH(openssl-libs,
349: AC_HELP_STRING([--with-openssl-libs=DIR],[OpenSSL libraries]),
350: [ use_openssl=yes LDFLAGS="$LDFLAGS -L$withval" ]
351: )
352:
353: AC_ARG_WITH(kerberos5,
354: AC_HELP_STRING([--with-kerberos5],[use Kerberos5 support with OpenSSL]),
355: [ use_kerberos=yes ], [use_kerberos=no]
356: )
357:
358: if test "x$use_openssl" = "xyes"; then
1.1.1.3 ! misho 359: if test "x$use_kerberos" = "xyes"; then
! 360: AC_DEFINE([USE_OPENSSL_KERBEROS], [1], [with kerberos])
1.1 misho 361: fi
362:
363: AC_CHECK_HEADERS([openssl/ssl.h])
364: OLDLIBS="$LIBS"
365: AC_CHECK_LIB(crypto, BIO_f_base64, [
366: AC_CHECK_LIB(ssl, SSL_new, [ SSL_LIB="-lssl -lcrypto"
367: AC_DEFINE(HAVE_LIBSSL, [], [Have libssl]) ], [], [ -lcrypto "$DL_LIB" ])
368: ], [], [])
369: LIBS="$OLDLIBS"
370: AC_SUBST(SSL_LIB)
371: fi
372:
373: AC_MSG_CHECKING(for perl regular expressions support)
374: AC_ARG_WITH(pcre, AC_HELP_STRING([--with-pcre],[Enable pcre support (default yes)]),
375: [WITH_PCRE=$withval],[WITH_PCRE=yes])
376: AC_MSG_RESULT([$WITH_PCRE])
377:
378: if test "$WITH_PCRE" != "no"; then
1.1.1.3 ! misho 379: if test "$WITH_PCRE" != "yes"; then
! 380: PCRE_LIB="-L$WITH_PCRE/lib -lpcre"
! 381: CPPFLAGS="$CPPFLAGS -I$WITH_PCRE/include"
! 382: else
! 383: AC_PATH_PROG(PCRECONFIG, pcre-config)
! 384: if test x"$PCRECONFIG" != x; then
! 385: PCRE_LIB=`$PCRECONFIG --libs`
! 386: CPPFLAGS="$CPPFLAGS `$PCRECONFIG --cflags`"
! 387: fi
! 388: fi
1.1 misho 389:
1.1.1.3 ! misho 390: if test x"$PCRE_LIB" != x; then
1.1 misho 391: AC_DEFINE([HAVE_LIBPCRE], [1], [libpcre])
392: AC_DEFINE([HAVE_PCRE_H], [1], [pcre.h])
1.1.1.3 ! misho 393: AC_SUBST(PCRE_LIB)
1.1 misho 394: else
1.1.1.3 ! misho 395: AC_MSG_ERROR([pcre-config not found, install the pcre-devel package or build with --without-pcre])
1.1 misho 396: fi
397: fi
398:
399: AC_MSG_CHECKING(for zlib support)
400: AC_ARG_WITH(zlib, AC_HELP_STRING([--with-zlib],[Enable zlib support for mod_compress]),
401: [WITH_ZLIB=$withval],[WITH_ZLIB=yes])
402: AC_MSG_RESULT([$WITH_ZLIB])
403:
404: if test "$WITH_ZLIB" != "no"; then
1.1.1.3 ! misho 405: if test "$WITH_ZLIB" != "yes"; then
! 406: Z_LIB="-L$WITH_ZLIB -lz"
! 407: CPPFLAGS="$CPPFLAGS -I$WITH_ZLIB"
! 408: else
! 409: AC_CHECK_LIB(z, deflate, [
! 410: AC_CHECK_HEADERS([zlib.h],[Z_LIB=-lz])
! 411: ])
! 412: fi
! 413:
! 414: if test x"$Z_LIB" != x; then
! 415: AC_DEFINE([HAVE_LIBZ], [1], [libz])
! 416: AC_DEFINE([HAVE_ZLIB_H], [1])
! 417: AC_SUBST(Z_LIB)
! 418: else
! 419: AC_MSG_ERROR([zlib-headers and/or libs were not found, install them or build with --without-zlib])
1.1 misho 420: fi
421: fi
422:
423: AC_MSG_CHECKING(for bzip2 support)
424: AC_ARG_WITH(bzip2, AC_HELP_STRING([--with-bzip2],[Enable bzip2 support for mod_compress]),
425: [WITH_BZIP2=$withval],[WITH_BZIP2=yes])
426: AC_MSG_RESULT([$WITH_BZIP2])
427:
428: if test "$WITH_BZIP2" != "no"; then
1.1.1.3 ! misho 429: if test "$WITH_BZIP2" != "yes"; then
! 430: BZ_LIB="-L$WITH_BZIP2 -lbz2"
! 431: CPPFLAGS="$CPPFLAGS -I$WITH_BZIP2"
! 432: else
! 433: AC_CHECK_LIB(bz2, BZ2_bzCompress, [
! 434: AC_CHECK_HEADERS([bzlib.h],[BZ_LIB=-lbz2])
! 435: ])
! 436: fi
! 437:
! 438: if test x"$BZ_LIB" != x; then
! 439: AC_DEFINE([HAVE_LIBBZ2], [1], [libbz2])
! 440: AC_DEFINE([HAVE_BZLIB_H], [1])
! 441: AC_SUBST(BZ_LIB)
! 442: else
! 443: AC_MSG_ERROR([bzip2-headers and/or libs were not found, install them or build with --without-bzip2])
1.1 misho 444: fi
445: fi
446:
447: dnl Check for gamin
448: AC_MSG_CHECKING(for FAM)
449: AC_ARG_WITH(fam, AC_HELP_STRING([--with-fam],[fam/gamin for reducing number of stat() calls]),
450: [WITH_FAM=$withval],[WITH_FAM=no])
451: AC_MSG_RESULT([$WITH_FAM])
452:
453: if test "$WITH_FAM" != "no"; then
1.1.1.3 ! misho 454: if test "$WITH_FAM" != "yes"; then
! 455: FAM_LIBS="-L$WITH_FAM -lfam"
! 456: CPPFLAGS="$CPPFLAGS -I$WITH_FAM"
! 457: else
! 458: AC_CHECK_LIB(fam, FAMOpen2, [
! 459: AC_CHECK_HEADERS([fam.h],[FAM_LIBS=-lfam])
! 460: ])
! 461: if test "x$FAM_LIBS" = x; then
! 462: PKG_CHECK_MODULES(FAM, gamin >= 0.1.0)
! 463: fi
! 464: fi
! 465:
! 466: if test x"$FAM_LIBS" != x; then
! 467: OLD_LIBS=$LIBS
! 468: LIBS=$FAM_LIBS
! 469: AC_CHECK_FUNCS([FAMNoExists])
! 470: LIBS=$OLD_LIBS
! 471:
! 472: AC_DEFINE([HAVE_LIBFAM], [1], [libfam])
! 473: AC_DEFINE([HAVE_FAM_H], [1], [fam.h])
! 474: AC_SUBST(FAM_LIBS)
! 475: else
! 476: AC_MSG_ERROR([fam/gamin-headers and/or libs were not found, install them or build with --without-fam])
1.1 misho 477: fi
478: fi
479:
480: AC_MSG_CHECKING(for properties in mod_webdav)
481: AC_ARG_WITH(webdav-props, AC_HELP_STRING([--with-webdav-props],[properties in mod_webdav]),
482: [WITH_WEBDAV_PROPS=$withval],[WITH_WEBDAV_PROPS=no])
483: AC_MSG_RESULT([$WITH_WEBDAV_PROPS])
484:
485: if test "$WITH_WEBDAV_PROPS" != "no"; then
486:
1.1.1.3 ! misho 487: AC_MSG_CHECKING(for libxml2)
! 488: AC_ARG_WITH(libxml, AC_HELP_STRING([--with-libxml],[libxml2 for properties in mod_webdav]),
! 489: [WITH_LIBXML=$withval],[WITH_LIBXML=yes])
! 490: AC_MSG_RESULT([$WITH_LIBXML])
! 491:
! 492: if test "$WITH_LIBXML" != "no"; then
! 493: if test "$WITH_LIBXML" != "yes"; then
! 494: XML_LIBS="-L$WITH_LIBXML/.libs -lxml2"
! 495: XML_CFLAGS="-I$WITH_LIBXML/include"
! 496: else
! 497: PKG_CHECK_MODULES(XML, libxml-2.0)
! 498: fi
! 499:
! 500: if test x"$XML_LIBS" != x; then
! 501: AC_DEFINE([HAVE_LIBXML2], [1], [libxml2])
! 502: AC_DEFINE([HAVE_LIBXML_H], [1], [libxml.h])
! 503: AC_SUBST(XML_LIBS)
! 504: AC_SUBST(XML_CFLAGS)
! 505: else
! 506: AC_MSG_ERROR([libxml2-headers and/or libs were not found, install them or build with --without-webdav-props])
! 507: fi
! 508: fi
! 509:
! 510: AC_MSG_CHECKING(for sqlite)
! 511: AC_ARG_WITH(sqlite, AC_HELP_STRING([--with-sqlite],[sqlite for properties in mod_webdav]),
! 512: [WITH_SQLITE=$withval],[WITH_SQLITE=yes])
! 513: AC_MSG_RESULT([$WITH_SQLITE])
! 514:
! 515: if test "$WITH_SQLITE" != "no"; then
! 516: if test "$WITH_SQLITE" != "yes"; then
! 517: SQLITE_LIBS="-L$WITH_SQLITE/.libs -lsqlite3"
! 518: SQLITE_CFLAGS="-I$WITH_SQLITE"
! 519: else
! 520: PKG_CHECK_MODULES(SQLITE, sqlite3)
! 521: fi
! 522:
! 523: if test x"$SQLITE_LIBS" != x; then
! 524: AC_DEFINE([HAVE_SQLITE3], [1], [libsqlite3])
! 525: AC_DEFINE([HAVE_SQLITE3_H], [1], [sqlite3.h])
! 526: AC_SUBST(SQLITE_LIBS)
! 527: AC_SUBST(SQLITE_CFLAGS)
! 528: else
! 529: AC_MSG_ERROR([sqlite-headers and/or libs were not found, install them or build with --without-webdav-props])
! 530: fi
! 531: fi
! 532:
! 533: AC_MSG_CHECKING(for locks in mod_webdav)
! 534: AC_ARG_WITH(webdav-locks, AC_HELP_STRING([--with-webdav-locks],[locks in mod_webdav]),
! 535: [WITH_WEBDAV_LOCKS=$withval],[WITH_WEBDAV_LOCKS=no])
! 536: AC_MSG_RESULT([$WITH_WEBDAV_LOCKS])
! 537:
! 538: if test "$WITH_WEBDAV_LOCKS" != "no"; then
! 539:
! 540: AC_MSG_CHECKING(for libuuid)
! 541: AC_ARG_WITH(uuid, AC_HELP_STRING([--with-uuid],[uuid for locks in mod_webdav]),
! 542: [WITH_UUID=$withval],[WITH_UUID=yes])
! 543: AC_MSG_RESULT([$WITH_UUID])
! 544:
! 545: if test "$WITH_UUID" != "no"; then
! 546: if test "$WITH_UUID" != "yes"; then
! 547: UUID_LIBS="-L$WITH_UUID -luuid"
! 548: CPPFLAGS="$CPPFLAGS -I$WITH_UUID"
! 549: else
! 550: AC_CHECK_LIB(uuid, uuid_unparse, [
! 551: AC_CHECK_HEADERS([uuid/uuid.h],[UUID_LIBS=-luuid])
! 552: ])
! 553: fi
! 554:
! 555: if test x"$UUID_LIBS" != x; then
! 556: AC_DEFINE([HAVE_UUID], [1], [libuuid])
! 557: AC_DEFINE([HAVE_UUID_H], [1], [uuid/uuid.h is available])
! 558: AC_SUBST(UUID_LIBS)
! 559: else
! 560: AC_MSG_ERROR([uuid-headers and/or libs were not found, install them or build with --without-webdav-locks])
! 561: fi
! 562: fi
! 563:
! 564: fi
1.1 misho 565:
566: fi
567:
568: dnl Check for gdbm
569: AC_MSG_CHECKING(for gdbm)
570: AC_ARG_WITH(gdbm, AC_HELP_STRING([--with-gdbm],[gdbm storage for mod_trigger_b4_dl]),
571: [WITH_GDBM=$withval],[WITH_GDBM=no])
572: AC_MSG_RESULT([$WITH_GDBM])
573:
574: if test "$WITH_GDBM" != "no"; then
1.1.1.3 ! misho 575: if test "$WITH_GDBM" != "yes"; then
! 576: GDBM_LIB="-L$WITH_GDBM -lgdbm"
! 577: CPPFLAGS="$CPPFLAGS -I$WITH_GDBM"
! 578: else
! 579: AC_CHECK_LIB(gdbm, gdbm_open, [
! 580: AC_CHECK_HEADERS([gdbm.h],[GDBM_LIB=-lgdbm])
! 581: ])
! 582: fi
! 583:
! 584: if test x"$GDBM_LIB" != x; then
! 585: AC_DEFINE([HAVE_GDBM], [1], [libgdbm])
! 586: AC_DEFINE([HAVE_GDBM_H], [1])
! 587: AC_SUBST(GDBM_LIB)
! 588: else
! 589: AC_MSG_ERROR([gdbm headers and/or libs were not found, install them or build with --without-gdbm])
! 590: fi
1.1 misho 591: fi
592:
1.1.1.3 ! misho 593: dnl Check for memcached
! 594: AC_MSG_CHECKING(for memcached)
! 595: AC_ARG_WITH(memcached, AC_HELP_STRING([--with-memcached],[memcached storage for mod_trigger_b4_dl]),
! 596: [WITH_MEMCACHED=$withval],[WITH_MEMCACHED=no])
! 597: AC_MSG_RESULT([$WITH_MEMCACHED])
! 598:
! 599: if test "$WITH_MEMCACHED" != "no"; then
! 600: if test "$WITH_MEMCACHED" != "yes"; then
! 601: MEMCACHED_LIB="-L$WITH_MEMCACHED -lMEMCACHED"
! 602: CPPFLAGS="$CPPFLAGS -I$WITH_MEMCACHED"
! 603: else
! 604: AC_CHECK_LIB(memcached, memcached, [
! 605: AC_CHECK_HEADERS([libmemcached/memcached.h],[
! 606: MEMCACHED_LIB=-lmemcached
! 607: ])
! 608: ])
! 609: fi
! 610:
! 611: if test x"$MEMCACHED_LIB" != x; then
! 612: AC_DEFINE([USE_MEMCACHED], [1], [libmemcached])
! 613: AC_SUBST(MEMCACHED_LIB)
! 614: else
! 615: AC_MSG_ERROR([memcached headers and/or libs were not found, install them or build with --without-memcached])
! 616: fi
1.1 misho 617: fi
618:
619: dnl Check for lua
620: AC_MSG_CHECKING(if lua-support is requested)
621: AC_ARG_WITH(lua, AC_HELP_STRING([--with-lua],[lua engine for mod_cml]),
622: [WITH_LUA=$withval],[WITH_LUA=no])
623:
624: AC_MSG_RESULT($WITH_LUA)
625: if test "$WITH_LUA" != "no"; then
1.1.1.3 ! misho 626: found_lua=0
! 627: if test "$WITH_LUA" != "yes"; then
! 628: PKG_CHECK_MODULES(LUA, $WITH_LUA >= 5.1, [
! 629: found_lua=1
! 630: ],[
! 631: AC_MSG_NOTICE([Couldn't find requested lua pkg-config module $WITH_LUA])
! 632: ])
! 633: if test "$found_lua" = "0"; then
! 634: LUA_LIBS="-L$WITH_LUA -llua"
! 635: LUA_CFLAGS="-I$WITH_LUA"
! 636: fi
! 637: else
! 638: for luaname in lua5.3 lua-5.3 lua5.2 lua-5.2 lua5.1 lua-5.1 lua; do
! 639: if test "$found_lua" = "0"; then
! 640: PKG_CHECK_MODULES(LUA, $luaname >= 5.1, [
! 641: found_lua=1
! 642: ], [
! 643: AC_MSG_NOTICE([Couldn't find $luaname])
! 644: ])
! 645: fi
! 646: done
! 647: if test "$found_lua" = "0"; then
! 648: AC_MSG_ERROR([Couldn't find any lua pkg-config module])
! 649: fi
! 650: fi
! 651:
! 652: if test x"$LUA_LIBS" != x; then
1.1 misho 653: AC_DEFINE([HAVE_LUA], [1], [liblua])
654: AC_DEFINE([HAVE_LUA_H], [1], [lua.h])
1.1.1.3 ! misho 655: AC_SUBST(LUA_LIBS)
! 656: AC_SUBST(LUA_CFLAGS)
! 657: else
! 658: AC_MSG_ERROR([lua headers and/or libs were not found, install them or build with --without-lua])
! 659: fi
1.1 misho 660: fi
661:
1.1.1.3 ! misho 662: dnl search for crypt_r and (fallback) for crypt
1.1 misho 663: save_LIBS=$LIBS
1.1.1.3 ! misho 664: LIBS=
! 665: AC_SEARCH_LIBS([crypt_r],[crypt],[
! 666: AC_DEFINE([HAVE_CRYPT_R], [1], [crypt_r])
1.1 misho 667: AC_CHECK_HEADERS([crypt.h],[
1.1.1.3 ! misho 668: AC_DEFINE([HAVE_CRYPT_H], [1], [crypt.h])
1.1 misho 669: ])
670:
1.1.1.3 ! misho 671: CRYPT_LIB=$LIBS
! 672: ],[
! 673: AC_SEARCH_LIBS([crypt],[crypt],[
! 674: AC_DEFINE([HAVE_CRYPT], [1], [crypt])
! 675: AC_CHECK_HEADERS([crypt.h],[
! 676: AC_DEFINE([HAVE_CRYPT_H], [1], [crypt.h])
! 677: ])
! 678:
! 679: CRYPT_LIB=$LIBS
! 680: ])
1.1 misho 681: ])
682: LIBS=$save_LIBS
1.1.1.3 ! misho 683: AC_SUBST([CRYPT_LIB])
1.1 misho 684:
685: save_LIBS=$LIBS
686: AC_SEARCH_LIBS(sendfilev,sendfile,[
687: if test "$ac_cv_search_sendfilev" != no; then
688: test "$ac_cv_search_sendfilev" = "none required" || SENDFILE_LIB="$ac_cv_search_sendfilev"
689: AC_DEFINE([HAVE_SENDFILEV], [1], [solaris sendfilev])
690: fi
691: ])
692: LIBS=$save_LIBS
693: AC_SUBST(SENDFILE_LIB)
694:
695: case $host_os in
696: *mingw* ) LIBS="$LIBS -lwsock32";;
697: * ) ;;
698: esac
699:
1.1.1.3 ! misho 700: AC_CHECK_FUNCS([dup2 getcwd inet_ntoa inet_ntop inet_pton issetugid memset mmap munmap strchr \
1.1 misho 701: strdup strerror strstr strtol sendfile getopt socket lstat \
702: gethostbyname poll epoll_ctl getrlimit chroot \
703: getuid select signal pathconf madvise posix_fadvise posix_madvise \
1.1.1.3 ! misho 704: writev sigaction sendfile64 send_file kqueue port_create localtime_r gmtime_r \
! 705: memset_s explicit_bzero clock_gettime])
! 706:
! 707: AC_MSG_CHECKING(if weak symbols are supported)
! 708: AC_LINK_IFELSE([AC_LANG_PROGRAM([[
! 709: __attribute__((weak)) void __dummy(void *x) { }
! 710: void f(void *x) { __dummy(x); }
! 711: ]])],
! 712: [
! 713: AC_MSG_RESULT(yes)
! 714: AC_DEFINE([HAVE_WEAK_SYMBOLS], [1], [weak symbols are supported])
! 715: ],[AC_MSG_RESULT(no)])
1.1 misho 716:
717: AC_MSG_CHECKING(for Large File System support)
718: AC_ARG_ENABLE(lfs,
719: AC_HELP_STRING([--enable-lfs],[Turn on Large File System (default)]),
720: [case "${enableval}" in
721: yes) CPPFLAGS="${CPPFLAGS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES" ;;
722: no) ;;
723: *) AC_MSG_ERROR(bad value ${enableval} for --enable-lfs) ;;
724: esac],[CPPFLAGS="${CPPFLAGS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES"
725: enable_lfs=yes])
726: AC_MSG_RESULT($enableval)
727:
728: AC_CHECK_SIZEOF(long)
729: AC_CHECK_SIZEOF(off_t)
730:
731: if test "x$ac_cv_func_sendfile" = xyes; then
732: dnl check if sendfile works
733: AC_MSG_CHECKING(if sendfile works)
734: if test "x$cross_compiling" = xno; then
735: AC_TRY_RUN([
736: #ifdef HAVE_SYS_SENDFILE_H
737: #include <sys/sendfile.h>
738: #endif /* HAVE_SYS_SENDFILE_H */
739: #include <errno.h>
740: int main() {
741: int o = 0;
742: if (-1 == sendfile(-1, 0, &o, 0) && errno == ENOSYS) return -1;
743: return 0;
744: } ],
745: AC_MSG_RESULT(yes),
746: [ AC_MSG_RESULT(no)
747: AC_DEFINE([HAVE_SENDFILE_BROKEN], [1], [broken sendfile]) ] )
748: else
749: AC_MSG_RESULT(no, cross-compiling)
750: AC_DEFINE([HAVE_SENDFILE_BROKEN], [1], [broken sendfile])
751: fi
752: fi
753:
754: dnl Check for IPv6 support
755:
756: AC_ARG_ENABLE(ipv6,
757: AC_HELP_STRING([--disable-ipv6],[disable IPv6 support]),
758: [case "${enableval}" in
759: yes) ipv6=true ;;
760: no) ipv6=false ;;
761: *) AC_MSG_ERROR(bad value ${enableval} for --enable-ipv6) ;;
762: esac],[ipv6=true])
763:
764: if test x$ipv6 = xtrue; then
765: AC_CACHE_CHECK([for IPv6 support], ac_cv_ipv6_support,
766: [AC_TRY_LINK([ #include <sys/types.h>
767: #include <sys/socket.h>
768: #include <netinet/in.h>], [struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0; ],
769: [ac_cv_ipv6_support=yes], [ac_cv_ipv6_support=no])])
770:
771: if test "$ac_cv_ipv6_support" = yes; then
772: AC_DEFINE(HAVE_IPV6,1,[Whether to enable IPv6 support])
773: fi
774: fi
775:
776: # disable mmap by default; if a mmapped file gets truncated, the process gets a SIGBUS signal
777: # on reading the truncated area which we can't handle (yet).
778: # lighttpd may always use mmap with files it owns (created tmp files)
779: AC_ARG_ENABLE(mmap,
780: AC_HELP_STRING([--enable-mmap],[use mmap if available (DANGEROUS, allows local users to trigger SIGBUS crashes)]),
781: [case "${enableval}" in
782: yes) mmap=true ;;
783: no) mmap=false ;;
784: *) AC_MSG_ERROR(bad value ${enableval} for --enable-mmap) ;;
785: esac],[mmap=false])
786:
787: if test x$mmap = xtrue; then
788: AC_DEFINE(ENABLE_MMAP, [1], [Use mmap if available])
789: fi
790:
791:
792: AM_CONDITIONAL(CROSS_COMPILING, test "x$cross_compiling" = xyes)
793:
794: dnl check for fastcgi lib, for the tests only
795: fastcgi_found=no
796: AC_CHECK_LIB(fcgi, FCGI_Accept, [
797: AC_CHECK_HEADERS([fastcgi.h fastcgi/fastcgi.h],[
798: fastcgi_found=yes
799: ])
800: ])
801:
802: AM_CONDITIONAL(CHECK_WITH_FASTCGI, test "x$fastcgi_found" = xyes)
803:
804:
805: dnl check for extra compiler options (warning options)
806: if test "${GCC}" = "yes"; then
1.1.1.3 ! misho 807: TRY_CFLAGS([-Wall -W -Wshadow -pedantic])
! 808: TRY_CFLAGS([-std=gnu99])
1.1 misho 809: fi
810:
811: AC_ARG_ENABLE(extra-warnings,
812: AC_HELP_STRING([--enable-extra-warnings],[enable extra warnings (gcc specific)]),
813: [case "${enableval}" in
814: yes) extrawarnings=true ;;
815: no) extrawarnings=false ;;
816: *) AC_MSG_ERROR(bad value ${enableval} for --enable-extra-warnings) ;;
817: esac],[extrawarnings=false])
818:
819: if test x$extrawarnings = xtrue; then
1.1.1.3 ! misho 820: TRY_CFLAGS([-g -O2 -g2 -Wall -Wmissing-declarations -Wdeclaration-after-statement -Wcast-align -Wsign-compare -Wnested-externs -Wpointer-arith -D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security])
! 821: TRY_LDFLAGS([-Wl,--as-needed])
1.1 misho 822: fi
823:
824: dnl build version-id
825: LIGHTTPD_VERSION_ID=`echo $PACKAGE_VERSION | $AWK -F '.' '{print "(" $1 " << 16 | " $2 " << 8 | " $3 ")"}'`
826: AC_DEFINE_UNQUOTED([LIGHTTPD_VERSION_ID], [$LIGHTTPD_VERSION_ID], [lighttpd-version-id])
827:
828: AC_CONFIG_FILES([Makefile src/Makefile
829: doc/config/conf.d/Makefile \
830: doc/config/vhosts.d/Makefile \
831: doc/config/Makefile \
832: doc/scripts/Makefile \
833: doc/initscripts/Makefile \
834: doc/systemd/Makefile \
835: doc/outdated/Makefile \
836: doc/Makefile \
837: tests/Makefile \
838: tests/docroot/Makefile \
839: tests/docroot/123/Makefile \
840: tests/docroot/www/Makefile \
841: tests/docroot/www/go/Makefile \
842: tests/docroot/www/indexfile/Makefile \
843: tests/docroot/www/expire/Makefile \
844: distribute.sh])
845: AC_OUTPUT
846:
847:
848: do_build="mod_cgi mod_fastcgi mod_extforward mod_proxy mod_evhost mod_simple_vhost mod_access mod_alias mod_setenv mod_usertrack mod_auth mod_status mod_accesslog"
1.1.1.3 ! misho 849: do_build="$do_build mod_rrdtool mod_secdownload mod_expire mod_compress mod_dirlisting mod_indexfile mod_userdir mod_webdav mod_staticfile mod_scgi mod_flv_streaming mod_ssi"
1.1 misho 850:
1.1.1.3 ! misho 851: plugins="mod_rewrite mod_redirect mod_trigger_b4_dl"
1.1 misho 852: features="regex-conditionals"
853: if test ! "x$PCRE_LIB" = x; then
854: do_build="$do_build $plugins"
855: enable_feature="$features"
856: else
857: no_build="$no_build $plugins"
858: disable_feature="$features"
859: fi
860:
861: plugins="mod_mysql_vhost"
862: if test ! "x$MYSQL_LIBS" = x; then
863: do_build="$do_build $plugins"
864: else
865: no_build="$no_build $plugins"
866: fi
867:
868: plugins="mod_cml mod_magnet"
869: if test ! "x$LUA_LIBS" = x; then
870: do_build="$do_build $plugins"
871: else
872: no_build="$no_build $plugins"
873: fi
874:
875: features="storage-gdbm"
876: if test ! "x$GDBM_LIB" = x; then
877: enable_feature="$enable_feature $features"
878: else
879: disable_feature="$disable_feature $features"
880: fi
881:
1.1.1.3 ! misho 882: features="storage-memcached"
! 883: if test ! "x$MEMCACHED_LIB" = x; then
1.1 misho 884: enable_feature="$enable_feature $features"
885: else
886: disable_feature="$disable_feature $features"
887: fi
888:
889: features="compress-gzip compress-deflate"
890: if test ! "x$Z_LIB" = x; then
891: enable_feature="$enable_feature $features"
892: else
893: disable_feature="$disable_feature $features"
894: fi
895:
896: features="compress-bzip2"
897: if test ! "x$BZ_LIB" = x; then
898: enable_feature="$enable_feature $features"
899: else
900: disable_feature="$disable_feature $features"
901: fi
902:
903: features="auth-ldap"
904: if test ! "x$LDAP_LIB" = x; then
905: enable_feature="$enable_feature $features"
906: else
907: disable_feature="$disable_feature $features"
908: fi
909:
910: features="network-openssl"
911: if test ! "x$SSL_LIB" = x; then
912: enable_feature="$enable_feature $features"
913: else
914: disable_feature="$disable_feature $features"
915: fi
916:
917: dnl no crypt call
918: features="auth-crypt"
919: if test "$ac_cv_search_crypt" = no; then
920: disable_feature="$disable_feature $features"
921: else
922: enable_feature="$enable_feature $features"
923: fi
924:
925: features="network-ipv6"
926: if test "$ac_cv_ipv6_support" = yes; then
927: enable_feature="$enable_feature $features"
928: else
929: disable_feature="$disable_feature $features"
930: fi
931:
932: features="large-files"
933: if test "$enable_lfs" = yes; then
934: enable_feature="$enable_feature $features"
935: else
936: disable_feature="$disable_feature $features"
937: fi
938:
939: features="stat-cache-fam"
940: if test ! "x$FAM_LIBS" = x; then
941: enable_feature="$enable_feature $features"
942: else
943: disable_feature="$disable_feature $features"
944: fi
945:
946: features="webdav-properties"
947: if test "x$XML_LIBS" \!= x -a "x$SQLITE_LIBS" \!= x; then
948: enable_feature="$enable_feature $features"
949: else
950: disable_feature="$disable_feature $features"
951: fi
952:
953: features="webdav-locks"
954: if test "x$UUID_LIBS" \!= x; then
955: enable_feature="$enable_feature $features"
956: else
957: disable_feature="$disable_feature $features"
958: fi
959:
960:
961: dnl output
962:
963: $ECHO
964: $ECHO "Plugins:"
965: $ECHO
966:
967: $ECHO "enabled: "
968: for p in $do_build; do
969: $ECHO " $p"
970: done | sort
971:
972: $ECHO "disabled: "
973: for p in $no_build; do
974: $ECHO " $p"
975: done | sort
976:
977: $ECHO
978: $ECHO "Features:"
979: $ECHO
980:
981: $ECHO "enabled: "
982: for p in $enable_feature; do
983: $ECHO " $p"
984: done | sort
985:
986: $ECHO "disabled: "
987: for p in $disable_feature; do
988: $ECHO " $p"
989: done | sort
990:
991: $ECHO
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>