1## Copyright (C) 1996-2021 The Squid Software Foundation and contributors 2## 3## Squid software is distributed under GPLv2+ license and includes 4## contributions from numerous individuals and organizations. 5## Please see the COPYING and CONTRIBUTORS files for details. 6## 7 8AC_INIT([Squid Web Proxy],[4.15],[http://bugs.squid-cache.org/],[squid]) 9AC_PREREQ(2.61) 10AC_CONFIG_HEADERS([include/autoconf.h]) 11AC_CONFIG_AUX_DIR(cfgaux) 12AC_CONFIG_SRCDIR([src/main.cc]) 13AM_INIT_AUTOMAKE([tar-ustar nostdinc subdir-objects dist-xz]) 14AC_REVISION($Revision$)dnl 15AC_PREFIX_DEFAULT(/usr/local/squid) 16AM_MAINTAINER_MODE 17 18m4_include([acinclude/ax_with_prog.m4]) 19m4_include([acinclude/init.m4]) 20m4_include([acinclude/squid-util.m4]) 21m4_include([acinclude/compiler-flags.m4]) 22m4_include([acinclude/os-deps.m4]) 23m4_include([acinclude/krb5.m4]) 24m4_include([acinclude/pam.m4]) 25m4_include([acinclude/pkg.m4]) 26m4_include([acinclude/lib-checks.m4]) 27m4_include([acinclude/ax_cxx_compile_stdcxx_11.m4]) 28m4_include([acinclude/ax_cxx_0x_types.m4]) 29 30PRESET_CFLAGS="$CFLAGS" 31PRESET_CXXFLAGS="$CXXFLAGS" 32PRESET_LDFLAGS="$LDFLAGS" 33 34dnl Set default LDFLAGS 35if test "x$LDFLAGS" = "x" ; then 36 LDFLAGS="-g" 37fi 38 39# Check for GNU cc 40AC_PROG_CC 41AM_PROG_CC_C_O 42AC_PROG_CXX 43AC_LANG([C++]) 44AC_CANONICAL_HOST 45 46# Clang 3.2 on some CPUs requires -march-native to detect correctly. 47# GCC 4.3+ can also produce faster executables when its used. 48# But building inside a virtual machine environment has been found to 49# cause random Illegal Instruction errors due to mis-detection of CPU. 50AC_ARG_ENABLE(arch-native, 51 AS_HELP_STRING([--disable-arch-native],[Some compilers offer CPU-specific 52 optimizations with the -march=native parameter. 53 This flag disables the optimization. The default is to 54 auto-detect compiler support and use where available.]), [ 55 SQUID_YESNO([$enableval], 56 [Unrecognized argument to --disable-arch-native: $enableval]) 57]) 58AC_MSG_NOTICE([CPU arch native optimization enabled: ${enable_arch_native:=auto}]) 59if test "x${enable_arch_native}" != "xno"; then 60 SQUID_CC_CHECK_ARGUMENT([squid_cv_check_marchnative],[-march=native]) 61fi 62 63# might be cross-compiling. 64# NP: BUILDCXXFLAGS defined at the end of configure after CXXFLAGS fully known. 65AC_ARG_VAR([BUILDCXX],[path to compiler for building compile-time tools. e.g. cf_gen]) 66if test "x$HOSTCXX" != "x" -a "x$BUILDCXX" = "x"; then 67 AC_MSG_WARN([Cross-compiling with HOSTCXX is deprecated. Uses BUILDCXX instead.]) 68 BUILDCXX="$HOSTCXX" 69fi 70if test "x$BUILDCXX" = "x"; then 71 BUILDCXX="$CXX" 72 if test "x$squid_cv_check_marchnative" = "xyes"; then 73 CXXFLAGS="$CXXFLAGS -march=native" 74 fi 75fi 76AC_SUBST(BUILDCXX) 77 78AC_MSG_CHECKING([simplified host os]) 79simple_host_os=`echo $host_os|sed 's/[0-9].*//g;s/-.*//g'` 80squid_host_os_version=`echo $host_os|tr -d "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-"` 81if test -n "$squid_host_os_version"; then 82 squid_host_os="`echo $simple_host_os| sed s/$squid_host_os_version//g`" 83else 84 squid_host_os="$simple_host_os" 85fi 86AC_MSG_RESULT($squid_host_os (version $squid_host_os_version)) 87# on windows squid_host_os is either mingw or cygwin, version is 32 88 89# this needs to be before any test is run, to have more standard 90# functions available on some Unix sysems (e.g. Solaris) 91if test "x$squid_host_os" = "solaris" -a "x$GCC" != "x" ; then 92 AC_USE_SYSTEM_EXTENSIONS 93fi 94 95# If the user did not specify a C++ version. 96user_cxx=`echo "$PRESET_CXXFLAGS" | grep -o -E "\-std="` 97if test "x$user_cxx" = "x"; then 98 # Check for C++11 compiler support 99 AX_CXX_COMPILE_STDCXX_11([noext],[mandatory]) 100fi 101 102# test for programs 103AC_PROG_RANLIB 104AC_PROG_CPP 105AC_PROG_INSTALL 106AC_PROG_LN_S 107AC_PROG_EGREP 108 109AC_PATH_PROG(SH, sh, /bin/sh) 110AC_PATH_PROG(FALSE, false, /usr/bin/false) 111AC_PATH_PROG(TRUE, true, /usr/bin/true) 112AC_PATH_PROG(MV, mv, $FALSE) 113AC_PATH_PROG(MKDIR, mkdir, $FALSE) 114AC_PATH_PROG(LN, ln, cp) 115AC_PATH_PROG(CHMOD, chmod, $FALSE) 116AC_PATH_PROG(TR, tr, $FALSE) 117AC_PATH_PROG(RM, rm, $FALSE) 118dnl Libtool 2.2.6 requires: rm -f 119RM="$RM -f" 120 121PKG_PROG_PKG_CONFIG 122 123AC_PATH_PROG(PERL, perl, none) 124if test "x$ac_cv_path_PERL" = "xnone"; then 125 AC_MSG_FAILURE([Perl is required to compile Squid. Please install Perl and then re-run configure ]) 126fi 127AC_PATH_PROG(POD2MAN, pod2man, $FALSE) 128AM_CONDITIONAL(ENABLE_POD2MAN_DOC, test "x${ac_cv_path_POD2MAN}" != "x$FALSE") 129 130dnl set $(AR) if not provided by the build environment 131if test "x$AR" = "x"; then 132 AC_PATH_PROG(AR, ar, $FALSE) 133fi 134AR_R="$AR r" 135AC_SUBST(AR_R) 136 137AC_PATH_PROG(LINUXDOC, linuxdoc, $FALSE) 138AM_CONDITIONAL(ENABLE_RELEASE_DOCS, test "x${ac_cv_path_LINUXDOC}" != "x$FALSE") 139 140# pre-define DEFAULT_PREFIX, some modules need it. 141if test "${prefix}" = "NONE" ; then 142 squid_prefix=$ac_default_prefix 143else 144 squid_prefix=$prefix 145fi 146AC_DEFINE_UNQUOTED(DEFAULT_PREFIX,[$squid_prefix],[The install prefix]) 147 148AC_ARG_ENABLE(strict-error-checking, 149 AS_HELP_STRING([--disable-strict-error-checking],[By default squid is compiled 150 with all possible static compiler error-checks enabled. 151 This flag disables the behavior]), [ 152 SQUID_YESNO([$enableval], 153 [Unrecognized argument to --disable-strict-error-checking: $enableval]) 154]) 155AC_MSG_NOTICE([strict error checking enabled: ${enable_strict_error_checking:=yes}]) 156 157AC_MSG_CHECKING(whether to use loadable modules) 158AC_ARG_ENABLE(loadable-modules, 159 AS_HELP_STRING([--disable-loadable-modules],[do not support loadable modules]) , [ 160 SQUID_YESNO([$enableval], 161 [Unrecognized argument to --disable-loadable-modules: $enableval]) 162]) 163AM_CONDITIONAL(ENABLE_LOADABLE_MODULES, test "x${enable_loadable_modules:=yes}" = "xyes") 164AC_MSG_RESULT([$enable_loadable_modules]) 165 166if test "x$enable_loadable_modules" = "xyes"; 167then 168 AC_DEFINE(USE_LOADABLE_MODULES, 1, [Support Loadable Modules]) 169 AC_ENABLE_SHARED 170else 171 AC_DISABLE_SHARED 172fi 173 174# LT_INIT requires libtool v2, might as well state it loud 175LT_PREREQ([2.2]) 176LT_INIT([dlopen],[disable-shared]) 177if ! test "${ac_top_build_prefix}" = ""; 178then 179 # LTDL v3-v7 macros assume the autoconf 2.62 variable top_build_prefix is defined 180 # But from autoconf 2.64 its called ac_top_build_prefix and not automatically added to the Makefile 181 # This fixes Linux LTDLv3-v7, and BSD LTDL v2.2 182 top_build_prefix=${ac_top_build_prefix} 183 AC_SUBST(top_build_prefix) 184fi 185LTDL_INIT 186 187dnl LibTool environment is now prepared for setup. Check that it is usable and initialize. 188LT_LIB_DLLOAD 189 190# Do we need these unconditionally for "make distcheck" to work? 191AC_SUBST(INCLTDL) 192AC_SUBST(LIBLTDL) 193 194if test "x$enable_loadable_modules" = "xyes"; 195then 196 # Why is this needed? Should not LT_INIT (or LT_LIB_DLLOAD) from libtool do that? 197 LIBADD_DL=${lt_cv_dlopen_libs} 198 AC_SUBST([LIBADD_DL]) 199fi 200 201SQUID_CC_GUESS_VARIANT 202SQUID_CC_GUESS_OPTIONS 203 204dnl find out the exe extension for this platform. 205dnl If it is not empty, use it for CGI as well. 206AC_EXEEXT 207AC_OBJEXT 208 209if test "x$EXEEXT" = "x" ; then 210 CGIEXT=".cgi" 211else 212 # automake automatically adds .exe when installing binaries 213 CGIEXT="" 214fi 215AC_SUBST(CGIEXT) 216 217AM_CONDITIONAL(ENABLE_WIN32SPECIFIC,[test "x$squid_host_os" = "xmingw"]) 218AM_CONDITIONAL(ENABLE_WIN32_IPC,[test "x$squid_host_os" = "xmingw"]) 219 220case "$squid_host_os" in 221mingw) 222 AC_PATH_PROG(WIN32_PSAPI, psapi.dll, none) 223 CFLAGS="$CFLAGS -mthreads" 224 CXXFLAGS="$CXXFLAGS -mthreads -static-libgcc -static-libstdc++" 225 if test "x$ac_cv_path_WIN32_PSAPI" = "xnone"; then 226 AC_MSG_NOTICE([PSAPI.DLL is recommended to run Squid on Windows NT Platform]) 227 AC_MSG_NOTICE([Please see PSAPI.DLL section on doc/win32-relnotes.html.]) 228 else 229 AC_DEFINE(HAVE_WIN32_PSAPI,1,[Define if you have PSAPI.DLL on Windows systems]) 230 LIBS="$LIBS -lpsapi" 231 fi 232 MINGW_LIBS="-lmingwex" 233 AC_SUBST(MINGW_LIBS) 234 ;; 235freebsd) 236 # FreeBSD places local libraries and packages in /usr/local 237 CFLAGS="$CFLAGS -I/usr/local/include" 238 CXXFLAGS="$CXXFLAGS -I/usr/local/include" 239 LDFLAGS="$LDFLAGS -L/usr/local/lib -Wl,-R/usr/local/lib" 240 ;; 241*) 242 ;; 243esac 244 245dnl Substitutions 246AC_DEFINE_UNQUOTED(CONFIG_HOST_TYPE, "$host",[Host type from configure]) 247 248AC_DEFINE_UNQUOTED(SQUID_CONFIGURE_OPTIONS, "$ac_configure_args", 249 [configure command line used to configure Squid]) 250 251CACHE_EFFECTIVE_USER="nobody" 252AC_ARG_WITH(default-user, 253 AS_HELP_STRING([--with-default-user=USER],[System user account for squid permissions. Default: nobody]), 254 [ CACHE_EFFECTIVE_USER="$withval" ] 255) 256AC_SUBST(CACHE_EFFECTIVE_USER) 257 258DEFAULT_LOG_DIR="$localstatedir/logs" 259AC_ARG_WITH(logdir, 260 AS_HELP_STRING([--with-logdir=PATH], 261 [Default location for squid logs. default: PREFIX/var/logs]), [ 262case $withval in 263 yes|no) 264 AC_MSG_ERROR( --with-logdir requires a directory PATH. --with-logdir=PATH ) 265 ;; 266 *) 267 DEFAULT_LOG_DIR="$withval" 268 ;; 269esac 270 ] 271) 272AC_SUBST(DEFAULT_LOG_DIR) 273 274DEFAULT_PID_FILE="$localstatedir/run/@SERVICE_NAME@.pid" 275AC_ARG_WITH(pidfile, 276 AS_HELP_STRING([--with-pidfile=PATH], 277 [Default location for squid pid file. Default: PREFIX/var/run/squid.pid]), [ 278case $withval in 279 yes|no) 280 AC_MSG_ERROR( --with-pidfile requires a file PATH. --with-pidfile=PATH ) 281 ;; 282 *) 283 DEFAULT_PID_FILE="$withval" 284 ;; 285 esac 286]) 287AC_SUBST(DEFAULT_PID_FILE) 288 289DEFAULT_SWAP_DIR="$localstatedir/cache/squid" 290AC_ARG_WITH(swapdir, 291 AS_HELP_STRING([--with-swapdir=PATH], 292 [Default location for squid cache directories. Default: PREFIX/var/cache/squid]), [ 293case $withval in 294 yes|no) 295 AC_MSG_ERROR( --with-swapdir requires a directory PATH. --with-swapdir=PATH ) 296 ;; 297 *) 298 DEFAULT_SWAP_DIR="$withval" 299 ;; 300 esac 301]) 302AC_SUBST(DEFAULT_SWAP_DIR) 303 304dnl Set Default CFLAGS 305if test "x$PRESET_CFLAGS" = "x"; then 306 if test "$squid_cv_compiler" = "gcc"; then 307 case "$host" in 308 *-sun-sunos*) 309 # sunos has too many warnings for this to be useful 310 # motorola too 311 ;; 312 *m88k*) 313 # Motorola cc/ld does not like -02 but is ok on -O 314 CFLAGS=`echo $CFLAGS | sed -e 's/-O[0-9]/-O/'` 315 ;; 316 *) 317 CFLAGS="$squid_cv_cc_option_wall $CFLAGS" 318 ;; 319 esac 320 else 321 case "$host" in 322 *mips-sgi-irix6.*) 323 # suggested by Rafael Seidl <rafaels@cthulhu.engr.sgi.com> 324 CFLAGS="$squid_cv_cc_option_optimize -OPT:Olimit=0:space=OFF \ 325 -woff 1009,1014,1110,1116,1183,1185,1188,1204,1230,1233,1355 \ 326 -Wl,-woff,85,-woff,84,-woff,134 \ 327 -nostdinc -I/usr/include -D_BSD_SIGNALS $CFLAGS" 328 CXXFLAGS="$squid_cv_cc_option_optimize -OPT:Olimit=0:space=OFF \ 329 -woff 1009,1014,1110,1116,1183,1185,1188,1204,1230,1233,1355 \ 330 -Wl,-woff,85,-woff,84,-woff,134 \ 331 -nostdinc -I/usr/include -D_BSD_SIGNALS $CXXFLAGS" 332 ;; 333 *) 334 ;; 335 esac 336 fi 337fi 338 339dnl set squid required flags 340if test "$squid_cv_compiler" = "gcc"; then 341 case "$squid_host_os" in 342 mingw) 343dnl Guido Serassio (serassio@squid-cache.org) 20070811 344dnl Using the latest MinGW (gcc 3.4.5 + mingw-runtime 3.13) cannot build with 345dnl -Werror -Wmissing-prototypes -Wmissing-declarations 346dnl TODO: check if the problem will be present in any other newer MinGW release. 347 SQUID_CFLAGS="$squid_cv_cc_option_wall -Wpointer-arith -Wwrite-strings -Wcomments -Wshadow" 348 ;; 349 *) 350 SQUID_CFLAGS="$squid_cv_cc_option_wall -Wpointer-arith -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wcomments -Wshadow" 351 ;; 352 esac 353 SQUID_CXXFLAGS="$squid_cv_cc_option_wall -Wpointer-arith -Wwrite-strings -Wcomments -Wshadow -Woverloaded-virtual" 354else 355 SQUID_CFLAGS= 356 SQUID_CXXFLAGS= 357fi 358 359dnl CentOS (and RHEL) still define ntohs() using deprecated C++ features 360SQUID_CC_REQUIRE_ARGUMENT([ac_cv_require_wno_deprecated_register],[-Werror -Wno-deprecated-register],[[#include <arpa/inet.h>]],[[int fox=ntohs(1);]]) 361 362if test "x$enable_strict_error_checking" != "xno"; then 363 SQUID_CFLAGS="$SQUID_CFLAGS $squid_cv_cc_option_werror" 364 SQUID_CXXFLAGS="$SQUID_CXXFLAGS $squid_cv_cxx_option_werror" 365fi 366 367if test "x$ac_cv_require_wno_deprecated_register" = "xyes"; then 368 SQUID_CXXFLAGS="$SQUID_CXXFLAGS -Wno-deprecated-register" 369fi 370 371# squid_cv_cc_arg_pipe is set by SQUID_CC_GUESS_OPTIONS 372SQUID_CXXFLAGS="$SQUID_CXXFLAGS $squid_cv_cc_arg_pipe" 373SQUID_CFLAGS="$SQUID_CFLAGS $squid_cv_cc_arg_pipe" 374 375# possibly include some build info tag into squid -v 376SQUID_EMBED_BUILD_INFO 377 378AC_ARG_ENABLE(optimizations, 379 AS_HELP_STRING([--disable-optimizations], 380 [Do not compile Squid with compiler optimizations enabled. 381 Optimization is good for production builds, but not 382 good for debugging. During development, use 383 --disable-optimizations to reduce compilation times 384 and allow easier debugging. This option implies 385 --disable-inline]), [ 386if test "x$enableval" = "xno" ; then 387 AC_MSG_NOTICE([Disabling compiler optimizations (-O flag)]) 388 CFLAGS="`echo $CFLAGS | sed -e 's/-O[[0-9g]]*//'`" 389 CXXFLAGS="`echo $CXXFLAGS | sed -e 's/-O[[0-9g]]*//'`" 390 enable_inline="no" 391fi 392]) 393 394AH_TEMPLATE(_USE_INLINE_,[Include inline methods into header file]) 395AC_ARG_ENABLE(inline, 396 AS_HELP_STRING([--disable-inline], 397 [Do not compile trivial methods as inline. Squid 398 is coded with much of the code able to be inlined. 399 Inlining is good for production builds, but not 400 good for development. During development, use 401 --disable-inline to reduce compilation times and 402 allow incremental builds to be quick. For 403 production builds, or load tests, use 404 --enable-inline to have squid make all trivial 405 methods inlinable by the compiler.]), [ 406SQUID_YESNO([$enableval], 407 [Unrecognized argument to --disable-inline: $enableval]) 408]) 409AC_MSG_NOTICE([inlining optimizations enabled: ${enable_inline:=yes}]) 410SQUID_DEFINE_BOOL(_USE_INLINE_,$enable_inline, 411 [Include inline methods into header file]) 412# to be used by sub-commands 413export enable_inline 414 415AC_ARG_ENABLE(debug-cbdata, 416 AS_HELP_STRING([--enable-debug-cbdata], 417 [Provide some debug information in cbdata]), [ 418SQUID_YESNO([$enableval], 419 [unrecognized argument to --enable-debug-cbdata: $enableval]) 420]) 421SQUID_DEFINE_BOOL(USE_CBDATA_DEBUG,${enable_debug_cbdata:=no}, 422 [Enable support for cbdata debug information]) 423AC_MSG_NOTICE([cbdata debugging enabled: $enable_debug_cbdata]) 424 425 426dnl Nasty hack to get autoconf 2.64 on Linux to run. 427dnl all other uses of RUN_IFELSE are wrapped inside CACHE_CHECK which breaks on 2.64 428AC_RUN_IFELSE([AC_LANG_SOURCE([[ int main(int argc, char **argv) { return 0; } ]])],[],[],[:]) 429 430AH_TEMPLATE(XMALLOC_STATISTICS,[Define to have malloc statistics]) 431AC_ARG_ENABLE(xmalloc-statistics, 432 AS_HELP_STRING([--enable-xmalloc-statistics], 433 [Show malloc statistics in status page]), [ 434SQUID_YESNO([$enableval], 435 [unrecognized argument to --enable-xmalloc-statistics: $enableval]) 436]) 437SQUID_DEFINE_BOOL(XMALLOC_STATISTICS,${enable_xmalloc_statistics:=no}, 438 [Show malloc statistics in status page]) 439AC_MSG_NOTICE([xmalloc stats display: $enable_xmalloc_statistics]) 440 441squid_opt_aufs_threads="" 442AC_ARG_WITH(aufs-threads, 443 AS_HELP_STRING([--with-aufs-threads=N_THREADS], 444 [Tune the number of worker threads for the aufs object store.]), [ 445case $withval in 446 [[0-9]]*) 447 squid_opt_aufs_threads=$withval 448 ;; 449 *) 450 AC_MSG_ERROR(--with-aufs-threads expects a numeric argument) 451 ;; 452 esac 453]) 454if test "x$squid_opt_aufs_threads" != "x"; then 455 AC_MSG_NOTICE([With $squid_opt_aufs_threads aufs threads]) 456 AC_DEFINE_UNQUOTED(AUFS_IO_THREADS,$squid_opt_aufs_threads, 457 [Defines how many threads aufs uses for I/O]) 458fi 459 460AC_ARG_WITH(dl, AS_HELP_STRING([--with-dl],[Use dynamic linking])) 461if test "x$with_dl" = "xyes"; then 462 AC_MSG_NOTICE([With dl]) 463fi 464 465AC_DEFUN([LIBATOMIC_CHECKER],[ 466 AC_MSG_CHECKING(whether linking $1 -latomic works) 467 AC_LINK_IFELSE([ 468 AC_LANG_SOURCE([[ 469#include <atomic> 470#include <cstdint> 471 int 472 main(int, char **) { 473 return std::atomic<uint64_t>{}.is_lock_free() ? 0 : 1; 474 } 475 ]])],[ 476 AC_MSG_RESULT(yes) 477 libatomic_checker_result="yes"],[ 478 AC_MSG_RESULT(no) 479 libatomic_checker_result="no" 480])]) 481 482## check for atomics library before anything that might need it 483SQUID_STATE_SAVE(LIBATOMIC) 484LIBATOMIC_CHECKER(without) 485AS_IF([test "x$libatomic_checker_result" = "xno"],[ 486 LIBS="$LIBS -latomic" 487 LIBATOMIC_CHECKER(with) 488 AS_IF([test "x$libatomic_checker_result" = "xyes"],[ 489 ATOMICLIB="-latomic"],[ 490 AC_MSG_ERROR([Required library libatomic not found.]) 491])]) 492SQUID_STATE_ROLLBACK(LIBATOMIC) 493AC_SUBST(ATOMICLIB) 494 495AC_SEARCH_LIBS([shm_open], [rt]) 496if test "x$ac_cv_search_shm_open" != "xno" ; then 497 AC_DEFINE(HAVE_SHM,1,[Support shared memory features]) 498fi 499 500AC_MSG_CHECKING([for DiskIO modules to be enabled]) 501squid_disk_module_candidates="" 502squid_opt_enable_diskio="auto" #values: no, yes, "auto"(=yes+detect modules) 503AC_ARG_ENABLE(disk-io, 504 AS_HELP_STRING([--enable-disk-io="list of modules"], 505 [Build support for the list of disk I/O modules. 506 Set without a value or omitted, all available modules will be built. 507 See src/DiskIO for a list of available modules, or 508 Programmers Guide section on DiskIO 509 for details on how to build your custom disk module]), [ 510case $enableval in 511 yes) 512 ${TRUE} 513 #do nothing, "auto" is ok 514 ;; 515 no) 516 squid_opt_enable_diskio="no" 517 ;; 518 *) 519 squid_opt_enable_diskio="yes" 520 squid_disk_module_candidates=" `echo $enableval| sed -e 's/,/ /g;s/ */ /g'` " 521 SQUID_CLEANUP_MODULES_LIST([squid_disk_module_candidates]) 522 ;; 523 esac 524]) 525 526# if requested to autodetect, find out what we have 527if test "x$squid_opt_enable_diskio" = "xauto"; then 528 squid_opt_enable_diskio="yes" 529 SQUID_LOOK_FOR_MODULES([$srcdir/src/DiskIO],[squid_disk_module_candidates]) 530 if test "x$ac_cv_search_shm_open" = "xno" ; then 531 # disable IpcIo 532 squid_disk_module_candidates=`echo $squid_disk_module_candidates|sed 's/IpcIo//'` 533 fi 534fi 535 536AC_MSG_RESULT([${squid_disk_module_candidates:-none}]) 537SQUID_CHECK_EXISTING_MODULES([$srcdir/src/DiskIO],[squid_disk_module_candidates]) 538SQUID_DEFINE_BOOL(USE_DISKIO,$squid_opt_enable_diskio, 539 [DiskIO modules are expected to be available.]) 540 541 542 543dnl Some autoconf.h defines we might enable later... 544AC_ARG_WITH(pthreads,AS_HELP_STRING([--without-pthreads],[Disable POSIX Threads])) 545AC_ARG_WITH(aio, AS_HELP_STRING([--without-aio],[Do not use POSIX AIO. Default: auto-detect])) 546ENABLE_WIN32_AIOPS=0 547squid_opt_use_aio= 548squid_opt_use_diskthreads= 549AIOLIB= 550 551dnl Setup the module paths etc. 552DISK_LIBS= 553DISK_MODULES= 554AH_TEMPLATE(HAVE_DISKIO_MODULE_AIO, [Whether POSIX AIO Disk I/O module is built]) 555AH_TEMPLATE(HAVE_DISKIO_MODULE_BLOCKING, [Whether Blocking Disk I/O module is built]) 556AH_TEMPLATE(HAVE_DISKIO_MODULE_DISKDAEMON, [Whether DiskDaemon Disk I/O module is built]) 557AH_TEMPLATE(HAVE_DISKIO_MODULE_DISKTHREADS, [Whether DiskThreads Disk I/O module is built]) 558AH_TEMPLATE(HAVE_DISKIO_MODULE_IPCIO, [Whether IpcIo Disk I/O module is built]) 559AH_TEMPLATE(HAVE_DISKIO_MODULE_MMAPPED, [Whether Mmapped Disk I/O module is built]) 560for module in $squid_disk_module_candidates none; do 561 # maybe not needed 562 if test "x$module" = "xnone"; then 563 continue 564 fi 565 if ! test -d "$srcdir/src/DiskIO/$module"; then 566 AC_MSG_ERROR(disk-io $module does not exist) 567 fi 568 case "$module" in 569 570 AIO) 571 dnl Check for POSIX AIO availability 572 squid_opt_use_aio="yes" 573 AIOLIB= 574 if test "x$with_aio" != "xno"; then 575 have_aio_header=no 576 AC_CHECK_HEADERS(aio.h,[have_aio_header=yes]) 577 dnl On some systems POSIX AIO functions are in librt 578 dnl On some systems POSIX AIO functions are in libaio 579 AC_CHECK_LIB(rt,aio_read,[AIOLIB="-lrt"],AC_CHECK_LIB(aio,aio_read,[AIOLIB="-laio"],[])) 580 dnl Enable AIO if the library and headers are found 581 if test "x$AIOLIB" != "x" && test "x$have_aio_header" = "xyes"; then 582 AC_MSG_NOTICE([Native POSIX AIO support detected.]) 583 squid_opt_use_aio="yes" 584 else 585 dnl Windows does things differently. We provide wrappers. 586 dnl TODO: Windows really needs its own DiskIO module or its Overlaped IO 587 case "$squid_host_os" in 588 mingw) 589 squid_opt_use_aio="yes" 590 AC_MSG_NOTICE([Windows being built. Maybe-enable POSIX AIO.]) 591 ;; 592 *) 593 AC_MSG_NOTICE([Native POSIX AIO support not detected. AIO automatically disabled.]) 594 squid_opt_use_aio="no" 595 ;; 596 esac 597 fi 598 else 599 AC_MSG_NOTICE([POSIX AIO support manually disabled.]) 600 squid_opt_use_aio="no" 601 fi 602 dnl Use the POSIX AIO pieces if we actually need them. 603 if test "x$squid_opt_use_aio" = "xyes" ; then 604 DISK_MODULES="$DISK_MODULES AIO" 605 AC_DEFINE([HAVE_DISKIO_MODULE_AIO],1,[POSIX AIO Disk I/O module is built]) 606 case "$squid_host_os" in 607 mingw) 608 ENABLE_WIN32_AIO=1 609 AC_MSG_NOTICE([Replacing AIO DiskIO module with: Windows overlapped I/O support]) 610 ;; 611 *) 612 AC_MSG_NOTICE([Enabling AIO DiskIO module]) 613 ;; 614 esac 615 else 616 AC_MSG_NOTICE([AIO DiskIO Module disabled. Missing POSIX AIO support.]) 617 squid_disk_module_candidates_AIO=no 618 fi 619 ;; 620 621 Blocking) 622 AC_MSG_NOTICE([Enabling Blocking DiskIO module]) 623 DISK_MODULES="$DISK_MODULES Blocking" 624 AC_DEFINE([HAVE_DISKIO_MODULE_BLOCKING],1,[Blocking Disk I/O module is built]) 625 ;; 626 627 DiskDaemon) 628 case "$squid_host_os" in 629 mingw) 630 AC_MSG_NOTICE(["DiskDaemon not supported on MinGW"]) 631 squid_disk_module_candidates_DiskDaemon=no 632 ;; 633 *) 634 AC_MSG_NOTICE([Enabling DiskDaemon DiskIO module]) 635 DISK_MODULES="$DISK_MODULES DiskDaemon" 636 AC_DEFINE([HAVE_DISKIO_MODULE_DISKDAEMON],1,[DiskDaemon Disk I/O module is built]) 637 ;; 638 esac 639 ;; 640 641 DiskThreads) 642 squid_opt_use_diskthreads="yes" 643 LIBPTHREADS= 644 SQUID_STATE_SAVE([diskthreads_state],[SQUID_CFLAGS SQUID_CXXFLAGS]) 645 if test "x$with_pthreads" != "xno"; then 646 dnl TODO: this needs to be extended to handle more systems and better 647 dnl REF: http://www.openldap.org/lists/openldap-bugs/200006/msg00070.html 648 dnl REF: http://autoconf-archive.cryp.to/acx_pthread.html 649 case "$squid_host_os" in 650 mingw) 651 ENABLE_WIN32_AIOPS=1 652 AC_MSG_NOTICE([Windows threads support automatically enabled]) 653 ;; 654 freebsd) 655 if test `echo "$squid_host_os_version" | tr -d .` -lt 70 ; then 656 AC_MSG_NOTICE(pthread library requires FreeBSD 7 or later) 657 squid_opt_use_diskthreads="no" 658 else 659 SQUID_CFLAGS="$SQUID_CFLAGS -D_REENTRANT" 660 SQUID_CXXFLAGS="$SQUID_CXXFLAGS -D_REENTRANT" 661 if test "x$GCC" = "xyes" -a "x$PRESET_LDFLAGS" = "x" ; then 662 LDFLAGS="$LDFLAGS -pthread" 663 fi 664 fi 665 ;; 666 openbsd) 667 if test `echo "$squid_host_os_version" | tr -d .` -lt 52 ; then 668 AC_MSG_NOTICE(pthread library requires OpenBSD 5.2 or later) 669 squid_opt_use_diskthreads="no" 670 else 671 SQUID_CFLAGS="$SQUID_CFLAGS -D_REENTRANT" 672 SQUID_CXXFLAGS="$SQUID_CXXFLAGS -D_REENTRANT" 673 LDFLAGS="$LDFLAGS -lpthread" 674 fi 675 ;; 676 solaris) 677 if test "x$GCC" = "xyes" ; then 678 SQUID_CFLAGS="$SQUID_CFLAGS -D_REENTRANT -pthreads" 679 SQUID_CXXFLAGS="$SQUID_CXXFLAGS -D_REENTRANT -pthreads" 680 AC_CHECK_LIB(pthread, pthread_create ,[LIBPTHREADS="-lpthread"], [ 681 AC_MSG_NOTICE(pthread library required but cannot be found.) 682 squid_opt_use_diskthreads="no" 683 ]) 684 else 685 dnl test for -lpthread first. libc version is a stub apparently on Solaris. 686 SQUID_CFLAGS="$SQUID_CFLAGS -D_REENTRANT -lpthread" 687 SQUID_CXXFLAGS="$SQUID_CXXFLAGS -D_REENTRANT -lpthread" 688 AC_SEARCH_LIBS([pthread_create],[pthread thread],[ 689 LIBPTHREADS="" #in LIBS 690 ],[ 691 AC_MSG_NOTICE(pthread library required but cannot be found.) 692 squid_opt_use_diskthreads="no" 693 ]) 694 fi 695 ;; 696 *) 697 SQUID_CFLAGS="$SQUID_CFLAGS -D_REENTRANT" 698 SQUID_CXXFLAGS="$SQUID_CXXFLAGS -D_REENTRANT" 699 AC_CHECK_LIB(pthread, pthread_create ,[LIBPTHREADS="-lpthread"], [ 700 AC_MSG_NOTICE(pthread library required but cannot be found.) 701 squid_opt_use_diskthreads="no" 702 ]) 703 ;; 704 esac 705 else 706 AC_MSG_NOTICE([Native pthreads support manually disabled.]) 707 squid_opt_use_diskthreads="no" 708 fi 709 if test "x$squid_opt_use_diskthreads" = "xyes" ; then 710 AC_MSG_NOTICE([Enabling DiskThreads DiskIO module]) 711 DISK_MODULES="$DISK_MODULES DiskThreads" 712 AC_DEFINE([HAVE_DISKIO_MODULE_DISKTHREADS],1,[DiskThreads Disk I/O module is built]) 713 else 714 AC_MSG_NOTICE([Native pthreads support disabled. DiskThreads module automaticaly disabled.]) 715 SQUID_STATE_ROLLBACK([diskthreads_state]) 716 squid_disk_module_candidates_DiskThreads=no 717 fi 718 ;; 719 720 IpcIo) 721 if test "x$ac_cv_search_shm_open" = "xno" ; then 722 AC_MSG_NOTICE([DiskIO IpcIo module requires shared memory support]) 723 squid_disk_module_candidates_IpcIo=no 724 else 725 AC_MSG_NOTICE([Enabling IpcIo DiskIO module]) 726 DISK_MODULES="$DISK_MODULES IpcIo" 727 AC_DEFINE([HAVE_DISKIO_MODULE_IPCIO],1,[IpcIo Disk I/O module is built]) 728 fi 729 ;; 730 731 Mmapped) 732 dnl TODO: use availability of sys/mman.h and/or mmap to define 733 dnl OR support windows mmap functions 734 if test "x$squid_host_os" = "xmingw" ; then 735 AC_MSG_NOTICE([Mmapped DiskIO is not available on Mingw]) 736 squid_disk_module_candidates_Mmapped=no 737 else 738 AC_MSG_NOTICE([Enabling Mmapped DiskIO module]) 739 DISK_MODULES="$DISK_MODULES Mmapped" 740 AC_DEFINE([HAVE_DISKIO_MODULE_MMAPPED],1,[Mmapped Disk I/O module is built]) 741 fi 742 ;; 743 744 *) 745 AC_MSG_NOTICE([Enabling $module DiskIO module]) 746 DISK_LIBS="$DISK_LIBS lib${module}.la" 747 DISK_MODULES="$DISK_MODULES ${module}" 748 ;; 749 esac 750done 751AC_MSG_NOTICE([IO Modules built: $DISK_MODULES]) 752AC_SUBST(DISK_MODULES) 753AC_SUBST(DISK_LIBS) 754AM_CONDITIONAL(ENABLE_DISKIO_AIO, test "x$squid_disk_module_candidates_AIO" = "xyes") 755AC_SUBST(AIOLIB) 756AM_CONDITIONAL(ENABLE_WIN32_AIO, test "x$squid_disk_module_candidates_AIO" = "xyes" -a "x$ENABLE_WIN32_AIO" = "x1") 757AM_CONDITIONAL(ENABLE_DISKIO_BLOCKING, test "x$squid_disk_module_candidates_Blocking" = "xyes") 758AM_CONDITIONAL(ENABLE_DISKIO_DISKDAEMON, test "x$squid_disk_module_candidates_DiskDaemon" = "xyes") 759AM_CONDITIONAL(ENABLE_DISKIO_DISKTHREADS, test "x$squid_disk_module_candidates_DiskThreads" = "xyes") 760AC_SUBST(LIBPTHREADS) 761AM_CONDITIONAL(ENABLE_WIN32_AIOPS, test "x$squid_disk_module_candidates_DiskThreads" = "xyes" -a "x$ENABLE_WIN32_AIOPS" = "x1") 762AM_CONDITIONAL(ENABLE_DISKIO_IPCIO, test "x$squid_disk_module_candidates_IpcIo" = "xyes") 763AM_CONDITIONAL(ENABLE_DISKIO_MMAPPED, test "x$squid_disk_module_candidates_Mmapped" = "xyes") 764 765dnl Check what Storage formats are wanted. 766dnl This version will error out with a message saying why if a required DiskIO is missing. 767squid_opt_enable_storeio=auto 768AC_ARG_ENABLE([storeio], 769 AS_HELP_STRING([--enable-storeio="list of modules"], 770 [Build support for the list of store I/O modules. 771 The default is only to build the "ufs" module. 772 See src/fs for a list of available modules, or 773 Programmers Guide section <not yet written> 774 for details on how to build your custom store module]), [ 775case $enableval in 776 yes) 777 squid_opt_enable_storeio=auto 778 ;; 779 no) 780 squid_opt_enable_storeio=no 781 ;; 782 *) 783 squid_opt_enable_storeio=yes 784 squid_storeio_module_candidates="`echo $enableval| sed -e 's/,/ /g;s/ */ /g'`" 785 # ufs is really always needed as it has low-level routines 786 # if it is a dupe it will be cleaned-up later 787 squid_storeio_module_candidates="$squid_storeio_module_candidates ufs" 788 ;; 789 esac 790]) 791if test "x$squid_opt_enable_storeio" = "xauto"; then 792 squid_opt_enable_storeio=yes 793 AC_MSG_CHECKING([for available StoreIO modules]) 794 SQUID_LOOK_FOR_MODULES([$srcdir/src/fs],[squid_storeio_module_candidates]) 795 AC_MSG_RESULT([$squid_storeio_module_candidates]) 796fi 797 798SQUID_CLEANUP_MODULES_LIST([squid_storeio_module_candidates]) 799SQUID_CHECK_EXISTING_MODULES([$srcdir/src/fs],[squid_storeio_module_candidates]) 800AC_MSG_NOTICE([Store modules built: $squid_storeio_module_candidates]) 801 802for fs in $squid_storeio_module_candidates none; do 803 case "$fs" in 804 diskd) 805 if test "x$squid_disk_module_candidates_Blocking" != "xyes" -a \ 806 "$squid_disk_module_candidates_DiskDaemon" != "yes" ; then 807 AC_MSG_ERROR([Storage diskd module requires DiskIO module: Blocking or DiskDaemon]) 808 fi 809 ;; 810 aufs) 811 if test "x$squid_disk_module_candidates_Blocking" != "xyes" -a \ 812 "$squid_disk_module_candidates_DiskThreads" != "yes" ; then 813 AC_MSG_ERROR([Storage module aufs requires DiskIO module: Blocking or DiskThreads]) 814 fi 815 ;; 816 rock) 817 if test "x$squid_disk_module_candidates_IpcIo" != "xyes" -a \ 818 "x$squid_disk_module_candidates_Blocking" != "xyes"; then 819 AC_MSG_ERROR([Storage module Rock requires DiskIO module: Blocking or IpcIo]) 820 fi 821 squid_do_build_rock=true 822 ;; 823 ufs) 824 if test "x$squid_disk_module_candidates_Blocking" != "xyes"; then 825 AC_MSG_ERROR([Storage module ufs requires DiskIO module: Blocking]) 826 fi 827 squid_do_build_ufs=true 828 ;; 829 esac 830done 831 832AM_CONDITIONAL(ENABLE_FS_UFS, test "x$squid_do_build_ufs" = "xtrue") 833AM_CONDITIONAL(ENABLE_FS_ROCK, test "x$squid_do_build_rock" = "xtrue") 834dnl hack: need to define those even if not used in the build system to 835dnl make sure that global FS objects are linked to the squid binary. 836AH_TEMPLATE(HAVE_FS_UFS, "Define to 1 if ufs filesystem module is build") 837AH_TEMPLATE(HAVE_FS_AUFS, "Define to 1 if aufs filesystem module is build") 838AH_TEMPLATE(HAVE_FS_DISKD, "Define to 1 if diskd filesystem module is build") 839AH_TEMPLATE(HAVE_FS_ROCK, "Define to 1 if rock filesystem module is build") 840 841 842dnl got final squid_storeio_module_candidates, build library lists 843dnl This list will not be needed when each fs library has its own Makefile 844STORE_LIBS_TO_BUILD= 845dnl File system libraries to link executables with. 846dnl These are the same as STORE_LIBS_TO_BUILD, but with a path 847STORE_LIBS_TO_ADD= 848for fs in $squid_storeio_module_candidates; do 849 STORE_LIBS_TO_BUILD="$STORE_LIBS_TO_BUILD lib${fs}.la" 850 STORE_LIBS_TO_ADD="$STORE_LIBS_TO_ADD fs/lib${fs}.la" 851 SQUID_TOUPPER_VAR_CONTENTS([fs]) 852 AC_DEFINE_UNQUOTED(HAVE_FS_${fs}, 1) 853done 854 855AC_SUBST(STORE_LIBS_TO_BUILD) 856AC_SUBST(STORE_LIBS_TO_ADD) 857AC_SUBST(STORE_TESTS) 858 859 860dnl At lest one removal policy is always needed. 861dnl 'lru' removal policy is currently hard-coded by name for tests 862dnl so we must set it as default. 863REPL_POLICIES="lru" 864AC_ARG_ENABLE(removal-policies, 865 AS_HELP_STRING([--enable-removal-policies="list of policies"], 866 [Build support for the list of removal policies. 867 The default is only to build the "lru" module. 868 See src/repl for a list of available modules, or 869 Programmers Guide section 9.9 for details on how 870 to build your custom policy]), [ 871case $enableval in 872 yes) 873 SQUID_LOOK_FOR_MODULES([$srcdir/src/repl],[REPL_POLICIES]) 874 ;; 875 no) 876 ;; 877 *) 878 REPL_POLICIES="`echo $enableval| sed -e 's/,/ /g;s/ */ /g'`" 879 ;; 880 esac 881]) 882if test "x$REPL_POLICIES" != "x" ; then 883 SQUID_CHECK_EXISTING_MODULES([$srcdir/src/repl],[REPL_POLICIES]) 884 AC_MSG_NOTICE([Removal policies to build: $REPL_POLICIES]) 885 REPL_OBJS="repl/lib`echo $REPL_POLICIES|sed -e 's% %.a repl/lib%g'`.a" 886 REPL_LIBS="`echo $REPL_OBJS|sed -e 's%repl/%%g'`" 887fi 888AC_SUBST(REPL_POLICIES) 889AC_SUBST(REPL_OBJS) 890AC_SUBST(REPL_LIBS) 891 892AM_CONDITIONAL(ENABLE_PINGER, false) 893AC_ARG_ENABLE(icmp, 894 AS_HELP_STRING([--enable-icmp],[Enable ICMP pinging and Network Measurement]), 895[ if test "x$enableval" = "xyes" ; then 896 AC_MSG_NOTICE([ICMP enabled]) 897 AC_DEFINE(USE_ICMP,1,[Define to use Squid ICMP and Network Measurement features (highly recommended!)]) 898 AM_CONDITIONAL(ENABLE_PINGER, true) 899 fi 900]) 901 902AM_CONDITIONAL(ENABLE_DELAY_POOLS, false) 903AC_ARG_ENABLE(delay-pools, 904 AS_HELP_STRING([--enable-delay-pools],[Enable delay pools to limit bandwidth usage]), 905[ if test "x$enableval" = "xyes" ; then 906 AC_MSG_NOTICE([Delay pools enabled]) 907 AC_DEFINE([USE_DELAY_POOLS],1,[Traffic management via "delay pools".]) 908 AM_CONDITIONAL(ENABLE_DELAY_POOLS, true) 909 fi 910]) 911 912dnl disable generic/common adaptation support by default 913squid_opt_use_adaptation=no 914 915squid_opt_use_esi=auto 916AH_TEMPLATE([USE_SQUID_ESI],[Define to enable the ESI processor]) 917AC_ARG_ENABLE(esi, 918 AS_HELP_STRING([--disable-esi], 919 [Disable ESI for accelerators. ESI requires expat or libxml2. 920 Enabling ESI will cause squid reverse proxies to be capable 921 of the Edge Acceleration Specification (www.esi.org).]), 922 [squid_opt_use_esi=$enableval],[]) 923HAVE_LIBEXPAT=0 924EXPATLIB= 925HAVE_LIBXML2=0 926XMLLIB= 927 928# ESI support libraries: expat 929AC_ARG_WITH(expat, AS_HELP_STRING([--without-expat],[Do not use expat for ESI. Default: auto-detect])) 930if test "x$squid_opt_use_esi" != "xno" -a "x$with_expat" != "xno" ; then 931 AC_CHECK_LIB([expat], [main], [EXPATLIB="-lexpat"; HAVE_LIBEXPAT=1]) 932 AC_CHECK_HEADERS([expat.h]) 933 AC_DEFINE_UNQUOTED(HAVE_LIBEXPAT, $HAVE_LIBEXPAT, [Define to 1 if you have the expat library]) 934 AS_IF(test "x$HAVE_LIBEXPAT" = "x1",[ 935 squid_opt_use_esi=yes 936 ],[ 937 AS_IF(test "x$with_expat" = "xyes",[ 938 AC_MSG_ERROR([Required library expat not found.]) 939 ],[ 940 AC_MSG_NOTICE([Library expat not found.]) 941 ]) 942 ]) 943fi 944 945AC_ARG_WITH(libxml2, AS_HELP_STRING([--without-libxml2],[Do not use libxml2 for ESI. Default: auto-detect])) 946if test "x$squid_opt_use_esi" != "xno" -a "x$with_libxml2" != "xno" ; then 947 SQUID_STATE_SAVE([squid_libxml2_save]) 948 PKG_CHECK_MODULES([LIBXML2],[libxml-2.0],[],[ 949 AC_CHECK_LIB([xml2], [main], [LIBXML2_LIBS="$LIBXML2_LIBS -lxml2"]) 950 dnl Find the main header and include path... 951 AC_CACHE_CHECK([location of libxml2 include files], [ac_cv_libxml2_include], [ 952 AC_CHECK_HEADERS([libxml/parser.h], [], [ 953 AC_MSG_NOTICE([Testing in /usr/include/libxml2]) 954 SAVED_CPPFLAGS="$CPPFLAGS" 955 CPPFLAGS="-I/usr/include/libxml2 $CPPFLAGS" 956 unset ac_cv_header_libxml_parser_h 957 AC_CHECK_HEADERS([libxml/parser.h], [LIBXML2_CFLAGS="$LIBXML2_CFLAGS -I/usr/include/libxml2"], [ 958 AC_MSG_NOTICE([Testing in /usr/local/include/libxml2]) 959 CPPFLAGS="-I/usr/local/include/libxml2 $SAVED_CPPFLAGS" 960 unset ac_cv_header_libxml_parser_h 961 AC_CHECK_HEADERS([libxml/parser.h], [LIBXML2_CFLAGS="$LIBXML2_CFLAGS -I/usr/local/include/libxml2"], [ 962 AC_MSG_NOTICE([Failed to find libxml2 header file libxml/parser.h]) 963 ]) 964 ]) 965 CPPFLAGS="$SAVED_CPPFLAGS" 966 ]) 967 ]) 968 ]) 969 CPPFLAGS="$CPPFLAGS $LIBXML2_CFLAGS" 970 dnl Now that we know where to look find the headers... 971 AC_CHECK_HEADERS(libxml/parser.h libxml/HTMLparser.h libxml/HTMLtree.h) 972 SQUID_STATE_ROLLBACK([squid_libxml2_save]) 973 974 if test "x$LIBXML2_LIBS" != "x"; then 975 HAVE_LIBXML2=1 976 squid_opt_use_esi=yes 977 SQUID_CXXFLAGS="$SQUID_CXXFLAGS $LIBXML2_CFLAGS" 978 CPPFLAGS="$CPPFLAGS $LIBXML2_CFLAGS" 979 XMLLIB="$LIBXML2_LIBS" 980 AC_DEFINE_UNQUOTED(HAVE_LIBXML2, $HAVE_LIBXML2, [Define to 1 if you have the libxml2 library]) 981 elif test "x$with_libxml2" = "xyes"; then 982 AC_MSG_ERROR([Required library libxml2 not found]) 983 else 984 AC_MSG_NOTICE([Library libxml2 not found.]) 985 fi 986fi 987 988AS_IF([test "x$squid_opt_use_esi" = "xyes"],[ 989 AS_IF(test "x$HAVE_LIBXML2" = "x0" -a "x$HAVE_LIBEXPAT" = "x0",[ 990 AC_MSG_ERROR([ESI processor requires libxml2 or libexpat]) 991 ]) 992 AC_MSG_NOTICE([Enabling ESI processor: $EXPATLIB $XMLLIB]) 993 AC_DEFINE(USE_SQUID_ESI,1,[Compile the ESI processor]) 994],[ 995 AS_IF(test "x$squid_opt_use_esi" = "xno",[ 996 AC_MSG_NOTICE([Disabling ESI processor.]) 997 ],[ 998 AC_MSG_NOTICE([Disabling ESI processor. libxml2 and libexpat not found.]) 999 ]) 1000]) 1001AM_CONDITIONAL(ENABLE_ESI, test "x$squid_opt_use_esi" = "xyes") 1002AM_CONDITIONAL(ENABLE_LIBEXPAT, test "x$HAVE_LIBEXPAT" = "x1") 1003AC_SUBST(EXPATLIB) 1004AM_CONDITIONAL(ENABLE_LIBXML2, test "x$HAVE_LIBXML2" = "x1") 1005AC_SUBST(XMLLIB) 1006 1007# icap argument handling 1008AC_ARG_ENABLE(icap-client, 1009 AS_HELP_STRING([--disable-icap-client],[Disable the ICAP client.]),[ 1010 SQUID_YESNO([$enableval],[Unrecognized argument to --disable-icap-client: $enableval]) 1011]) 1012SQUID_DEFINE_BOOL(ICAP_CLIENT,${enable_icap_client:=yes}, [Enable ICAP client features in Squid]) 1013AS_IF(test "x$enable_icap_client" != "xno", squid_opt_use_adaptation="yes") 1014AM_CONDITIONAL(ENABLE_ICAP_CLIENT, test "x$enable_icap_client" != "xno") 1015 1016squid_opt_use_ecap=1 1017AC_MSG_CHECKING(whether to support eCAP) 1018AC_ARG_ENABLE(ecap, 1019 AS_HELP_STRING([--enable-ecap],[support loadable content adaptation modules]), [ 1020 case "${enableval}" in 1021 yes|no) squid_opt_use_ecap=$enableval ;; 1022 *) AC_MSG_ERROR(bad value ${enableval} for --enable-ecap) ;; 1023 esac 1024AC_MSG_RESULT([$squid_opt_use_ecap, explicitly]) 1025 ], [ 1026 squid_opt_use_ecap=no; 1027 AC_MSG_RESULT([$squid_opt_use_ecap, implicitly]) 1028 ] 1029) 1030 1031dnl Perform configuration consistency checks for eCAP 1032if test "x$squid_opt_use_ecap" != "xno"; 1033then 1034 dnl eCAP support requires loadable modules, which are enabled by default 1035 if test "x$enable_loadable_modules" != "xyes" 1036 then 1037 AC_MSG_ERROR([eCAP support requires loadable modules. Please do not use --disable-loadable-modules with --enable-ecap.]) 1038 fi 1039 1040 if test -n "$PKG_CONFIG"; then 1041 dnl eCAP support requires libecap. 1042 dnl This Squid supports libecap v1.0.x. 1043 dnl Use EXT_ prefix to distinguish external libecap (that we check for 1044 dnl here) from our own convenience ecap library in Makefiles. 1045 PKG_CHECK_MODULES([EXT_LIBECAP],[libecap >= 1.0 libecap < 1.1]) 1046 else 1047 AC_MSG_NOTICE([eCAP support requires pkg-config to verify the correct library version. Trouble may follow.]) 1048 fi 1049 1050 SQUID_STATE_SAVE(squid_ecap_state) 1051 AC_MSG_CHECKING([whether -lecap will link]) 1052 CXXFLAGS="$CXXFLAGS $EXT_LIBECAP_CFLAGS" 1053 LIBS="$LIBS $EXT_LIBECAP_LIBS" 1054 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <libecap/common/names.h>]],[[ 1055 const libecap::Name test("test", libecap::Name::NextId()); 1056 ]])],[ 1057 AC_MSG_RESULT(yes) 1058 squid_opt_use_adaptation=yes 1059 ],[ 1060 AC_MSG_RESULT(no) 1061 AS_IF( 1062 test "x$squid_opt_use_ecap" = "xyes", AC_MSG_ERROR([eCAP library will not link. 1063 You may need to rebuild libecap using the same version of GCC as Squid. 1064 There have been breaking ABI changes in the libstdc++ STL with GCC 5.]), 1065 1066 [AC_MSG_NOTICE([eCAP library will not link. 1067 You may need to rebuild libecap using the same version of GCC as Squid. 1068 There have been breaking ABI changes in the libstdc++ STL with GCC 5.]) 1069 squid_opt_use_ecap="no" 1070 ]) 1071 ]) 1072 SQUID_STATE_ROLLBACK(squid_ecap_state) 1073fi 1074SQUID_DEFINE_BOOL(USE_ECAP,${squid_opt_use_ecap:=no},[Whether to use eCAP support]) 1075AM_CONDITIONAL(ENABLE_ECAP, test "x$squid_opt_use_ecap" = "xyes") 1076 1077dnl enable adaptation if requested by specific adaptation mechanisms 1078ADAPTATION_LIBS="" 1079if test "x$squid_opt_use_adaptation" = "xyes"; then 1080 ADAPTATION_LIBS="adaptation/libadaptation.la" 1081fi 1082SQUID_DEFINE_BOOL(USE_ADAPTATION,${squid_opt_use_adaptation:=no}, [common adaptation support]) 1083AM_CONDITIONAL(ENABLE_ADAPTATION, test "x$squid_opt_use_adaptation" = "xyes") 1084AC_SUBST(ADAPTATION_LIBS) 1085 1086test "x$squid_host_os" = "xmingw" && enable_wccp=no 1087AC_ARG_ENABLE(wccp, 1088 AS_HELP_STRING([--disable-wccp],[Disable Web Cache Coordination Protocol]), [ 1089SQUID_YESNO([$enableval],[unrecognized argument to --disable-wccp: $enableval]) 1090]) 1091SQUID_DEFINE_BOOL(USE_WCCP, ${enable_wccp:=yes}, [Define to enable WCCP]) 1092AC_MSG_NOTICE([Web Cache Coordination Protocol enabled: $enable_wccp]) 1093 1094test "x$squid_host_os" = "xmingw" && enable_wccpv2=no 1095AC_ARG_ENABLE(wccpv2, 1096 AS_HELP_STRING([--disable-wccpv2], 1097 [Disable Web Cache Coordination V2 Protocol]), [ 1098SQUID_YESNO([$enableval], 1099 [unrecognized argument to --disable-wccpv2: $enableval]) 1100]) 1101SQUID_DEFINE_BOOL(USE_WCCPv2,${enable_wccpv2:=yes}, 1102 [Define to enable WCCP V2]) 1103AC_MSG_NOTICE([Web Cache Coordination V2 Protocol enabled: $enable_wccpv2]) 1104 1105AC_ARG_ENABLE(kill-parent-hack, 1106 AS_HELP_STRING([--enable-kill-parent-hack],[Kill parent on shutdown]), [ 1107SQUID_YESNO([$enableval], 1108 [unrecognized argument to --enable-kill-parent-hack: $enableval]) 1109]) 1110SQUID_DEFINE_BOOL(KILL_PARENT_OPT,${enable_kill_parent_hack:=no}, 1111 [A dangerous feature which causes Squid to kill its parent 1112 process (presumably the RunCache script) upon receipt 1113 of SIGTERM or SIGINT. Deprecated, Use with caution.]) 1114AC_MSG_NOTICE([Kill parent on shutdown hack enabled: $enable_kill_parent_hack]) 1115 1116AC_ARG_ENABLE(snmp, 1117 AS_HELP_STRING([--disable-snmp],[Disable SNMP monitoring support]), [ 1118 SQUID_YESNO([$enableval], 1119 [unrecognized argument to --disable-snmp: $enableval]) 1120]) 1121SQUID_DEFINE_BOOL(SQUID_SNMP,${enable_snmp:=yes}, 1122 [Define to enable SNMP monitoring of Squid]) 1123AM_CONDITIONAL(ENABLE_SNMP, [test "x$enable_snmp" = "xyes"]) 1124if test "x$enable_snmp" = "xyes"; then 1125 SNMPLIB='../lib/snmplib/libsnmplib.la' 1126fi 1127AC_MSG_NOTICE([SNMP support enabled: $enable_snmp]) 1128AC_SUBST(SNMPLIB) 1129 1130AC_ARG_ENABLE(cachemgr-hostname, 1131 AS_HELP_STRING([--enable-cachemgr-hostname=hostname], 1132 [Make cachemgr.cgi default to this host. 1133 If unspecified, uses the name of the build-host]), [ 1134 case $enableval in 1135 yes) 1136 AC_DEFINE(CACHEMGR_HOSTNAME,[getfullhostname()], 1137 [If you are upset that the cachemgr.cgi form comes up with the hostname field blank, then define this to getfullhostname()]) 1138 AC_MSG_NOTICE([Cachemgr default hostname == host where cachemgr runs]) 1139 ;; 1140 no) 1141 : # Nothing to do.. 1142 ;; 1143 *) 1144 AC_DEFINE_UNQUOTED(CACHEMGR_HOSTNAME,"${enableval}") 1145 AC_MSG_NOTICE([Cachemgr default hostname set to ${enableval}]) 1146 ;; 1147 esac 1148]) 1149 1150AC_ARG_ENABLE(eui, 1151 AS_HELP_STRING([--disable-eui], 1152 [Disable use of ARP / MAC/ EUI (ether address)]), [ 1153SQUID_YESNO([$enableval],[--disable-eui expects no arguments]) 1154]) 1155if test "x${enable_eui:=yes}" = "xyes" ; then 1156 SQUID_STATE_SAVE(LIBEUI) 1157 # GLIBC 2.30 deprecates sysctl.h. Test with the same flags that (may) break includes later. 1158 CFLAGS=$SQUID_CFLAGS 1159 CXXFLAGS=$SQUID_CXXFLAGS 1160 case "$squid_host_os" in 1161 linux|solaris|freebsd|openbsd|netbsd|cygwin) 1162 ${TRUE} 1163 ;; 1164 mingw) 1165 EUILIB="-liphlpapi" 1166 ;; 1167 *) 1168 AC_MSG_WARN([EUI support probably will not work on host $host.]) 1169 ;; 1170 esac 1171 # iphlpapi.h check delayed after winsock2.h 1172 AC_CHECK_HEADERS( \ 1173 windows.h \ 1174 sys/sockio.h \ 1175 sys/param.h, 1176 [], [], [[ 1177#if HAVE_WINDOWS_H 1178include <windows.h> 1179#endif 1180]] 1181 ) 1182 AC_CHECK_HEADERS( \ 1183 net/if_arp.h \ 1184 net/route.h, 1185 [], [], [[ 1186#include <sys/types.h> 1187#include <sys/socket.h> 1188]]) 1189 1190 # OpenBSD, FreeBSD and NetBSD requires sys/param.h to be included before sysctl.h and net/if_dl.h 1191 AC_CHECK_HEADERS( \ 1192 net/if_dl.h \ 1193 sys/sysctl.h, 1194 [], [], [[ 1195#if HAVE_SYS_PARAM_H 1196#include <sys/param.h> 1197#endif 1198 ]]) 1199 SQUID_STATE_ROLLBACK(LIBEUI) 1200fi 1201AC_SUBST(EUILIB) 1202AC_MSG_NOTICE([EUI (MAC address) controls enabled: $enable_eui]) 1203SQUID_DEFINE_BOOL(USE_SQUID_EUI,$enable_eui, 1204 [Define this to include code which lets you use ethernet addresses. This code uses API initially defined in 4.4-BSD.]) 1205AM_CONDITIONAL(ENABLE_EUI, [test "x$enable_eui" = "xyes" ]) 1206 1207 1208AC_ARG_ENABLE(htcp, 1209 AS_HELP_STRING([--disable-htcp],[Disable HTCP protocol support]), [ 1210SQUID_YESNO([$enableval], 1211 [unrecognized argument to --disable-htcp: $enableval]) 1212]) 1213SQUID_DEFINE_BOOL(USE_HTCP,${enable_htcp:=yes}, 1214 [Define this to include code for the Hypertext Cache Protocol (HTCP)]) 1215AM_CONDITIONAL(ENABLE_HTCP, [test "x$enable_htcp" = "xyes"]) 1216AC_MSG_NOTICE([HTCP support enabled: $enable_htcp]) 1217 1218# Cryptograhic libraries 1219AC_ARG_WITH(nettle, 1220 AS_HELP_STRING([--without-nettle],[Compile without the Nettle crypto library.]),[ 1221case "$with_nettle" in 1222 yes|no) 1223 : # Nothing special to do here 1224 ;; 1225 *) 1226 if test ! -d "$withval" ; then 1227 AC_MSG_ERROR([--with-nettle path does not point to a directory]) 1228 fi 1229 NETTLELIBDIR="-L$with_nettle/lib" 1230 CPPFLAGS="-I$with_nettle/include $CPPFLAGS" 1231 with_nettle=yes 1232 esac 1233]) 1234if test "x$with_nettle" != "xno" ; then 1235 AC_CHECK_LIB(nettle, nettle_md5_init,[ 1236 NETTLELIB="$NETTLELIBDIR -lnettle" 1237 AC_CHECK_HEADERS(nettle/md5.h) 1238 ],[with_nettle=no]) 1239 if test "x$with_nettle" != "xno" ; then 1240 # Base64 uses the nettle 3.4 API 1241 # which matters on 64-bit systems 1242 AC_CHECK_HEADERS(nettle/base64.h) 1243 AC_MSG_CHECKING([for Nettle 3.4 API compatibility]) 1244 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 1245# include <cstddef> 1246# include <cstdint> 1247# include <nettle/base64.h> 1248 ]],[[ 1249 char inData[10]; inData[0] = '\0'; 1250 size_t srcLen = 0; 1251 struct base64_decode_ctx ctx; 1252 base64_decode_init(&ctx); 1253 uint8_t outData[10]; 1254 size_t dstLen = 0; 1255 if (!base64_decode_update(&ctx, &dstLen, outData, srcLen, inData) || 1256 !base64_decode_final(&ctx)) { 1257 return 1; 1258 } 1259 ]])],[AC_MSG_RESULT(yes) 1260 AC_DEFINE(HAVE_NETTLE34_BASE64,1,[set to 1 if Nettle 3.4 API will link]) 1261 ],[AC_MSG_RESULT(no)]) 1262 fi 1263fi 1264AC_MSG_NOTICE([Using Nettle cryptographic library: ${with_nettle:=yes}]) 1265AC_SUBST(NETTLELIB) 1266 1267dnl Check for libcrypt 1268CRYPTLIB= 1269dnl Some of our helpers use crypt(3) which may be in libc, or in 1270dnl libcrypt (eg FreeBSD) 1271AC_CHECK_LIB(crypt, crypt, [CRYPTLIB="-lcrypt"]) 1272dnl Solaris10 provides MD5 natively through libmd5 1273AC_CHECK_LIB(md5, MD5Init, [CRYPTLIB="$CRYPTLIB -lmd5"]) 1274AC_SUBST(CRYPTLIB) 1275 1276SSLLIB="" 1277 1278dnl User may want to disable GnuTLS 1279AC_ARG_WITH(gnutls, 1280 AS_HELP_STRING([--without-gnutls], 1281 [Do not use GnuTLS for SSL. Default: auto-detect]), [ 1282case "$with_gnutls" in 1283 yes|no) 1284 : # Nothing special to do here 1285 ;; 1286 *) 1287 if test ! -d "$withval" ; then 1288 AC_MSG_ERROR([--with-gnutls path does not point to a directory]) 1289 fi 1290 LIBGNUTLS_PATH="-L$with_gnutls/lib" 1291 CPPFLAGS="-I$with_gnutls/include $CPPFLAGS" 1292 esac 1293]) 1294AH_TEMPLATE(USE_GNUTLS,[GnuTLS support is available]) 1295if test "x$with_gnutls" != "xno"; then 1296 SQUID_STATE_SAVE(squid_gnutls_state) 1297 1298 # User may have provided a custom location for GnuTLS. Otherwise... 1299 LIBS="$LIBS $LIBGNUTLS_PATH" 1300 1301 # auto-detect using pkg-config 1302 PKG_CHECK_MODULES([LIBGNUTLS],[gnutls >= 3.4.0],[ 1303 CPPFLAGS="$CPPFLAGS $LIBGNUTLS_CFLAGS" 1304 ],[ 1305 ## find the package without pkg-config 1306 ## check that the library is actually new enough. 1307 ## by testing for a 3.4.0+ function which we use 1308 AC_CHECK_LIB(gnutls,gnutls_pcert_export_x509,[LIBGNUTLS_LIBS="-lgnutls"]) 1309 ]) 1310 AC_CHECK_HEADERS(gnutls/gnutls.h gnutls/x509.h gnutls/abstract.h) 1311 1312 SQUID_STATE_ROLLBACK(squid_gnutls_state) #de-pollute LIBS 1313 1314 if test "x$with_gnutls" = "xyes" -a "x$LIBGNUTLS_LIBS" = "x"; then 1315 AC_MSG_ERROR([Required GnuTLS library not found]) 1316 fi 1317 if test "x$LIBGNUTLS_LIBS" != "x" ; then 1318 CXXFLAGS="$LIBGNUTLS_CFLAGS $CXXFLAGS" 1319 SSLLIB="$LIBGNUTLS_PATH $LIBGNUTLS_LIBS $SSLLIB" 1320 AC_DEFINE(USE_GNUTLS,1,[GnuTLS support is available]) 1321 else 1322 with_gnutls=no 1323 fi 1324fi 1325AC_MSG_NOTICE([GnuTLS library support: ${with_gnutls:=auto} ${LIBGNUTLS_PATH} ${LIBGNUTLS_LIBS}]) 1326 1327dnl User may specify OpenSSL is needed from a non-standard location 1328AC_ARG_WITH(openssl, 1329 AS_HELP_STRING([--with-openssl=PATH], 1330 [Compile with the OpenSSL libraries. The path to 1331 the OpenSSL development libraries and headers 1332 installation can be specified if outside of the 1333 system standard directories]), [ 1334case "$with_openssl" in 1335 yes|no) 1336 : # Nothing special to do here 1337 ;; 1338 *) 1339 if test ! -d "$withval" ; then 1340 AC_MSG_ERROR([--with-openssl path does not point to a directory]) 1341 fi 1342 LIBOPENSSL_PATH="-L$with_openssl/lib" 1343 CPPFLAGS="-I$with_openssl/include $CPPFLAGS" 1344 with_openssl=yes 1345 esac 1346]) 1347AH_TEMPLATE(USE_OPENSSL,[OpenSSL support is available]) 1348## OpenSSL is default disable due to licensing issues on some OS 1349if test "x$with_openssl" = "xyes"; then 1350 AC_CHECK_HEADERS( \ 1351 openssl/asn1.h \ 1352 openssl/bio.h \ 1353 openssl/bn.h \ 1354 openssl/crypto.h \ 1355 openssl/dh.h \ 1356 openssl/err.h \ 1357 openssl/evp.h \ 1358 openssl/lhash.h \ 1359 openssl/md5.h \ 1360 openssl/opensslv.h \ 1361 openssl/rsa.h \ 1362 openssl/ssl.h \ 1363 openssl/x509.h \ 1364 openssl/x509v3.h \ 1365 openssl/engine.h \ 1366 openssl/txt_db.h \ 1367 ) 1368 1369 # User may have provided a custom location for OpenSSL. Otherwise... 1370 SQUID_STATE_SAVE(squid_openssl_state) 1371 LIBS="$LIBS $LIBOPENSSL_PATH" 1372 1373 # auto-detect using pkg-config 1374 PKG_CHECK_MODULES([LIBOPENSSL],[openssl],,[ 1375 ## For some OS pkg-config is broken or unavailable. 1376 ## Detect libraries the hard way. 1377 1378 # Windows MinGW has some special libraries ... 1379 if test "x$squid_host_os" = "xmingw" ; then 1380 LIBOPENSSL_LIBS='-lssleay32 -leay32 -lgdi32 $LIBOPENSSL_LIBS' 1381 AC_MSG_NOTICE([Windows OpenSSL library support: yes -lssleay32 -leay32 -lgdi32]) 1382 fi 1383 1384 AC_CHECK_LIB(crypto,[CRYPTO_new_ex_data],[LIBOPENSSL_LIBS="-lcrypto $LIBOPENSSL_LIBS"],[ 1385 AC_MSG_ERROR([library 'crypto' is required for OpenSSL]) 1386 ],$LIBOPENSSL_LIBS) 1387 AC_CHECK_LIB(ssl,[SSL_CTX_new],[LIBOPENSSL_LIBS="-lssl $LIBOPENSSL_LIBS"],[ 1388 AC_MSG_ERROR([library 'ssl' is required for OpenSSL]) 1389 ],$LIBOPENSSL_LIBS) 1390 ]) 1391 1392 # This is a workaround for RedHat 9 brain damage.. 1393 if test -d /usr/kerberos/include -a -f /usr/include/openssl/kssl.h; then 1394 AC_MSG_NOTICE([OpenSSL depends on Kerberos]) 1395 LIBOPENSSL_LIBS="-L/usr/kerberos/lib $LIBOPENSSL_LIBS" 1396 CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include" 1397 fi 1398 SQUID_STATE_ROLLBACK(squid_openssl_state) #de-pollute LIBS 1399 1400 if test "x$LIBOPENSSL_LIBS" != "x"; then 1401 CXXFLAGS="$LIBOPENSSL_CFLAGS $CXXFLAGS" 1402 SSLLIB="$LIBOPENSSL_PATH $LIBOPENSSL_LIBS $SSLLIB" 1403 AC_DEFINE(USE_OPENSSL,1,[OpenSSL support is available]) 1404 1405 # check for API functions 1406 SQUID_CHECK_LIBCRYPTO_API 1407 SQUID_CHECK_LIBSSL_API 1408 SQUID_CHECK_OPENSSL_TLS_METHODS 1409 SQUID_STATE_SAVE(check_SSL_CTX_get0_certificate) 1410 LIBS="$LIBS $SSLLIB" 1411 AC_CHECK_LIB(ssl, SSL_CTX_get0_certificate, [ 1412 AC_DEFINE(HAVE_SSL_CTX_GET0_CERTIFICATE, 1, [SSL_CTX_get0_certificate is available]) 1413 ], [ 1414 missing_SSL_CTX_get0_certificate=yes 1415 ]) 1416 SQUID_STATE_ROLLBACK(check_SSL_CTX_get0_certificate) 1417 1418 # check for other specific broken implementations 1419 if test "x$missing_SSL_CTX_get0_certificate" = "xyes"; then 1420 SQUID_CHECK_OPENSSL_GETCERTIFICATE_WORKS 1421 fi 1422 SQUID_CHECK_OPENSSL_CONST_SSL_METHOD 1423 SQUID_CHECK_OPENSSL_CONST_CRYPTO_EX_DATA 1424 SQUID_CHECK_OPENSSL_CONST_SSL_SESSION_CB_ARG 1425 SQUID_CHECK_OPENSSL_CONST_X509_GET0_SIGNATURE_ARGS 1426 SQUID_CHECK_OPENSSL_TXTDB 1427 SQUID_CHECK_OPENSSL_HELLO_OVERWRITE_HACK 1428 fi 1429 if test "x$SSLLIB" = "x"; then 1430 AC_MSG_ERROR([Required OpenSSL library not found]) 1431 fi 1432fi 1433AC_MSG_NOTICE([OpenSSL library support: ${with_openssl:=no} ${LIBOPENSSL_PATH} ${LIBOPENSSL_LIBS}]) 1434AM_CONDITIONAL(ENABLE_SSL,[ test "x$with_openssl" = "xyes" ]) 1435AC_SUBST(SSLLIB) 1436 1437dnl User may specify MIT Kerberos is needed from a non-standard location 1438AC_ARG_WITH(mit-krb5, 1439 AS_HELP_STRING([--without-mit-krb5], 1440 [Compile without MIT Kerberos support.]), [ 1441case "$with_mit_krb5" in 1442 yes|no) 1443 : # Nothing special to do here 1444 ;; 1445 *) 1446 if test ! -d "$withval" ; then 1447 AC_MSG_ERROR([--with-mit-krb5 path does not point to a directory]) 1448 fi 1449 if test -d "$with_mit_krb5/lib64" ; then 1450 LIB_KRB5_PATH="-L$with_mit_krb5/lib64 -L$with_mit_krb5/lib" 1451 else 1452 LIB_KRB5_PATH="-L$with_mit_krb5/lib" 1453 fi 1454 CXXFLAGS="-I$with_mit_krb5/include $CXXFLAGS" 1455 krb5confpath="$with_mit_krb5/bin" 1456 with_mit_krb5=yes 1457esac 1458]) 1459AH_TEMPLATE(USE_APPLE_KRB5,[Apple Kerberos support is available]) 1460AH_TEMPLATE(USE_MIT_KRB5,[MIT Kerberos support is available]) 1461AH_TEMPLATE(USE_SOLARIS_KRB5,[Solaris Kerberos support is available]) 1462 1463## find out if pkg-config or krb5-config will work 1464if test "x$with_mit_krb5" != "xno"; then 1465 # find installed libs via pkg-config or krb5-config 1466 squid_pc_krb5_name= 1467 PKG_CHECK_EXISTS(mit-krb5-gssapi mit-krb5, [squid_pc_krb5_name="mit-krb5-gssapi mit-krb5"],[ 1468 PKG_CHECK_EXISTS(gssapi-krb5 krb5, [squid_pc_krb5_name="gssapi-krb5 krb5"]) 1469 ]) 1470 if test "x$squid_pc_krb5_name" = "x" -a "$cross_compiling" = "no"; then 1471 # Look for krb5-config (unless cross-compiling) 1472 AC_PATH_PROG(krb5_config,krb5-config,no,$krb5confpath) 1473 if test "x$ac_cv_path_krb5_config" != "xno" ; then 1474 krb5confpath="`dirname $ac_cv_path_krb5_config`" 1475 ac_heimdal="`$ac_cv_path_krb5_config --version 2>/dev/null | grep -c -i heimdal`" 1476 ac_solaris="`$ac_cv_path_krb5_config --version 2>/dev/null | grep -c -i solaris`" 1477 ac_apple="`$ac_cv_path_krb5_config --vendor 2>/dev/null | grep -c -i apple`" 1478 if test $ac_solaris -gt 0 ; then 1479 with_solaris_krb5=yes 1480 elif test $ac_apple -gt 0 ; then 1481 with_apple_krb5=yes 1482 elif test $ac_heimdal -gt 0; then 1483 with_mit_krb5=no 1484 if test "x$with_mit_krb5" = "xyes"; then 1485 AC_MSG_ERROR([Could not find pkg-config or krb5-config for MIT Kerberos]) 1486 fi 1487 fi 1488 else 1489 if test "x$with_mit_krb5" = "xyes"; then 1490 AC_MSG_ERROR([Could not find krb5-config in path]) 1491 else 1492 with_mit_krb5=no 1493 fi 1494 fi 1495 fi 1496fi 1497 1498# detect MIT Kerberos dependencies (except on Solaris) 1499if test "x$with_mit_krb5" != "xno" -a "x$with_solaris_krb5" != "xyes"; then 1500 SQUID_STATE_SAVE([squid_krb5_save]) 1501 LIBS="$LIBS $LIB_KRB5_PATH" 1502 1503 # auto-detect using pkg-config 1504 PKG_CHECK_MODULES([LIB_KRB5], $squid_pc_krb5_name,,[ 1505 # look for krb5-config (unless cross-compiling) 1506 if test "$cross_compiling" = "no"; then 1507 if test "x$krb5confpath" = "x" ; then 1508 AC_PATH_PROG(krb5_config,krb5-config,no) 1509 if test "x$ac_cv_path_krb5_config" != "xno" ; then 1510 ac_krb5_config="$ac_cv_path_krb5_config" 1511 fi 1512 else 1513 ac_krb5_config="$krb5confpath/krb5-config" 1514 fi 1515 fi 1516 if test "x$ac_krb5_config" != "x" && test -x "$ac_krb5_config"; then 1517 # Get libs, etc 1518 AC_MSG_NOTICE([Use krb5-config to get CXXFLAGS and LIBS]) 1519 LIB_KRB5_CFLAGS="`$ac_krb5_config --cflags krb5 2>/dev/null`" 1520 LIB_KRB5_LIBS="`$ac_krb5_config --libs krb5 2>/dev/null`" 1521 LIB_KRB5_CFLAGS="`$ac_krb5_config --cflags gssapi 2>/dev/null` $LIB_KRB5_CFLAGS" 1522 LIB_KRB5_LIBS="`$ac_krb5_config --libs gssapi 2>/dev/null` $LIB_KRB5_LIBS" 1523 else 1524 ## For some OS pkg-config is broken or unavailable. 1525 ## Detect libraries the hard way. 1526 1527 SQUID_STATE_SAVE([squid_mit_save]) 1528 missing_required= 1529 AC_MSG_NOTICE([Try to find Kerberos libraries in given path]) 1530 AC_CHECK_LIB(com_err, [main], [LIB_KRB5_LIBS="-lcom_err $LIB_KRB5_LIBS"],[ 1531 AC_MSG_WARN([library 'com_err' is required for MIT Kerberos]) 1532 missing_required=yes 1533 ]) 1534 LIBS=$LIB_KRB5_LIBS 1535 AC_CHECK_LIB(k5crypto, [main], [LIB_KRB5_LIBS="-lk5crypto $LIB_KRB5_LIBS"],[ 1536 AC_MSG_WARN([library 'k5crypto' is required for MIT Kerberos]) 1537 missing_required=yes 1538 ]) 1539 LIBS=$LIB_KRB5_LIBS 1540 AC_CHECK_LIB(krb5, [main], [LIB_KRB5_LIBS="-lkrb5 $LIB_KRB5_LIBS"],[ 1541 AC_MSG_WARN([library 'krb5' is required for MIT Kerberos]) 1542 missing_required=yes 1543 ]) 1544 LIBS=$LIB_KRB5_LIBS 1545 AC_CHECK_LIB(gssapi_krb5, [main], [LIB_KRB5_LIBS="-lgssapi_krb5 $LIB_KRB5_LIBS"],[ 1546 AC_MSG_WARN([library 'gssapi_krb5' is required for MIT Kerberos]) 1547 missing_required=yes 1548 ]) 1549 SQUID_STATE_ROLLBACK([squid_mit_save]) 1550 if test "x$missing_required" = "xyes"; then 1551 LIB_KRB5_LIBS="" 1552 fi 1553 fi 1554 ]) 1555 1556 if test "x$LIB_KRB5_LIBS" != "x"; then 1557 if test "x$with_apple_krb5" = "xyes" ; then 1558 AC_DEFINE(USE_APPLE_KRB5,1,[Apple Kerberos support is available]) 1559 KRB5_FLAVOUR="Apple" 1560 else 1561 AC_DEFINE(USE_MIT_KRB5,1,[MIT Kerberos support is available]) 1562 KRB5_FLAVOUR="MIT" 1563 fi 1564 KRB5LIBS="$LIB_KRB5_PATH $LIB_KRB5_LIBS $KRB5LIBS" 1565 KRB5INCS="$LIB_KRB5_CFLAGS" 1566 1567 # check for other specific broken implementations 1568 CXXFLAGS="$CXXFLAGS $KRB5INCS" 1569 LIBS="$LIBS $KRB5LIBS" 1570 1571 AC_MSG_NOTICE([Try to find Kerberos headers in given path]) 1572 AC_CHECK_HEADERS(gssapi.h gssapi/gssapi.h gssapi/gssapi_krb5.h) 1573 AC_CHECK_HEADERS(gssapi/gssapi_generic.h) 1574 AC_CHECK_HEADERS(krb5.h com_err.h et/com_err.h) 1575 AC_CHECK_HEADERS(profile.h) 1576 1577 SQUID_CHECK_KRB5_FUNCS 1578 fi 1579 if test "x$with_mit_krb5" = "xyes" -a "x$KRB5LIBS" = "x"; then 1580 AC_MSG_ERROR([Required Kerberos library not found]) 1581 elif test "x$KRB5LIBS" = "x"; then 1582 with_mit_krb5=no 1583 with_apple_krb5=no 1584 fi 1585 SQUID_STATE_ROLLBACK([squid_krb5_save]) 1586fi 1587 1588# detect Solaris Kerberos dependencies 1589if test "x$with_solaris_krb5" = "xyes" -a "x$KRB5LIBS" = "x"; then 1590 SQUID_STATE_SAVE([squid_krb5_save]) 1591 LIBS="$LIBS $LIB_KRB5_PATH" 1592 1593 # no pkg-config for solaris native Kerberos 1594 # look for krb5-config (unless cross-compiling) 1595 if test "$cross_compiling" = "no"; then 1596 if test "x$krb5confpath" = "x" ; then 1597 AC_PATH_PROG(krb5_config,krb5-config,no) 1598 if test "x$ac_cv_path_krb5_config" != "xno" ; then 1599 ac_krb5_config="$ac_cv_path_krb5_config" 1600 fi 1601 else 1602 ac_krb5_config="$krb5confpath/krb5-config" 1603 fi 1604 fi 1605 if test "x$ac_krb5_config" != "x" && test -x "$ac_krb5_config"; then 1606 # Get libs, etc 1607 AC_MSG_NOTICE([Use krb5-config to get CXXFLAGS and LIBS]) 1608 LIB_KRB5_CFLAGS="`$ac_krb5_config --cflags krb5 2>/dev/null`" 1609 LIB_KRB5_LIBS="`$ac_krb5_config --libs krb5 2>/dev/null`" 1610 # Solaris 10 Update 11 patches the krb5-config tool to produce stderr messages on stdout. 1611 SOLARIS_BROKEN_KRB5CONFIG_GSSAPI="`$ac_krb5_config --libs gssapi 2>/dev/null | grep "krb5-config"`" 1612 if test "x$SOLARIS_BROKEN_KRB5CONFIG_GSSAPI" = "x"; then 1613 LIB_KRB5_CFLAGS="`$ac_krb5_config --cflags gssapi 2>/dev/null` $LIB_KRB5_CFLAGS" 1614 LIB_KRB5_LIBS="`$ac_krb5_config --libs gssapi 2>/dev/null` $LIB_KRB5_LIBS" 1615 fi 1616 else 1617 ## For some OS pkg-config is broken or unavailable. 1618 ## Detect libraries the hard way. 1619 1620 CXXFLAGS="-I/usr/include/kerberosv5 $CXXFLAGS" 1621 1622 SQUID_STATE_SAVE([squid_solaris_save]) 1623 missing_required= 1624 AC_MSG_NOTICE([Try to find Kerberos libraries in given path]) 1625 AC_CHECK_LIB(krb5, [main], [LIB_KRB5_LIBS="-lkrb5 $LIB_KRB5_LIBS"],[ 1626 AC_MSG_WARN([library 'krb5' is required for Solaris Kerberos]) 1627 missing_required=yes 1628 ]) 1629 LIBS=$LIB_KRB5_LIBS 1630 AC_CHECK_LIB(gss, [main], [LIB_KRB5_LIBS="-lgss $LIB_KRB5_LIBS"],[ 1631 AC_MSG_WARN([library 'gss' is required for Solaris Kerberos]) 1632 missing_required=yes 1633 ]) 1634 SQUID_STATE_ROLLBACK([squid_solaris_save]) 1635 if test "x$missing_required" = "xyes"; then 1636 LIB_KRB5_LIBS="" 1637 fi 1638 fi 1639 1640 if test "x$LIB_KRB5_LIBS" != "x"; then 1641 KRB5LIBS="$LIB_KRB5_PATH $LIB_KRB5_LIBS $KRB5LIBS" 1642 KRB5INCS="$LIB_KRB5_CFLAGS" 1643 AC_DEFINE(USE_SOLARIS_KRB5,1,[Solaris Kerberos support is available]) 1644 KRB5_FLAVOUR="Solaris" 1645 1646 # check for other specific broken implementations 1647 CXXFLAGS="$CXXFLAGS $KRB5INCS" 1648 LIBS="$LIBS $KRB5LIBS" 1649 1650 AC_MSG_NOTICE([Try to find Kerberos headers in given path]) 1651 AC_CHECK_HEADERS(gssapi/gssapi.h gssapi/gssapi_ext.h) 1652 AC_CHECK_HEADERS(krb5.h com_err.h) 1653 1654 SQUID_CHECK_KRB5_SOLARIS_BROKEN_KRB5_H 1655 if test "x$squid_cv_broken_krb5_h" = "xyes"; then 1656 AC_DEFINE(HAVE_BROKEN_SOLARIS_KRB5_H, 1, [Define to 1 if Solaris krb5.h is broken for C++]) 1657 AC_MSG_WARN([You have a broken Solaris <krb5.h> system include.]) 1658 AC_MSG_WARN([Please see http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6837512]) 1659 AC_MSG_WARN([If you need Kerberos support you will have to patch]) 1660 AC_MSG_WARN([your system. See contrib/solaris/solaris-krb5-include.patch]) 1661 fi 1662 SQUID_CHECK_KRB5_FUNCS 1663 fi 1664 if test "x$with_mit_krb5" = "xyes" -a "x$KRB5LIBS" = "x"; then 1665 # Error only if Solaris flavour was detected while looking for required MIT Kerberos 1666 AC_MSG_ERROR([Required Kerberos library not found]) 1667 elif test "x$KRB5LIBS" = "x"; then 1668 with_solaris_krb5=no 1669 with_mit_krb5=no 1670 fi 1671 SQUID_STATE_ROLLBACK([squid_krb5_save]) 1672fi 1673 1674dnl User may specify Heimdal Kerberos is needed from a non-standard location 1675AC_ARG_WITH(heimdal-krb5, 1676 AS_HELP_STRING([--without-heimdal-krb5], 1677 [Compile without Heimdal Kerberos support.]), [ 1678case "$with_heimdal_krb5" in 1679 yes|no) 1680 : # Nothing special to do here 1681 ;; 1682 *) 1683 if test ! -d "$withval" ; then 1684 AC_MSG_ERROR([--with-heimdal-krb5 path does not point to a directory]) 1685 fi 1686 if test -d "$with_heimdal_krb5/lib64" ; then 1687 LIB_KRB5_PATH="-L$with_heimdal_krb5/lib64 -L$with_heimdal_krb5/lib" 1688 else 1689 LIB_KRB5_PATH="-L$with_heimdal_krb5/lib" 1690 fi 1691 CXXFLAGS="-I$with_heimdal_krb5/include $CXXFLAGS" 1692 krb5confpath="$with_heimdal_krb5/bin" 1693 with_heimdal_krb5=yes 1694esac 1695]) 1696AH_TEMPLATE(USE_HEIMDAL_KRB5,[Heimdal Kerberos support is available]) 1697if test "x$with_heimdal_krb5" != "xno" -a "x$KRB5LIBS" = "x"; then 1698 # find installed libs via pkg-config or krb5-config 1699 PKG_CHECK_EXISTS(heimdal-krb5, [squid_pc_krb5_name="heimdal-krb5"]) 1700 if test "x$squid_pc_krb5_name" = "x"; then 1701 PKG_CHECK_EXISTS(heimdal-gssapi, [squid_pc_krb5_name="heimdal-gssapi"]) 1702 fi 1703 if test "x$squid_pc_krb5_name" = "x" -a "$cross_compiling" = "no"; then 1704 # Look for krb5-config (unless cross-compiling) 1705 AC_PATH_PROG(krb5_config,krb5-config,no,$krb5confpath) 1706 if test "x$ac_cv_path_krb5_config" != "xno" ; then 1707 krb5confpath="`dirname $ac_cv_path_krb5_config`" 1708 ac_heimdal="`$ac_cv_path_krb5_config --version 2>/dev/null | grep -c -i heimdal`" 1709 if test "x$with_heimdal_krb5" = "xyes" -a $ac_heimdal = 0; then 1710 AC_MSG_ERROR([Could not find pkg-config or krb5-config for Heimdal Kerberos]) 1711 fi 1712 else 1713 if test "x$with_heimdal_krb5" = "xyes"; then 1714 AC_MSG_ERROR([Could not find krb5-config in path]) 1715 else 1716 AC_MSG_WARN([Could not find krb5-config in path]) 1717 with_heimdal_krb5=no 1718 fi 1719 fi 1720 fi 1721fi 1722if test "x$with_heimdal_krb5" != "xno" -a "x$KRB5LIBS" = "x"; then 1723 SQUID_STATE_SAVE([squid_krb5_save]) 1724 LIBS="$LIBS $LIB_KRB5_PATH" 1725 1726 # auto-detect using pkg-config 1727 PKG_CHECK_MODULES([LIB_KRB5], $squid_pc_krb5_name,,[ 1728 # look for krb5-config (unless cross-compiling) 1729 if test "$cross_compiling" = "no"; then 1730 if test "x$krb5confpath" = "x" ; then 1731 AC_PATH_PROG(krb5_config,krb5-config,no) 1732 if test "x$ac_cv_path_krb5_config" != "xno" ; then 1733 ac_krb5_config="$ac_cv_path_krb5_config" 1734 fi 1735 else 1736 ac_krb5_config="$krb5confpath/krb5-config" 1737 fi 1738 fi 1739 if test "x$ac_krb5_config" != "x" -a -x "$ac_krb5_config"; then 1740 # Get libs, etc 1741 AC_MSG_NOTICE([Use krb5-config to get CXXFLAGS and LIBS]) 1742 LIB_KRB5_CFLAGS="`$ac_krb5_config --cflags krb5 2>/dev/null`" 1743 LIB_KRB5_LIBS="`$ac_krb5_config --libs krb5 2>/dev/null`" 1744 LIB_KRB5_CFLAGS="`$ac_krb5_config --cflags gssapi 2>/dev/null` $LIB_KRB5_CFLAGS" 1745 LIB_KRB5_LIBS="`$ac_krb5_config --libs gssapi 2>/dev/null` $LIB_KRB5_LIBS" 1746 else 1747 ## For some OS pkg-config is broken or unavailable. 1748 ## Detect libraries the hard way. 1749 SQUID_STATE_SAVE([squid_heimdal_save]) 1750 missing_required= 1751 AC_MSG_NOTICE([Try to find Kerberos libraries in given path]) 1752 AC_CHECK_LIB(resolv, [main], [LIB_KRB5_LIBS="-lresolv $LIB_KRB5_LIBS"],[ 1753 AC_MSG_WARN([library 'resolv' is required for Heimdal Kerberos]) 1754 missing_required=yes 1755 ]) 1756 LIBS=$LIB_KRB5_LIBS 1757 AC_CHECK_LIB(crypt, [main], [LIB_KRB5_LIBS="-lcrypt $LIB_KRB5_LIBS"],[ 1758 AC_MSG_WARN([library 'crypt' is required for Heimdal Kerberos]) 1759 missing_required=yes 1760 ]) 1761 LIBS=$LIB_KRB5_LIBS 1762 AC_CHECK_LIB(roken, [main], [LIB_KRB5_LIBS="-lroken $LIB_KRB5_LIBS"],[ 1763 AC_MSG_WARN([library 'roken' is required for Heimdal Kerberos]) 1764 missing_required=yes 1765 ]) 1766 LIBS=$LIB_KRB5_LIBS 1767 AC_CHECK_LIB(heimbase, [main], [LIB_KRB5_LIBS="-lheimbase $LIB_KRB5_LIBS"],[ 1768 AC_MSG_WARN([library 'heimbase' may be required for Heimdal Kerberos]) 1769 ]) 1770 LIBS=$LIB_KRB5_LIBS 1771 AC_CHECK_LIB(wind, [main], [LIB_KRB5_LIBS="-lwind $LIB_KRB5_LIBS"],[ 1772 AC_MSG_WARN([library 'wind' may be required for Heimdal Kerberos]) 1773 ]) 1774 LIBS=$LIB_KRB5_LIBS 1775 AC_CHECK_LIB(crypto, [main], [LIB_KRB5_LIBS="-lcrypto $LIB_KRB5_LIBS"],[ 1776 AC_MSG_WARN([library 'crypto' is required for Heimdal Kerberos]) 1777 missing_required=yes 1778 ]) 1779 LIBS=$LIB_KRB5_LIBS 1780 AC_CHECK_LIB(com_err, [main], [LIB_KRB5_LIBS="-lcom_err $LIB_KRB5_LIBS"],[ 1781 AC_MSG_WARN([library 'com_err' is required for Heimdal Kerberos]) 1782 missing_required=yes 1783 ]) 1784 LIBS=$LIB_KRB5_LIBS 1785 AC_CHECK_LIB(hx509, [main], [LIB_KRB5_LIBS="-lhx509 $LIB_KRB5_LIBS"],[ 1786 AC_MSG_WARN([library 'hx509' may be required for Heimdal Kerberos]) 1787 ]) 1788 LIBS=$LIB_KRB5_LIBS 1789 AC_CHECK_LIB(asn1, [main], [LIB_KRB5_LIBS="-lasn1 $LIB_KRB5_LIBS"],[ 1790 AC_MSG_WARN([library 'asn1' is required for Heimdal Kerberos]) 1791 missing_required=yes 1792 ]) 1793 LIBS=$LIB_KRB5_LIBS 1794 AC_CHECK_LIB(krb5, [main], [LIB_KRB5_LIBS="-lkrb5 $LIB_KRB5_LIBS"],[ 1795 AC_MSG_WARN([library 'krb5' is required for Heimdal Kerberos]) 1796 missing_required=yes 1797 ]) 1798 LIBS=$LIB_KRB5_LIBS 1799 AC_CHECK_LIB(heimntlm, [main], [LIB_KRB5_LIBS="-lheimntlm $LIB_KRB5_LIBS"],[ 1800 AC_MSG_WARN([library 'heimntlm' may be required for Heimdal Kerberos]) 1801 ]) 1802 LIBS=$LIB_KRB5_LIBS 1803 AC_CHECK_LIB(gssapi, [main], [LIB_KRB5_LIBS="-lgssapi $LIB_KRB5_LIBS"],[ 1804 AC_MSG_WARN([library 'gssapi' is required for Heimdal Kerberos]) 1805 missing_required=yes 1806 ]) 1807 SQUID_STATE_ROLLBACK([squid_heimdal_save]) 1808 if test "x$missing_required" = "xyes"; then 1809 LIB_KRB5_LIBS="" 1810 fi 1811 fi 1812 ]) 1813 if test "x$LIB_KRB5_LIBS" != "x"; then 1814 KRB5LIBS="$LIB_KRB5_PATH $LIB_KRB5_LIBS $KRB5LIBS" 1815 KRB5INCS="$LIB_KRB5_CFLAGS" 1816 AC_DEFINE(USE_HEIMDAL_KRB5,1,[Heimdal Kerberos support is available]) 1817 KRB5_FLAVOUR="Heimdal" 1818 1819 # check for other specific broken implementations 1820 CXXFLAGS="$CXXFLAGS $KRB5INCS" 1821 LIBS="$LIBS $KRB5LIBS" 1822 1823 AC_MSG_NOTICE([Try to find Kerberos headers in given path]) 1824 AC_CHECK_HEADERS(gssapi.h gssapi/gssapi.h gssapi/gssapi_krb5.h) 1825 AC_CHECK_HEADERS(krb5.h com_err.h et/com_err.h) 1826 1827 SQUID_CHECK_KRB5_HEIMDAL_BROKEN_KRB5_H 1828 if test "x$squid_cv_broken_heimdal_krb5_h" = "xyes"; then 1829 AC_DEFINE(HAVE_BROKEN_HEIMDAL_KRB5_H, 1, [Define to 1 if Heimdal krb5.h is broken for C++]) 1830 fi 1831 SQUID_CHECK_KRB5_FUNCS 1832 fi 1833 if test "x$KRB5LIBS" = "x"; then 1834 if test "x$with_heimdal_krb5" = "xyes"; then 1835 AC_MSG_ERROR([Required Heimdal Kerberos library not found]) 1836 else 1837 AC_MSG_WARN([Heimdal Kerberos library not found]) 1838 fi 1839 fi 1840 SQUID_STATE_ROLLBACK([squid_krb5_save]) 1841fi 1842 1843dnl User may specify GNU gss is needed from a non-standard location 1844AC_ARG_WITH(gnugss, 1845 AS_HELP_STRING([--without-gnugss], 1846 [Compile without the GNU gss libraries.]), [ 1847case "$with_gnugss" in 1848 yes|no) 1849 : # Nothing special to do here 1850 ;; 1851 *) 1852 if test ! -d "$withval" ; then 1853 AC_MSG_ERROR([--with-gnugss path does not point to a directory]) 1854 fi 1855 if test ! -d "$with_gnugss/lib64" ; then 1856 LIB_KRB5_PATH="-L$with_gnugss/lib64 -L$with_gnugss/lib" 1857 else 1858 LIB_KRB5_PATH="-L$with_gnugss/lib" 1859 fi 1860 CXXFLAGS="-I$with_gnugss/include $CXXFLAGS" 1861 krb5confpath= 1862 with_gnugss=yes 1863esac 1864]) 1865AH_TEMPLATE(USE_GNUGSS,[GNU gss support is available]) 1866if test "x$with_gnugss" != "xno" -a "x$KRB5LIBS" = "x"; then 1867 SQUID_STATE_SAVE([squid_krb5_save]) 1868 LIBS="$LIBS $LIB_KRB5_PATH" 1869 1870 # auto-detect using pkg-config 1871 PKG_CHECK_MODULES([LIB_KRB5],[gss],,[ 1872 ## For some OS pkg-config is broken or unavailable. 1873 ## Detect libraries the hard way. 1874 1875 AC_MSG_NOTICE([Try to find Kerberos libraries in given path]) 1876 AC_CHECK_LIB(gss, [main], [LIB_KRB5_LIBS="-lgss $LIB_KRB5_LIBS"],[ 1877 AC_MSG_WARN([library 'com_err' is required for GNU Kerberos]) 1878 ]) 1879 ]) 1880 1881 if test "x$LIB_KRB5_LIBS" != "x"; then 1882 KRB5LIBS="$LIB_KRB5_PATH $LIB_KRB5_LIBS $KRB5LIBS" 1883 KRB5INCS="$LIB_KRB5_CFLAGS" 1884 AC_DEFINE(USE_GNUGSS,1,[GNU Kerberos support is available]) 1885 KRB5_FLAVOUR="GNU GSS" 1886 1887 # check for other specific broken implementations 1888 CXXFLAGS="$CXXFLAGS $KRB5INCS" 1889 LIBS="$LIBS $KRB5LIBS" 1890 1891 AC_MSG_NOTICE([Try to find Kerbeors headers in given path]) 1892 AC_CHECK_HEADERS(gss.h) 1893 1894 SQUID_CHECK_WORKING_GSSAPI 1895 SQUID_DEFINE_BOOL(HAVE_GSSAPI,$squid_cv_working_gssapi,[GSSAPI support]) 1896 1897 SQUID_CHECK_SPNEGO_SUPPORT 1898 SQUID_DEFINE_BOOL(HAVE_SPNEGO,$squid_cv_have_spnego,[SPNEGO support]) 1899 1900 SQUID_CHECK_WORKING_KRB5 1901 SQUID_DEFINE_BOOL(HAVE_KRB5,$squid_cv_working_krb5,[KRB5 support]) 1902 fi 1903 if test "x$KRB5LIBS" = "x"; then 1904 if test "x$with_gnugss" = "xyes"; then 1905 AC_MSG_ERROR([Required GNU GSS Kerberos library not found]) 1906 else 1907 AC_MSG_WARN([GNU GSS Kerberos library not found]) 1908 fi 1909 fi 1910 SQUID_STATE_ROLLBACK([squid_krb5_save]) 1911fi 1912 1913if test "x$KRB5LIBS" != "x"; then 1914 with_krb5=yes 1915fi 1916AC_MSG_NOTICE([$KRB5_FLAVOUR Kerberos library support: ${with_krb5:=no} ${LIB_KRB5_PATH} ${LIB_KRB5_LIBS}]) 1917AC_SUBST(KRB5INCS) 1918AC_SUBST(KRB5LIBS) 1919 1920dnl On MinGW OpenLDAP is not available, so LDAP helpers can be linked 1921dnl only with Windows LDAP libraries using -lwldap32 1922case "$squid_host_os" in 1923 mingw) 1924 LDAPLIB="-lwldap32" 1925 LBERLIB="" 1926 ;; 1927 *) 1928 AC_CHECK_LIB(ldap, ldap_init, [LDAPLIB="-lldap"]) 1929 dnl LDAP helpers need to know if -llber is needed or not 1930 AC_CHECK_LIB(lber, ber_init, [LBERLIB="-llber"]) 1931 dnl if no ldap lib found check for mozilla version 1932 if test "x$ac_cv_lib_ldap_ldap_init" != x""yes; then 1933 oLIBS=$LIBS 1934 LIBS="$LIBPTHREADS" 1935 AC_CHECK_LIB(ldap60, ldap_init, [LDAPLIB="-lldap60"]) 1936 LIBS="$LDAPLIB $LIBPTHREADS" 1937 AC_CHECK_LIB(prldap60, prldap_init, [LDAPLIB="-lprldap60 $LDAPLIB"]) 1938 LIBS="$LDAPLIB $LIBPTHREADS" 1939 AC_CHECK_LIB(ssldap60, ldapssl_init, [LDAPLIB="-lssldap60 $LDAPLIB"]) 1940 LIBS=$oLIBS 1941 fi 1942 1943 AC_CHECK_HEADERS(ldap.h lber.h) 1944 AC_CHECK_HEADERS(mozldap/ldap.h) 1945 1946 dnl 1947 dnl Check for LDAP_OPT_DEBUG_LEVEL 1948 dnl 1949 AC_MSG_CHECKING([for LDAP_OPT_DEBUG_LEVEL]) 1950 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 1951# include <ldap.h> 1952 ]],[[ 1953 int i=LDAP_OPT_DEBUG_LEVEL 1954 ]])], 1955 [ AC_MSG_RESULT(yes) ], 1956 [ AC_MSG_RESULT(no) ]) 1957 1958 dnl 1959 dnl Check for working ldap 1960 dnl 1961 oLIBS=$LIBS 1962 LIBS="$LDAPLIB $LBERLIB $LIBPTHREADS" 1963 AC_MSG_CHECKING([for working ldap]) 1964 AC_RUN_IFELSE([AC_LANG_SOURCE([[ 1965# define LDAP_DEPRECATED 1 1966# if HAVE_LDAP_H 1967# include <ldap.h> 1968# elif HAVE_MOZLDAP_LDAP_H 1969# include <mozldap/ldap.h> 1970# endif 1971 int 1972 main(void) 1973 { 1974 char host[]=""; 1975 int port; 1976 1977 ldap_init((const char *)&host, port); 1978 1979 return 0; 1980 } 1981 ]])], 1982 [ AC_DEFINE(HAVE_LDAP, 1, [LDAP support]) 1983 AC_MSG_RESULT(yes) ], 1984 [ AC_MSG_RESULT(no) ], 1985 [ AC_MSG_RESULT(cross-compiler cant tell) ]) 1986 LIBS=$oLIBS 1987 1988 dnl 1989 dnl Check for ldap vendor 1990 dnl 1991 AC_MSG_CHECKING([for OpenLDAP]) 1992 AC_RUN_IFELSE([AC_LANG_SOURCE([[ 1993# if HAVE_LDAP_H 1994# include <ldap.h> 1995# endif 1996# include <string.h> 1997 int 1998 main(void) 1999 { 2000 return strcmp(LDAP_VENDOR_NAME,"OpenLDAP"); 2001 } 2002 ]])], 2003 [ AC_DEFINE(HAVE_OPENLDAP, 1, [OpenLDAP support]) 2004 AC_MSG_RESULT(yes) ], 2005 [ AC_MSG_RESULT(no) ], 2006 [ AC_MSG_RESULT(cross-compiler cant tell) ]) 2007 2008 AC_MSG_CHECKING([for Sun LDAP SDK]) 2009 AC_RUN_IFELSE([AC_LANG_SOURCE([[ 2010# if HAVE_LDAP_H 2011# include <ldap.h> 2012# endif 2013# include <string.h> 2014 int 2015 main(void) 2016 { 2017 return strcmp(LDAP_VENDOR_NAME,"Sun Microsystems Inc."); 2018 } 2019 ]])], 2020 [ AC_DEFINE(HAVE_SUN_LDAP_SDK, 1, [Sun LDAP SDK support]) 2021 AC_MSG_RESULT(yes) ], 2022 [ AC_MSG_RESULT(no) ], 2023 [ AC_MSG_RESULT(cross-compiler cant tell) ]) 2024 2025 AC_MSG_CHECKING([for Mozilla LDAP SDK]) 2026 AC_RUN_IFELSE([AC_LANG_SOURCE([[ 2027# if HAVE_LDAP_H 2028# include <ldap.h> 2029# elif HAVE_MOZLDAP_LDAP_H 2030# include <mozldap/ldap.h> 2031# endif 2032# include <string.h> 2033 int 2034 main(void) 2035 { 2036 return strcmp(LDAP_VENDOR_NAME,"mozilla.org"); 2037 } 2038 ]])], 2039 [ AC_DEFINE(HAVE_MOZILLA_LDAP_SDK, 1, [Mozilla LDAP SDK support]) 2040 AC_MSG_RESULT(yes) ], 2041 [ AC_MSG_RESULT(no)], 2042 [ AC_MSG_RESULT(cross-compiler cant tell) ]) 2043 2044 dnl 2045 dnl Check for LDAP_REBINDPROC_CALLBACK 2046 dnl 2047 AC_MSG_CHECKING([for LDAP_REBINDPROC_CALLBACK]) 2048 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 2049# if HAVE_LDAP_H 2050# include <ldap.h> 2051# elif HAVE_MOZLDAP_LDAP_H 2052# include <mozldap/ldap.h> 2053# endif 2054 ]],[[ 2055 LDAP_REBINDPROC_CALLBACK ldap_rebind; 2056 ]])], 2057 [ AC_DEFINE(HAVE_LDAP_REBINDPROC_CALLBACK,1,[Define to 1 if you have LDAP_REBINDPROC_CALLBACK]) 2058 AC_MSG_RESULT(yes) ], 2059 [ AC_MSG_RESULT(no) ]) 2060 2061 dnl 2062 dnl Check for LDAP_REBIND_PROC 2063 dnl 2064 AC_MSG_CHECKING([for LDAP_REBIND_PROC]) 2065 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 2066# if HAVE_LDAP_H 2067# include <ldap.h> 2068# elif HAVE_MOZLDAP_LDAP_H 2069# include <mozldap/ldap.h> 2070# endif 2071 ]],[[ 2072 LDAP_REBIND_PROC ldap_rebind; 2073 ]])], 2074 [ AC_DEFINE(HAVE_LDAP_REBIND_PROC,1,[Define to 1 if you have LDAP_REBIND_PROC]) 2075 AC_MSG_RESULT(yes) ], 2076 [ AC_MSG_RESULT(no) ]) 2077 2078 dnl 2079 dnl Check for LDAP_REBIND_FUNCTION 2080 dnl 2081 AC_MSG_CHECKING([for LDAP_REBIND_FUNCTION]) 2082 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 2083# define LDAP_REFERRALS 2084# if HAVE_LDAP_H 2085# include <ldap.h> 2086# elif HAVE_MOZLDAP_LDAP_H 2087# include <mozldap/ldap.h> 2088# endif 2089 ]],[[ 2090 LDAP_REBIND_FUNCTION ldap_rebind; 2091 ]])], 2092 [ AC_DEFINE(HAVE_LDAP_REBIND_FUNCTION,1,[Define to 1 if you have LDAP_REBIND_FUNCTION]) 2093 AC_MSG_RESULT(yes) ], 2094 [ AC_MSG_RESULT(no) ]) 2095 2096 dnl 2097 dnl Check for LDAP_SCOPE_DEFAULT 2098 dnl 2099 AC_MSG_CHECKING([for LDAP_SCOPE_DEFAULT]) 2100 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 2101# if HAVE_LDAP_H 2102# include <ldap.h> 2103# elif HAVE_MOZLDAP_LDAP_H 2104# include <mozldap/ldap.h> 2105# endif 2106 ]],[[ 2107 int i=LDAP_SCOPE_DEFAULT; 2108 ]])], 2109 [ AC_DEFINE(HAVE_LDAP_SCOPE_DEFAULT,1,[Define to 1 if you have LDAP_SCOPE_DEFAULT]) 2110 AC_MSG_RESULT(yes) ], 2111 [ AC_MSG_RESULT(no) ]) 2112 2113 dnl 2114 dnl Check for ldap_url_desc.lud_scheme 2115 dnl 2116 AC_CHECK_MEMBER(struct ldap_url_desc.lud_scheme, 2117 AC_DEFINE(HAVE_LDAP_URL_LUD_SCHEME,1, 2118 [Define to 1 if you have LDAPURLDesc.lud_scheme]),,[#include <ldap.h>]) 2119 2120 dnl 2121 dnl Check for ldapssl_client_init 2122 dnl 2123 AC_CHECK_LIB(ldap,ldapssl_client_init, 2124 AC_DEFINE(HAVE_LDAPSSL_CLIENT_INIT,1,[Define to 1 if you have ldapssl_client_init]),) 2125 2126 dnl 2127 dnl Check for ldap_url_desc2str 2128 dnl 2129 AC_CHECK_LIB(ldap,ldap_url_desc2str, 2130 AC_DEFINE(HAVE_LDAP_URL_DESC2STR,1,[Define to 1 if you have ldap_url_desc2str]),) 2131 2132 dnl 2133 dnl Check for ldap_url_parse 2134 dnl 2135 AC_CHECK_LIB(ldap,ldap_url_parse, 2136 AC_DEFINE(HAVE_LDAP_URL_PARSE,1,[Define to 1 if you have ldap_url_parse]),) 2137 2138 dnl 2139 dnl Check for ldap_start_tls_s 2140 dnl 2141 AC_CHECK_LIB(ldap,ldap_start_tls_s, 2142 AC_DEFINE(HAVE_LDAP_START_TLS_S,1,[Define to 1 if you have ldap_start_tls_s]),) 2143 ;; 2144esac 2145 2146AC_SUBST(LDAPLIB) 2147AC_SUBST(LBERLIB) 2148 2149AC_ARG_WITH(systemd, 2150 AS_HELP_STRING([--without-systemd], 2151 [Do not use systemd API to send start-up completion 2152 notification. Default: auto-detect]), [ 2153case "$with_systemd" in 2154 yes|no) 2155 : # Nothing special to do here 2156 ;; 2157 *) 2158 if test ! -d "$withval" ; then 2159 AC_MSG_ERROR([--with-systemd path does not point to a directory]) 2160 fi 2161 SYSTEMD_PATH="-L$with_systemd/lib" 2162 CPPFLAGS="-I$with_systemd/include $CPPFLAGS" 2163 esac 2164]) 2165AH_TEMPLATE(USE_SYSTEMD,[systemd support is available]) 2166if test "x$with_systemd" != "xno" -a "x$squid_host_os" = "xlinux"; then 2167 SQUID_STATE_SAVE(squid_systemd_state) 2168 2169 # User may have provided a custom location for systemd. Otherwise... 2170 LIBS="$LIBS $SYSTEMD_PATH" 2171 2172 # auto-detect using pkg-config 2173 PKG_CHECK_MODULES(SYSTEMD,[libsystemd],,[ 2174 # systemd < 209 2175 PKG_CHECK_MODULES(SYSTEMD,[libsystemd-daemon],,[:]) 2176 ]) 2177 2178 AC_CHECK_HEADERS(systemd/sd-daemon.h) 2179 2180 SQUID_STATE_ROLLBACK(squid_systemd_state) #de-pollute LIBS 2181 2182 if test "x$with_systemd" = "xyes" -a "x$SYSTEMD_LIBS" = "x"; then 2183 AC_MSG_ERROR([Required systemd library not found]) 2184 fi 2185 if test "x$SYSTEMD_LIBS" != "x" ; then 2186 CXXFLAGS="$SYSTEMD_CFLAGS $CXXFLAGS" 2187 LDFLAGS="$SYSTEMD_LIBS $LDFLAGS" 2188 AC_DEFINE(USE_SYSTEMD,1,[systemd support is available]) 2189 else 2190 with_systemd=no 2191 fi 2192fi 2193AC_MSG_NOTICE([systemd library support: ${with_systemd:=auto} ${SYSTEMD_PATH} ${SYSTEMD_LIBS}]) 2194 2195AC_ARG_ENABLE(forw-via-db, 2196 AS_HELP_STRING([--enable-forw-via-db],[Enable Forw/Via database]), [ 2197 SQUID_YESNO([$enableval],[unrecognized argument to --enable-forw-via-db: $enableval]) 2198]) 2199SQUID_DEFINE_BOOL(USE_FORW_VIA_DB,${enable_forw_via_db:=no}, 2200 [Enable Forw/Via database]) 2201AC_MSG_NOTICE([Forw/Via database enabled: $enable_forw_via_db]) 2202 2203AC_ARG_ENABLE(cache-digests, 2204 AS_HELP_STRING([--enable-cache-digests], 2205 [Use Cache Digests. See http://wiki.squid-cache.org/SquidFaq/CacheDigests]), 2206[ 2207 SQUID_YESNO($enableval, 2208 [unrecognized argument to --enable-cache-digests: $enableval]) 2209]) 2210SQUID_DEFINE_BOOL(USE_CACHE_DIGESTS,${enable_cache_digests:=no}, 2211 [Use Cache Digests for locating objects in neighbor caches.]) 2212AC_MSG_NOTICE([Cache Digests enabled: $enable_cache_digests]) 2213 2214 2215################################ 2216# check for netio plugin stuff # 2217################################ 2218dnl order of these options handling is relevant in case the user 2219dnl supplies more than one --enable option. Options handled later 2220dnl override those handled earlier for io loop method manual override 2221AC_ARG_ENABLE(select, 2222 AS_HELP_STRING([--disable-select],[Disable select(2) support.]), 2223[ 2224SQUID_YESNO($enableval,[--disable-select takes no extra argument]) 2225if test "x$enableval" = "xyes"; then 2226 if test "x$squid_host_os" = "xmingw"; then 2227 squid_opt_io_loop_engine="select_win32" 2228 else 2229 squid_opt_io_loop_engine="select" 2230 fi 2231fi 2232]) 2233AC_MSG_NOTICE([enabling select syscall for net I/O: ${enable_select:=auto}]) 2234 2235AC_ARG_ENABLE(poll, 2236 AS_HELP_STRING([--disable-poll],[Disable poll(2) support.]), 2237[ 2238SQUID_YESNO($enableval,[--disable-poll takes no extra argument]) 2239test "x$enableval" = "xyes" && squid_opt_io_loop_engine="poll" 2240]) 2241AC_MSG_NOTICE([enabling poll syscall for net I/O: ${enable_poll:=auto}]) 2242 2243AC_ARG_ENABLE(kqueue, 2244 AS_HELP_STRING([--disable-kqueue], 2245 [Disable kqueue(2) support.]), [ 2246SQUID_YESNO($enableval,[--enable-kqueue takes no extra argument]) 2247]) 2248if test "x${enable_kqueue:=auto}" != "xno" ; then 2249 AC_CHECK_HEADERS([sys/event.h],[],[ 2250 if test "x${enable_kqueue}" = "xyes" ; then 2251 AC_MSG_ERROR([kqueue support requires sys/event.h header file.]) 2252 fi 2253 ]) 2254 AC_CHECK_FUNCS(kqueue,[],[ 2255 if test "x${enable_kqueue}" = "xyes" ; then 2256 AC_MSG_ERROR([kqueue support missing in libc library.]) 2257 fi 2258 ]) 2259 if test "x$ac_cv_func_kqueue" = "xyes" -a "x$ac_cv_header_sys_event_h" = "xyes" ; then 2260 squid_opt_io_loop_engine="kqueue" 2261 else 2262 enable_kqueue="no" 2263 fi 2264fi 2265AC_MSG_NOTICE([enabling kqueue for net I/O: ${enable_kqueue:=auto}]) 2266 2267dnl Enable epoll() 2268AC_ARG_ENABLE(epoll, 2269 AS_HELP_STRING([--disable-epoll],[Disable Linux epoll(2) support.]), 2270[ 2271SQUID_YESNO($enableval,[--disable-epoll takes no extra argument]) 2272test "x$enableval" = "xyes" && squid_opt_io_loop_engine="epoll" 2273]) 2274AC_MSG_NOTICE([enabling epoll syscall for net I/O: ${enable_epoll:=auto}]) 2275 2276# auto-detect and verify epoll header and library present and working 2277# logic mapping and loop method selection are performed later 2278if test "x$enable_epoll" != "xno" ; then 2279 2280 # check if libs are needed to support epoll 2281 # note: this code block seems quite generic. Could it be extracted 2282 # into a squid specific configure function? 2283 SQUID_STATE_SAVE(squid_epoll_state) 2284 AC_SEARCH_LIBS(epoll_ctl,[epoll]) 2285 if test "x$ac_cv_search_epoll_ctl" = "xno" ; then 2286 enable_epoll=no #disable. Needed code not found 2287 elif test "x$ac_cv_search_epoll_ctl" = "xnone required" ; then 2288 EPOLL_LIBS="" 2289 else 2290 EPOLL_LIBS=$ac_cv_search_epoll_ctl 2291 fi 2292 AC_SUBST(EPOLL_LIBS) 2293 SQUID_STATE_ROLLBACK(squid_epoll_state) #de-pollute LIBS 2294 2295 # epoll requires sys/epoll.h 2296 AC_CHECK_HEADERS([sys/epoll.h]) 2297 2298 dnl Verify that epoll really works 2299 if test "x$ac_cv_search_epoll_ctl" != 'xno' ; then 2300 SQUID_CHECK_EPOLL 2301 fi 2302 2303 if test "x$enable_epoll" = "xyes" -a "x$squid_cv_epoll_works" = "xno" ; then 2304 AC_MSG_ERROR([Epoll does not work. Force-enabling it is not going to help.]) 2305 fi 2306fi 2307 2308dnl Enable /dev/poll 2309AC_ARG_ENABLE(devpoll, 2310 AS_HELP_STRING([--disable-devpoll],[Disable Solaris /dev/poll support.]), 2311[ 2312SQUID_YESNO($enableval,[--disable-devpoll takes no extra argument]) 2313test "x$enableval" = "xyes" && squid_opt_io_loop_engine="devpoll" 2314]) 2315AC_MSG_NOTICE([enabling /dev/poll for net I/O: ${enable_devpoll:=auto}]) 2316 2317## auto-detect and verify devpoll header and library present and working 2318if test "x$enable_devpoll" != "xno"; then 2319 2320 # /dev/poll requires ioctl() and write() 2321 AC_CHECK_FUNCS(ioctl) 2322 AC_CHECK_FUNCS(write) 2323 2324 # /dev/poll requires sys/devpoll.h 2325 AC_CHECK_HEADERS([sys/devpoll.h],,[ 2326 if test "x$enable_devpoll" = "xyes"; then 2327 AC_MSG_ERROR([--enable-devpoll specified but /dev/poll headers not found]) 2328 fi 2329 enable_devpoll=no]) 2330 2331 # Verify that /dev/poll really works 2332 if test "x$enable_devpoll" != 'xno' ; then 2333 SQUID_CHECK_DEVPOLL 2334 fi 2335 2336 if test "x$enable_devpoll" = "xyes" -a "x$squid_cv_devpoll_works" = "xno" ; then 2337 AC_MSG_ERROR([/dev/poll does not work. Force-enabling it is not going to help.]) 2338 fi 2339fi 2340 2341 2342AC_ARG_ENABLE(http-violations, 2343 AS_HELP_STRING([--disable-http-violations], 2344 [This allows you to remove code which is known to 2345 violate the HTTP protocol specification.]), [ 2346 SQUID_YESNO([$enableval], 2347 [unrecognized argument to --disable-http-violations: $enableval]) 2348]) 2349SQUID_DEFINE_BOOL(USE_HTTP_VIOLATIONS, ${enable_http_violations:=yes}, 2350 [Define to enable code which volates the HTTP standard specification]) 2351AC_MSG_NOTICE([HTTP violations support enabled: $enable_http_violations]) 2352 2353# IPFW Transparent Proxy 2354AC_ARG_ENABLE(ipfw-transparent, 2355 AS_HELP_STRING([--enable-ipfw-transparent], 2356 [Enable Transparent Proxy support for systems 2357 using FreeBSD IPFW-style firewalling.]), [ 2358 SQUID_YESNO([$enableval], 2359 [unrecognized argument to --enable-ipfw-transparent: $enableval]) 2360]) 2361SQUID_DEFINE_BOOL(IPFW_TRANSPARENT,${enable_ipfw_transparent:=no}, 2362 [Enable support for Transparent Proxy on systems using FreeBSD IPFW-style firewalling.]) 2363AC_MSG_NOTICE([FreeBSD IPFW-based transparent proxying enabled: $enable_ipfw_transparent]) 2364 2365# IP-Filter Transparent Proxy 2366AC_ARG_ENABLE(ipf-transparent, 2367 AS_HELP_STRING([--enable-ipf-transparent], 2368 [Enable Transparent Proxy support using IPFilter-style firewalling]), [ 2369 SQUID_YESNO([$enableval], 2370 [unrecognized argument to --enable-ipf-transparent: $enableval]) 2371]) 2372#will be AC_DEFINEd later, after checking for appropriate infrastructure 2373#IPF currently broken. Default-disabled for now. 2374AC_MSG_NOTICE([IPF-based transparent proxying requested: ${enable_ipf_transparent:=no}]) 2375 2376dnl Enable PF Transparent Proxy 2377AC_ARG_ENABLE(pf-transparent, 2378 AS_HELP_STRING([--enable-pf-transparent], 2379 [Enable Transparent Proxy support for systems using PF network address redirection.]), [ 2380 SQUID_YESNO([$enableval], 2381 [unrecognized argument to --enable-pf-transparent: $enableval]) 2382]) 2383#will be AC_DEFINEd later, after checking for appropriate infrastructure 2384AC_MSG_NOTICE([PF-based transparent proxying requested: ${enable_pf_transparent:=no}]) 2385 2386dnl Enable /dev/pf support for older PF Transparent Proxy systems (OpenBSD 4.x and older) 2387AC_ARG_WITH(nat-devpf, 2388 AS_HELP_STRING([--with-nat-devpf], 2389 [Enable /dev/pf support for NAT on older OpenBSD and FreeBSD kernels.]), [ 2390 SQUID_YESNO([$enableval], 2391 [unrecognized argument to --with-nat-devpf: $enableval]) 2392]) 2393#will be AC_DEFINEd later, after checking for appropriate infrastructure 2394AC_MSG_NOTICE([NAT lookups via /dev/pf: ${with_nat_devpf:=no}]) 2395 2396# Linux Netfilter Transparent Proxy 2397AC_ARG_ENABLE(linux-netfilter, 2398 AS_HELP_STRING([--enable-linux-netfilter], 2399 [Enable Transparent Proxy support for Linux (Netfilter)]), [ 2400 SQUID_YESNO([$enableval], 2401 [unrecognized argument to --enable-linux-netfilter: $enableval]) 2402]) 2403AC_MSG_NOTICE([Linux Netfilter support requested: ${enable_linux_netfilter:=auto}]) 2404#will be AC_DEFINEd later, after checking for appropriate infrastructure 2405 2406 2407dnl Look for libnetfilter_conntrack options (needed for QOS netfilter marking) 2408dnl squid_opt_netfilterconntrack is set only when option is explicity specified 2409AC_ARG_WITH(netfilter-conntrack, 2410 AS_HELP_STRING([--without-netfilter-conntrack], 2411 [Do not use Netfilter conntrack libraries for packet marking. 2412 A path to alternative library location may be specified by 2413 using --with-netfilter-conntrack=PATH. Default: auto-detect.]), [ 2414case "$with_netfilter_conntrack" in 2415 yes|no) 2416 squid_opt_netfilterconntrack=$with_netfilter_conntrack 2417 ;; 2418 *) 2419 if test ! -d "$withval" ; then 2420 AC_MSG_ERROR([--with-netfilter-conntrack path does not point to a directory]) 2421 fi 2422 squid_opt_netfilterconntrackpath=$withval 2423 LDFLAGS="-L$squid_opt_netfilterconntrackpath/lib $LDFLAGS" 2424 CPPFLAGS="-I$squid_opt_netfilterconntrackpath/include $CPPFLAGS" 2425 with_netfilter_conntrack=yes 2426 squid_opt_netfilterconntrack=yes 2427 esac 2428]) 2429AC_MSG_NOTICE([Linux Netfilter Conntrack support requested: ${with_netfilter_conntrack:=auto}]) 2430if test "x$with_netfilter_conntrack" != "xno"; then 2431 AC_SEARCH_LIBS([nfct_query], [netfilter_conntrack],,[ 2432 if test x"$with_netfilter_conntrack" = "xyes"; then 2433 AC_MSG_ERROR([--with-netfilter-conntrack specified but libnetfilter-conntrack library not found]) 2434 fi 2435 with_netfilter_conntrack=no]) 2436 AC_CHECK_HEADERS([libnetfilter_conntrack/libnetfilter_conntrack.h \ 2437 libnetfilter_conntrack/libnetfilter_conntrack_tcp.h],,[ 2438 if test x"$with_netfilter_conntrack" = "xyes"; then 2439 AC_MSG_ERROR([--with-netfilter-conntrack specified but libnetfilter-conntrack headers not found]) 2440 fi 2441 with_netfilter_conntrack=no]) 2442 # If nothing is broken; enable the libraries usage. 2443 if test "x$with_netfilter_conntrack" != "xno"; then 2444 with_netfilter_conntrack=yes 2445 fi 2446fi 2447 2448 2449dnl Enable Large file support 2450buildmodel="" 2451squid_opt_enable_large_files=no 2452 2453AC_ARG_WITH(large-files, 2454 AS_HELP_STRING([--with-large-files],[Enable support for large files (logs etc).]), [ 2455 if test "x$withval" = "xyes"; then 2456 squid_opt_enable_large_files=yes 2457 fi 2458]) 2459 2460dnl UNIX Build environment 2461dnl AS_HELP_STRING is not suited here because it cannot to specify newlines 2462AC_ARG_WITH(build-environment, 2463 AS_HELP_STRING([--with-build-environment=model], 2464 [The build environment to use. Normally one of 2465 POSIX_V6_ILP32_OFF32 (32 bits), 2466 POSIX_V6_ILP32_OFFBIG (32 bits with large file support), 2467 POSIX_V6_LP64_OFF64 (64 bits), 2468 POSIX_V6_LPBIG_OFFBIG (large pointers and files), 2469 XBS5_ILP32_OFF32 i(legacy, 32 bits), 2470 XBS5_ILP32_OFFBIG (legacy, 32 bits with large file support), 2471 XBS5_LP64_OFF64 (legacy, 64 bits), 2472 XBS5_LPBIG_OFFBIG (legacy, large pointers and files) 2473 or default (The default for your OS)]), [ 2474case "$withval" in 2475 yes|no) 2476 AC_MSG_FAILURE([--with-build-environment expects a build environment string as used by getconf]) 2477 ;; 2478 *) 2479 buildmodel="$withval" 2480 ;; 2481esac 2482]) 2483 2484#hack. Let's early-detect sizeof(long) 2485AC_CHECK_SIZEOF(long) 2486 2487if test "x$squid_opt_enable_large_files" = "xyes" -a "x$buildmodel" = "x"; then 2488 for model in POSIX_V6_LPBIG_OFFBIG XBS5_LPBIG_OFFBIG POSIX_V6_LP64_OFF64 XBS5_LP64_OFF64 POSIX_V6_ILP32_OFFBIG XBS5_ILP32_OFFBIG; do 2489 if test "`getconf _$model 2>/dev/null || true`" = 1 || test "`getconf $model 2>/dev/null || true`" ; then 2490 buildmodel=$model 2491 break 2492 fi 2493 done 2494 if test "x$buildmodel" = "x"; then 2495 AC_MSG_WARN([No suitable build environment found for large files. Trying to use _FILE_OFFSET_BITS=64]) 2496 fi 2497fi 2498if test "x$buildmodel" = "xdefault" -o "x$buildmodel" = "x"; then 2499 # define _FILE_OFFSET_BITS if requested and needed 2500 if test "x$squid_opt_enable_large_files" = "xyes" -a $ac_cv_sizeof_long -le 4 ; then 2501 AC_MSG_NOTICE([Enabling -D_FILE_OFFSET_BITS=64]) 2502 CFLAGS="-D_FILE_OFFSET_BITS=64 $CFLAGS" 2503 CXXFLAGS="-D_FILE_OFFSET_BITS=64 $CXXFLAGS" 2504 fi 2505else 2506 AC_MSG_NOTICE([Using $buildmodel build environment]) 2507 if test "`getconf _$buildmodel 2>/dev/null || true`" = 1 || test "`getconf $buildmodel 2>/dev/null || true`" ; then 2508 : # All fine 2509 else 2510 AC_MSG_ERROR(Build environment $buildmodel not known to getconf.) 2511 fi 2512 CFLAGS="`getconf ${buildmodel}_CFLAGS` $CFLAGS" 2513 CXXFLAGS="`getconf ${buildmodel}_CFLAGS` $CXXFLAGS" 2514 LIBS="`getconf ${buildmodel}_LIBS` $LIBS" 2515 LDFLAGS="`getconf ${buildmodel}_LDFLAGS` $LDFLAGS" 2516 if test "x$squid_host_os" = "xsolaris" ; then 2517 2518# On Solaris getconf returns for CFLAGS -xarch=generic64, -Xa and -Usun options, and 2519# for LDFLAGS -xarch=generic64, but: 2520# "-Xa" is supported only by Sun cc, so we need to remove it when using gcc 2521# For gcc "-xarch=generic64" must be replaced with "-m64" 2522# The 'sun' define is needed by ipfilter includes, so we must remove "-Usun" 2523 if test "x$GCC" = "xyes"; then 2524 AC_MSG_NOTICE([Removing -Xa for gcc/g++ on $host]) 2525 CFLAGS="`echo $CFLAGS | sed -e 's/-Xa//'`" 2526 CXXFLAGS="`echo $CXXFLAGS | sed -e 's/-Xa//'`" 2527 AC_MSG_NOTICE([Replacing -xarch=generic64 with -m64 for gcc/g++ on $host]) 2528 CFLAGS="`echo $CFLAGS | sed -e 's/-xarch=generic64/-m64/'`" 2529 CXXFLAGS="`echo $CXXFLAGS | sed -e 's/-xarch=generic64/-m64/'`" 2530 LDFLAGS="`echo $LDFLAGS | sed -e 's/-xarch=generic64//'`" 2531 fi 2532 AC_MSG_NOTICE([Removing -Usun on $host]) 2533 CFLAGS="`echo $CFLAGS | sed -e 's/-Usun//'`" 2534 CXXFLAGS="`echo $CXXFLAGS | sed -e 's/-Usun//'`" 2535 fi 2536fi 2537 2538dnl Enable Leak Finding Functions 2539AC_ARG_ENABLE(leakfinder, 2540 AS_HELP_STRING([--enable-leakfinder], 2541 [Enable Leak Finding code. Enabling this alone does nothing; 2542 you also have to modify the source code to use the leak 2543 finding functions. Probably Useful for hackers only.]), [ 2544 SQUID_YESNO([$enableval], 2545 [unrecognized argument to --enable-leakfinder: $enableval]) 2546]) 2547AC_MSG_NOTICE([Leak Finder enabled: ${enable_leakfinder:=no}]) 2548SQUID_DEFINE_BOOL(USE_LEAKFINDER,$enable_leakfinder, 2549 [Enable code for assisting in finding memory leaks. Not for the faint of heart]) 2550AM_CONDITIONAL(ENABLE_LEAKFINDER, [test "x$enable_leakfinder" = "xyes"]) 2551 2552 2553AC_ARG_ENABLE(follow-x-forwarded-for, 2554 AS_HELP_STRING([--enable-follow-x-forwarded-for], 2555 [Enable support for following the X-Forwarded-For 2556 HTTP header to try to find the IP address of the 2557 original or indirect client when a request has 2558 been forwarded through other proxies.]), [ 2559 SQUID_YESNO([$enableval], 2560 [unrecognized argument to --enable-follow-x-forwarded-for: $enableval]) 2561]) 2562AC_MSG_NOTICE([Support for X-Forwarded-For enabled: ${enable_follow_x_forwarded_for:=yes}]) 2563SQUID_DEFINE_BOOL(FOLLOW_X_FORWARDED_FOR,$enable_follow_x_forwarded_for, 2564 [Enable following X-Forwarded-For headers]) 2565 2566AC_ARG_ENABLE(ident-lookups, 2567 AS_HELP_STRING([--disable-ident-lookups], 2568 [Remove code that supports performing Ident (RFC 931) lookups.]), [ 2569 SQUID_YESNO([$enableval],[unrecognized argument to --disable-ident-lookups: $enableval]) 2570]) 2571AC_MSG_NOTICE([Support for Ident lookups enabled: ${enable_ident_lookups:=yes}]) 2572SQUID_DEFINE_BOOL(USE_IDENT,$enable_ident_lookups,[Support for Ident (RFC 931) lookups]) 2573 2574dnl Select Default hosts file location 2575AC_ARG_ENABLE(default-hostsfile, 2576 AS_HELP_STRING([--enable-default-hostsfile=path], 2577 [Select default location for hosts file. 2578 See hosts_file directive in squid.conf for details]), [ 2579if test "x$enableval" != "xnone" -a "x$enableval" != "xno" ; then 2580 if test \! -f "$enableval"; then 2581 AC_MSG_WARN([Unable to find file $enableval. I hope you know what you are doing.]) 2582 fi 2583 squid_opt_default_hosts=$enableval 2584else 2585 squid_opt_default_hosts="none" 2586fi 2587]) 2588AC_MSG_NOTICE([Default hosts file set to: ${squid_opt_default_hosts:=/etc/hosts}]) 2589DEFAULT_HOSTS=$squid_opt_default_hosts 2590AC_SUBST(DEFAULT_HOSTS) 2591 2592# Select auth schemes modules to build 2593AC_ARG_ENABLE(auth, 2594 AS_HELP_STRING([--enable-auth], 2595 [Build global support for authentication. The list of schemes 2596 and helpers to be enabled is defined elsewhere]), [ 2597SQUID_YESNO([$enableval], 2598 [unrecognized argument to --enable-auth: $enableval]) 2599]) 2600AC_MSG_NOTICE([Authentication support enabled: ${enable_auth:=yes}]) 2601SQUID_DEFINE_BOOL(USE_AUTH,$enable_auth,[Enable support for authentication]) 2602AM_CONDITIONAL(ENABLE_AUTH, test "x$enable_auth" != "xno") 2603AUTH_MODULES="" 2604require_smblib="no" 2605 2606AC_ARG_ENABLE(auth-basic, 2607 AS_HELP_STRING([--enable-auth-basic="list of helpers"], 2608 [Enable the basic authentication scheme, and build the specified helpers. 2609 Not providing an explicit list of helpers will attempt build of 2610 all possible helpers. Default is to do so. 2611 To disable the basic authentication scheme, use --disable-auth-basic. 2612 To enable but build no helpers, specify "none". 2613 To see available helpers, see the src/auth/basic/ directory. ]),[ 2614#nothing to do really 2615]) 2616m4_include([src/auth/basic/helpers.m4]) 2617 2618AC_ARG_ENABLE(auth-digest, 2619 AS_HELP_STRING([--enable-auth-digest="list of helpers"], 2620 [Enable the Digest authentication scheme, and build the specified helpers. 2621 Not providing an explicit list of helpers will attempt build of 2622 all possible helpers. Default is to do so. 2623 To disable the Digest authentication scheme, use --disable-auth-digest. 2624 To enable but build no helpers, specify "none". 2625 To see available helpers, see the src/auth/digest/ directory. ]),[ 2626#nothing to do, really 2627]) 2628m4_include([src/auth/digest/helpers.m4]) 2629 2630AC_ARG_ENABLE(auth-negotiate, 2631 AS_HELP_STRING([--enable-auth-negotiate="list of helpers"], 2632 [Enable the Negotiate authentication scheme, and build the specified 2633 helpers. 2634 Not providing an explicit list of helpers will attempt build of 2635 all possible helpers. Default is to do so. 2636 To disable the Negotiate authentication scheme, 2637 use --disable-auth-negotiate. 2638 To enable but build no helpers, specify "none". 2639 To see available helpers, see the src/auth/negotiate/ directory. ]),[ 2640#nothing to do, really 2641]) 2642m4_include([src/auth/negotiate/helpers.m4]) 2643 2644AC_ARG_ENABLE(auth-ntlm, 2645 AS_HELP_STRING([--enable-auth-ntlm="list of helpers"], 2646 [Enable the NTLM authentication scheme, and build the specified helpers. 2647 Not providing an explicit list of helpers will attempt build of 2648 all possible helpers. Default is to do so. 2649 To disable the NTLM authentication scheme, use --disable-auth-ntlm. 2650 To enable but build no helpers, specify "none". 2651 To see available helpers, see the src/auth/ntlm/ directory. ]),[ 2652]) 2653m4_include([src/auth/ntlm/helpers.m4]) 2654 2655dnl Authentication libraries to build 2656dnl This list will not be needed when each auth library has its own Makefile 2657dnl this is to be placed AFTER each auth module's handler 2658AUTH_LIBS_TO_BUILD= 2659for module in $AUTH_MODULES; do 2660 AUTH_LIBS_TO_BUILD="$AUTH_LIBS_TO_BUILD ${module}/lib${module}.la" 2661done 2662AC_SUBST(AUTH_MODULES) 2663AC_SUBST(AUTH_LIBS_TO_BUILD) 2664AM_CONDITIONAL(ENABLE_SMBLIB, test "x$require_smblib" = "xyes") 2665 2666dnl Select logging daemon helpers to build 2667AC_ARG_ENABLE(log-daemon-helpers, 2668 AS_HELP_STRING([--enable-log-daemon-helpers="list of helpers"], 2669 [This option selects which logging daemon helpers to 2670 build and install as part of the normal build process 2671 For a list of available helpers see the src/log/ 2672 directory.]),[ 2673#nothing to do, really 2674]) 2675m4_include([src/log/helpers.m4]) 2676 2677AC_ARG_ENABLE(external-acl-helpers, 2678 AS_HELP_STRING([--enable-external-acl-helpers="list of helpers"], 2679 [Enable external_acl helpers support and the helpers themselves. 2680 Default is to build all buildable helpers and enable support. 2681 To disable support, use --disable-external-acl-helpers. 2682 To build no helpers, specify "none". 2683 To see available helpers, see the src/acl/external/ 2684 directory]), [ 2685#nothing to do, really 2686]) 2687m4_include([src/acl/external/helpers.m4]) 2688 2689dnl Select url_rewrite helpers to build 2690AC_ARG_ENABLE(url-rewrite-helpers, 2691 AS_HELP_STRING([--enable-url-rewrite-helpers="list of helpers"], 2692 [This option selects which url_rewrite helpers to 2693 build and install as part of the normal build 2694 process. The default is to attempt the build of all possible 2695 helpers. Use --disable-url-rewrite-helpers to build none. 2696 For a list of available helpers see the 2697 src/http/url_rewriters/ directory.]),[ 2698]) 2699m4_include([src/http/url_rewriters/helpers.m4]) 2700 2701dnl Select security helpers to build 2702AC_ARG_ENABLE(security-cert-validators, 2703 AS_HELP_STRING([--enable-security-cert-validators="list of helpers"], 2704 [This option selects which security certificate validator 2705 helpers to build and install as part of the normal build 2706 process. The default is to attempt the build of all possible 2707 helpers. Use --disable-security-cert-validators to 2708 build none. For a list of available helpers see the 2709 src/security/cert_validators/ directory.]),[ 2710]) 2711m4_include([src/security/cert_validators/helpers.m4]) 2712 2713AC_ARG_ENABLE(security-cert-generators, 2714 AS_HELP_STRING([--enable-security-cert-generators="list of helpers"], 2715 [This option selects which security certificate validator 2716 helpers to build and install as part of the normal build 2717 process. The default is to attempt the build of all possible 2718 helpers. Use --disable-security-cert-genrators to 2719 build none. For a list of available helpers see the 2720 src/security/cert_generators/ directory.]),[ 2721]) 2722m4_include([src/security/cert_generators/helpers.m4]) 2723 2724dnl Select storeid_rewrite helpers to build 2725AC_ARG_ENABLE(storeid-rewrite-helpers, 2726 AS_HELP_STRING([--enable-storeid-rewrite-helpers="list of helpers"], 2727 [This option selects which Store-ID rewrite helpers to 2728 build and install as part of the normal build 2729 process. The default is to attempt the build of all possible 2730 helpers. Use --disable-storeid-rewrite-helpers to build none. 2731 For a list of available helpers see the 2732 src/store/id_rewriters/ directory.]),[ 2733]) 2734m4_include([src/store/id_rewriters/helpers.m4]) 2735 2736AC_ARG_WITH(valgrind-debug, 2737 AS_HELP_STRING([--with-valgrind-debug], 2738 [Include debug instrumentation for use with valgrind]), 2739[ 2740 SQUID_YESNO([$withval], 2741 [unrecognized argument to --with-valgrind-debug: $withval]) 2742 if test "x$withval" != "xno" ; then 2743 AC_CHECK_HEADERS(valgrind/memcheck.h,[],[ 2744 AC_MSG_ERROR([Valgrind support requested, needed headers not found.]) 2745 ]) 2746 fi 2747]) 2748SQUID_DEFINE_BOOL(WITH_VALGRIND,${with_valgrind_debug:=no}, 2749 [Valgrind memory debugger support]) 2750AC_MSG_NOTICE([Valgrind debug support enabled: $with_valgrind_debug]) 2751 2752dnl Disable "memPools" code 2753#AC_ARG_ENABLE(chunkedmempools, 2754# AS_HELP_STRING([--enable-chunkedmempools], 2755# [Enable experimental chunked memPools. Note that this option 2756# simply sets the default behaviour. Specific classes can override this 2757# at runtime, and only lib/MemPool.c needs to be altered 2758# to change the squid-wide default for all classes.]), [ 2759#SQUID_YESNO([$enableval], 2760# [--enable-chunkedmempools option takes no arguments]) 2761#]) 2762SQUID_DEFINE_BOOL(USE_CHUNKEDMEMPOOLS,${enable_chunkedmempools:=no}, 2763 [Enable chunked Memory Pools support (experimental)]) 2764#AC_MSG_NOTICE([Chunked MemPools enabled: $enable_chunkedmempools]) 2765 2766dnl Enable WIN32 Service compile mode 2767AC_ARG_ENABLE(win32-service, 2768 AS_HELP_STRING([--enable-win32-service], 2769 [Compile Squid as a WIN32 Service. 2770 Works only on MS-Windows platforms]), [ 2771SQUID_YESNO([$enableval], 2772 [unrecognized argument to --enable-win32-service: $enableval]) 2773]) 2774SQUID_DEFINE_BOOL(USE_WIN32_SERVICE,${enable_win32_service:=no}, 2775 [Enable code supporting MS Windows service mode]) 2776AC_MSG_NOTICE([MS Windows service mode enabled: $enable_win32_service]) 2777 2778 2779# Disable "unlinkd" code 2780AC_ARG_ENABLE(unlinkd, 2781 AS_HELP_STRING([--disable-unlinkd],[Do not use unlinkd]), [ 2782SQUID_YESNO([$enableval], 2783 [unrecognized argument to --disable-unlinkd: $enableval]) 2784]) 2785SQUID_DEFINE_BOOL(USE_UNLINKD,${enable_unlinkd:=yes}, 2786 [Enable useage of unlinkd]) 2787AM_CONDITIONAL(ENABLE_UNLINKD,test "x$enable_unlinkd" = "xyes") 2788AC_MSG_NOTICE([unlinkd enabled: $enable_unlinkd]) 2789 2790# Enable backtraces on fatal errors 2791AC_ARG_ENABLE(stacktraces, 2792 AS_HELP_STRING([--enable-stacktraces], 2793 [Enable automatic call backtrace on fatal errors]), [ 2794SQUID_YESNO([$enableval], 2795 [unrecognized argument to --enable-stacktraces: $enableval]) 2796]) 2797SQUID_DEFINE_BOOL(PRINT_STACK_TRACE,${enable_stacktraces:=no}, 2798 [Print stack traces on fatal errors]) 2799AC_MSG_NOTICE([Automatically print stack trace on fatal errors: $enable_stacktraces]) 2800 2801 2802# CPU Profiling options handling 2803AC_ARG_ENABLE(cpu-profiling, 2804 AS_HELP_STRING([--enable-cpu-profiling], 2805 [Enable instrumentation to try and understand how CPU power 2806 is spent by squid, by enabling specific probes in selected 2807 functions. 2808 New probes can only be added by modifying the source code. 2809 It is meant to help developers in optimizing performance 2810 of Squid internal functions. 2811 If you are not developer you should not enable this, 2812 as it slows squid down somewhat. 2813 See lib/Profiler.c for more details.]), [ 2814SQUID_YESNO([$enableval], 2815 [unrecognized argument to --enable-cpu-profiling: $enableval]) 2816]) 2817# Default OFF. This is a debug feature. Only check and enable if forced ON. 2818if test "x$enable_cpu_profiling" = "xyes"; then 2819 AC_CHECK_FUNCS(clock_gettime_nsec_np) 2820 SQUID_CHECK_FUNCTIONAL_CPU_PROFILER 2821 if test "x$squid_cv_cpu_profiler_works" = "xno"; then 2822 AC_MSG_ERROR([CPU profiling will not be functional in this build.]) 2823 fi 2824fi 2825SQUID_DEFINE_BOOL(USE_XPROF_STATS,${enable_cpu_profiling:=no}, 2826 [Define to enable CPU profiling within Squid]) 2827AM_CONDITIONAL(ENABLE_XPROF_STATS, 2828 test "x$enable_cpu_profiling" = "xyes") 2829AC_MSG_NOTICE([CPU profiling enabled: $enable_cpu_profiling]) 2830 2831# Enable X-Accelerator-Vary for Vary support within an accelerator setup 2832AC_ARG_ENABLE(x-accelerator-vary, 2833 AS_HELP_STRING([--enable-x-accelerator-vary], 2834 [Enable support for the X-Accelerator-Vary 2835 HTTP header. Can be used to indicate 2836 variance within an accelerator setup. 2837 Typically used together with other code 2838 that adds custom HTTP headers to the requests.]), [ 2839SQUID_YESNO([$enableval], 2840 [unrecognized argument to --enable-x-accelerator-vary: $enableval]) 2841]) 2842SQUID_DEFINE_BOOL(X_ACCELERATOR_VARY,${enable_x_accelerator_vary:=no}, 2843 [Enable support for the X-Accelerator-Vary HTTP header]) 2844AC_MSG_NOTICE([X-Accelerator-Vary support enabled: $enable_x_accelerator_vary]) 2845 2846AC_ARG_WITH([cppunit], AS_HELP_STRING([--without-cppunit],[Do not use cppunit test framework]),[ 2847 AS_CASE($with_cppunit, [yes|no],[], 2848 [ 2849 AS_IF([test ! -d "$withval"],AC_MSG_ERROR([--with-cppunit PATH does not point to a directory])) 2850 LIBCPPUNIT_CFLAGS="-I$with_cppunit/include" 2851 LIBCPPUNIT_LIBS="-L$with_cppunit/lib -lcppunit" 2852 ]) 2853]) 2854AS_IF([test "x$with_cppunit" != "xno"],[ 2855 PKG_CHECK_MODULES([LIBCPPUNIT],[cppunit],[ 2856 squid_cv_cppunit_version="`pkg-config cppunit --version`" 2857 AC_MSG_NOTICE([using system installed cppunit version $squid_cv_cppunit_version]) 2858 AS_UNSET(squid_cv_cppunit_version) 2859 2860 SQUID_STATE_SAVE(squid_cppunit_state) 2861 CXXFLAGS="${CXXFLAGS} ${LIBCPPUNIT_CFLAGS}" 2862 LIBS="${LIBS} ${LIBCPPUNIT_LIBS}" 2863 AC_CHECK_HEADERS(cppunit/extensions/HelperMacros.h) 2864 SQUID_STATE_ROLLBACK(squid_cppunit_state) 2865 ],[ 2866 AC_MSG_WARN([cppunit does not appear to be installed. Squid does not require this, but code testing with 'make check' will fail.]) 2867 ]) 2868]) 2869 2870# Force some compilers to use ANSI features 2871# 2872case "$host" in 2873 *-hp-hpux*) 2874 if test "x$ac_cv_prog_CC" = "xcc" ; then 2875 AC_MSG_NOTICE([adding '-Ae' to cc args for $host]) 2876 CC="cc -Ae"; 2877 ac_cv_prog_CC="$CC" 2878 fi 2879 ;; 2880esac 2881 2882 2883dnl automake handles this AC_PATH_PROG(MAKEDEPEND, makedepend, $TRUE) 2884 2885case "$host" in 2886 *hpux*) 2887 AC_MSG_NOTICE([Disabling ranlib for HP-UX...]) 2888 RANLIB=":" 2889 ;; 2890esac 2891 2892dnl Check for headers 2893AC_HEADER_DIRENT 2894AC_HEADER_STDC 2895 2896AC_CHECK_HEADERS( \ 2897 arpa/inet.h \ 2898 arpa/nameser.h \ 2899 assert.h \ 2900 bstring.h \ 2901 crypt.h \ 2902 ctype.h \ 2903 direct.h \ 2904 errno.h \ 2905 execinfo.h \ 2906 fcntl.h \ 2907 fnmatch.h \ 2908 getopt.h \ 2909 glob.h \ 2910 gnumalloc.h \ 2911 grp.h \ 2912 ipl.h \ 2913 lber.h \ 2914 ldap.h \ 2915 libc.h \ 2916 limits.h \ 2917 linux/posix_types.h \ 2918 linux/types.h \ 2919 malloc.h \ 2920 math.h \ 2921 memory.h \ 2922 mount.h \ 2923 netdb.h \ 2924 netinet/in.h \ 2925 netinet/in_systm.h \ 2926 netinet/tcp.h \ 2927 paths.h \ 2928 poll.h \ 2929 pwd.h \ 2930 regex.h \ 2931 sched.h \ 2932 siginfo.h \ 2933 signal.h \ 2934 stdarg.h \ 2935 stddef.h \ 2936 stdio.h \ 2937 stdlib.h \ 2938 string.h \ 2939 strings.h \ 2940 sys/bitypes.h \ 2941 sys/file.h \ 2942 sys/ioctl.h \ 2943 sys/ipc.cc \ 2944 sys/param.h \ 2945 sys/prctl.h \ 2946 sys/md5.h \ 2947 sys/mman.h \ 2948 sys/msg.h \ 2949 sys/resource.h \ 2950 sys/select.h \ 2951 sys/shm.h \ 2952 sys/socket.h \ 2953 sys/stat.h \ 2954 syscall.h \ 2955 sys/syscall.h \ 2956 sys/time.h \ 2957 sys/types.h \ 2958 sys/uio.h \ 2959 sys/un.h \ 2960 sys/vfs.h \ 2961 sys/wait.h \ 2962 syslog.h \ 2963 time.h \ 2964 unistd.h \ 2965 utime.h \ 2966 varargs.h \ 2967 byteswap.h \ 2968 glib.h \ 2969 stdint.h \ 2970 inttypes.h \ 2971 wchar.h 2972) 2973 2974AC_CHECK_HEADERS( \ 2975 linux/netfilter_ipv4.h \ 2976 linux/netfilter_ipv6/ip6_tables.h \ 2977,,, 2978SQUID_DEFAULT_INCLUDES 2979#if HAVE_LIMITS_H 2980#include <limits.h> 2981#endif 2982/* Netfilter ip(6)tables v1.4.0 has broken headers */ 2983#if HAVE_NETINET_IN_H 2984#include <netinet/in.h> 2985#endif 2986) 2987 2988dnl *BSD do not include the dependencies for all their net/ and netinet/ files 2989dnl We must include a few basic type headers for them to work. 2990AC_CHECK_HEADERS( \ 2991 net/if.h \ 2992 netinet/if_ether.h\ 2993 netinet/icmp6.h \ 2994 netinet/in.h \ 2995 netinet/ip.h \ 2996 netinet/ip6.h \ 2997 netinet/ip_icmp.h \ 2998 netinet/ipl.h \ 2999 net/pf/pfvar.h \ 3000 net/pfvar.h \ 3001 sys/mount.h\ 3002 resolv.h \ 3003,,, 3004SQUID_BSDNET_INCLUDES) 3005 3006AC_C_CONST 3007AC_C_BIGENDIAN 3008 3009AC_STRUCT_TM 3010AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[ 3011#if TM_IN_SYS_TIME 3012#if HAVE_SYS_TIME_H 3013#include <sys/time.h> 3014#endif 3015#elif HAVE_TIME_H 3016#include <time.h> 3017#endif 3018]) 3019 3020dnl Override rusage() detect on MinGW because is emulated in source code 3021case "$squid_host_os" in 3022 mingw) 3023 AC_DEFINE(HAVE_STRUCT_RUSAGE) 3024 ac_cv_func_getrusage='yes' 3025 AC_MSG_NOTICE([Using own rusage on Windows.]) 3026 ;; 3027 *) 3028 AC_CHECK_TYPE(struct rusage,AC_DEFINE(HAVE_STRUCT_RUSAGE,1,[The system provides struct rusage]),,[ 3029#if HAVE_SYS_TIME_H 3030#include <sys/time.h> 3031#endif 3032#if HAVE_SYS_RESOURCE_H 3033#include <sys/resource.h> 3034#endif]) 3035 ;; 3036esac 3037 3038AC_CHECK_MEMBERS([struct iphdr.ip_hl],,,[ 3039#if HAVE_SYS_TYPES_H 3040#include <sys/types.h> 3041#endif 3042#include <netinet/in.h> 3043#include <netinet/in_systm.h> 3044#include <netinet/ip.h> 3045#if defined (__linux__) || defined (__CYGWIN__) 3046#define ip_hl ihl 3047#endif 3048#ifndef __linux__ 3049#ifndef __CYGWIN__ 3050#define iphdr ip 3051#endif 3052#endif]) 3053 3054dnl Check for typedefs 3055AC_CHECK_SIZEOF(void *) 3056 3057# check for a bunch of types 3058AC_TYPE_INT8_T 3059AC_TYPE_UINT8_T 3060AC_TYPE_INT16_T 3061AC_TYPE_UINT16_T 3062AC_TYPE_INT32_T 3063AC_TYPE_UINT32_T 3064AC_TYPE_INT64_T 3065AC_TYPE_UINT64_T 3066AC_TYPE_PID_T 3067AC_TYPE_SIZE_T 3068AC_TYPE_SSIZE_T 3069AC_TYPE_OFF_T 3070AC_TYPE_UID_T 3071AC_CHECK_TYPE([bool]) 3072#need the defines for PRId64 3073AC_CHECK_SIZEOF(int64_t) 3074AC_CHECK_SIZEOF(long) 3075#need the defines for PRIuSIZE 3076AC_CHECK_SIZEOF(size_t) 3077#need the define for overflow checks 3078AC_CHECK_SIZEOF(off_t) 3079AC_CHECK_SIZEOF(size_t) 3080 3081dnl Some C++11 types we try to use 3082AX_CXX_TYPE_NULLPTR 3083AX_CXX_TYPE_UNIQUE_PTR 3084AX_CXX_TYPE_UNIFORM_DISTRIBUTIONS 3085SQUID_CXX_STD_UNDERLYING_TYPE 3086 3087dnl On Solaris 9 x86, gcc may includes a "fixed" set of old system include files 3088dnl that is incompatible with the updated Solaris header files. 3089dnl For this reason, we must check if pad128_t and upad128_t are defined. 3090AC_CHECK_TYPE(pad128_t, 3091 AC_DEFINE(HAVE_PAD128_T,1,[pad128_t is defined in system headers]), 3092 ,SQUID_DEFAULT_INCLUDES) 3093 3094AC_CHECK_TYPE(upad128_t, 3095 AC_DEFINE(HAVE_UPAD128_T,1,[upad128_t is defined in system headers]), 3096 ,SQUID_DEFAULT_INCLUDES) 3097 3098AC_CHECK_TYPE(mode_t, AC_DEFINE(HAVE_MODE_T,1,[mode_t is defined by the system headers]),,SQUID_DEFAULT_INCLUDES) 3099AC_CHECK_TYPE(fd_mask, AC_DEFINE(HAVE_FD_MASK,1,[fd_mask is defined by the system headers]),,SQUID_DEFAULT_INCLUDES) 3100 3101AC_CHECK_TYPE(socklen_t,AC_DEFINE(HAVE_SOCKLEN_T,1,[socklen_t is defined by the system headers]),,[ 3102#include <sys/types.h> 3103#include <sys/socket.h> 3104#if STDC_HEADERS 3105#include <stdlib.h> 3106#include <stddef.h> 3107#endif]) 3108 3109AC_CHECK_TYPE(mtyp_t,AC_DEFINE(HAVE_MTYP_T,1, 3110 [mtyp_t is defined by the system headers]),,[#include <sys/types.h> 3111#include <sys/ipc.h> 3112#include <sys/msg.h>]) 3113 3114AC_CHECK_TYPE(cpu_set_t, 3115 AC_DEFINE(HAVE_CPU_SET_T,1,[cpu_set_t is defined by the system headers]),,[ 3116#if HAVE_SCHED_H 3117#include <sched.h> 3118#endif 3119]) 3120 3121# check for compiler support of %zu printf macro 3122AH_TEMPLATE(PRIuSIZE,[Compiler supports %zu printf macro]) 3123AC_MSG_CHECKING([for compiler %zu support]) 3124AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 3125#include <stdio.h> 3126 ]],[[size_t n=1;printf("%zu",n);]])],[ 3127 AC_DEFINE(PRIuSIZE,"zu") 3128 AC_MSG_RESULT(yes) 3129 ],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)]) 3130 3131 3132dnl Check for special functions 3133AC_FUNC_ALLOCA 3134 3135 3136dnl Check for libcap header (assume its not broken unless 3137AC_ARG_WITH(libcap, AS_HELP_STRING([--without-libcap], 3138 [disable usage of Linux capabilities library to control privileges]), [ 3139SQUID_YESNO([$withval],[unrecognized argument to --without-libcap: $withval]) 3140],[with_libcap=auto]) 3141 3142if test "x$with_libcap" != "xno"; then 3143 # cap_clear_flag is the most recent libcap function we require 3144 AC_CHECK_HEADERS(sys/capability.h) 3145 AC_CHECK_LIB(cap, cap_clear_flag) 3146 SQUID_CHECK_FUNCTIONAL_LIBCAP2 3147 3148 # if it can't be supported.. 3149 if test "x$ac_cv_header_sys_capability_h" = "xno" -o \ 3150 "x$ac_cv_lib_cap_cap_clear_flag" = "xno"; then 3151 # and it was forced on: error 3152 if test "x$with_libcap" = "xyes" ; then 3153 AC_MSG_ERROR([libcap forced enabled but not available or not usable, requires libcap-2.09 or later]) 3154 else 3155 # with_libcap is "auto"; it can't be supported. Disable. 3156 with_libcap=no 3157 fi 3158 else 3159 # header and lib are ok, we support 3160 with_libcap=yes 3161 fi 3162 3163fi 3164 3165SQUID_DEFINE_BOOL(USE_LIBCAP,$with_libcap, 3166 [use libcap to set capabilities required for TPROXY]) 3167AC_MSG_NOTICE([libcap support enabled: $with_libcap]) 3168SQUID_DEFINE_BOOL(LIBCAP_BROKEN,${squid_cv_sys_capability_works:=no}, 3169 [libcap2 headers are broken and clashing with glibc]) 3170AC_MSG_NOTICE([libcap2 headers are ok: $squid_cv_sys_capability_works]) 3171 3172 3173dnl Check for needed libraries 3174AC_SEARCH_LIBS([gethostbyname],[nsl resolv bind]) 3175AC_SEARCH_LIBS([res_init],[resolv]) 3176AC_SEARCH_LIBS([__res_search],[resolv]) 3177AC_SEARCH_LIBS([bind],[socket]) 3178AC_SEARCH_LIBS([opcom_stack_trace],[opcom_stack]) 3179AC_SEARCH_LIBS([strlcpy], [bsd]) 3180AC_SEARCH_LIBS([yp_match], [nsl nss_nis nss_nisplus]) 3181dnl Check for Winsock only on MinGW, on Cygwin we must use emulated BSD socket API 3182if test "x$squid_host_os" = "xmingw" ; then 3183 SQUID_CHECK_WINSOCK_LIB 3184 AC_CHECK_HEADERS( \ 3185 windows.h \ 3186 ws2tcpip.h \ 3187 iphlpapi.h ,,,[ 3188#if HAVE_WINSOCK2_H 3189#include <winsock2.h> 3190#endif 3191#if HAVE_WINDOWS_H 3192#include <windows.h> 3193#endif 3194#if HAVE_WS2TCPIP_H 3195#include <ws2tcpip.h> 3196#endif 3197]) 3198fi 3199 3200# check that we have unix sockets 3201SQUID_CHECK_UNIX_SOCKET 3202SQUID_DEFINE_BOOL(HAVE_UNIXSOCKET,$squid_cv_unixsocket,[System supports unix sockets]) 3203 3204AC_CHECK_LIB(gnumalloc, malloc) 3205if test "x$ac_cv_lib_gnumalloc_malloc" = "xyes"; then 3206 AC_MSG_NOTICE([Disabling extended malloc functions when using bundled gnumalloc]) 3207 ac_cv_func_mallocblksize=no 3208 ac_cv_func_mallopt=no 3209else 3210 case "$squid_host_os" in 3211 solaris) 3212 AC_MSG_NOTICE([skipping libmalloc check for $host]) 3213 ;; 3214 freebsd) 3215 AC_MSG_NOTICE([skipping libmalloc check for $host]) 3216 ;; 3217 *) 3218 #used later. FIXME 3219 AC_CHECK_LIB(malloc, main) 3220 ;; 3221 esac 3222fi 3223 3224case "$squid_host_os" in 3225 mingw) 3226 AC_MSG_NOTICE([Use MSVCRT for math functions.]) 3227 ;; 3228 *) 3229 dnl rint() and log() are only used in old C code for now. 3230 AC_LANG_PUSH([C]) 3231 AC_SEARCH_LIBS([rint],[m]) 3232 AC_SEARCH_LIBS([log],[m]) 3233 AC_LANG_POP([C]) 3234 ;; 3235esac 3236 3237dnl --with-maxfd present for compatibility with Squid-2. 3238dnl undocumented in ./configure --help to encourage using the Squid-3 directive 3239AC_ARG_WITH(maxfd,, 3240[ 3241 case ${withval} in 3242 [[0-9]]*) 3243 squid_filedescriptors_num=$withval 3244 AC_MSG_NOTICE([forcing default of $squid_filedescriptors_num filedescriptors (user-forced)]) 3245 ;; 3246 *) 3247 AC_MSG_ERROR(--with-maxfd expects a numeric argument) 3248 ;; 3249 esac 3250]) 3251 3252AC_ARG_WITH(filedescriptors, 3253 AS_HELP_STRING([--with-filedescriptors=NUMBER], 3254 [Force squid to support NUMBER filedescriptors]), 3255[ 3256 case ${withval} in 3257 [[0-9]]*) 3258 squid_filedescriptors_num=$withval 3259 AC_MSG_NOTICE([forcing default of $squid_filedescriptors_num filedescriptors (user-forced)]) 3260 ;; 3261 *) 3262 AC_MSG_ERROR(--with-filedescriptors expects a numeric argument) 3263 ;; 3264 esac 3265]) 3266 3267SQUID_CHECK_DEFAULT_FD_SETSIZE 3268SQUID_CHECK_MAXFD 3269 3270 3271dnl Enable IPv6 support 3272AC_MSG_CHECKING([whether to enable IPv6]) 3273AC_ARG_ENABLE(ipv6, 3274 AS_HELP_STRING([--disable-ipv6],[Disable IPv6 support. The default is to probe system capabilities on startup.]), [ 3275SQUID_YESNO([$enableval],[unrecognized argument to --disable-ipv6: $enableval]) 3276]) 3277AC_MSG_RESULT(${enable_ipv6:=yes}) 3278SQUID_DEFINE_BOOL(USE_IPV6,$enable_ipv6,[Enable support for IPv6 ]) 3279 3280if test "x$enable_ipv6" = "xyes" ; then 3281 SQUID_CHECK_SIN6_LEN_IN_SAI 3282fi 3283SQUID_CHECK_SS_LEN_IN_SOCKADDR_STORAGE 3284SQUID_CHECK_SIN_LEN_IN_SOCKADDR_IN 3285 3286 3287dnl Check for libdl, used by auth_modules/PAM 3288if test "x$with_dl" = "xyes"; then 3289 AC_CHECK_LIB(dl, dlopen) 3290fi 3291 3292dnl -lintl is needed on SCO version 3.2v4.2 for strftime() 3293dnl Robert Side <rside@aiinc.bc.ca> 3294dnl Mon, 18 Jan 1999 17:48:00 GMT 3295case "$host" in 3296 *-pc-sco3.2*) 3297 AC_CHECK_LIB(intl, strftime) 3298 ;; 3299esac 3300 3301dnl System-specific library modifications 3302dnl 3303case "$host" in 3304 i386-*-solaris2.*) 3305 if test "x$GCC" = "xyes"; then 3306 AC_MSG_NOTICE([Removing -O for gcc on $host]) 3307 CFLAGS="`echo $CFLAGS | sed -e 's/-O[[0-9g]]*//'`" 3308 fi 3309 ;; 3310 3311 *-sgi-irix*) 3312 AC_MSG_NOTICE([Removing -lsocket for IRIX...]) 3313 LIBS=`echo $LIBS | sed -e s/-lsocket//` 3314 AC_MSG_NOTICE([Removing -lnsl for IRIX...]) 3315 LIBS=`echo $LIBS | sed -e s/-lnsl//` 3316 ac_cv_lib_nsl_main=no 3317 AC_MSG_NOTICE([Removing -lbsd for IRIX...]) 3318 LIBS=`echo $LIBS | sed -e s/-lbsd//` 3319 ;; 3320dnl From: c0032033@ws.rz.tu-bs.de (Joerg Schumacher) 3321dnl Date: Thu, 17 Oct 1996 04:09:30 +0200 3322dnl Please change your configure script. AIX doesn't need -lbsd. 3323 *-ibm-aix*) 3324 AC_MSG_NOTICE([Removing -lbsd for AIX...]) 3325 LIBS=`echo $LIBS | sed -e s/-lbsd//` 3326 3327 SQUID_CC_REQUIRE_ARGUMENT([ac_cv_require_rtti],[-rtti],[[ 3328#include <assert.h> 3329#ifndef NULL 3330#define NULL 0 3331#endif 3332class Foo{ 3333public:virtual ~Foo(){} 3334}; 3335class Bar:public Foo{ 3336public:Bar():Foo(){} 3337}; 3338 ]],[[ 3339Foo * myFoo=new Bar(); 3340Bar * myBar=dynamic_cast<Bar *>(myFoo); 3341assert(myBar != NULL); 3342 ]]) 3343 if test "$ac_cv_require_rtti" = "yes"; then 3344 SQUID_CFLAGS="-rtti $SQUID_CFLAGS" 3345 SQUID_CXXFLAGS="-rtti $SQUID_CXXFLAGS" 3346 fi 3347 3348 AC_LANG_PUSH([C]) 3349 SQUID_CC_REQUIRE_ARGUMENT([ac_cv_require_qcpluscmt],[-qcpluscmt],[[]],[[//c++ cmt]]) 3350 AC_LANG_POP([C]) 3351 if test "$ac_cv_require_qcpluscmt" = "yes"; then 3352 SQUID_CFLAGS="-qcpluscmt $SQUID_CFLAGS" 3353 fi 3354 ;; 3355 3356 *m88k*) 3357 SQUID_CFLAGS="$SQUID_CFLAGS -D_SQUID_MOTOROLA_" 3358 SQUID_CXXFLAGS="$SQUID_CXXFLAGS -D_SQUID_MOTOROLA_" 3359 AC_DEFINE(GETTIMEOFDAY_NO_TZP,1, 3360 [If gettimeofday is known to take only one argument]) 3361 ;; 3362 [*-*-solaris2.[0-4]]) 3363 AC_DEFINE(GETTIMEOFDAY_NO_TZP,1) 3364 ;; 3365 [*-sony-newsos[56]*]) 3366 AC_DEFINE(GETTIMEOFDAY_NO_TZP,1) 3367 ;; 3368 esac 3369 3370dnl This has to be before AC_CHECK_FUNCS 3371# Disable poll() on certain platforms. Override by setting ac_cv_func_poll 3372# when running configure. 3373if test "x$ac_cv_func_poll" = "x" ; then 3374 case "$host" in 3375 [*-hp-hpux*.*]) 3376 # Duane Wessels 3377 AC_MSG_NOTICE([disabling poll for $host...]) 3378 ac_cv_func_poll='no' 3379 ;; 3380 [*-linux-*]) 3381 # Henrik Nordstrom (hno@squid-cache.org) 19980817 3382 # poll is problematic on Linux. We disable it 3383 # by default until Linux gets it right. 3384 rev=`uname -r | awk -F. '{printf "%03d%03d",$1,$2}'` 3385 if test $rev -lt 002002; then 3386 AC_MSG_NOTICE([disabling poll for $host < 2.2...]) 3387 ac_cv_func_poll='no' 3388 fi 3389 ;; 3390 [powerpc-ibm-aix4.1.*]) 3391 # Mike Laster (mlaster@metavillage.com) 19981021 3392 AC_MSG_NOTICE([disabling poll for $host...]) 3393 ac_cv_func_poll='no' 3394 ;; 3395 [*-pc-sco3.2*]) 3396 # Robert Side <rside@aiinc.bc.ca> 3397 # Mon, 18 Jan 1999 17:48:00 GMT 3398 AC_MSG_NOTICE([disabling poll for $host...]) 3399 ac_cv_func_poll='no' 3400 ;; 3401 esac 3402fi 3403 3404dnl Check for library functions 3405AC_CHECK_FUNCS(\ 3406 backtrace_symbols_fd \ 3407 bcopy \ 3408 eui64_aton \ 3409 fchmod \ 3410 getdtablesize \ 3411 getpagesize \ 3412 getpass \ 3413 getrusage \ 3414 getspnam \ 3415 gettimeofday \ 3416 glob \ 3417 mallocblksize \ 3418 mallopt \ 3419 memcpy \ 3420 memmove \ 3421 memrchr \ 3422 memset \ 3423 mkstemp \ 3424 mktime \ 3425 mstats \ 3426 poll \ 3427 prctl \ 3428 pthread_attr_setschedparam \ 3429 pthread_attr_setscope \ 3430 pthread_setschedparam \ 3431 pthread_sigmask \ 3432 putenv \ 3433 regcomp \ 3434 regexec \ 3435 regfree \ 3436 res_init \ 3437 __res_init \ 3438 rint \ 3439 sched_getaffinity \ 3440 sched_setaffinity \ 3441 select \ 3442 seteuid \ 3443 setgroups \ 3444 setpgrp \ 3445 setsid \ 3446 sigaction \ 3447 snprintf \ 3448 socketpair \ 3449 sysconf \ 3450 syslog \ 3451 timegm \ 3452 vsnprintf \ 3453) 3454dnl ... and some we provide local replacements for 3455AC_REPLACE_FUNCS(\ 3456 initgroups \ 3457 psignal \ 3458 strerror \ 3459 strtoll \ 3460 tempnam \ 3461) 3462 3463AC_CHECK_DECLS([getaddrinfo,getnameinfo,inet_ntop,inet_pton,InetNtopA,InetPtonA],,,[ 3464/* 3465 * BSD requires sys/types.h, sys/socket.h, netinet/in.h, netdb.h, arpa/inet.h 3466 * Linux requires sys/types.h, sys/socket.h, arpa/inet.h 3467 * Windows requires sys/socket.h, winsock2.h, ws2tcpip.h 3468 */ 3469#if HAVE_SYS_TYPES_H 3470#include <sys/types.h> 3471#endif 3472#if HAVE_NETINET_IN_H 3473#include <netinet/in.h> 3474#endif 3475#if HAVE_SYS_SOCKET_H 3476#include <sys/socket.h> 3477#endif 3478#if HAVE_NETDB_H 3479#include <netdb.h> 3480#endif 3481#if HAVE_ARPA_INET_H 3482#include <arpa/inet.h> 3483#endif 3484#if HAVE_WINSOCK2_H 3485#include <winsock2.h> 3486#endif 3487#if HAVE_WS2TCPIP_H 3488#include <ws2tcpip.h> 3489#endif 3490]) 3491 3492# Magic which checks whether we are forcing a type of comm loop we 3493# are actually going to (ab)use. 3494# Mostly ripped from squid-commloops, thanks to adrian and benno 3495 3496if test "x$squid_opt_io_loop_engine" != "x"; then 3497 AC_MSG_NOTICE([choosing user-specified net I/O API $squid_opt_io_loop_engine]) 3498elif test "x$enable_epoll" != "xno" -a "x$squid_cv_epoll_works" = "xyes" ; then 3499 squid_opt_io_loop_engine="epoll" 3500elif test "x$enable_kqueue" != "xno" ; then 3501 squid_opt_io_loop_engine="kqueue" 3502elif test "x$enable_devpoll" != "xno" ; then 3503 squid_opt_io_loop_engine="devpoll" 3504elif test "x$enable_poll" != "xno" -a "x$ac_cv_func_poll" = "xyes" ; then 3505 squid_opt_io_loop_engine="poll" 3506elif test "x$enable_select" != "xno" -a "x$ac_cv_func_select" = "xyes"; then 3507 squid_opt_io_loop_engine="select" 3508elif test "x$enable_select" != "xno" -a "x$squid_host_os" = "xmingw"; then 3509 squid_opt_io_loop_engine="select_win32" 3510else 3511 AC_MSG_WARN([Eep! Cannot find epoll, kqueue, /dev/poll, poll or select!]) 3512 AC_MSG_WARN([Will try select and hope for the best.]) 3513 squid_opt_io_loop_engine="select" 3514fi 3515 3516AC_MSG_NOTICE([Using ${squid_opt_io_loop_engine} for the IO loop.]) 3517 3518AM_CONDITIONAL(ENABLE_POLL, test "x$squid_opt_io_loop_engine" = "xpoll") 3519AM_CONDITIONAL(ENABLE_EPOLL, test "x$squid_opt_io_loop_engine" = "xepoll") 3520AM_CONDITIONAL(ENABLE_SELECT, test "x$squid_opt_io_loop_engine" = "xselect") 3521AM_CONDITIONAL(ENABLE_SELECT_WIN32, test "x$squid_opt_io_loop_engine" = "xselect_win32") 3522AM_CONDITIONAL(ENABLE_KQUEUE, test "x$squid_opt_io_loop_engine" = "xkqueue") 3523AM_CONDITIONAL(ENABLE_DEVPOLL, test "x$squid_opt_io_loop_engine" = "xdevpoll") 3524 3525case $squid_opt_io_loop_engine in 3526 epoll) AC_DEFINE(USE_EPOLL,1,[Use epoll() for the IO loop]) ;; 3527 devpoll) AC_DEFINE(USE_DEVPOLL,1,[Use /dev/poll for the IO loop]) ;; 3528 poll) AC_DEFINE(USE_POLL,1,[Use poll() for the IO loop]) ;; 3529 kqueue) AC_DEFINE(USE_KQUEUE,1,[Use kqueue() for the IO loop]) ;; 3530 select_win32) AC_DEFINE(USE_SELECT_WIN32,1,[Use Winsock select() for the IO loop]) ;; 3531 select) AC_DEFINE(USE_SELECT,1,[Use select() for the IO loop]) ;; 3532esac 3533 3534if test "x$ac_cv_func_sched_getaffinity" = "xyes" -a "x$ac_cv_func_sched_setaffinity" = "xyes" ; then 3535 AC_DEFINE(HAVE_CPU_AFFINITY,1,[Support setting CPU affinity for workers]) 3536fi 3537 3538SQUID_CHECK_SETRESUID_WORKS 3539if test "x$squid_cv_resuid_works" = "xyes" ; then 3540 AC_DEFINE(HAVE_SETRESUID,1,[Yay! Another Linux brokenness. Knowing that setresuid() exists is not enough, because RedHat 5.0 declares setresuid() but does not implement it.]) 3541fi 3542 3543AC_CHECK_HEADERS(mswsock.h) 3544AC_MSG_CHECKING([for constant CMSG_SPACE]) 3545AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ 3546 #if HAVE_SYS_SOCKET_H 3547 #include <sys/socket.h> 3548 #endif 3549 #if HAVE_MSWSOCK_H 3550 #include <mswsock.h> 3551 #endif 3552 3553 int a[CMSG_SPACE(int)]; 3554]])], [ 3555 AC_MSG_RESULT(yes) 3556 AC_DEFINE(HAVE_CONSTANT_CMSG_SPACE, 1, [Define to 1 if CMSG_SPACE is constant]) 3557], [ 3558 AC_MSG_RESULT(no) 3559]) 3560 3561AC_CHECK_TYPE(struct cmsghdr,AC_DEFINE(HAVE_CMSGHDR,1,[The system provides struct cmsghdr]),,[ 3562 #if HAVE_SYS_SOCKET_H 3563 #include <sys/socket.h> 3564 #endif 3565 #if HAVE_MSWSOCK_H 3566 #include <mswsock.h> 3567 #endif 3568 #if HAVE_WINSOCK2_H 3569 #include <winsock2.h> 3570 #endif 3571]) 3572 3573AC_CHECK_TYPE(struct iovec,AC_DEFINE(HAVE_IOVEC,1,[The system provides struct iovec]),,[ 3574 #if HAVE_SYS_SOCKET_H 3575 #include <sys/socket.h> 3576 #endif 3577 #if HAVE_WINSOCK2_H 3578 #include <winsock2.h> 3579 #endif 3580 #if HAVE_SYS_UIO_H 3581 #include <sys/uio.h> 3582 #endif 3583]) 3584 3585AC_CHECK_TYPE(struct msghdr,AC_DEFINE(HAVE_MSGHDR,1,[The system provides struct msghdr]),,[ 3586 #if HAVE_SYS_SOCKET_H 3587 #include <sys/socket.h> 3588 #endif 3589 #if HAVE_MSWSOCK_H 3590 #include <mswsock.h> 3591 #endif 3592 #if HAVE_WINSOCK2_H 3593 #include <winsock2.h> 3594 #endif 3595]) 3596 3597AC_CHECK_TYPE(struct sockaddr_un,AC_DEFINE(HAVE_SOCKADDR_UN,1,[The system provides sockaddr_un]),,[ 3598 #if HAVE_SYS_UN_H 3599 #include <sys/un.h> 3600 #endif 3601 #if HAVE_SYS_SOCKET_H 3602 #include <sys/socket.h> 3603 #endif 3604 #if HAVE_WINSOCK2_H 3605 #include <winsock2.h> 3606 #endif 3607]) 3608 3609SQUID_CHECK_FUNC_STRNSTR 3610 3611dnl IP-Filter support requires ipf header files. These aren't 3612dnl installed by default, so we need to check for them 3613if test "x$enable_ipf_transparent" != "xno" ; then 3614 SQUID_CHECK_BROKEN_SOLARIS_IPFILTER 3615 AC_MSG_CHECKING(for availability of IP-Filter header files) 3616 # hold on to your hats... 3617 if test "x$ac_cv_header_ip_compat_h" = "xyes" -o \ 3618 "x$ac_cv_header_ip_fil_compat_h" = "xyes" -o \ 3619 "x$ac_cv_header_netinet_ip_compat_h" = "xyes" -o \ 3620 "x$ac_cv_header_netinet_ip_fil_compat_h" = "xyes" ; then 3621 have_ipfilter_compat_header="yes" 3622 fi 3623 if test "x$have_ipfilter_compat_header" = "xyes" -a \ 3624 "x$ac_cv_header_ip_fil_h" = "xyes" -a \ 3625 "x$ac_cv_header_ip_nat_h" = "xyes" ; then 3626 enable_ipf_transparent="yes" 3627 elif test "x$have_ipfilter_compat_header" = "xyes" -a \ 3628 "x$ac_cv_header_netinet_ip_fil_h" = "xyes" -a \ 3629 "x$ac_cv_header_netinet_ip_nat_h" = "xyes" ; then 3630 enable_ipf_transparent="yes" 3631 else 3632 enable_ipf_transparent="no" 3633 fi 3634 AC_MSG_RESULT($IPF_TRANSPARENT) 3635 3636## On Solaris Ipfilter includes expect that SOLARIS2 is defined with the 3637## Solaris minor version (8, 9, 10, ...) 3638 if test "x$enable_ipf_transparent" = "xyes" -a "x$squid_host_os" = "xsolaris" ; then 3639 solrev=`uname -r | sh -c 'IFS=. read j n x; echo $n'` 3640 CFLAGS="-DSOLARIS2=$solrev $CFLAGS" 3641 CXXFLAGS="-DSOLARIS2=$solrev $CXXFLAGS" 3642 fi 3643 3644fi 3645AC_MSG_NOTICE([IPF-based transparent proxying enabled: $enable_ipf_transparent]) 3646SQUID_DEFINE_BOOL(IPF_TRANSPARENT,$enable_ipf_transparent, 3647 [Enable support for IPF-style transparent proxying]) 3648 3649dnl PF /dev/pf support requires a header file. 3650if test "x$with_nat_devpf" != "xno" ; then 3651 if test "x$ac_cv_header_net_pfvar_h" = "xyes" -o \ 3652 "x$ac_cv_header_net_pf_pfvar_h" = "xyes"; then 3653 if test "x$with_nat_devpf" = "xauto" ; then 3654 with_nat_devpf="no" 3655 fi 3656 else 3657 if test "x$with_nat_devpf" = "xyes" ; then 3658 AC_MSG_ERROR([PF /dev/pf based NAT requested but needed header not found]) 3659 fi 3660 with_nat_devpf="no" 3661 fi 3662fi 3663SQUID_DEFINE_BOOL(PF_TRANSPARENT,${enable_pf_transparent:=no}, 3664 [Enable support for PF-style transparent proxying]) 3665SQUID_DEFINE_BOOL(USE_NAT_DEVPF,${with_nat_devpf:=no}, 3666 [Enable support for /dev/pf NAT lookups]) 3667 3668if test "x$enable_linux_netfilter" != "xno" ; then 3669 if test "x$ac_cv_header_linux_netfilter_ipv4_h" = "xyes"; then 3670 if test "x$enable_linux_netfilter" = "xauto" ; then 3671 enable_linux_netfilter=yes 3672 fi 3673 else 3674 if test "x$enable_linux_netfilter" = "xauto" ; then 3675 enable_linux_netfilter=no 3676 else 3677 AC_MSG_ERROR([Linux Netfilter support requested but needed headers not found]) 3678 fi 3679 fi 3680fi 3681SQUID_DEFINE_BOOL(LINUX_NETFILTER,$enable_linux_netfilter, 3682 [Enable support for Transparent Proxy on Linux via Netfilter]) 3683 3684dnl Netfilter TPROXY depends on libcap but the NAT parts can still work. 3685AC_MSG_NOTICE([Support for Netfilter-based interception proxy requested: $enable_linux_netfilter]) 3686if test "x$enable_linux_netfilter" = "xyes" -a "x$with_libcap" != "xyes" ; then 3687 AC_MSG_WARN([Missing needed capabilities (libcap 2.09+) for TPROXY]) 3688 AC_MSG_WARN([Linux Transparent Proxy (version 4+) support WILL NOT be enabled]) 3689 AC_MSG_WARN([Reduced support to NAT Interception Proxy]) 3690 # AC_DEFINEd later 3691fi 3692 3693if test "x$squid_opt_netfilterconntrack" = "xyes" -a "x$with_libcap" != "xyes" ; then 3694 AC_MSG_ERROR([Linux netfilter conntrack requires libcap support (libcap 2.09+)]) 3695fi 3696if test "x$with_netfilter_conntrack" = "xyes" -a "x$with_libcap" != "xyes" ; then 3697 AC_MSG_WARN([Missing needed capabilities (libcap 2.09+) for netfilter mark support]) 3698 AC_MSG_WARN([Linux netfilter marking support WILL NOT be enabled]) 3699 with_netfilter_conntrack=no 3700fi 3701AC_MSG_NOTICE([Linux Netfilter Conntrack support enabled: ${with_netfilter_conntrack} ${squid_opt_netfilterconntrackpath}]) 3702 3703 3704AC_ARG_ENABLE(zph-qos, 3705 AS_HELP_STRING([--enable-zph-qos],[Enable ZPH QOS support]), [ 3706SQUID_YESNO([$enableval], 3707 [unrecognized argument to --enable-zph-qos: $enableval]) 3708]) 3709SQUID_DEFINE_BOOL(USE_QOS_TOS,${enable_zph_qos:=yes}, 3710 [Enable Zero Penalty Hit QOS. When set, Squid will alter the 3711 TOS field of HIT responses to help policing network traffic]) 3712AC_MSG_NOTICE([ZPH QOS enabled: $enable_zph_qos]) 3713if test x"$enable_zph_qos" = "xyes" ; then 3714 AC_MSG_NOTICE([QOS netfilter mark preservation enabled: $with_netfilter_conntrack]) 3715 SQUID_DEFINE_BOOL(USE_LIBNETFILTERCONNTRACK,${with_netfilter_conntrack:=no}, 3716 [Enable support for QOS netfilter mark preservation]) 3717fi 3718 3719 3720AC_CHECK_LIB(regex, regexec, [REGEXLIB="-lregex"],[REGEXLIB='']) 3721AC_ARG_ENABLE(gnuregex, 3722 AS_HELP_STRING([--enable-gnuregex], 3723 [Compile GNUregex. Unless you have reason to use 3724 this option, you should not enable it. 3725 This library file is usually only required on Windows and 3726 very old Unix boxes which do not have their own regex 3727 library built in.]), [ 3728SQUID_YESNO([$enableval],[unrecognized argument to --enable-gnuregex: $enableval]) 3729]) 3730# force-enable on old solaris and nextstep 3731if test "x${enable_gnuregex:=auto}" = "xauto" ; then 3732 case "$host" in 3733 *-sun-solaris2.[[0-4]]) 3734 enable_gnuregex="yes" 3735 ;; 3736 *-next-nextstep*) 3737 enable_gnuregex="yes" 3738 ;; 3739 esac 3740fi 3741 3742# try detecting if it is needed 3743if test "x$enable_gnuregex" = "xauto" ; then 3744 SQUID_CHECK_REGEX_WORKS 3745 if test "x$squid_cv_regex_works" = "xyes" ; then 3746 enable_gnuregex=no 3747 else 3748 enable_gnuregex=yes 3749 fi 3750fi 3751AC_MSG_CHECKING(if GNUregex needs to be compiled) 3752AC_MSG_RESULT($enable_gnuregex) 3753if test "x$enable_gnuregex" = "xyes"; then 3754 # for some reason (force-enable, test..) gnuregex was found as needed. Override any system lib 3755 REGEXLIB="" 3756fi 3757#if no reason was found to enable gnuregex, disable it 3758if test "x$enable_gnuregex" = "xauto" ; then 3759 enable_gnuregex=no 3760fi 3761SQUID_DEFINE_BOOL(USE_GNUREGEX,$enable_gnuregex,[Define if we should use GNU regex]) 3762AC_SUBST(REGEXLIB) 3763 3764SQUID_DETECT_UDP_SND_BUFSIZE 3765SQUID_DETECT_UDP_RECV_BUFSIZE 3766SQUID_DETECT_TCP_SND_BUFSIZE 3767SQUID_DETECT_TCP_RECV_BUFSIZE 3768 3769SQUID_CHECK_RECV_ARG_TYPE 3770SQUID_CHECK_NEED_SYS_ERRLIST 3771SQUID_CHECK_MAXPATHLEN 3772 3773SQUID_CHECK_LIBRESOLV_DNS_TTL_HACK 3774SQUID_CHECK_RESOLVER_FIELDS 3775 3776AC_CHECK_HEADERS(sys/statvfs.h) 3777if test "x$ac_cv_header_sys_statvfs_h" = "xyes" ; then 3778 SQUID_CHECK_WORKING_STATVFS 3779fi 3780if test "x$ac_cv_func_statvfs" != "xyes" ; then 3781 AC_CHECK_HEADERS(sys/param.h sys/mount.h sys/vfs.h sys/statfs.h) 3782 AC_CHECK_FUNCS(statfs) 3783 SQUID_CHECK_F_FRSIZE_IN_STATFS 3784fi 3785 3786dnl Squid will not usually attempt to translate templates when building 3787AC_ARG_ENABLE(translation, 3788 AS_HELP_STRING([--enable-translation],[Generate the localized error page templates and manuals. 3789 Which can also be downloaded from http://www.squid-cache.org/Versions/langpack/.]), [ 3790 SQUID_YESNO([$enableval], 3791 [unrecognized argument to --enable-translation: $enableval]) 3792]) 3793if test "x${enable_translation:=no}" = "xyes" ; then 3794 AX_WITH_PROG([PO2HTML],[po2html]) 3795 AX_WITH_PROG([PO2TEXT],[po2txt]) 3796else 3797 PO2HTML="off" 3798 PO2TEXT="off" 3799fi 3800AC_SUBST(PO2HTML) 3801AC_SUBST(PO2TEXT) 3802 3803dnl Squid now has limited locale handling ... 3804dnl on error pages 3805AC_ARG_ENABLE(auto-locale, 3806 AS_HELP_STRING([--disable-auto-locale],[This prevents Squid providing localized error pages based on the 3807 clients request headers. 3808 When disabled Squid requires explicit language configuration.]), [ 3809SQUID_YESNO([$enableval], 3810 [unrecognized argument to --disable-auto-locale: $enableval]) 3811]) 3812AC_MSG_NOTICE([Multi-Language support enabled: ${enable_auto_locale:=yes}]) 3813SQUID_DEFINE_BOOL(USE_ERR_LOCALES,$enable_auto_locale, 3814 [Use multi-language support on error pages]) 3815 3816 3817dnl Need the debugging version of malloc if available 3818XTRA_OBJS='' 3819if test "x$ac_cv_lib_malloc_main" = "xyes" ; then 3820 if test -r /usr/lib/debug/malloc.o ; then 3821 XTRA_OBJS="$XTRA_OBJS /usr/lib/debug/malloc.o" 3822 fi 3823 if test -r /usr/lib/debug/mallocmap.o ; then 3824 XTRA_OBJS="$XTRA_OBJS /usr/lib/debug/mallocmap.o" 3825 fi 3826fi 3827AC_SUBST(XTRA_OBJS) 3828 3829if test "x$XTRA_LIBS" = "x"; then 3830 XTRA_LIBS="$LIBS" 3831 dnl minor cleanup 3832 XTRA_LIBS=`echo $XTRA_LIBS | sed -e "s/ */ /g"` 3833 LIBS='' 3834fi 3835AC_SUBST(XTRA_LIBS) 3836 3837AC_SUBST(SQUID_CFLAGS) 3838AC_SUBST(SQUID_CXXFLAGS) 3839 3840AC_ARG_VAR([BUILDCXXFLAGS],[C++ compiler flags for building compile-time tools. e.g. cf_gen]) 3841if test "x$BUILDCXXFLAGS" = "x"; then 3842 # if we are NOT cross-compiling, use the default build flags for cf_gen and friends 3843 # otherwise rely on the user-provided value 3844 if test "x$squid_cv_check_marchnative" = "xyes"; then 3845 # always valid for the Build compiler. 3846 BUILDCXXFLAGS="-march=native" 3847 fi 3848 BUILDCXXFLAGS="$BUILDCXXFLAGS $CXXFLAGS" 3849fi 3850AC_SUBST(BUILDCXXFLAGS) 3851 3852AC_MSG_NOTICE([BUILD LIBRARIES: $LIBS]) 3853AC_MSG_NOTICE([BUILD EXTRA LIBRARIES: $XTRA_LIBS]) 3854AC_MSG_NOTICE([BUILD OBJECTS: $OBJS]) 3855AC_MSG_NOTICE([BUILD EXTRA OBJECTS: $XTRA_OBJS]) 3856AC_MSG_NOTICE([BUILD C FLAGS: $CFLAGS]) 3857AC_MSG_NOTICE([BUILD EXTRA C FLAGS: $SQUID_CFLAGS]) 3858AC_MSG_NOTICE([BUILD C++ FLAGS: $CXXFLAGS]) 3859AC_MSG_NOTICE([BUILD EXTRA C++ FLAGS: $SQUID_CXXFLAGS]) 3860AC_MSG_NOTICE([BUILD Tools C++ FLAGS: $BUILDCXXFLAGS]) 3861 3862dnl Clean up after OSF/1 core dump bug 3863rm -f core 3864 3865AC_CONFIG_FILES([ 3866 Makefile 3867 compat/Makefile 3868 contrib/Makefile 3869 doc/Makefile 3870 doc/manuals/Makefile 3871 doc/release-notes/Makefile 3872 errors/Makefile 3873 icons/Makefile 3874 lib/Makefile 3875 lib/libTrie/Makefile 3876 lib/libTrie/test/Makefile 3877 lib/ntlmauth/Makefile 3878 lib/profiler/Makefile 3879 lib/rfcnb/Makefile 3880 lib/smblib/Makefile 3881 lib/snmplib/Makefile 3882 scripts/Makefile 3883 src/Makefile 3884 src/acl/Makefile 3885 src/acl/external/Makefile 3886 src/acl/external/AD_group/Makefile 3887 src/acl/external/delayer/Makefile 3888 src/acl/external/eDirectory_userip/Makefile 3889 src/acl/external/file_userip/Makefile 3890 src/acl/external/kerberos_ldap_group/Makefile 3891 src/acl/external/LDAP_group/Makefile 3892 src/acl/external/LM_group/Makefile 3893 src/acl/external/session/Makefile 3894 src/acl/external/SQL_session/Makefile 3895 src/acl/external/unix_group/Makefile 3896 src/acl/external/wbinfo_group/Makefile 3897 src/acl/external/time_quota/Makefile 3898 src/adaptation/Makefile 3899 src/adaptation/icap/Makefile 3900 src/adaptation/ecap/Makefile 3901 src/anyp/Makefile 3902 src/auth/Makefile 3903 src/auth/basic/Makefile 3904 src/auth/basic/DB/Makefile 3905 src/auth/basic/fake/Makefile 3906 src/auth/basic/getpwnam/Makefile 3907 src/auth/basic/LDAP/Makefile 3908 src/auth/basic/NCSA/Makefile 3909 src/auth/basic/NIS/Makefile 3910 src/auth/basic/PAM/Makefile 3911 src/auth/basic/POP3/Makefile 3912 src/auth/basic/RADIUS/Makefile 3913 src/auth/basic/SASL/Makefile 3914 src/auth/basic/SMB/Makefile 3915 src/auth/basic/SMB_LM/Makefile 3916 src/auth/basic/SSPI/Makefile 3917 src/auth/digest/Makefile 3918 src/auth/digest/eDirectory/Makefile 3919 src/auth/digest/file/Makefile 3920 src/auth/digest/LDAP/Makefile 3921 src/auth/negotiate/Makefile 3922 src/auth/negotiate/kerberos/Makefile 3923 src/auth/negotiate/SSPI/Makefile 3924 src/auth/negotiate/wrapper/Makefile 3925 src/auth/ntlm/Makefile 3926 src/auth/ntlm/fake/Makefile 3927 src/auth/ntlm/SMB_LM/Makefile 3928 src/auth/ntlm/SSPI/Makefile 3929 src/base/Makefile 3930 src/clients/Makefile 3931 src/comm/Makefile 3932 src/dns/Makefile 3933 src/DiskIO/Makefile 3934 src/DiskIO/AIO/Makefile 3935 src/DiskIO/Blocking/Makefile 3936 src/DiskIO/DiskDaemon/Makefile 3937 src/DiskIO/DiskThreads/Makefile 3938 src/DiskIO/IpcIo/Makefile 3939 src/DiskIO/Mmapped/Makefile 3940 src/esi/Makefile 3941 src/eui/Makefile 3942 src/format/Makefile 3943 src/fs/Makefile 3944 src/ftp/Makefile 3945 src/helper/Makefile 3946 src/http/Makefile 3947 src/http/one/Makefile 3948 src/http/url_rewriters/Makefile 3949 src/http/url_rewriters/fake/Makefile 3950 src/http/url_rewriters/LFS/Makefile 3951 src/icmp/Makefile 3952 src/ident/Makefile 3953 src/ip/Makefile 3954 src/ipc/Makefile 3955 src/log/Makefile 3956 src/log/DB/Makefile 3957 src/log/file/Makefile 3958 src/mem/Makefile 3959 src/mgr/Makefile 3960 src/parser/Makefile 3961 src/repl/Makefile 3962 src/sbuf/Makefile 3963 src/security/Makefile 3964 src/security/cert_generators/Makefile 3965 src/security/cert_generators/file/Makefile 3966 src/security/cert_validators/Makefile 3967 src/security/cert_validators/fake/Makefile 3968 src/servers/Makefile 3969 src/snmp/Makefile 3970 src/ssl/Makefile 3971 src/store/Makefile 3972 src/store/id_rewriters/Makefile 3973 src/store/id_rewriters/file/Makefile 3974 test-suite/Makefile 3975 tools/Makefile 3976 tools/apparmor/Makefile 3977 tools/helper-mux/Makefile 3978 tools/purge/Makefile 3979 tools/squidclient/Makefile 3980 tools/systemd/Makefile 3981 tools/sysvinit/Makefile 3982]) 3983 3984# must configure libltdl subdir unconditionally for "make distcheck" to work 3985#AC_CONFIG_SUBDIRS(libltdl) 3986 3987AC_OUTPUT 3988