1dnl -*- Autoconf -*- 2dnl Process this file with autoconf to produce a configure script. 3dnl 4dnl Indentation rules: 5dnl - closing braces not at the beginning of a line must match opening 6dnl braces earlier on that line 7dnl - closing braces at the beginning of a line: 8dnl - must not be followed by anything else apart from "," or comments 9dnl - must match opening braces from another line and indented the 10dnl same as that other line 11dnl - if one argument was put on a new line, all following arguments 12dnl must be on their own line too 13dnl - if an argument uses more than one line and is not a single 14dnl function call, the argument should be on different lines than the 15dnl wrapping braces 16AC_PREREQ([2.60]) 17AC_INIT([lighttpd],[1.4.63],[https://redmine.lighttpd.net/projects/lighttpd/boards/2],[lighttpd],[https://www.lighttpd.net/]) 18AC_CONFIG_SRCDIR([src/server.c]) 19AC_CONFIG_HEADERS([config.h]) 20AC_CONFIG_MACRO_DIR([m4]) 21 22AC_CANONICAL_HOST 23 24AM_INIT_AUTOMAKE([1.13 -Wall -Wno-portability -Wno-override foreign dist-xz tar-ustar serial-tests silent-rules subdir-objects]) 25 26dnl @synopsis TRY_CFLAGS [compiler flags] 27dnl @summary check whether compiler supports given flags and adds them to CFLAGS 28AC_DEFUN([TRY_CFLAGS], 29[dnl 30 AC_MSG_CHECKING([if $CC supports $1]) 31 AC_LANG_PUSH([C]) 32 ac_try_cflags_saved_cflags="${CFLAGS}" 33 CFLAGS="${CFLAGS} $1" 34 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], 35 [AC_MSG_RESULT([yes])], 36 [ 37 AC_MSG_ERROR([no]) 38 CFLAGS="${ac_try_cflags_saved_cflags}" 39 ] 40 ) 41 AC_LANG_POP([C]) 42]) 43 44dnl @synopsis TRY_LDFLAGS [linker flags] 45dnl @summary check whether linker supports given flags and adds them to LDFLAGS 46AC_DEFUN([TRY_LDFLAGS], 47[dnl 48 AC_MSG_CHECKING([if $LD supports $1]) 49 AC_LANG_PUSH([C]) 50 ac_try_ldflags_saved_ldflags="${LDFLAGS}" 51 LDFLAGS="${LDFLAGS} $1" 52 AC_LINK_IFELSE([AC_LANG_PROGRAM([])], 53 [AC_MSG_RESULT([yes])], 54 [ 55 AC_MSG_ERROR([no]) 56 LDFLAGS="${ac_try_ldflags_saved_cflags}" 57 ] 58 ) 59 AC_LANG_POP([C]) 60]) 61 62dnl Checks for programs. 63AC_PROG_CC 64AC_PROG_CC_C99 65AX_PROG_CC_FOR_BUILD 66LT_PATH_LD 67AC_PROG_INSTALL 68AC_PROG_CPP 69AC_PROG_MAKE_SET 70 71AC_USE_SYSTEM_EXTENSIONS 72AM_PROG_AR 73AC_C_INLINE 74AC_C_RESTRICT 75 76dnl AC_CANONICAL_HOST 77case "$host_os" in 78*darwin*|*cygwin*|*aix*|*mingw*|*midipix* ) NO_RDYNAMIC=yes ;; 79* ) NO_RDYNAMIC=no ;; 80esac 81AM_CONDITIONAL([NO_RDYNAMIC], [test "$NO_RDYNAMIC" = yes]) 82 83AM_CONDITIONAL([LIGHTTPD_STATIC], [test "$LIGHTTPD_STATIC" = yes]) 84 85AC_EXEEXT 86 87dnl libtool 88LT_INIT([dlopen disable-static shared]) 89 90dnl for solaris 91CPPFLAGS="${CPPFLAGS} -D_REENTRANT" 92 93dnl Checks for header files. 94 95dnl checks for sys/wait.h => HAVE_SYS_WAIT_H 96AC_HEADER_SYS_WAIT 97AC_CHECK_HEADERS([\ 98 getopt.h \ 99 inttypes.h \ 100 malloc.h \ 101 poll.h \ 102 port.h \ 103 pwd.h \ 104 stdlib.h \ 105 stdint.h \ 106 strings.h \ 107 sys/devpoll.h \ 108 sys/epoll.h \ 109 sys/event.h \ 110 sys/filio.h \ 111 sys/inotify.h \ 112 sys/loadavg.h \ 113 sys/mman.h \ 114 sys/poll.h \ 115 sys/prctl.h \ 116 sys/resource.h \ 117 sys/select.h \ 118 sys/sendfile.h \ 119 sys/time.h \ 120 sys/uio.h \ 121 sys/un.h \ 122 syslog.h \ 123 uuid/uuid.h \ 124]) 125 126dnl Checks for typedefs, structures, and compiler characteristics. 127AC_C_CONST 128AC_C_INLINE 129AC_TYPE_OFF_T 130AC_TYPE_PID_T 131AC_TYPE_SIZE_T 132 133AC_CHECK_MEMBER([struct tm.tm_gmtoff], 134 [AC_DEFINE([HAVE_STRUCT_TM_GMTOFF], [1], [gmtoff in struct tm])], 135 [], 136 [#include <time.h>] 137) 138AC_CHECK_TYPES([socklen_t], 139 [], dnl defines HAVE_SOCKLEN_T 140 [], 141 [ 142 #include <sys/types.h> 143 #include <sys/socket.h> 144 ] 145) 146 147dnl openssl on solaris needs -lsocket -lnsl 148AC_SEARCH_LIBS([socket], [socket]) 149AC_SEARCH_LIBS([gethostbyname], [nsl socket]) 150 151dnl On Haiku accept() and friends are in libnetwork 152AC_SEARCH_LIBS([accept], [network]) 153 154dnl clock_gettime() needs -lrt with glibc < 2.17, and possibly other platforms 155AC_SEARCH_LIBS([clock_gettime], [rt]) 156 157dnl FreeBSD elftc_copyfile() 158save_LIBS=$LIBS 159LIBS= 160AC_SEARCH_LIBS([elftc_copyfile], [elftc], [ 161 AC_CHECK_HEADERS([libelftc.h], [ 162 ELFTC_LIB=$LIBS 163 AC_DEFINE([HAVE_LIBELFTC], [1], [libelftc]) 164 AC_DEFINE([HAVE_ELFTC_COPYFILE], [1], [elftc_copyfile]) 165 ]) 166]) 167LIBS=$save_LIBS 168AC_SUBST([ELFTC_LIB]) 169 170dnl need dlopen/-ldl to load plugins (when not on windows) 171save_LIBS=$LIBS 172LIBS= 173AC_SEARCH_LIBS([dlopen], [dl], [ 174 AC_CHECK_HEADERS([dlfcn.h], [ 175 DL_LIB=$LIBS 176 AC_DEFINE([HAVE_LIBDL], [1], [libdl]) 177 AC_DEFINE([HAVE_DLFCN_H], [1]) 178 ]) 179]) 180LIBS=$save_LIBS 181AC_SUBST([DL_LIB]) 182 183dnl prepare pkg-config usage below 184PKG_PROG_PKG_CONFIG 185 186dnl checking for libev 187AC_MSG_NOTICE([----------------------------------------]) 188AC_MSG_CHECKING([for libev support]) 189AC_ARG_WITH([libev], 190 [AS_HELP_STRING([--with-libev@<:@=PATH@:>@], 191 [Include libev support for fdevent handlers in PATH/include and PATH/lib] 192 )], 193 [WITH_LIBEV=$withval], 194 [WITH_LIBEV=no] 195) 196AC_MSG_RESULT([$WITH_LIBEV]) 197 198LIBEV_CFLAGS= 199LIBEV_LIBS= 200 201if test "$WITH_LIBEV" != no; then 202 PKG_CHECK_MODULES([LIBEV], [libev], [], [ 203 dnl no pkg-config for libev, searching manually: 204 205 if test "$WITH_LIBEV" != yes; then 206 LIBEV_CFLAGS="-I$WITH_LIBEV/include" 207 LIBEV_LIBS="-L$WITH_LIBEV/lib -lev" 208 else 209 AC_CHECK_HEADERS([ev.h], 210 [AC_CHECK_LIB([ev], [ev_time], 211 [ 212 LIBEV_CFLAGS= 213 LIBEV_LIBS="-lev" 214 ], 215 [AC_MSG_ERROR([libev not found])] 216 )], 217 [AC_MSG_ERROR([libev header not found])] 218 ) 219 fi 220 ]) 221 222 AC_DEFINE([HAVE_LIBEV], [1], [libev support]) 223fi 224 225AC_SUBST([LIBEV_CFLAGS]) 226AC_SUBST([LIBEV_LIBS]) 227 228dnl Checks for mysql 229AC_MSG_NOTICE([----------------------------------------]) 230AC_MSG_CHECKING([for MySQL support]) 231AC_ARG_WITH([mysql], 232 [AS_HELP_STRING([--with-mysql@<:@=PATH@:>@], 233 [Include MySQL support. PATH is the path to 'mysql_config'] 234 )], 235 [WITH_MYSQL=$withval], 236 [WITH_MYSQL=no] 237) 238AC_MSG_RESULT([$WITH_MYSQL]) 239 240MYSQL_CFLAGS= 241MYSQL_LIBS= 242 243if test "$WITH_MYSQL" != no; then 244 if test "$WITH_MYSQL" = yes; then 245 PKG_CHECK_MODULES([MYSQL],[mariadb],[ 246 MYSQL_CONFIG=$PKG_CONFIG 247 ],[ 248 PKG_CHECK_MODULES([MYSQL],[mysqlclient],[ 249 MYSQL_CONFIG=$PKG_CONFIG 250 ],[ 251 AC_PATH_PROG([MYSQL_CONFIG], [mysql_config]) 252 ]) 253 ]) 254 else 255 MYSQL_CONFIG=$WITH_MYSQL 256 fi 257 258 if test "$MYSQL_CONFIG" != "$PKG_CONFIG"; then 259 if test -z "$MYSQL_CONFIG"; then 260 AC_MSG_ERROR([mysql_config is not found]) 261 fi 262 if test ! -x "$MYSQL_CONFIG"; then 263 AC_MSG_ERROR([mysql_config not exists or not executable, use --with-mysql=path-to-mysql_config]) 264 fi 265 266 if "$MYSQL_CONFIG" | grep -- '--include' > /dev/null ; then 267 MYSQL_CFLAGS=`"$MYSQL_CONFIG" --include | sed s/\'//g` 268 else 269 MYSQL_CFLAGS=`"$MYSQL_CONFIG" --cflags | sed s/\'//g` 270 fi 271 MYSQL_LIBS=`"$MYSQL_CONFIG" --libs | sed s/\'//g` 272 fi 273 274 AC_MSG_CHECKING([for MySQL includes at]) 275 AC_MSG_RESULT([$MYSQL_CFLAGS]) 276 277 AC_MSG_CHECKING([for MySQL libraries at]) 278 AC_MSG_RESULT([$MYSQL_LIBS]) 279 280 AC_DEFINE([HAVE_MYSQL], [1], [mysql support]) 281fi 282AM_CONDITIONAL([BUILD_WITH_MYSQL], [test "$WITH_MYSQL" != no]) 283 284AC_SUBST([MYSQL_LIBS]) 285AC_SUBST([MYSQL_CFLAGS]) 286 287dnl Checks for pgsql 288AC_MSG_NOTICE([----------------------------------------]) 289AC_MSG_CHECKING([for PgSQL support]) 290AC_ARG_WITH([pgsql], 291 [AS_HELP_STRING([--with-pgsql@<:@=PATH@:>@], 292 [Include PgSQL support. PATH is the path to 'pg_config'] 293 )], 294 [WITH_PGSQL=$withval], 295 [WITH_PGSQL=no] 296) 297AC_MSG_RESULT([$WITH_PGSQL]) 298 299PGSQL_CFLAGS= 300PGSQL_LIBS= 301 302if test "$WITH_PGSQL" != no; then 303 if test "$WITH_PGSQL" = yes; then 304 PKG_CHECK_MODULES([PGSQL],[libpq],[ 305 PGSQL_CONFIG=$PKG_CONFIG 306 ],[ 307 AC_PATH_PROG([PGSQL_CONFIG], [pg_config]) 308 ]) 309 else 310 PGSQL_CONFIG=$WITH_PGSQL 311 fi 312 313 if test "$PGSQL_CONFIG" != "$PKG_CONFIG"; then 314 if test -z "$PGSQL_CONFIG"; then 315 AC_MSG_ERROR([pg_config is not found]) 316 fi 317 if test ! -x "$PGSQL_CONFIG"; then 318 AC_MSG_ERROR([pg_config not exists or not executable, use --with-pgsql=path-to-pg_config]) 319 fi 320 321 PGSQL_CFLAGS="-I`"$PGSQL_CONFIG" --includedir`" 322 PGSQL_LIBS="-L`"$PGSQL_CONFIG" --libdir` -lpq" 323 fi 324 325 AC_MSG_CHECKING([for PgSQL includes at]) 326 AC_MSG_RESULT([$PGSQL_CFLAGS]) 327 328 AC_MSG_CHECKING([for PgSQL libraries at]) 329 AC_MSG_RESULT([$PGSQL_LIBS]) 330 331 AC_DEFINE([HAVE_PGSQL], [1], [pgsql support]) 332fi 333AM_CONDITIONAL([BUILD_WITH_PGSQL], [test "$WITH_PGSQL" != no]) 334 335AC_SUBST([PGSQL_LIBS]) 336AC_SUBST([PGSQL_CFLAGS]) 337 338dnl Checks for libdbi library 339AC_MSG_NOTICE([----------------------------------------]) 340AC_MSG_CHECKING([for LibDBI support]) 341AC_ARG_WITH([dbi], 342 [AS_HELP_STRING([--with-dbi@<:@=PATH@:>@], 343 [Include DBI support in PATH/include/dbi.h and PATH/lib] 344 )], 345 [WITH_DBI=$withval], 346 [WITH_DBI=no] 347) 348AC_MSG_RESULT([$WITH_DBI]) 349 350DBI_INCLUDE= 351DBI_LIBS= 352 353if test "$WITH_DBI" != no; then 354 if test "$WITH_DBI" != yes; then 355 DBI_CFLAGS="-I$WITH_DBI/include" 356 DBI_LIBS="-L$WITH_DBI/lib -ldbi" 357 else 358 AC_CHECK_HEADERS([dbi/dbi.h], 359 [AC_CHECK_LIB([dbi], [dbi_version], 360 [ 361 DBI_CFLAGS= 362 DBI_LIBS="-ldbi" 363 ], 364 [AC_MSG_ERROR([LibDBI not found])] 365 )], 366 [AC_MSG_ERROR([LibDBI header not found])] 367 ) 368 fi 369 370 AC_DEFINE([HAVE_DBI], [1], [LibDBI support]) 371fi 372AM_CONDITIONAL([BUILD_WITH_DBI], [test "$WITH_DBI" != no]) 373 374AC_SUBST([DBI_LIBS]) 375AC_SUBST([DBI_CFLAGS]) 376 377dnl Checks for libsasl2 library 378AC_MSG_NOTICE([----------------------------------------]) 379AC_MSG_CHECKING([for LibSASL support]) 380AC_ARG_WITH([sasl], 381 [AS_HELP_STRING([--with-sasl@<:@=PATH@:>@], 382 [Include SASL support in PATH/include/sasl/sasl.h and PATH/lib] 383 )], 384 [WITH_SASL=$withval], 385 [WITH_SASL=no] 386) 387AC_MSG_RESULT([$WITH_SASL]) 388 389SASL_INCLUDE= 390SASL_LIBS= 391 392if test "$WITH_SASL" != no; then 393 if test "$WITH_SASL" != yes; then 394 SASL_CFLAGS="-I$WITH_SASL/include" 395 SASL_LIBS="-L$WITH_SASL/lib -lsasl2" 396 else 397 AC_CHECK_HEADERS([sasl/sasl.h], 398 [AC_CHECK_LIB([sasl2], [sasl_server_init], 399 [ 400 SASL_CFLAGS= 401 SASL_LIBS="-lsasl2" 402 ], 403 [AC_MSG_ERROR([libsasl2 not found])] 404 )], 405 [AC_MSG_ERROR([SASL header not found])] 406 ) 407 fi 408 409 AC_DEFINE([HAVE_SASL], [1], [LibSASL support]) 410fi 411AM_CONDITIONAL([BUILD_WITH_SASL], [test "$WITH_SASL" != no]) 412 413AC_SUBST([SASL_LIBS]) 414AC_SUBST([SASL_CFLAGS]) 415 416 417dnl Check for LDAP 418AC_MSG_NOTICE([----------------------------------------]) 419AC_MSG_CHECKING([for LDAP support]) 420AC_ARG_WITH([ldap], 421 [AS_HELP_STRING([--with-ldap], [enable LDAP support])], 422 [WITH_LDAP=$withval], 423 [WITH_LDAP=no] 424) 425AC_MSG_RESULT([$WITH_LDAP]) 426 427if test "$WITH_LDAP" != no; then 428 AC_CHECK_LIB([ldap], [ldap_sasl_bind_s], 429 [AC_CHECK_HEADERS([ldap.h], 430 [ 431 LDAP_LIB=-lldap 432 AC_DEFINE([HAVE_LIBLDAP], [1], [libldap]) 433 AC_DEFINE([HAVE_LDAP_H], [1]) 434 ], 435 [AC_MSG_ERROR([ldap headers not found, install them or build without --with-ldap])] 436 )], 437 [AC_MSG_ERROR([ldap library not found, install it or build without --with-ldap])] 438 ) 439 AC_SUBST([LDAP_LIB]) 440 AC_CHECK_LIB([lber], [ber_printf], 441 [AC_CHECK_HEADERS([lber.h], 442 [ 443 LBER_LIB=-llber 444 AC_DEFINE([HAVE_LIBLBER], [1], [liblber]) 445 AC_DEFINE([HAVE_LBER_H], [1]) 446 ], 447 [AC_MSG_ERROR([lber headers not found, install them or build without --with-ldap])] 448 )], 449 [AC_MSG_ERROR([lber library not found, install it or build without --with-ldap])] 450 ) 451 AC_SUBST([LBER_LIB]) 452fi 453AM_CONDITIONAL([BUILD_WITH_LDAP], [test "$WITH_LDAP" != no]) 454 455dnl Check for PAM 456AC_MSG_NOTICE([----------------------------------------]) 457AC_MSG_CHECKING(for PAM support) 458AC_ARG_WITH([pam], 459 [AS_HELP_STRING([--with-pam],[enable PAM support])], 460 [WITH_PAM=$withval], 461 [WITH_PAM=no] 462) 463AC_MSG_RESULT([$withval]) 464 465if test "$WITH_PAM" != "no"; then 466 AC_CHECK_LIB([pam], [pam_start], 467 [AC_CHECK_HEADERS([security/pam_appl.h],[ 468 PAM_LIB=-lpam 469 AC_DEFINE([HAVE_PAM], [1], [libpam]) 470 AC_DEFINE([HAVE_SECURITY_PAM_APPL_H], [1]) 471 ], 472 [AC_MSG_ERROR([pam headers not found, install them or build without --with-pam])] 473 )], 474 [AC_MSG_ERROR([pam library not found, install it or build without --with-pam])] 475 ) 476 AC_SUBST(PAM_LIB) 477fi 478AM_CONDITIONAL([BUILD_WITH_PAM], [test "$WITH_PAM" != no]) 479 480dnl Check for xattr 481AC_MSG_NOTICE([----------------------------------------]) 482AC_MSG_CHECKING([for extended attributes support]) 483AC_ARG_WITH([attr], 484 [AS_HELP_STRING([--with-attr], [enable extended attribute support])], 485 [WITH_ATTR=$withval], 486 [WITH_ATTR=no] 487) 488AC_MSG_RESULT([$WITH_ATTR]) 489 490if test "$WITH_ATTR" != no; then 491 have_xattr=no 492 # libattr (linux only?) 493 AC_CHECK_LIB([attr], [attr_get], [ 494 AC_CHECK_HEADERS([attr/attributes.h], [ 495 ATTR_LIB=-lattr 496 AC_DEFINE([HAVE_XATTR], [1], [libattr]) 497 AC_DEFINE([HAVE_ATTR_ATTRIBUTES_H], [1]) 498 have_xattr=yes 499 ]) 500 ]) 501 AC_SUBST([ATTR_LIB]) 502 503 # Linux getxattr 504 AC_CHECK_FUNC([getxattr], [ 505 AC_CHECK_HEADERS([sys/xattr.h], [ 506 AC_DEFINE([HAVE_XATTR], [1], [Linux extended attributes]) 507 AC_DEFINE([HAVE_SYS_XATTR_H], [1]) 508 have_xattr=yes 509 ]) 510 ]) 511 512 # (Free)BSD extattr 513 AC_CHECK_FUNC([extattr_get_file], [ 514 AC_CHECK_HEADERS([sys/extattr.h], [ 515 AC_DEFINE([HAVE_EXTATTR], [1], [BSD extended attributes]) 516 AC_DEFINE([HAVE_SYS_EXTATTR_H], [1]) 517 have_xattr=yes 518 ]) 519 ]) 520 521 if test "$have_xattr" = no; then 522 AC_MSG_ERROR([no backend found implementing extended attributes]) 523 fi 524fi 525 526dnl Check for valgrind 527AC_MSG_NOTICE([----------------------------------------]) 528AC_MSG_CHECKING([for valgrind]) 529AC_ARG_WITH([valgrind], 530 [AS_HELP_STRING([--with-valgrind], 531 [enable internal support for valgrind] 532 )], 533 [WITH_VALGRIND=$withval], 534 [WITH_VALGRIND=no] 535) 536AC_MSG_RESULT([$WITH_VALGRIND]) 537 538if test "$WITH_VALGRIND" != no; then 539 AC_CHECK_HEADERS([valgrind/valgrind.h], [], [ 540 AC_MSG_ERROR([valgrind headers not found. install them or build without --with-valgrind]) 541 ]) 542fi 543 544dnl Checking for libunwind 545AC_MSG_NOTICE([----------------------------------------]) 546AC_MSG_CHECKING([for libunwind]) 547AC_ARG_WITH([libunwind], 548 [AS_HELP_STRING([--with-libunwind], 549 [Include libunwind support for backtraces on assert failures] 550 )], 551 [WITH_LIBUNWIND=$withval], 552 [WITH_LIBUNWIND=no] 553) 554AC_MSG_RESULT([$WITH_LIBUNWIND]) 555 556if test "$WITH_LIBUNWIND" != no; then 557 PKG_CHECK_MODULES([LIBUNWIND], [libunwind], [], [ 558 AC_MSG_ERROR([libunwind not found. install it or build without --with-libunwind]) 559 ]) 560 AC_DEFINE([HAVE_LIBUNWIND], [1], [Have libunwind support]) 561fi 562 563dnl Checking for kerberos5 564AC_MSG_NOTICE([----------------------------------------]) 565AC_MSG_CHECKING([for kerberos5]) 566AC_ARG_WITH([krb5], 567 [AS_HELP_STRING([--with-krb5@<:@=DIR@:>@], [Use Kerberos 5])], 568 [WITH_KRB5=$withval], 569 [WITH_KRB5=no] 570) 571AC_MSG_RESULT([$WITH_KRB5]) 572 573if test "$WITH_KRB5" != no; then 574 if test "$WITH_KRB5" != yes; then 575 krb5_append_CPPFLAGS=" -I$WITH_KRB5/include" 576 krb5_append_LDFLAGS=" -L$WITH_KRB5/lib" 577 fi 578fi 579 580AC_MSG_CHECKING([custom include directory for kerberos5]) 581AC_ARG_WITH([krb5-includes], 582 [AS_HELP_STRING([--with-krb5-includes=DIR], [Kerberos includes])], 583 [ 584 if test "$WITH_KRB5" = no; then 585 AC_MSG_ERROR([build --with-krb5 to use --with-krb5-includes]) 586 fi 587 krb5_append_CPPFLAGS=" -I$withval" 588 AC_MSG_RESULT([$withval]) 589 ], 590 [AC_MSG_RESULT([no])] 591) 592 593AC_MSG_CHECKING([custom lib directory for kerberos5]) 594AC_ARG_WITH([krb5-libs], 595 [AS_HELP_STRING([--with-krb5-libs=DIR], [Kerberos libraries])], 596 [ 597 if test "$WITH_KRB5" = no; then 598 AC_MSG_ERROR([build --with-krb5 to use --with-krb5-libs]) 599 fi 600 krb5_append_LDFLAGS=" -L$withval" 601 AC_MSG_RESULT([$withval]) 602 ], 603 [AC_MSG_RESULT([no])] 604) 605 606if test "$WITH_KRB5" != no; then 607 CPPFLAGS="${CPPFLAGS}${krb5_append_CPPFLAGS}" 608 LDFLAGS="${LDFLAGS}${krb5_append_LDFLAGS}" 609 610 AC_CHECK_LIB([gssapi_krb5], [gss_acquire_cred], 611 [AC_CHECK_HEADERS([gssapi/gssapi_krb5.h], 612 [ 613 KRB5_LIB="-lkrb5 -lgssapi_krb5" 614 AC_DEFINE([HAVE_KRB5], [1], [libgssapi_krb5]) 615 ], 616 [AC_MSG_ERROR([gssapi_krb5 headers were not found, install them or build without --with-krb5])] 617 )], 618 [AC_MSG_ERROR([gssapi_krb5 libs were not found, install them or build without --with-krb5])] 619 ) 620 case "$host_os" in 621 *darwin*|*cygwin* ) KRB5_LIB="$KRB5_LIB -lcom_err" ;; 622 * ) ;; 623 esac 624fi 625 626AM_CONDITIONAL([BUILD_WITH_KRB5], [test "$WITH_KRB5" != no]) 627AC_SUBST([KRB5_LIB]) 628 629dnl Check for openssl 630AC_MSG_NOTICE([----------------------------------------]) 631AC_MSG_CHECKING([for OpenSSL]) 632AC_ARG_WITH([openssl], 633 [AS_HELP_STRING([--with-openssl@<:@=DIR@:>@], 634 [Include openssl support (default no)] 635 )], 636 [WITH_OPENSSL=$withval], 637 [WITH_OPENSSL=no] 638) 639AC_MSG_RESULT([$WITH_OPENSSL]) 640AM_CONDITIONAL([BUILD_WITH_OPENSSL], test ! "$WITH_OPENSSL" = no) 641 642if test "$WITH_OPENSSL" != no; then 643 if test "$WITH_OPENSSL" != yes; then 644 openssl_append_CPPFLAGS=" -I$WITH_OPENSSL/include" 645 openssl_append_LDFLAGS=" -L$WITH_OPENSSL/lib" 646 fi 647fi 648 649AC_MSG_CHECKING([custom include directory for openssl]) 650AC_ARG_WITH([openssl-includes], 651 [AS_HELP_STRING([--with-openssl-includes=DIR], [OpenSSL includes])], 652 [ 653 if test "$WITH_OPENSSL" = no; then 654 AC_MSG_ERROR([build --with-openssl to use --with-openssl-includes]) 655 fi 656 openssl_append_CPPFLAGS=" -I$withval" 657 AC_MSG_RESULT([$withval]) 658 ], 659 [AC_MSG_RESULT([no])] 660) 661 662AC_MSG_CHECKING([custom lib directory for openssl]) 663AC_ARG_WITH([openssl-libs], 664 [AS_HELP_STRING([--with-openssl-libs=DIR], [OpenSSL libraries])], 665 [ 666 if test "$WITH_OPENSSL" = no; then 667 AC_MSG_ERROR([build --with-openssl to use --with-openssl-libs]) 668 fi 669 openssl_append_LDFLAGS=" -L$withval" 670 AC_MSG_RESULT([$withval]) 671 ], 672 [AC_MSG_RESULT([no])] 673) 674 675if test "$WITH_OPENSSL" != no; then 676 if test "$WITH_KRB5" != no; then 677 AC_DEFINE([USE_OPENSSL_KERBEROS], [1], [with kerberos]) 678 fi 679 680 CPPFLAGS="${CPPFLAGS}${openssl_append_CPPFLAGS}" 681 LDFLAGS="${LDFLAGS}${openssl_append_LDFLAGS}" 682 683 AC_CHECK_HEADERS([openssl/ssl.h], [], [ 684 AC_MSG_ERROR([openssl headers not found. install them or build without --with-openssl]) 685 ]) 686 AC_CHECK_LIB([crypto], [RAND_bytes], 687 [CRYPTO_LIB="-lcrypto"], 688 [AC_MSG_ERROR([openssl crypto library not found. install it or build without --with-openssl])] 689 ) 690 AC_CHECK_LIB([ssl], [SSL_new], 691 [OPENSSL_LIBS="${openssl_append_LDFLAGS} -lssl -lcrypto"], 692 [AC_MSG_ERROR([openssl ssl library not found. install it or build without --with-openssl])], 693 [ -lcrypto "$DL_LIB" ] 694 ) 695 696 AC_DEFINE([HAVE_LIBSSL], [1], [Have libssl]) 697 OPENSSL_CFLAGS="${openssl_append_CPPFLAGS}" 698 AC_SUBST([OPENSSL_CFLAGS]) 699 AC_SUBST([OPENSSL_LIBS]) 700 AC_SUBST([CRYPTO_LIB]) 701fi 702 703dnl Check for wolfSSL 704AC_MSG_NOTICE([----------------------------------------]) 705AC_MSG_CHECKING([for wolfSSL]) 706AC_ARG_WITH([wolfssl], 707 [AS_HELP_STRING([--with-wolfssl@<:@=DIR@:>@], 708 [Include wolfSSL support (default no)] 709 )], 710 [WITH_WOLFSSL=$withval], 711 [WITH_WOLFSSL=no] 712) 713AC_MSG_RESULT([$WITH_WOLFSSL]) 714AM_CONDITIONAL([BUILD_WITH_WOLFSSL], test ! "$WITH_WOLFSSL" = no) 715 716if test "$WITH_WOLFSSL" != no; then 717 CPPFLAGS_SAVE="${CPPFLAGS}" 718 LDFLAGS_SAVE="${LDFLAGS}" 719 if test "$WITH_WOLFSSL" != yes; then 720 WOLFSSL_CFLAGS="-I$WITH_WOLFSSL/include -I$WITH_WOLFSSL/include/wolfssl" 721 WOLFSSL_LIBS="-L$WITH_WOLFSSL/lib -lwolfssl" 722 LDFLAGS="${LDFLAGS} -L$WITH_WOLFSSL/lib" 723 else 724 PKG_CHECK_MODULES([WOLFSSL], [wolfssl], [], [ 725 AC_MSG_ERROR([wolfssl not found, install it or build without --with-wolfssl]) 726 ]) 727 if test "$WOLFSSL_LIBS" != "-lwolfssl"; then 728 LDFLAGS="${LDFLAGS} ${WOLFSSL_LIBS% -lwolfssl}" 729 fi 730 fi 731 732 CPPFLAGS="${CPPFLAGS} $WOLFSSL_CFLAGS" 733 AC_CHECK_HEADERS([wolfssl/ssl.h], [], [ 734 AC_MSG_ERROR([wolfssl headers not found. install them or build without --with-wolfssl]) 735 ]) 736 AC_CHECK_LIB([wolfssl], [wolfSSL_Init], 737 [WOLFSSL_CRYPTO_LIB="-lwolfssl"], 738 [AC_MSG_ERROR([wolfssl crypto library not found. install it or build without --with-wolfssl])] 739 ) 740 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ 741 #include <wolfssl/options.h> 742 #if !defined(HAVE_LIGHTY) && !defined(OPENSSL_EXTRA) 743 #error HAVE_LIGHTY macro not defined 744 #endif 745 ]])], [], [AC_MSG_ERROR([wolfssl must be built with ./configure --enable-lighty])]) 746 747 AC_SUBST([WOLFSSL_CFLAGS]) 748 AC_SUBST([WOLFSSL_LIBS]) 749 if test "$WITH_OPENSSL" = no; then 750 CRYPTO_LIB="$WOLFSSL_CRYPTO_LIB" 751 AC_SUBST([CRYPTO_LIB]) 752 else 753 CPPFLAGS="${CPPFLAGS_SAVE}" 754 LDFLAGS="${LDFLAGS_SAVE}" 755 fi 756fi 757 758dnl Check for mbedTLS 759AC_MSG_NOTICE([----------------------------------------]) 760AC_MSG_CHECKING([for mbedTLS]) 761AC_ARG_WITH([mbedtls], 762 AS_HELP_STRING([--with-mbedtls@<:@=DIR@:>@],[Include mbedTLS support. DIR points to the installation root. (default no)]), 763 [WITH_MBEDTLS=$withval], 764 [WITH_MBEDTLS=no] 765) 766 767if test "$WITH_MBEDTLS" != "no"; then 768 use_mbedtls=yes 769 if test "$WITH_MBEDTLS" != "yes"; then 770 CPPFLAGS="$CPPFLAGS -I$WITH_MBEDTLS/include" 771 LDFLAGS="$LDFLAGS -L$WITH_MBEDTLS/lib" 772 fi 773else 774 use_mbedtls=no 775fi 776AC_MSG_RESULT([$use_mbedtls]) 777AM_CONDITIONAL(BUILD_WITH_MBEDTLS, test ! $WITH_MBEDTLS = no) 778 779if test "x$use_mbedtls" = "xyes"; then 780 AC_CHECK_HEADERS([mbedtls/ssl.h]) 781 OLDLIBS="$LIBS" 782 AC_CHECK_LIB(mbedcrypto,mbedtls_base64_encode, 783 [AC_CHECK_LIB(mbedx509, mbedtls_x509_get_name, 784 [AC_CHECK_LIB(mbedtls, mbedtls_cipher_info_from_type, 785 [MTLS_LIBS="-lmbedtls -lmbedx509 -lmbedcrypto" 786 CRYPTO_LIB="-lmbedcrypto" 787 AC_DEFINE(HAVE_LIBMBEDTLS, [1], [Have libmbedtls library]) 788 AC_DEFINE(HAVE_LIBMBEDX509, [1], [Have libmbedx509 library]) 789 AC_DEFINE(HAVE_LIBMBEDCRYPTO, [1], [Have libmbedcrypto library]) ], 790 [],[-lmbedcrypto "$DL_LIB"]) 791 ],[],[-lmbedcrypto "$DL_LIB"]) 792 ],[],[]) 793 LIBS="$OLDLIBS" 794 AC_SUBST(MTLS_LIBS) 795 AC_SUBST(CRYPTO_LIB) 796fi 797 798dnl Check for Nettle (and overwrite CRYPTO_LIB if set by OpenSSL or wolfSSL) 799AC_MSG_NOTICE([----------------------------------------]) 800AC_MSG_CHECKING([for Nettle]) 801AC_ARG_WITH([nettle], 802 [AS_HELP_STRING([--with-nettle@<:@=DIR@:>@], 803 [Include Nettle support (default no)] 804 )], 805 [WITH_NETTLE=$withval], 806 [WITH_NETTLE=no] 807) 808AC_MSG_RESULT([$WITH_NETTLE]) 809 810if test "$WITH_NETTLE" != no; then 811 if test "$WITH_NETTLE" != yes; then 812 CPPFLAGS="${CPPFLAGS} -I$WITH_NETTLE/include" 813 LDFLAGS="${LDFLAGS} -L$WITH_NETTLE/lib" 814 fi 815 816 AC_CHECK_HEADERS([nettle/nettle-types.h], [], [ 817 AC_MSG_ERROR([nettle headers not found. install them or build without --with-nettle]) 818 ]) 819 AC_CHECK_LIB([nettle], [nettle_md5_init], 820 [CRYPTO_LIB="-lnettle"], 821 [AC_MSG_ERROR([nettle crypto library not found. install it or build without --with-nettle])] 822 ) 823 824 AC_SUBST([CRYPTO_LIB]) 825fi 826 827dnl Check for GnuTLS 828AC_MSG_NOTICE([----------------------------------------]) 829AC_MSG_CHECKING([for GnuTLS]) 830AC_ARG_WITH([gnutls], 831 AS_HELP_STRING([--with-gnutls@<:@=DIR@:>@],[Include GnuTLS support. DIR points to the installation root. (default no)]), 832 [WITH_GNUTLS=$withval], 833 [WITH_GNUTLS=no] 834) 835 836if test "$WITH_GNUTLS" != "no"; then 837 use_gnutls=yes 838else 839 use_gnutls=no 840fi 841AC_MSG_RESULT([$use_gnutls]) 842AM_CONDITIONAL(BUILD_WITH_GNUTLS, test ! $WITH_GNUTLS = no) 843 844GNUTLS_CFLAGS= 845GNUTLS_LIBS= 846 847if test "x$use_gnutls" = "xyes"; then 848 if test "$WITH_GNUTLS" != "yes"; then 849 GNUTLS_CFLAGS="-I$WITH_GNUTLS/include" 850 GNUTLS_LIBS="-L$WITH_GNUTLS/lib -lgnutls" 851 else 852 dnl oldest GnuTLS supported release is 3.3.x at time this is being written 853 PKG_CHECK_MODULES([GNUTLS], [gnutls >= 3.3.0]) 854 fi 855 AC_SUBST([GNUTLS_CFLAGS]) 856 AC_SUBST([GNUTLS_LIBS]) 857 AC_DEFINE([HAVE_GNUTLS_CRYPTO_H], [1], [gnutls/crypto.h]) 858 if test "$WITH_OPENSSL" = no && test "$WITH_WOLFSSL" = no && \ 859 test "$WITH_MBEDTLS" = no && test "$WITH_NETTLE" = no; then 860 AC_SUBST([CRYPTO_LIB],[$GNUTLS_LIBS]) 861 fi 862fi 863 864dnl Check for NSS 865AC_MSG_NOTICE([----------------------------------------]) 866AC_MSG_CHECKING([for NSS]) 867AC_ARG_WITH([nss], 868 AS_HELP_STRING([--with-nss@<:@=DIR@:>@],[Include NSS support. DIR points to the installation root. (default no)]), 869 [WITH_NSS=$withval], 870 [WITH_NSS=no] 871) 872 873if test "$WITH_NSS" != "no"; then 874 use_nss=yes 875else 876 use_nss=no 877fi 878AC_MSG_RESULT([$use_nss]) 879AM_CONDITIONAL(BUILD_WITH_NSS, test ! $WITH_NSS = no) 880 881NSS_CFLAGS= 882NSS_LIBS= 883 884if test "x$use_nss" = "xyes"; then 885 if test "$WITH_NSS" != "yes"; then 886 NSS_CFLAGS="-I$WITH_NSS/include" 887 NSS_LIBS="-L$WITH_NSS/lib -lnss3" 888 else 889 PKG_CHECK_MODULES([NSS],[nss]) 890 if test "x$CRYPTO_LIB" = "x"; then 891 PKG_CHECK_MODULES([NSPR],[nspr]) 892 CPPFLAGS="$CPPFLAGS $NSPR_CFLAGS" 893 fi 894 fi 895 AC_DEFINE([HAVE_NSS_NSS_H], [1], [nss/nss.h]) 896 AC_DEFINE([HAVE_NSS3_NSS_H], [1], [nss3/nss.h]) 897 AC_SUBST([NSS_CFLAGS]) 898 AC_SUBST([NSS_LIBS]) 899 if test "x$CRYPTO_LIB" = "x"; then 900 CRYPTO_LIB="-lnss3" 901 AC_SUBST([CRYPTO_LIB]) 902 fi 903fi 904 905 906dnl pcre2 support 907AC_MSG_NOTICE([----------------------------------------]) 908AC_MSG_CHECKING([for perl regular expressions support]) 909AC_ARG_WITH([pcre2], 910 [AS_HELP_STRING([--with-pcre2], [Enable pcre2 support (default no)])], 911 [WITH_PCRE2=$withval], 912 [WITH_PCRE2=no] 913) 914AC_MSG_RESULT([$WITH_PCRE2]) 915 916if test "$WITH_PCRE2" != no; then 917 if test "$WITH_PCRE2" != yes; then 918 PCRE_LIB="-L$WITH_PCRE2/lib -lpcre2-8" 919 CPPFLAGS="$CPPFLAGS -I$WITH_PCRE/include" 920 else 921 AC_PATH_PROG([PCRE2CONFIG], [pcre2-config]) 922 if test -n "$PCRE2CONFIG"; then 923 PCRE_LIB=`"$PCRE2CONFIG" --libs8` 924 CPPFLAGS="$CPPFLAGS `"$PCRE2CONFIG" --cflags`" 925 fi 926 fi 927 928 if test -z "$PCRE_LIB"; then 929 AC_MSG_ERROR([pcre2-config not found, install the pcre2-devel package or build with --without-pcre2]) 930 fi 931 932 AC_DEFINE([HAVE_PCRE], [1], [libpcre2-8]) 933 AC_DEFINE([HAVE_PCRE2_H], [1], [pcre.h]) 934 AC_SUBST([PCRE_LIB]) 935fi 936 937dnl pcre support 938AC_MSG_NOTICE([----------------------------------------]) 939AC_MSG_CHECKING([for perl regular expressions support]) 940AC_ARG_WITH([pcre], 941 [AS_HELP_STRING([--with-pcre], [Enable pcre support (default yes)])], 942 [WITH_PCRE=$withval], 943 [WITH_PCRE=yes] 944) 945AC_MSG_RESULT([$WITH_PCRE]) 946 947if test "$WITH_PCRE" != no && test "$WITH_PCRE2" = "no"; then 948 if test "$WITH_PCRE" != yes; then 949 PCRE_LIB="-L$WITH_PCRE/lib -lpcre" 950 CPPFLAGS="$CPPFLAGS -I$WITH_PCRE/include" 951 else 952 AC_PATH_PROG([PCRECONFIG], [pcre-config]) 953 if test -n "$PCRECONFIG"; then 954 PCRE_LIB=`"$PCRECONFIG" --libs` 955 CPPFLAGS="$CPPFLAGS `"$PCRECONFIG" --cflags`" 956 fi 957 fi 958 959 if test -z "$PCRE_LIB"; then 960 AC_MSG_ERROR([pcre-config not found, install the pcre-devel package or build with --without-pcre]) 961 fi 962 963 AC_DEFINE([HAVE_PCRE], [1], [libpcre]) 964 AC_DEFINE([HAVE_PCRE_H], [1], [pcre.h]) 965 AC_SUBST([PCRE_LIB]) 966fi 967 968dnl zlib 969AC_MSG_NOTICE([----------------------------------------]) 970AC_MSG_CHECKING([for zlib support]) 971AC_ARG_WITH([zlib], 972 [AS_HELP_STRING([--with-zlib], 973 [Enable zlib support for mod_deflate] 974 )], 975 [WITH_ZLIB=$withval], 976 [WITH_ZLIB=yes] 977) 978AC_MSG_RESULT([$WITH_ZLIB]) 979 980if test "$WITH_ZLIB" != no; then 981 if test "$WITH_ZLIB" != yes; then 982 Z_LIB="-L$WITH_ZLIB -lz" 983 CPPFLAGS="$CPPFLAGS -I$WITH_ZLIB" 984 else 985 AC_CHECK_HEADERS([zlib.h], [], 986 [AC_MSG_ERROR([zlib headers not found, install them or build without --with-zlib])] 987 ) 988 AC_CHECK_LIB([z], [deflate], 989 [Z_LIB=-lz], 990 [AC_MSG_ERROR([zlib library not found, install it or build without --with-zlib])] 991 ) 992 fi 993 994 AC_DEFINE([HAVE_LIBZ], [1], [libz]) 995 AC_DEFINE([HAVE_ZLIB_H], [1]) 996 AC_SUBST([Z_LIB]) 997fi 998 999dnl zstd 1000AC_MSG_NOTICE([----------------------------------------]) 1001AC_MSG_CHECKING([for zstd support]) 1002AC_ARG_WITH([zstd], 1003 [AS_HELP_STRING([--with-zstd], 1004 [Enable zstd support for mod_deflate] 1005 )], 1006 [WITH_ZSTD=$withval], 1007 [WITH_ZSTD=no] 1008) 1009AC_MSG_RESULT([$WITH_ZSTD]) 1010 1011if test "$WITH_ZSTD" != no; then 1012 if test "$WITH_ZSTD" != yes; then 1013 ZSTD_LIB="-L$WITH_ZSTD -lzstd" 1014 CPPFLAGS="$CPPFLAGS -I$WITH_ZSTD" 1015 else 1016 AC_CHECK_HEADERS([zstd.h], [], 1017 [AC_MSG_ERROR([zstd headers not found, install them or build without --with-zstd])] 1018 ) 1019 AC_CHECK_LIB([zstd], [ZSTD_versionNumber], 1020 [ZSTD_LIB=-lzstd], 1021 [AC_MSG_ERROR([zstd library not found, install it or build without --with-zstd])] 1022 ) 1023 fi 1024 1025 AC_DEFINE([HAVE_ZSTD], [1], [libzstd]) 1026 AC_DEFINE([HAVE_ZSTD_H], [1]) 1027 AC_SUBST([ZSTD_LIB]) 1028fi 1029 1030dnl bzip2 1031AC_MSG_NOTICE([----------------------------------------]) 1032AC_MSG_CHECKING([for bzip2 support]) 1033AC_ARG_WITH([bzip2], 1034 [AS_HELP_STRING([--with-bzip2], 1035 [Enable bzip2 support for mod_deflate] 1036 )], 1037 [WITH_BZIP2=$withval], 1038 [WITH_BZIP2=no] 1039) 1040AC_MSG_RESULT([$WITH_BZIP2]) 1041 1042if test "$WITH_BZIP2" != no; then 1043 if test "$WITH_BZIP2" != yes; then 1044 BZ_LIB="-L$WITH_BZIP2 -lbz2" 1045 CPPFLAGS="$CPPFLAGS -I$WITH_BZIP2" 1046 else 1047 AC_CHECK_HEADERS([bzlib.h], [], [ 1048 AC_MSG_ERROR([bzip2 headers not found, install them or build without --with-bzip2]) 1049 ]) 1050 AC_CHECK_LIB([bz2], [BZ2_bzCompress], 1051 [BZ_LIB=-lbz2], 1052 [AC_MSG_ERROR([bzip2 library not found, install it or build without --with-bzip2])] 1053 ) 1054 fi 1055 1056 AC_DEFINE([HAVE_LIBBZ2], [1], [libbz2]) 1057 AC_DEFINE([HAVE_BZLIB_H], [1]) 1058 AC_SUBST([BZ_LIB]) 1059fi 1060 1061dnl brotli 1062AC_MSG_NOTICE([----------------------------------------]) 1063AC_MSG_CHECKING([for brotli support]) 1064AC_ARG_WITH([brotli], 1065 [AS_HELP_STRING([--with-brotli], 1066 [Enable brotli support for mod_deflate] 1067 )], 1068 [WITH_BROTLI=$withval], 1069 [WITH_BROTLI=no] 1070) 1071AC_MSG_RESULT([$WITH_BROTLI]) 1072 1073if test "$WITH_BROTLI" != no; then 1074 if test "$WITH_BROTLI" != yes; then 1075 BROTLI_LIBS="-L$WITH_BROTLI -lbrotlienc" 1076 CPPFLAGS="$CPPFLAGS -I$WITH_BROTLI" 1077 else 1078 PKG_CHECK_MODULES([BROTLI], [libbrotlienc], [], [ 1079 AC_MSG_ERROR([brotli not found, install it or build without --with-brotli]) 1080 ]) 1081 fi 1082 1083 AC_DEFINE([HAVE_BROTLI_ENCODE_H], [1], [brotli/encode.h]) 1084 AC_DEFINE([HAVE_BROTLI], [1], [libbrotlienc]) 1085 AC_SUBST([BROTLI_CFLAGS]) 1086 AC_SUBST([BROTLI_LIBS]) 1087fi 1088 1089dnl Check for fam/gamin 1090AC_MSG_NOTICE([----------------------------------------]) 1091AC_MSG_CHECKING([for FAM]) 1092AC_ARG_WITH([fam], 1093 [AS_HELP_STRING([--with-fam], 1094 [fam/gamin for reducing number of stat() calls] 1095 )], 1096 [WITH_FAM=$withval], 1097 [WITH_FAM=no] 1098) 1099AC_MSG_RESULT([$WITH_FAM]) 1100 1101dnl "$ac_cv_func_kqueue" is set further below 1102case "$host_os" in 1103*bsd*|*darwin* ) WITH_FAM=no ;; 1104* ) ;; 1105esac 1106 1107if test "$ac_cv_header_sys_inotify_h" != no; then 1108 WITH_FAM=no 1109fi 1110 1111if test "$WITH_FAM" != no; then 1112 if test "$WITH_FAM" != yes; then 1113 FAM_LIBS="-L$WITH_FAM -lfam" 1114 CPPFLAGS="$CPPFLAGS -I$WITH_FAM" 1115 else 1116 AC_CHECK_LIB([fam], [FAMOpen2], [ 1117 AC_CHECK_HEADERS([fam.h], [FAM_LIBS=-lfam]) 1118 ]) 1119 dnl fam has no pkg-config so far, so just search for gamin as fallback 1120 if test -z "$FAM_LIBS"; then 1121 PKG_CHECK_MODULES([FAM], [gamin >= 0.1.0]) 1122 fi 1123 fi 1124 1125 if test -z "$FAM_LIBS"; then 1126 AC_MSG_ERROR([fam/gamin headers and/or libs were not found, install them or build without --with-fam]) 1127 fi 1128 1129 OLD_LIBS=$LIBS 1130 LIBS=$FAM_LIBS 1131 AC_CHECK_FUNCS([FAMNoExists]) 1132 LIBS=$OLD_LIBS 1133 1134 AC_DEFINE([HAVE_LIBFAM], [1], [libfam]) 1135 AC_DEFINE([HAVE_FAM_H], [1], [fam.h]) 1136 AC_SUBST([FAM_LIBS]) 1137fi 1138 1139 1140dnl webdav props (xml2 and sqlite3) 1141AC_MSG_NOTICE([----------------------------------------]) 1142AC_MSG_CHECKING([for properties in mod_webdav]) 1143AC_ARG_WITH([webdav-props], 1144 [AS_HELP_STRING([--with-webdav-props], [properties in mod_webdav])], 1145 [WITH_WEBDAV_PROPS=$withval], 1146 [WITH_WEBDAV_PROPS=no] 1147) 1148AC_MSG_RESULT([$WITH_WEBDAV_PROPS]) 1149 1150if test "$WITH_WEBDAV_PROPS" != no; then 1151 AC_MSG_CHECKING([for libxml2]) 1152 AC_ARG_WITH([libxml], 1153 [AS_HELP_STRING([--with-libxml], 1154 [libxml2 for properties in mod_webdav] 1155 )], 1156 [WITH_LIBXML=$withval], 1157 [WITH_LIBXML=yes] 1158 ) 1159 AC_MSG_RESULT([$WITH_LIBXML]) 1160 1161 if test "$WITH_LIBXML" = no; then 1162 AC_MSG_ERROR([--with-webdav-props requires libxml]) 1163 fi 1164 1165 if test "$WITH_LIBXML" != yes; then 1166 XML_LIBS="-L$WITH_LIBXML/.libs -lxml2" 1167 XML_CFLAGS="-I$WITH_LIBXML/include" 1168 else 1169 PKG_CHECK_MODULES([XML], [libxml-2.0], [], [ 1170 AC_MSG_ERROR([libxml2 not found, install it or build without --with-webdav-props]) 1171 ]) 1172 fi 1173 1174 AC_DEFINE([HAVE_LIBXML2], [1], [libxml2]) 1175 AC_DEFINE([HAVE_LIBXML_H], [1], [libxml.h]) 1176 AC_SUBST([XML_LIBS]) 1177 AC_SUBST([XML_CFLAGS]) 1178 1179 AC_MSG_CHECKING([for sqlite]) 1180 AC_ARG_WITH([sqlite], 1181 [AS_HELP_STRING([--with-sqlite], 1182 [sqlite for properties in mod_webdav] 1183 )], 1184 [WITH_SQLITE=$withval], 1185 [WITH_SQLITE=yes] 1186 ) 1187 AC_MSG_RESULT([$WITH_SQLITE]) 1188 1189 if test "$WITH_SQLITE" = no; then 1190 AC_MSG_ERROR([--with-webdav-props requires sqlite]) 1191 fi 1192 1193 if test "$WITH_SQLITE" != yes; then 1194 SQLITE_LIBS="-L$WITH_SQLITE/.libs -lsqlite3" 1195 SQLITE_CFLAGS="-I$WITH_SQLITE" 1196 else 1197 PKG_CHECK_MODULES([SQLITE], [sqlite3], [], [ 1198 AC_MSG_ERROR([sqlite3 not found, install it or build without --with-webdav-props]) 1199 ]) 1200 fi 1201 1202 AC_DEFINE([HAVE_SQLITE3], [1], [libsqlite3]) 1203 AC_DEFINE([HAVE_SQLITE3_H], [1], [sqlite3.h]) 1204 AC_SUBST([SQLITE_LIBS]) 1205 AC_SUBST([SQLITE_CFLAGS]) 1206fi 1207 1208 1209dnl webdav locks (uuid) 1210AC_MSG_NOTICE([----------------------------------------]) 1211AC_MSG_CHECKING([for locks in mod_webdav]) 1212AC_ARG_WITH([webdav-locks], 1213 [AS_HELP_STRING([--with-webdav-locks], 1214 [locks in mod_webdav (requires webdav properties)] 1215 )], 1216 [WITH_WEBDAV_LOCKS=$withval], 1217 [WITH_WEBDAV_LOCKS=no] 1218) 1219AC_MSG_RESULT([$WITH_WEBDAV_LOCKS]) 1220 1221if test "$WITH_WEBDAV_LOCKS" != no; then 1222 if test "$WITH_WEBDAV_PROPS" = no; then 1223 AC_MSG_ERROR([--with-webdav-locks requires --with-webdav-props]) 1224 fi 1225 1226 AC_MSG_CHECKING([for libuuid]) 1227 AC_ARG_WITH([uuid], 1228 [AS_HELP_STRING([--with-uuid], [uuid for locks in mod_webdav])], 1229 [WITH_UUID=$withval], 1230 [WITH_UUID=yes] 1231 ) 1232 AC_MSG_RESULT([$WITH_UUID]) 1233 1234 if test "$WITH_UUID" = no; then 1235 AC_MSG_ERROR([--with-webdav-locks requires uuid]) 1236 fi 1237 1238 if test "$WITH_UUID" != yes; then 1239 UUID_LIBS="-L$WITH_UUID -luuid" 1240 CPPFLAGS="$CPPFLAGS -I$WITH_UUID" 1241 else 1242 AC_CHECK_LIB([uuid], [uuid_unparse], 1243 [UUID_LIBS=-luuid], 1244 [AC_MSG_ERROR([uuid lib not found, install it or build without --with-webdav-locks])] 1245 ) 1246 AC_CHECK_HEADERS([uuid/uuid.h], [], 1247 [AC_MSG_ERROR([uuid headers not found, install them or build without --with-webdav-locks])] 1248 ) 1249 fi 1250 1251 AC_DEFINE([HAVE_LIBUUID], [1], [libuuid]) 1252 AC_DEFINE([HAVE_UUID_UUID_H], [1], [uuid/uuid.h is available]) 1253 AC_SUBST([UUID_LIBS]) 1254fi 1255 1256dnl xxhash 1257AC_MSG_NOTICE([----------------------------------------]) 1258AC_MSG_CHECKING([for xxhash support]) 1259AC_ARG_WITH([xxhash], 1260 [AS_HELP_STRING([--with-xxhash], 1261 [Enable system-provided xxhash] 1262 )], 1263 [WITH_XXHASH=$withval], 1264 [WITH_XXHASH=no] 1265) 1266AC_MSG_RESULT([$WITH_XXHASH]) 1267 1268if test "$WITH_XXHASH" != no; then 1269 if test "$WITH_XXHASH" != yes; then 1270 XXHASH_LIBS="-L$WITH_XXHASH -lxxhash" 1271 CPPFLAGS="$CPPFLAGS -I$WITH_XXHASH" 1272 else 1273 PKG_CHECK_MODULES([XXHASH], [libxxhash], [], [ 1274 AC_CHECK_LIB([xxhash], [XXH_versionNumber], 1275 [XXHASH_LIBS=-lxxhash], 1276 [AC_MSG_ERROR([xxhash not found, install it or build without --with-xxhash])] 1277 ) 1278 AC_CHECK_HEADERS([xxhash.h], [], 1279 [AC_MSG_ERROR([xxhash not found, install it or build without --with-xxhash])] 1280 ) 1281 ]) 1282 fi 1283 1284 AC_DEFINE([HAVE_XXHASH_H], [1], [xxhash.h]) 1285 AC_DEFINE([HAVE_XXHASH], [1], [xxhash]) 1286 AC_SUBST([XXHASH_CFLAGS]) 1287 AC_SUBST([XXHASH_LIBS]) 1288fi 1289 1290dnl Check for gdbm 1291AC_MSG_NOTICE([----------------------------------------]) 1292AC_MSG_CHECKING([for gdbm]) 1293AC_ARG_WITH([gdbm], 1294 [AS_HELP_STRING([--with-gdbm], [gdbm storage for mod_trigger_b4_dl])], 1295 [WITH_GDBM=$withval], 1296 [WITH_GDBM=no] 1297) 1298AC_MSG_RESULT([$WITH_GDBM]) 1299 1300if test "$WITH_GDBM" != no; then 1301 if test "$WITH_GDBM" != yes; then 1302 GDBM_LIB="-L$WITH_GDBM -lgdbm" 1303 CPPFLAGS="$CPPFLAGS -I$WITH_GDBM" 1304 else 1305 AC_CHECK_LIB([gdbm], [gdbm_open], 1306 [GDBM_LIB=-lgdbm], 1307 [AC_MSG_ERROR([gdbm lib not found, install it or build without --with-gdbm])] 1308 ) 1309 AC_CHECK_HEADERS([gdbm.h], [], 1310 [AC_MSG_ERROR([gdbm headers not found, install them or build without --with-gdbm])] 1311 ) 1312 fi 1313 1314 AC_DEFINE([HAVE_GDBM], [1], [libgdbm]) 1315 AC_DEFINE([HAVE_GDBM_H], [1]) 1316 AC_SUBST([GDBM_LIB]) 1317fi 1318AM_CONDITIONAL([BUILD_WITH_GDBM], [test "$WITH_GDBM" != no]) 1319 1320dnl Check for GeoIP 1321AC_MSG_NOTICE([----------------------------------------]) 1322AC_MSG_CHECKING([for GeoIP]) 1323AC_ARG_WITH([geoip], 1324 [AS_HELP_STRING([--with-geoip], [IP-based geolocation lookup])], 1325 [WITH_GEOIP=$withval], 1326 [WITH_GEOIP=no] 1327) 1328AC_MSG_RESULT([$WITH_GEOIP]) 1329 1330if test "$WITH_GEOIP" != no; then 1331 if test "$WITH_GEOIP" != yes; then 1332 GEOIP_LIB="-L$WITH_GEOIP -lGeoIP" 1333 CPPFLAGS="$CPPFLAGS -I$WITH_GEOIP" 1334 else 1335 AC_CHECK_LIB([GeoIP], [GeoIP_country_name_by_addr], 1336 [GEOIP_LIB=-lGeoIP], 1337 [AC_MSG_ERROR([GeoIP lib not found, install it or build without --with-geoip])] 1338 ) 1339 AC_CHECK_HEADERS([GeoIP.h], [], 1340 [AC_MSG_ERROR([GeoIP headers not found, install them or build without --with-geoip])] 1341 ) 1342 fi 1343 1344 AC_DEFINE([HAVE_GEOIP], [1], [libGeoIP]) 1345 AC_DEFINE([HAVE_GEOIP_H], [1]) 1346 AC_SUBST([GEOIP_LIB]) 1347fi 1348AM_CONDITIONAL([BUILD_WITH_GEOIP], [test "$WITH_GEOIP" != no]) 1349 1350dnl Check for maxminddb 1351AC_MSG_NOTICE([----------------------------------------]) 1352AC_MSG_CHECKING([for maxminddb]) 1353AC_ARG_WITH([maxminddb], 1354 [AS_HELP_STRING([--with-maxminddb], [IP-based geolocation lookup])], 1355 [WITH_MAXMINDDB=$withval], 1356 [WITH_MAXMINDDB=no] 1357) 1358AC_MSG_RESULT([$WITH_MAXMINDDB]) 1359 1360if test "$WITH_MAXMINDDB" != no; then 1361 if test "$WITH_MAXMINDDB" != yes; then 1362 MAXMINDDB_LIB="-L$WITH_MAXMINDDB -lmaxminddb" 1363 CPPFLAGS="$CPPFLAGS -I$WITH_MAXMINDDB" 1364 else 1365 AC_CHECK_LIB([maxminddb], [MMDB_open], 1366 [MAXMINDDB_LIB=-lmaxminddb], 1367 [AC_MSG_ERROR([maxminddb lib not found, install it or build without --with-maxminddb])] 1368 ) 1369 AC_CHECK_HEADERS([maxminddb.h], [], 1370 [AC_MSG_ERROR([maxminddb headers not found, install them or build without --with-maxminddb])] 1371 ) 1372 fi 1373 1374 AC_DEFINE([HAVE_MAXMINDDB], [1], [libmaxminddb]) 1375 AC_DEFINE([HAVE_MAXMINDDB_H], [1]) 1376 AC_SUBST([MAXMINDDB_LIB]) 1377fi 1378AM_CONDITIONAL([BUILD_WITH_MAXMINDDB], [test "$WITH_MAXMINDDB" != no]) 1379 1380dnl Check for memcached 1381AC_MSG_NOTICE([----------------------------------------]) 1382AC_MSG_CHECKING([for memcached]) 1383AC_ARG_WITH([memcached], 1384 [AS_HELP_STRING([--with-memcached], 1385 [memcached storage for mod_trigger_b4_dl/mod_cml] 1386 )], 1387 [WITH_MEMCACHED=$withval], 1388 [WITH_MEMCACHED=no] 1389) 1390AC_MSG_RESULT([$WITH_MEMCACHED]) 1391 1392if test "$WITH_MEMCACHED" != no; then 1393 if test "$WITH_MEMCACHED" != yes; then 1394 MEMCACHED_LIB="-L$WITH_MEMCACHED -lMEMCACHED" 1395 CPPFLAGS="$CPPFLAGS -I$WITH_MEMCACHED" 1396 else 1397 AC_CHECK_LIB([memcached], [memcached], 1398 [ MEMCACHED_LIB=-lmemcached ], 1399 [AC_MSG_ERROR([memcached lib not found, install it or build without --with-memcached])] 1400 ) 1401 AC_CHECK_HEADERS([libmemcached/memcached.h], [], 1402 [AC_MSG_ERROR([memcached headers not found, install them or build without --with-memcached])] 1403 ) 1404 fi 1405 1406 AC_DEFINE([USE_MEMCACHED], [1], [libmemcached]) 1407 AC_SUBST([MEMCACHED_LIB]) 1408fi 1409AM_CONDITIONAL([BUILD_WITH_MEMCACHED], [test "$WITH_MEMCACHED" != no]) 1410 1411BUILD_MOD_TRIGGER_B4_DL=no 1412if test "$WITH_MEMCACHED" != no || test "$WITH_GDBM" != no ; then 1413 BUILD_MOD_TRIGGER_B4_DL=yes 1414fi 1415 1416AM_CONDITIONAL([BUILD_MOD_TRIGGER_B4_DL], [test "$BUILD_MOD_TRIGGER_B4_DL" != no]) 1417 1418dnl Check for lua 1419AC_MSG_NOTICE([----------------------------------------]) 1420AC_MSG_CHECKING([if lua-support is requested]) 1421AC_ARG_WITH([lua], 1422 [AS_HELP_STRING([--with-lua], [lua engine for mod_magnet/mod_cml])], 1423 [WITH_LUA=$withval], 1424 [WITH_LUA=no] 1425) 1426AC_MSG_RESULT([$WITH_LUA]) 1427 1428if test "$WITH_LUA" != no; then 1429 found_lua=0 1430 if test "$WITH_LUA" != yes; then 1431 PKG_CHECK_MODULES([LUA], [$WITH_LUA >= 5.1], 1432 [found_lua=1], 1433 [AC_MSG_NOTICE([Couldn\'t find requested lua pkg-config module $WITH_LUA])] 1434 ) 1435 if test "$found_lua" = "0"; then 1436 LUA_LIBS="-L$WITH_LUA -llua" 1437 LUA_CFLAGS="-I$WITH_LUA" 1438 fi 1439 else 1440 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 1441 if test "$found_lua" = "0"; then 1442 PKG_CHECK_MODULES([LUA], [$luaname >= 5.1], 1443 [found_lua=1], 1444 [AC_MSG_NOTICE([Couldn\'t find $luaname])] 1445 ) 1446 fi 1447 done 1448 if test "$found_lua" = "0"; then 1449 AC_MSG_ERROR([Couldn\'t find any lua pkg-config module]) 1450 fi 1451 fi 1452 1453 AC_DEFINE([HAVE_LUA], [1], [liblua]) 1454 AC_DEFINE([HAVE_LUA_H], [1], [lua.h]) 1455 AC_SUBST([LUA_LIBS]) 1456 AC_SUBST([LUA_CFLAGS]) 1457fi 1458AM_CONDITIONAL([BUILD_WITH_LUA], [test "$WITH_LUA" != no]) 1459 1460dnl "--with-FEATURE" blocks end 1461AC_MSG_NOTICE([----------------------------------------]) 1462 1463dnl search for crypt_r and (fallback) for crypt 1464save_LIBS=$LIBS 1465LIBS= 1466found_crypt=no 1467AC_SEARCH_LIBS([crypt_r], [crypt], 1468 [ 1469 AC_DEFINE([HAVE_CRYPT_R], [1], [crypt_r]) 1470 AC_CHECK_HEADERS([crypt.h]) 1471 CRYPT_LIB=$LIBS 1472 found_crypt=crypt_r 1473 ], 1474 [AC_SEARCH_LIBS([crypt], [crypt], [ 1475 AC_DEFINE([HAVE_CRYPT], [1], [crypt]) 1476 AC_CHECK_HEADERS([crypt.h]) 1477 CRYPT_LIB=$LIBS 1478 found_crypt=crypt 1479 ])] 1480) 1481LIBS=$save_LIBS 1482AC_SUBST([CRYPT_LIB]) 1483 1484AC_MSG_CHECKING([crypt_r/crypt support]) 1485AC_MSG_RESULT([$found_crypt]) 1486 1487dnl check whether sendfilev needs -lsendfile 1488AC_MSG_NOTICE([----------------------------------------]) 1489save_LIBS=$LIBS 1490LIBS= 1491have_sendfilev=no 1492AC_SEARCH_LIBS([sendfilev], [sendfile], [ 1493 if test -z "$LIBS"; then 1494 have_sendfilev=yes 1495 else 1496 have_sendfilev=$LIBS 1497 fi 1498 SENDFILE_LIB=$LIBS 1499 AC_DEFINE([HAVE_SENDFILEV], [1], [solaris sendfilev]) 1500]) 1501LIBS=$save_LIBS 1502AC_SUBST([SENDFILE_LIB]) 1503 1504AC_MSG_CHECKING([solaris sendfilev present]) 1505AC_MSG_RESULT([$have_sendfilev]) 1506 1507AC_MSG_NOTICE([----------------------------------------]) 1508 1509case "$host_os" in 1510*mingw* ) LIBS="$LIBS -lwsock32" ;; 1511* ) ;; 1512esac 1513 1514AC_CHECK_FUNCS([\ 1515 arc4random_buf \ 1516 chroot \ 1517 clock_gettime \ 1518 copy_file_range \ 1519 epoll_ctl \ 1520 explicit_bzero \ 1521 explicit_memset \ 1522 fork \ 1523 getloadavg \ 1524 getrlimit \ 1525 getuid \ 1526 gmtime_r \ 1527 inet_aton \ 1528 inet_pton \ 1529 issetugid \ 1530 jrand48 \ 1531 kqueue \ 1532 localtime_r \ 1533 lstat \ 1534 madvise \ 1535 malloc_trim \ 1536 mallopt \ 1537 memcpy \ 1538 mempcpy \ 1539 memset \ 1540 memset_s \ 1541 mkostemp \ 1542 mmap \ 1543 pathconf \ 1544 pipe2 \ 1545 poll \ 1546 port_create \ 1547 pread \ 1548 preadv \ 1549 pwrite \ 1550 pwritev \ 1551 select \ 1552 send_file \ 1553 sendfile \ 1554 sendfile64 \ 1555 sigaction \ 1556 signal \ 1557 splice \ 1558 srandom \ 1559 strerror_r \ 1560 timegm \ 1561 writev \ 1562]) 1563AC_CHECK_HEADERS([sys/random.h], [AC_CHECK_FUNCS([getentropy])]) 1564AC_CHECK_HEADERS([linux/random.h], [AC_CHECK_FUNCS([getrandom])]) 1565 1566AC_MSG_NOTICE([----------------------------------------]) 1567AC_MSG_CHECKING([if weak symbols are supported]) 1568AC_LINK_IFELSE( 1569 [AC_LANG_PROGRAM([[ 1570 __attribute__((weak)) void __dummy(void *x) { } 1571 void f(void *x) { __dummy(x); } 1572 ]])], 1573 [ 1574 AC_MSG_RESULT([yes]) 1575 AC_DEFINE([HAVE_WEAK_SYMBOLS], [1], [weak symbols are supported]) 1576 ], 1577 [AC_MSG_RESULT([no])] 1578) 1579 1580AC_MSG_NOTICE([----------------------------------------]) 1581AC_MSG_CHECKING([for Large File System support]) 1582AC_ARG_ENABLE([lfs], 1583 [AS_HELP_STRING([--enable-lfs], 1584 [Turn on Large File System (default)] 1585 )], 1586 [ 1587 case "${enableval}" in 1588 yes) ENABLE_LFS=yes ;; 1589 no) ENABLE_LFS=no ;; 1590 *) AC_MSG_ERROR([bad value ${enableval} for --enable-lfs]) ;; 1591 esac 1592 ], 1593 [ ENABLE_LFS=yes ] 1594) 1595AC_MSG_RESULT([$ENABLE_LFS]) 1596if test "$ENABLE_LFS" = yes; then 1597 CPPFLAGS="${CPPFLAGS} -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES" 1598 AC_SYS_LARGEFILE 1599fi 1600 1601dnl check if sendfile works 1602if test "$ac_cv_func_sendfile" = yes; then 1603 AC_MSG_NOTICE([----------------------------------------]) 1604 AC_MSG_CHECKING([if sendfile works]) 1605 if test "$cross_compiling" = no; then 1606 AC_RUN_IFELSE([AC_LANG_SOURCE( 1607 [[ 1608 #ifdef HAVE_SYS_SENDFILE_H 1609 #include <sys/sendfile.h> 1610 #endif /* HAVE_SYS_SENDFILE_H */ 1611 #include <errno.h> 1612 int main() { 1613 int o = 0; 1614 if (-1 == sendfile(-1, 0, &o, 0) && errno == ENOSYS) return -1; 1615 return 0; 1616 } 1617 ]])], 1618 [AC_MSG_RESULT([yes])], 1619 [ 1620 AC_MSG_RESULT([no]) 1621 AC_DEFINE([HAVE_SENDFILE_BROKEN], [1], [broken sendfile]) 1622 ],[] 1623 ) 1624 fi 1625fi 1626 1627dnl Check for IPv6 support 1628AC_MSG_NOTICE([----------------------------------------]) 1629AC_ARG_ENABLE([ipv6], 1630 [AS_HELP_STRING([--disable-ipv6], [disable IPv6 support])], 1631 [ 1632 case "${enableval}" in 1633 yes) ipv6=true ;; 1634 no) ipv6=false ;; 1635 *) AC_MSG_ERROR([bad value ${enableval} for --enable-ipv6]) ;; 1636 esac 1637 ], 1638 [ipv6=true] 1639) 1640 1641if test "$ipv6" = true; then 1642 AC_CACHE_CHECK([for IPv6 support], [ac_cv_ipv6_support], [ 1643 AC_LINK_IFELSE([AC_LANG_PROGRAM( 1644 [[ 1645 #include <sys/types.h> 1646 #include <sys/socket.h> 1647 #include <netinet/in.h> 1648 ]], 1649 [[ 1650 struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0; 1651 ]])], 1652 [ac_cv_ipv6_support=yes], 1653 [ac_cv_ipv6_support=no] 1654 ) 1655 ]) 1656 1657 if test "$ac_cv_ipv6_support" = yes; then 1658 AC_DEFINE([HAVE_IPV6], [1], [Whether to enable IPv6 support]) 1659 else 1660 AC_MSG_ERROR([IPv6 seems broken. Fix it or build with --disable-ipv6]) 1661 fi 1662fi 1663 1664# disable mmap by default 1665# lighttpd may always use mmap with files it owns (created tmp files) 1666AC_MSG_NOTICE([----------------------------------------]) 1667AC_MSG_CHECKING([use mmap if available]) 1668AC_ARG_ENABLE([mmap], 1669 [AS_HELP_STRING([--enable-mmap], 1670 [use mmap if available] 1671 )], 1672 [ 1673 case "${enableval}" in 1674 yes) mmap=true ;; 1675 no) mmap=false ;; 1676 *) AC_MSG_ERROR([bad value ${enableval} for --enable-mmap]) ;; 1677 esac 1678 ], 1679 [mmap=false] 1680) 1681AC_MSG_RESULT([$mmap]) 1682 1683if test "$mmap" = true; then 1684 AC_DEFINE([ENABLE_MMAP], [1], [Use mmap if available]) 1685fi 1686 1687 1688AC_MSG_NOTICE([----------------------------------------]) 1689dnl check for extra compiler options (warning options) 1690if test "${GCC}" = yes; then 1691 TRY_CFLAGS([-pipe -Wall -W -Wshadow -pedantic]) 1692fi 1693 1694AC_ARG_ENABLE([extra-warnings], 1695 [AS_HELP_STRING([--enable-extra-warnings], 1696 [enable extra warnings (gcc specific)] 1697 )], 1698 [ 1699 case "${enableval}" in 1700 error) extrawarnings=error ;; 1701 yes) extrawarnings=true ;; 1702 no) extrawarnings=false ;; 1703 *) AC_MSG_ERROR([bad value ${enableval} for --enable-extra-warnings]) ;; 1704 esac 1705 ], 1706 [extrawarnings=false] 1707) 1708 1709if test "$extrawarnings" = true || test "$extrawarnings" = error; then 1710 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]) 1711 case "$host_os" in 1712 *darwin* ) ;; 1713 * ) TRY_LDFLAGS([-Wl,--as-needed]) ;; 1714 esac 1715 if test "$extrawarnings" = error; then 1716 AS_VAR_APPEND([CFLAGS], [" -Werror"]) 1717 case "$host_os" in 1718 *darwin* ) ;; 1719 * ) AS_VAR_APPEND([LDFLAGS], [" -Wl,--fatal-warnings"]) ;; 1720 esac 1721 fi 1722fi 1723 1724dnl build version-id 1725LIGHTTPD_VERSION_ID=m4_format([0x%x%02x%02x], m4_unquote(m4_split(AC_PACKAGE_VERSION, [\.]))) 1726AC_DEFINE_UNQUOTED([LIGHTTPD_VERSION_ID], [$LIGHTTPD_VERSION_ID], [lighttpd-version-id]) 1727 1728AC_CONFIG_FILES([\ 1729 distribute.sh \ 1730 doc/config/conf.d/Makefile \ 1731 doc/config/Makefile \ 1732 doc/config/vhosts.d/Makefile \ 1733 doc/Makefile \ 1734 doc/outdated/Makefile \ 1735 doc/scripts/Makefile \ 1736 doc/systemd/Makefile \ 1737 Makefile \ 1738 src/Makefile \ 1739 tests/docroot/Makefile \ 1740 tests/Makefile \ 1741]) 1742AC_OUTPUT 1743 1744do_build="\ 1745 mod_access \ 1746 mod_accesslog \ 1747 mod_ajp13 \ 1748 mod_alias \ 1749 mod_auth \ 1750 mod_authn_file \ 1751 mod_cgi \ 1752 mod_deflate \ 1753 mod_dirlisting \ 1754 mod_evhost \ 1755 mod_expire \ 1756 mod_extforward \ 1757 mod_fastcgi \ 1758 mod_flv_streaming \ 1759 mod_indexfile \ 1760 mod_proxy \ 1761 mod_redirect \ 1762 mod_rewrite \ 1763 mod_rrdtool \ 1764 mod_scgi \ 1765 mod_secdownload \ 1766 mod_setenv \ 1767 mod_simple_vhost \ 1768 mod_sockproxy \ 1769 mod_ssi \ 1770 mod_staticfile \ 1771 mod_status \ 1772 mod_userdir \ 1773 mod_usertrack \ 1774 mod_vhostdb \ 1775 mod_webdav \ 1776 mod_wstunnel \ 1777" 1778 1779lighty_track_feature() { 1780 if eval "$3"; then 1781 enable_feature="$enable_feature $1" 1782 do_build="$do_build $2" 1783 else 1784 disable_feature="$disable_feature $1" 1785 no_build="$no_build $2" 1786 fi 1787} 1788 1789lighty_track_feature "regex-conditionals" "" \ 1790 'test "$WITH_PCRE" != no' 1791 1792lighty_track_feature "storage-gdbm" "" \ 1793 'test "$WITH_GDBM" != no' 1794 1795lighty_track_feature "storage-memcached" "" \ 1796 'test "$WITH_MEMCACHED" != no' 1797 1798lighty_track_feature "" "mod_trigger_b4_dl" \ 1799 'test "$BUILD_MOD_TRIGGER_B4_DL" != no' 1800 1801lighty_track_feature "mysql" "mod_authn_mysql mod_mysql_vhost mod_vhostdb_mysql" \ 1802 'test "$WITH_MYSQL" != no' 1803 1804lighty_track_feature "postgresql" "mod_vhostdb_pgsql" \ 1805 'test "$WITH_PGSQL" != no' 1806 1807lighty_track_feature "dbi" "mod_authn_dbi mod_vhostdb_dbi" \ 1808 'test "$WITH_DBI" != no' 1809 1810lighty_track_feature "lua" "mod_cml mod_magnet" \ 1811 'test "$WITH_LUA" != no' 1812 1813lighty_track_feature "geoip" "mod_geoip" \ 1814 'test "$WITH_GEOIP" != no' 1815 1816lighty_track_feature "maxminddb" "mod_maxminddb" \ 1817 'test "$WITH_MAXMINDDB" != no' 1818 1819lighty_track_feature "compress-gzip compress-deflate" "" \ 1820 'test "$WITH_ZLIB" != no' 1821 1822lighty_track_feature "compress-bzip2" "" \ 1823 'test "$WITH_BZIP2" != no' 1824 1825lighty_track_feature "compress-brotli" "" \ 1826 'test "$WITH_BROTLI" != no' 1827 1828lighty_track_feature "kerberos" "mod_authn_gssapi" \ 1829 'test "$WITH_KRB5" != no' 1830 1831lighty_track_feature "ldap" "mod_authn_ldap mod_vhostdb_ldap" \ 1832 'test "$WITH_LDAP" != no' 1833 1834lighty_track_feature "pam" "mod_authn_pam" \ 1835 'test "$WITH_PAM" != no' 1836 1837lighty_track_feature "network-openssl" "mod_openssl" \ 1838 'test "$WITH_OPENSSL" != no' 1839 1840lighty_track_feature "network-mbedtls" "mod_mbedtls" \ 1841 'test "$WITH_MBEDTLS" != no' 1842 1843lighty_track_feature "network-gnutls" "mod_gnutls" \ 1844 'test "$WITH_GNUTLS" != no' 1845 1846lighty_track_feature "network-nss" "mod_nss" \ 1847 'test "$WITH_NSS" != no' 1848 1849lighty_track_feature "network-wolfssl" "mod_wolfssl" \ 1850 'test "$WITH_WOLFSSL" != no' 1851 1852lighty_track_feature "auth-crypt" "" \ 1853 'test "$found_crypt" != no' 1854 1855lighty_track_feature "network-ipv6" "" \ 1856 'test "$ac_cv_ipv6_support" != no' 1857 1858lighty_track_feature "large-files" "" \ 1859 'test "$ENABLE_LFS" = yes' 1860 1861case "$host_os" in 1862*linux* ) 1863lighty_track_feature "stat-cache-inotify" "" \ 1864 'test "$ac_cv_header_sys_inotify_h" != no' 1865 ;; 1866* ) ;; 1867esac 1868 1869case "$host_os" in 1870*bsd*|*darwin* ) 1871lighty_track_feature "stat-cache-kqueue" "" \ 1872 'test "$ac_cv_func_kqueue" != no' 1873 ;; 1874* ) ;; 1875esac 1876 1877case "$host_os" in 1878*bsd*|*darwin*|*linux* ) 1879 ;; 1880* ) 1881lighty_track_feature "stat-cache-fam" "" \ 1882 'test "$WITH_FAM" != no' 1883 ;; 1884esac 1885 1886lighty_track_feature "webdav-properties" "" \ 1887 'test "$WITH_WEBDAV_PROPS" != no' 1888 1889lighty_track_feature "webdav-locks" "" \ 1890 'test "$WITH_WEBDAV_LOCKS" != no' 1891 1892dnl output 1893 1894$ECHO 1895$ECHO "Plugins:" 1896$ECHO 1897 1898$ECHO "enabled: " 1899for p in $do_build; do 1900 $ECHO " $p" 1901done | sort 1902 1903$ECHO "disabled: " 1904for p in $no_build; do 1905 $ECHO " $p" 1906done | sort 1907 1908$ECHO 1909$ECHO "Features:" 1910$ECHO 1911 1912$ECHO "enabled: " 1913for p in $enable_feature; do 1914 $ECHO " $p" 1915done | sort 1916 1917$ECHO "disabled: " 1918for p in $disable_feature; do 1919 $ECHO " $p" 1920done | sort 1921 1922$ECHO 1923