1dnl -*- Autoconf -*- 2dnl Process this file with autoconf to produce a configure script. 3AC_PREREQ(2.57) 4AC_INIT([lighttpd], [1.4.39], [contact@lighttpd.net]) 5AC_CONFIG_SRCDIR([src/server.c]) 6AC_CONFIG_HEADER([config.h]) 7AC_CONFIG_MACRO_DIR([m4]) 8 9AC_CANONICAL_TARGET 10 11AM_INIT_AUTOMAKE([-Wall -Wportability -Wno-override -Werror foreign dist-bzip2 tar-ustar]) 12 13dnl enable with --enable-silent-rules or make V=0 (needs automake >= 1.11) 14m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES]) 15 16dnl Checks for programs. 17AC_PROG_CC 18AM_PROG_CC_C_O 19AC_PROG_LD 20AC_PROG_INSTALL 21AC_PROG_AWK 22AC_PROG_CPP 23dnl AC_PROG_CXX 24AC_PROG_LN_S 25AC_PROG_MAKE_SET 26 27dnl check environment 28AC_AIX 29AC_ISC_POSIX 30AC_MINIX 31 32dnl AC_CANONICAL_HOST 33case $host_os in 34 *darwin*|*cygwin*|*aix*|*mingw* ) NO_RDYNAMIC=yes;; 35 * ) NO_RDYNAMIC=no;; 36esac 37AM_CONDITIONAL(NO_RDYNAMIC, test x$NO_RDYNAMIC = xyes) 38 39AC_EXEEXT 40 41dnl more automake stuff 42AM_C_PROTOTYPES 43 44dnl libtool 45AC_DISABLE_STATIC 46AC_ENABLE_SHARED 47 48AC_LIBTOOL_DLOPEN 49AC_PROG_LIBTOOL 50 51dnl for solaris 52CPPFLAGS="${CPPFLAGS} -D_REENTRANT -D__EXTENSIONS__" 53 54dnl Checks for header files. 55AC_HEADER_STDC 56AC_HEADER_SYS_WAIT 57AC_CHECK_HEADERS([arpa/inet.h fcntl.h netinet/in.h stdlib.h string.h \ 58sys/socket.h sys/time.h unistd.h sys/sendfile.h sys/uio.h \ 59getopt.h sys/epoll.h sys/select.h poll.h sys/poll.h sys/devpoll.h sys/filio.h \ 60sys/mman.h sys/event.h port.h pwd.h sys/syslimits.h \ 61sys/resource.h sys/un.h syslog.h sys/prctl.h uuid/uuid.h]) 62 63dnl Checks for typedefs, structures, and compiler characteristics. 64AC_C_CONST 65AC_C_INLINE 66AC_C_CHAR_UNSIGNED 67AC_TYPE_OFF_T 68AC_TYPE_PID_T 69AC_TYPE_SIZE_T 70 71AC_CHECK_MEMBER(struct tm.tm_gmtoff,[AC_DEFINE([HAVE_STRUCT_TM_GMTOFF],[1],[gmtoff in struct tm])],,[#include <time.h>]) 72AC_CHECK_TYPES(struct sockaddr_storage,,,[#include <sys/socket.h>]) 73AC_CHECK_TYPES(socklen_t,,,[#include <sys/types.h> 74#include <sys/socket.h>]) 75 76dnl Checks for library functions. 77AC_FUNC_FORK 78dnl AC_FUNC_MALLOC 79dnl AC_FUNC_MMAP 80dnl AC_FUNC_REALLOC 81AC_TYPE_SIGNAL 82AC_FUNC_STAT 83AC_FUNC_STRFTIME 84AC_CHECK_FUNCS([issetugid inet_pton]) 85 86if test -z "$PKG_CONFIG"; then 87 AC_PATH_PROG(PKG_CONFIG, pkg-config, no) 88fi 89 90dnl checking for libev 91AC_MSG_CHECKING(for libev support) 92AC_ARG_WITH(libev, 93 AC_HELP_STRING([--with-libev@<:@=PATH@:>@],[Include libev support for fdevent handlers in PATH/include and PATH/lib]), 94 [WITH_LIBEV=$withval],[WITH_LIBEV=no]) 95 96LIBEV_CFLAGS="" 97LIBEV_LIBS="" 98 99if test "$WITH_LIBEV" != "no"; then 100 PKG_CHECK_MODULES(LIBEV, libev, [], [ 101 dnl no pkg-config for libev, searching manually: 102 103 if test "$WITH_LIBEV" != "yes"; then 104 LIBEV_CFLAGS="-I$WITH_LIBEV/include" 105 LIBEV_LIBS="-L$WITH_LIBEV/lib -lev" 106 else 107 AC_CHECK_HEADERS([ev.h],[ 108 AC_CHECK_LIB([ev], [ev_time], [ 109 LIBEV_CFLAGS="" 110 LIBEV_LIBS="-lev" 111 ],[ 112 AC_MSG_ERROR([libev not found]) 113 ] 114 )],[ 115 AC_MSG_ERROR([libev not found]) 116 ] 117 ) 118 fi 119 ]) 120 121 AC_DEFINE([HAVE_LIBEV], [1], [libev support]) 122fi 123 124AC_SUBST(LIBEV_CFLAGS) 125AC_SUBST(LIBEV_LIBS) 126 127dnl checking for libsmbclient 128AC_MSG_CHECKING(for libsmbclient support) 129AC_ARG_WITH(libsmbclient, 130 AC_HELP_STRING([--with-libsmbclient@<:@=PATH@:>@],[Include libsmbclient support for fdevent handlers in PATH/include and PATH/bin]), 131 [WITH_LIBSMBCLIENT=$withval],[WITH_LIBSMBCLIENT=no]) 132 133LIBSMBCLIENT_CFLAGS="" 134LIBSMBCLIENT_LIBS="" 135 136if test "$WITH_LIBSMBCLIENT" != "no"; then 137 PKG_CHECK_MODULES(LIBSMBCLIENT, libsmbclient, [], [ 138 dnl no pkg-config for libsmbclient, searching manually: 139 140 if test "$WITH_LIBSMBCLINET" != "yes"; then 141 LIBSMBCLIENT_CFLAGS="-I$WITH_LIBSMBCLIENT/include" 142 LIBSMBCLIENT_LIBS="-L$WITH_LIBSMBCLIENT/bin -lsmbclient" 143 else 144 AC_CHECK_HEADERS([libsmbclient.h],[ 145 AC_CHECK_LIB([smbclient], [smbc_open], [ 146 LIBSMBCLIENT_CFLAGS="" 147 LIBSMBCLIENT_LIBS="-lsmbclient" 148 ],[ 149 AC_MSG_ERROR([libsmbclient not found]) 150 ] 151 )],[ 152 AC_MSG_ERROR([libsmbclient not found]) 153 ] 154 ) 155 fi 156 ]) 157 158 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [libsmbclient support]) 159 AC_DEFINE([HAVE_LIBSMBCLIENT_H], [1]) 160fi 161 162AC_SUBST(LIBSMBCLIENT_CFLAGS) 163AC_SUBST(LIBSMBCLIENT_LIBS) 164 165 166 167 168dnl Checks for database. 169MYSQL_INCLUDE="" 170MYSQL_LIBS="" 171 172AC_MSG_CHECKING(for MySQL support) 173AC_ARG_WITH(mysql, 174 AC_HELP_STRING([--with-mysql@<:@=PATH@:>@],[Include MySQL support. PATH is the path to 'mysql_config']), 175 [WITH_MYSQL=$withval],[WITH_MYSQL=no]) 176 177if test "$WITH_MYSQL" != "no"; then 178 AC_MSG_RESULT(yes) 179 if test "$WITH_MYSQL" = "yes"; then 180 AC_PATH_PROG(MYSQL_CONFIG, mysql_config) 181 else 182 MYSQL_CONFIG=$WITH_MYSQL 183 fi 184 185 if test "$MYSQL_CONFIG" = ""; then 186 AC_MSG_ERROR(mysql_config is not found) 187 fi 188 if test \! -x $MYSQL_CONFIG; then 189 AC_MSG_ERROR(mysql_config not exists or not executable, use --with-mysql=path-to-mysql_config) 190 fi 191 192 if $MYSQL_CONFIG | grep -- '--include' > /dev/null ; then 193 MYSQL_INCLUDE="`$MYSQL_CONFIG --include | sed s/\'//g`" 194 else 195 MYSQL_INCLUDE="`$MYSQL_CONFIG --cflags | sed s/\'//g`" 196 fi 197 MYSQL_LIBS="`$MYSQL_CONFIG --libs | sed s/\'//g`" 198 199 AC_MSG_CHECKING(for MySQL includes at) 200 AC_MSG_RESULT($MYSQL_INCLUDE) 201 202 AC_MSG_CHECKING(for MySQL libraries at) 203 AC_MSG_RESULT($MYSQL_LIBS) 204dnl check for errmsg.h, which isn't installed by some versions of 3.21 205 old_CPPFLAGS="$CPPFLAGS" 206 CPPFLAGS="$CPPFLAGS $MYSQL_INCLUDE" 207 AC_CHECK_HEADERS(errmsg.h mysql.h) 208 CPPFLAGS="$old_CPPFLAGS" 209 210 AC_DEFINE([HAVE_MYSQL], [1], [mysql support]) 211else 212 AC_MSG_RESULT(no) 213fi 214 215AC_SUBST(MYSQL_LIBS) 216AC_SUBST(MYSQL_INCLUDE) 217 218dnl Check for LDAP 219AC_MSG_CHECKING(for LDAP support) 220AC_ARG_WITH(ldap, AC_HELP_STRING([--with-ldap],[enable LDAP support]), 221[WITH_LDAP=$withval], [WITH_LDAP=no]) 222AC_MSG_RESULT([$withval]) 223if test "$WITH_LDAP" != "no"; then 224 AC_CHECK_LIB(ldap, ldap_bind, [ 225 AC_CHECK_HEADERS([ldap.h],[ 226 LDAP_LIB=-lldap 227 AC_DEFINE([HAVE_LIBLDAP], [1], [libldap]) 228 AC_DEFINE([HAVE_LDAP_H], [1]) 229 AC_DEFINE([LDAP_DEPRECATED], [1], [Using deprecated ldap api]) 230 ]) 231 ]) 232 AC_SUBST(LDAP_LIB) 233 AC_CHECK_LIB(lber, ber_printf, [ 234 AC_CHECK_HEADERS([lber.h],[ 235 LBER_LIB=-llber 236 AC_DEFINE([HAVE_LIBLBER], [1], [liblber]) 237 AC_DEFINE([HAVE_LBER_H], [1]) 238 ]) 239 ]) 240 AC_SUBST(LBER_LIB) 241fi 242 243dnl Check for xattr 244AC_MSG_CHECKING(for extended attributes support) 245AC_ARG_WITH(attr, AC_HELP_STRING([--with-attr],[enable extended attribute support]), 246[WITH_ATTR=$withval],[WITH_ATTR=no]) 247AC_MSG_RESULT($withval) 248if test "$WITH_ATTR" != "no"; then 249 AC_CHECK_LIB(attr, attr_get, [ 250 AC_CHECK_HEADERS([attr/attributes.h],[ 251 ATTR_LIB=-lattr 252 AC_DEFINE([HAVE_XATTR], [1], [libattr]) 253 AC_DEFINE([HAVE_ATTR_ATTRIBUTES_H], [1]) 254 ]) 255 ]) 256 AC_SUBST(ATTR_LIB) 257fi 258 259dnl openssl on solaris needs -lsocket -lnsl 260AC_SEARCH_LIBS(socket,socket) 261AC_SEARCH_LIBS(gethostbyname,nsl socket) 262AC_SEARCH_LIBS(hstrerror,resolv) 263 264save_LIBS=$LIBS 265AC_SEARCH_LIBS(dlopen,dl,[ 266 AC_CHECK_HEADERS([dlfcn.h],[ 267 if test "$ac_cv_search_dlopen" != no; then 268 test "$ac_cv_search_dlopen" = "none required" || DL_LIB="$ac_cv_search_dlopen" 269 fi 270 271 AC_DEFINE([HAVE_LIBDL], [1], [libdl]) 272 AC_DEFINE([HAVE_DLFCN_H], [1]) 273 ]) 274]) 275LIBS=$save_LIBS 276AC_SUBST(DL_LIB) 277 278dnl Check for valgrind 279AC_MSG_CHECKING(for valgrind) 280AC_ARG_WITH(valgrind, AC_HELP_STRING([--with-valgrind],[enable internal support for valgrind]), 281[WITH_VALGRIND=$withval],[WITH_VALGRIND=no]) 282AC_MSG_RESULT([$WITH_VALGRIND]) 283if test "$WITH_VALGRIND" != "no"; then 284 AC_CHECK_HEADERS([valgrind/valgrind.h]) 285fi 286 287dnl Check for openssl 288AC_MSG_CHECKING(for OpenSSL) 289AC_ARG_WITH(openssl, 290 AC_HELP_STRING([--with-openssl@<:@=DIR@:>@],[Include openssl support (default no)]), 291 [WITH_OPENSSL=$withval],[WITH_OPENSSL=no]) 292 293if test "$WITH_OPENSSL" != "no"; then 294 use_openssl=yes 295 if test "$WITH_OPENSSL" != "yes"; then 296 CPPFLAGS="$CPPFLAGS -I$WITH_OPENSSL/include" 297 LDFLAGS="$LDFLAGS -L$WITH_OPENSSL/lib" 298 fi 299else 300 use_openssl=no 301fi 302AC_MSG_RESULT([$use_openssl]) 303 304AC_ARG_WITH(openssl-includes, 305 AC_HELP_STRING([--with-openssl-includes=DIR],[OpenSSL includes]), 306 [ use_openssl=yes CPPFLAGS="$CPPFLAGS -I$withval" ] 307) 308 309AC_ARG_WITH(openssl-libs, 310 AC_HELP_STRING([--with-openssl-libs=DIR],[OpenSSL libraries]), 311 [ use_openssl=yes LDFLAGS="$LDFLAGS -L$withval" ] 312) 313 314AC_ARG_WITH(kerberos5, 315 AC_HELP_STRING([--with-kerberos5],[use Kerberos5 support with OpenSSL]), 316 [ use_kerberos=yes ], [use_kerberos=no] 317) 318 319if test "x$use_openssl" = "xyes"; then 320 if test "x$use_kerberos" != "xyes"; then 321 CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_KRB5" 322 fi 323 324 AC_CHECK_HEADERS([openssl/ssl.h]) 325 OLDLIBS="$LIBS" 326 AC_CHECK_LIB(crypto, BIO_f_base64, [ 327 AC_CHECK_LIB(ssl, SSL_new, [ SSL_LIB="-lssl -lcrypto" 328 AC_DEFINE(HAVE_LIBSSL, [], [Have libssl]) ], [], [ -lcrypto "$DL_LIB" ]) 329 ], [], []) 330 LIBS="$OLDLIBS" 331 AC_SUBST(SSL_LIB) 332fi 333 334AC_MSG_CHECKING(for perl regular expressions support) 335AC_ARG_WITH(pcre, AC_HELP_STRING([--with-pcre],[Enable pcre support (default yes)]), 336 [WITH_PCRE=$withval],[WITH_PCRE=yes]) 337AC_MSG_RESULT([$WITH_PCRE]) 338 339if test "$WITH_PCRE" != "no"; then 340 AC_PATH_PROG(PCRECONFIG, pcre-config) 341 342 if test x"$PCRECONFIG" != x; then 343 PCRE_LIB=`$PCRECONFIG --libs` 344 CPPFLAGS="$CPPFLAGS `$PCRECONFIG --cflags`" 345 AC_DEFINE([HAVE_LIBPCRE], [1], [libpcre]) 346 AC_DEFINE([HAVE_PCRE_H], [1], [pcre.h]) 347 else 348 AC_MSG_ERROR([pcre-config not found, install the pcre-devel package or build with --without-pcre]) 349 fi 350fi 351 352AC_SUBST(PCRE_LIB) 353 354AC_MSG_CHECKING(for zlib support) 355AC_ARG_WITH(zlib, AC_HELP_STRING([--with-zlib],[Enable zlib support for mod_compress]), 356 [WITH_ZLIB=$withval],[WITH_ZLIB=yes]) 357AC_MSG_RESULT([$WITH_ZLIB]) 358 359if test "$WITH_ZLIB" != "no"; then 360 AC_CHECK_LIB(z, deflate, [ 361 AC_CHECK_HEADERS([zlib.h],[ 362 Z_LIB=-lz 363 AC_DEFINE([HAVE_LIBZ], [1], [libz]) 364 AC_DEFINE([HAVE_ZLIB_H], [1]) 365 ]) 366 ]) 367 if test x$Z_LIB = x; then 368 AC_MSG_ERROR([zlib-headers and/or libs where not found, install them or build with --without-zlib]) 369 fi 370fi 371AC_SUBST(Z_LIB) 372 373AC_MSG_CHECKING(for bzip2 support) 374AC_ARG_WITH(bzip2, AC_HELP_STRING([--with-bzip2],[Enable bzip2 support for mod_compress]), 375 [WITH_BZIP2=$withval],[WITH_BZIP2=yes]) 376AC_MSG_RESULT([$WITH_BZIP2]) 377 378if test "$WITH_BZIP2" != "no"; then 379 AC_CHECK_LIB(bz2, BZ2_bzCompress, [ 380 AC_CHECK_HEADERS([bzlib.h],[ 381 BZ_LIB=-lbz2 382 AC_DEFINE([HAVE_LIBBZ2], [1], [libbz2]) 383 AC_DEFINE([HAVE_BZLIB_H], [1]) 384 ]) 385 ]) 386 if test x$BZ_LIB = x; then 387 AC_MSG_ERROR([bzip2-headers and/or libs where not found, install them or build with --without-bzip2]) 388 fi 389fi 390 391AC_SUBST(BZ_LIB) 392 393 394dnl Check for gamin 395AC_MSG_CHECKING(for FAM) 396AC_ARG_WITH(fam, AC_HELP_STRING([--with-fam],[fam/gamin for reducing number of stat() calls]), 397[WITH_FAM=$withval],[WITH_FAM=no]) 398AC_MSG_RESULT([$WITH_FAM]) 399 400if test "$WITH_FAM" != "no"; then 401 AC_CHECK_LIB(fam, FAMOpen2, [ 402 AC_CHECK_HEADERS([fam.h],[ 403 FAM_LIBS=-lfam 404 AC_DEFINE([HAVE_LIBFAM], [1], [libfam]) 405 AC_DEFINE([HAVE_FAM_H], [1], [fam.h]) 406 ]) 407 ]) 408 if test "x$FAM_LIBS" = x; then 409 PKG_CHECK_MODULES(FAM, gamin >= 0.1.0, [ 410 AC_DEFINE([HAVE_LIBFAM], [1], [libfam]) 411 AC_DEFINE([HAVE_FAM_H], [1], [fam.h]) 412 ]) 413 fi 414 OLD_LIBS=$LIBS 415 LIBS=$FAM_LIBS 416 AC_CHECK_FUNCS([FAMNoExists]) 417 LIBS=$OLD_LIBS 418 419 if test x$FAM_LIBS = x; then 420 AC_MSG_ERROR([fam/gamin-headers and/or libs where not found, install them or build with --without-fam]) 421 fi 422fi 423 424AC_MSG_CHECKING(for properties in mod_webdav) 425AC_ARG_WITH(webdav-props, AC_HELP_STRING([--with-webdav-props],[properties in mod_webdav]), 426[WITH_WEBDAV_PROPS=$withval],[WITH_WEBDAV_PROPS=no]) 427AC_MSG_RESULT([$WITH_WEBDAV_PROPS]) 428 429if test "$WITH_WEBDAV_PROPS" != "no"; then 430 PKG_CHECK_MODULES(XML, libxml-2.0, [ 431 AC_DEFINE([HAVE_LIBXML2], [1], [libxml2]) 432 AC_DEFINE([HAVE_LIBXML_H], [1], [libxml.h]) 433 ]) 434 PKG_CHECK_MODULES(SQLITE, sqlite3, [ 435 AC_DEFINE([HAVE_SQLITE3], [1], [libsqlite3]) 436 AC_DEFINE([HAVE_SQLITE3_H], [1], [sqlite3.h]) 437 ]) 438 439 AC_MSG_CHECKING(for locks in mod_webdav) 440 AC_ARG_WITH(webdav-locks, AC_HELP_STRING([--with-webdav-locks],[locks in mod_webdav]), 441 [WITH_WEBDAV_LOCKS=$withval],[WITH_WEBDAV_LOCKS=no]) 442 AC_MSG_RESULT([$WITH_WEBDAV_LOCKS]) 443 444 if test "$WITH_WEBDAV_LOCKS" != "no"; then 445 AC_CHECK_LIB(uuid, uuid_unparse, [ 446 AC_CHECK_HEADERS([uuid/uuid.h],[ 447 UUID_LIBS=-luuid 448 AC_DEFINE([HAVE_UUID], [1], [libuuid]) 449 AC_DEFINE([HAVE_UUID_H], [1], [uuid/uuid.h is available]) 450 ]) 451 ]) 452 453 fi 454fi 455AC_SUBST(UUID_LIBS) 456 457AC_MSG_CHECKING(for properties in mod_smbdav) 458AC_ARG_WITH(smbdav-props, AC_HELP_STRING([--with-smbdav-props],[properties in mod_smbdav]), 459[WITH_SMBDAV_PROPS=$withval],[WITH_SMBDAV_PROPS=no]) 460AC_MSG_RESULT([$WITH_SMBDAV_PROPS]) 461 462if test "$WITH_SMBDAV_PROPS" != "no"; then 463 PKG_CHECK_MODULES(XML, libxml-2.0, [ 464 AC_DEFINE([HAVE_LIBXML2], [1], [libxml2]) 465 AC_DEFINE([HAVE_LIBXML_H], [1], [libxml.h]) 466 ]) 467 PKG_CHECK_MODULES(SQLITE, sqlite3, [ 468 AC_DEFINE([HAVE_SQLITE3], [1], [libsqlite3]) 469 AC_DEFINE([HAVE_SQLITE3_H], [1], [sqlite3.h]) 470 ]) 471 472 AC_MSG_CHECKING(for locks in mod_smbdav) 473 AC_ARG_WITH(smbdav-locks, AC_HELP_STRING([--with-smbdav-locks],[locks in mod_smbdav]), 474 [WITH_SMBDAV_LOCKS=$withval],[WITH_SMBDAV_LOCKS=no]) 475 AC_MSG_RESULT([$WITH_SMBDAV_LOCKS]) 476 477 if test "$WITH_SMBDAV_LOCKS" != "no"; then 478 AC_CHECK_LIB(uuid, uuid_unparse, [ 479 AC_CHECK_HEADERS([uuid/uuid.h],[ 480 UUID_LIBS=-luuid 481 AC_DEFINE([HAVE_UUID], [1], [libuuid]) 482 AC_DEFINE([HAVE_UUID_H], [1], [uuid/uuid.h is available]) 483 ]) 484 ]) 485 486 fi 487fi 488 489 490 491 492dnl Check for gdbm 493AC_MSG_CHECKING(for gdbm) 494AC_ARG_WITH(gdbm, AC_HELP_STRING([--with-gdbm],[gdbm storage for mod_trigger_b4_dl]), 495[WITH_GDBM=$withval],[WITH_GDBM=no]) 496AC_MSG_RESULT([$WITH_GDBM]) 497 498if test "$WITH_GDBM" != "no"; then 499 AC_CHECK_LIB(gdbm, gdbm_open, [ 500 AC_CHECK_HEADERS([gdbm.h],[ 501 GDBM_LIB=-lgdbm 502 AC_DEFINE([HAVE_GDBM], [1], [libgdbm]) 503 AC_DEFINE([HAVE_GDBM_H], [1]) 504 ]) 505 ]) 506 AC_SUBST(GDBM_LIB) 507fi 508 509dnl Check for memcache 510AC_MSG_CHECKING(for memcache) 511AC_ARG_WITH(memcache, AC_HELP_STRING([--with-memcache],[memcached storage for mod_trigger_b4_dl]), 512[WITH_MEMCACHE=$withval],[WITH_MEMCACHE=no]) 513AC_MSG_RESULT([$WITH_MEMCACHE]) 514if test "$WITH_MEMCACHE" != "no"; then 515 AC_CHECK_LIB(memcache, mc_new, [ 516 AC_CHECK_HEADERS([memcache.h],[ 517 MEMCACHE_LIB=-lmemcache 518 AC_DEFINE([HAVE_MEMCACHE], [1], [libmemcache]) 519 AC_DEFINE([HAVE_MEMCACHE_H], [1], [memcache.h]) 520 ]) 521 ]) 522 AC_SUBST(MEMCACHE_LIB) 523fi 524 525dnl Check for lua 526AC_MSG_CHECKING(if lua-support is requested) 527AC_ARG_WITH(lua, AC_HELP_STRING([--with-lua],[lua engine for mod_cml]), 528[WITH_LUA=$withval],[WITH_LUA=no]) 529 530AC_MSG_RESULT($WITH_LUA) 531if test "$WITH_LUA" != "no"; then 532 if test "$WITH_LUA" = "yes"; then 533 WITH_LUA=lua 534 fi 535 PKG_CHECK_MODULES(LUA, $WITH_LUA >= 5.1, [ 536 AC_DEFINE([HAVE_LUA], [1], [liblua]) 537 AC_DEFINE([HAVE_LUA_H], [1], [lua.h]) 538 ],[ 539 dnl for debian based systems 540 PKG_CHECK_MODULES(LUA, lua5.1 >= 5.1, [ 541 AC_DEFINE([HAVE_LUA], [1], [liblua]) 542 AC_DEFINE([HAVE_LUA_H], [1], [lua.h]) 543 ],[ 544 dnl for freebsd 545 PKG_CHECK_MODULES(LUA, lua-5.1 >= 5.1, [ 546 AC_DEFINE([HAVE_LUA], [1], [liblua]) 547 AC_DEFINE([HAVE_LUA_H], [1], [lua.h]) 548 ]) 549 ]) 550 ]) 551 552 AC_SUBST(LUA_CFLAGS) 553 AC_SUBST(LUA_LIBS) 554fi 555 556save_LIBS=$LIBS 557AC_SEARCH_LIBS(crypt,crypt,[ 558 AC_CHECK_HEADERS([crypt.h],[ 559 AC_DEFINE([HAVE_CRYPT_H], [1]) 560 ]) 561 562 AC_DEFINE([HAVE_LIBCRYPT], [1], [libcrypt]) 563 if test "$ac_cv_search_crypt" != no; then 564 test "$ac_cv_search_crypt" = "none required" || CRYPT_LIB="$ac_cv_search_crypt" 565 fi 566]) 567LIBS=$save_LIBS 568AC_SUBST(CRYPT_LIB) 569 570save_LIBS=$LIBS 571AC_SEARCH_LIBS(sendfilev,sendfile,[ 572 if test "$ac_cv_search_sendfilev" != no; then 573 test "$ac_cv_search_sendfilev" = "none required" || SENDFILE_LIB="$ac_cv_search_sendfilev" 574 AC_DEFINE([HAVE_SENDFILEV], [1], [solaris sendfilev]) 575 fi 576]) 577LIBS=$save_LIBS 578AC_SUBST(SENDFILE_LIB) 579 580case $host_os in 581 *mingw* ) LIBS="$LIBS -lwsock32";; 582 * ) ;; 583esac 584 585AC_CHECK_FUNCS([dup2 getcwd inet_ntoa inet_ntop memset mmap munmap strchr \ 586 strdup strerror strstr strtol sendfile getopt socket lstat \ 587 gethostbyname poll epoll_ctl getrlimit chroot \ 588 getuid select signal pathconf madvise posix_fadvise posix_madvise \ 589 writev sigaction sendfile64 send_file kqueue port_create localtime_r gmtime_r]) 590 591AC_MSG_CHECKING(for Large File System support) 592AC_ARG_ENABLE(lfs, 593 AC_HELP_STRING([--enable-lfs],[Turn on Large File System (default)]), 594 [case "${enableval}" in 595 yes) CPPFLAGS="${CPPFLAGS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES" ;; 596 no) ;; 597 *) AC_MSG_ERROR(bad value ${enableval} for --enable-lfs) ;; 598 esac],[CPPFLAGS="${CPPFLAGS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES" 599 enable_lfs=yes]) 600AC_MSG_RESULT($enableval) 601 602AC_CHECK_SIZEOF(long) 603AC_CHECK_SIZEOF(off_t) 604 605if test "x$ac_cv_func_sendfile" = xyes; then 606 dnl check if sendfile works 607 AC_MSG_CHECKING(if sendfile works) 608 if test "x$cross_compiling" = xno; then 609 AC_TRY_RUN([ 610 #ifdef HAVE_SYS_SENDFILE_H 611 #include <sys/sendfile.h> 612 #endif /* HAVE_SYS_SENDFILE_H */ 613 #include <errno.h> 614 int main() { 615 int o = 0; 616 if (-1 == sendfile(-1, 0, &o, 0) && errno == ENOSYS) return -1; 617 return 0; 618 } ], 619 AC_MSG_RESULT(yes), 620 [ AC_MSG_RESULT(no) 621 AC_DEFINE([HAVE_SENDFILE_BROKEN], [1], [broken sendfile]) ] ) 622 else 623 AC_MSG_RESULT(no, cross-compiling) 624 AC_DEFINE([HAVE_SENDFILE_BROKEN], [1], [broken sendfile]) 625 fi 626fi 627 628dnl Check for IPv6 support 629 630AC_ARG_ENABLE(ipv6, 631 AC_HELP_STRING([--disable-ipv6],[disable IPv6 support]), 632 [case "${enableval}" in 633 yes) ipv6=true ;; 634 no) ipv6=false ;; 635 *) AC_MSG_ERROR(bad value ${enableval} for --enable-ipv6) ;; 636 esac],[ipv6=true]) 637 638if test x$ipv6 = xtrue; then 639 AC_CACHE_CHECK([for IPv6 support], ac_cv_ipv6_support, 640 [AC_TRY_LINK([ #include <sys/types.h> 641#include <sys/socket.h> 642#include <netinet/in.h>], [struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0; ], 643 [ac_cv_ipv6_support=yes], [ac_cv_ipv6_support=no])]) 644 645 if test "$ac_cv_ipv6_support" = yes; then 646 AC_DEFINE(HAVE_IPV6,1,[Whether to enable IPv6 support]) 647 fi 648fi 649 650 651AM_CONDITIONAL(CROSS_COMPILING, test "x$cross_compiling" = xyes) 652 653dnl check for fastcgi lib, for the tests only 654fastcgi_found=no 655AC_CHECK_LIB(fcgi, FCGI_Accept, [ 656 AC_CHECK_HEADERS([fastcgi.h fastcgi/fastcgi.h],[ 657 fastcgi_found=yes 658 ]) 659]) 660 661AM_CONDITIONAL(CHECK_WITH_FASTCGI, test "x$fastcgi_found" = xyes) 662 663 664dnl check for extra compiler options (warning options) 665if test "${GCC}" = "yes"; then 666 CFLAGS="${CFLAGS} -Wall -W -Wshadow -pedantic -std=gnu99" 667fi 668 669AC_ARG_ENABLE(extra-warnings, 670 AC_HELP_STRING([--enable-extra-warnings],[enable extra warnings (gcc specific)]), 671 [case "${enableval}" in 672 yes) extrawarnings=true ;; 673 no) extrawarnings=false ;; 674 *) AC_MSG_ERROR(bad value ${enableval} for --enable-extra-warnings) ;; 675 esac],[extrawarnings=false]) 676 677if test x$extrawarnings = xtrue; then 678 CFLAGS="${CFLAGS} -g -O2 -g2 -Wall -Wmissing-declarations -Wdeclaration-after-statement -Wno-pointer-sign -Wcast-align -Winline -Wsign-compare -Wnested-externs -Wpointer-arith -Wl,--as-needed -Wformat-security" 679fi 680 681dnl build version-id 682LIGHTTPD_VERSION_ID=`echo $PACKAGE_VERSION | $AWK -F '.' '{print "(" $1 " << 16 | " $2 " << 8 | " $3 ")"}'` 683AC_DEFINE_UNQUOTED([LIGHTTPD_VERSION_ID], [$LIGHTTPD_VERSION_ID], [lighttpd-version-id]) 684 685AC_CONFIG_FILES([Makefile src/Makefile distribute.sh]) 686AC_OUTPUT 687 688 689do_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" 690do_build="$do_build mod_rrdtool mod_secdownload mod_expire mod_compress mod_dirlisting mod_indexfile mod_userdir mod_webdav mod_smbdav mod_staticfile mod_scgi mod_flv_streaming" 691 692plugins="mod_rewrite mod_redirect mod_ssi mod_trigger_b4_dl" 693features="regex-conditionals" 694if test ! "x$PCRE_LIB" = x; then 695 do_build="$do_build $plugins" 696 enable_feature="$features" 697else 698 no_build="$no_build $plugins" 699 disable_feature="$features" 700fi 701 702plugins="mod_mysql_vhost" 703if test ! "x$MYSQL_LIBS" = x; then 704 do_build="$do_build $plugins" 705else 706 no_build="$no_build $plugins" 707fi 708 709plugins="mod_cml mod_magnet" 710if test ! "x$LUA_LIBS" = x; then 711 do_build="$do_build $plugins" 712else 713 no_build="$no_build $plugins" 714fi 715 716features="storage-gdbm" 717if test ! "x$GDBM_LIB" = x; then 718 enable_feature="$enable_feature $features" 719else 720 disable_feature="$disable_feature $features" 721fi 722 723features="storage-memcache" 724if test ! "x$MEMCACHE_LIB" = x; then 725 enable_feature="$enable_feature $features" 726else 727 disable_feature="$disable_feature $features" 728fi 729 730features="compress-gzip compress-deflate" 731if test ! "x$Z_LIB" = x; then 732 enable_feature="$enable_feature $features" 733else 734 disable_feature="$disable_feature $features" 735fi 736 737features="compress-bzip2" 738if test ! "x$BZ_LIB" = x; then 739 enable_feature="$enable_feature $features" 740else 741 disable_feature="$disable_feature $features" 742fi 743 744features="auth-ldap" 745if test ! "x$LDAP_LIB" = x; then 746 enable_feature="$enable_feature $features" 747else 748 disable_feature="$disable_feature $features" 749fi 750 751features="network-openssl" 752if test ! "x$SSL_LIB" = x; then 753 enable_feature="$enable_feature $features" 754else 755 disable_feature="$disable_feature $features" 756fi 757 758dnl no crypt call 759features="auth-crypt" 760if test "$ac_cv_search_crypt" = no; then 761 disable_feature="$disable_feature $features" 762else 763 enable_feature="$enable_feature $features" 764fi 765 766features="network-ipv6" 767if test "$ac_cv_ipv6_support" = yes; then 768 enable_feature="$enable_feature $features" 769else 770 disable_feature="$disable_feature $features" 771fi 772 773features="large-files" 774if test "$enable_lfs" = yes; then 775 enable_feature="$enable_feature $features" 776else 777 disable_feature="$disable_feature $features" 778fi 779 780features="stat-cache-fam" 781if test ! "x$FAM_LIBS" = x; then 782 enable_feature="$enable_feature $features" 783else 784 disable_feature="$disable_feature $features" 785fi 786 787 788features="webdav-properties" 789if test "x$XML_LIBS" \!= x -a "x$SQLITE_LIBS" \!= x; then 790 enable_feature="$enable_feature $features" 791else 792 disable_feature="$disable_feature $features" 793fi 794 795features="webdav-locks" 796if test "x$UUID_LIBS" \!= x; then 797 enable_feature="$enable_feature $features" 798else 799 disable_feature="$disable_feature $features" 800fi 801 802features="smbdav-properties" 803if test "x$XML_LIBS" \!= x -a "x$SQLITE_LIBS" \!= x; then 804 enable_feature="$enable_feature $features" 805else 806 disable_feature="$disable_feature $features" 807fi 808 809features="smbdav-locks" 810if test "x$UUID_LIBS" \!= x; then 811 enable_feature="$enable_feature $features" 812else 813 disable_feature="$disable_feature $features" 814fi 815 816dnl output 817 818$ECHO 819$ECHO "Plugins:" 820$ECHO 821 822$ECHO "enabled: " 823for p in $do_build; do 824 $ECHO " $p" 825done | sort 826 827$ECHO "disabled: " 828for p in $no_build; do 829 $ECHO " $p" 830done | sort 831 832$ECHO 833$ECHO "Features:" 834$ECHO 835 836$ECHO "enabled: " 837for p in $enable_feature; do 838 $ECHO " $p" 839done | sort 840 841$ECHO "disabled: " 842for p in $disable_feature; do 843 $ECHO " $p" 844done | sort 845 846$ECHO 847