]> git.ipfire.org Git - thirdparty/squid.git/blame - configure.in
AutoDocs: fix some documentation macro errors.
[thirdparty/squid.git] / configure.in
CommitLineData
2877b8a9 1dnl Configuration input file for Squid
090089c4 2dnl
262a0e14 3dnl $Id$
090089c4 4dnl
090089c4 5dnl
6dnl
62979ab1 7AC_INIT([Squid Web Proxy],[3.HEAD-BZR],[http://www.squid-cache.org/bugs/],[squid])
d966027f 8AC_PREREQ(2.61)
62979ab1 9AC_CONFIG_HEADERS([include/autoconf.h])
71b12d7c 10AC_CONFIG_AUX_DIR(cfgaux)
8d9ce05e 11AC_CONFIG_SRCDIR([src/main.cc])
189f1e66 12AM_INIT_AUTOMAKE([tar-ustar nostdinc])
c2720d44 13AC_REVISION($Revision$)dnl
a2794549 14AC_PREFIX_DEFAULT(/usr/local/squid)
246d7ffc 15AM_MAINTAINER_MODE
a2794549 16
63e02610 17PRESET_CFLAGS="$CFLAGS"
18PRESET_LDFLAGS="$LDFLAGS"
19
a2794549 20dnl Set default LDFLAGS
21if test -z "$LDFLAGS"; then
22 LDFLAGS="-g"
23fi
24
a2794549 25dnl Check for GNU cc
26AC_PROG_CC
e6c4cdd6 27AM_PROG_CC_C_O
29b8d8d6 28AC_PROG_CXX
62979ab1 29AC_LANG([C++])
88d50a22 30AC_CANONICAL_HOST
3e7b6055 31
d1f95b42
AJ
32dnl Make the squid top srcdir available to sub-packages as --with-squid=PATH
33new_configure_args="$ac_configure_args --with-squid=$ac_abs_confdir"
34ac_configure_args="$new_configure_args"
35
36
f7baea2d 37use_loadable_modules=1
3e7b6055
AR
38AC_MSG_CHECKING(whether to use loadable modules)
39AC_ARG_ENABLE(loadable-modules,
62979ab1 40 AS_HELP_STRING([--disable-loadable-modules],[do not support loadable modules]) ,
3e7b6055
AR
41 [
42 case "${enableval}" in
43 yes) use_loadable_modules=yes ;;
44 no) use_loadable_modules=no ;;
45 *) AC_MSG_ERROR(bad value ${enableval} for --disable-loadable-modules) ;;
46 esac
47 AC_MSG_RESULT([$use_loadable_modules, explicitly])
48 ],
49 [
50 use_loadable_modules=yes;
51 AC_MSG_RESULT([$use_loadable_modules, implicitly])
52 ]
a7e513e9 53)
3e7b6055
AR
54
55AM_CONDITIONAL(USE_LOADABLE_MODULES, test $use_loadable_modules = yes)
56
57if test $use_loadable_modules = yes;
58then
59 AC_DEFINE(USE_LOADABLE_MODULES, 1, [Support Loadable Modules])
60 AC_ENABLE_SHARED
61else
62 AC_DISABLE_SHARED
63fi
64
65AC_LIBTOOL_DLOPEN
66if test $use_loadable_modules = yes;
67then
68 AC_LIBLTDL_CONVENIENCE(lib/libLtdl)
69fi
645aa936 70AC_PROG_LIBTOOL
f5691f9c 71AC_LTDL_DLLIB
3e7b6055
AR
72
73# Do we need these unconditionally for "make distcheck" to work?
74AC_SUBST(INCLTDL)
75AC_SUBST(LIBLTDL)
76
77if test $use_loadable_modules = yes;
78then
79 # Why is this needed? Should not libtool's AC_LIBTOOL_DLOPEN do that?
80 LIBADD_DL=${lt_cv_dlopen_libs}
81 AC_SUBST([LIBADD_DL])
82fi
83
645aa936 84AC_PROG_RANLIB
88d50a22 85
a2794549 86
26675bf4 87CRYPTLIB=''
00fa2c12 88REGEXLIB='' # -lregex
cc937513 89# LIBREGEX='' # libregex.a
090089c4 90
a2794549 91dnl find out the exe extension for this platform. If it's not empty, use it for CGI's as well.
92AC_EXEEXT
93AC_OBJEXT
94
95if test -z "$EXEEXT"; then
96 CGIEXT=".cgi"
97else
7aeb8001 98 # automake automatically adds .exe when installing binaries
99 CGIEXT=""
a2794549 100fi
7aeb8001 101AC_SUBST(CGIEXT)
a2794549 102
0e6d05ef 103dnl this should be expanded to a list of platform sensible support requirements.
104dnl (adding an option like --enable-cygwin-support doesn't make sense :]) - R Collins 2001
df087e68 105case "$host_os" in
4b26fae9 106mingw|mingw32|cygwin|cygwin32)
a2794549 107 AM_CONDITIONAL(ENABLE_WIN32SPECIFIC, true)
df087e68 108 ;;
109*)
a2794549 110 AM_CONDITIONAL(ENABLE_WIN32SPECIFIC, false)
df087e68 111 ;;
112esac
df087e68 113
4b26fae9 114case "$host_os" in
115mingw|mingw32)
116 AC_PATH_PROG(WIN32_PSAPI, psapi.dll, none)
117 CFLAGS="$CFLAGS -mthreads"
118 CXXFLAGS="$CXXFLAGS -mthreads"
119 if test "$ac_cv_path_WIN32_PSAPI" = "none"; then
eed82608
AJ
120 AC_MSG_NOTICE([PSAPI.DLL is recommended to run Squid on Windows NT Platform])
121 AC_MSG_NOTICE([Please see PSAPI.DLL section on doc/win32-relnotes.html.])
4b26fae9 122 else
123 AC_DEFINE(HAVE_WIN32_PSAPI,1,[Define if you have PSAPI.DLL on Windows systems])
124 LIBS="$LIBS -lpsapi"
125 fi
790ebe36 126 MINGW_LIBS="-lmingwex"
b5d712b5 127 AM_CONDITIONAL(USE_IPC_WIN32, true)
790ebe36 128 AC_SUBST(MINGW_LIBS)
4b26fae9 129 ;;
b5d712b5 130*)
131 AM_CONDITIONAL(USE_IPC_WIN32, false)
132 ;;
4b26fae9 133esac
134
a26bdc75 135if test -z "$CACHE_HTTP_PORT"; then
136 CACHE_HTTP_PORT="3128"
137fi
138if test -z "$CACHE_ICP_PORT"; then
139 CACHE_ICP_PORT="3130"
140fi
a26bdc75 141
f4aaf39c 142dnl Substitutions
6a9f6389 143AC_DEFINE_UNQUOTED(CACHE_HTTP_PORT, $CACHE_HTTP_PORT,
144[What default TCP port to use for HTTP listening?])
58c1507a 145AC_SUBST(CACHE_HTTP_PORT)
6a9f6389 146AC_DEFINE_UNQUOTED(CACHE_ICP_PORT, $CACHE_ICP_PORT,
147[What default UDP port to use for ICP listening?])
f5e5c4cf 148AC_SUBST(CACHE_ICP_PORT)
090089c4 149
6a9f6389 150AC_DEFINE_UNQUOTED(CONFIG_HOST_TYPE, "$host",[Host type from configure])
30a4f2a8 151
6a9f6389 152AC_DEFINE_UNQUOTED(SQUID_CONFIGURE_OPTIONS, "$ac_configure_args", [configure command line used to configure Squid])
090089c4 153
5483d916 154CACHE_EFFECTIVE_USER="nobody"
155AC_ARG_WITH(default-user,
62979ab1 156 AS_HELP_STRING([--with-default-user=USER],[System user account for squid permissions. Default: nobody]),
5483d916 157 [ CACHE_EFFECTIVE_USER="$withval" ]
158)
159AC_SUBST(CACHE_EFFECTIVE_USER)
160
c8d2dc9b
AJ
161DEFAULT_LOG_DIR="$localstatedir/logs"
162AC_ARG_WITH(logdir,
62979ab1 163 AS_HELP_STRING([--with-logdir=PATH],[Default location for squid logs. default: $DEFAULT_LOG_DIR]),
c8d2dc9b
AJ
164 [ case $withval in
165 yes|no)
166 AC_MSG_ERROR( --with-logdir requires a directory PATH. --with-logdir=PATH )
167 ;;
168 *)
169 DEFAULT_LOG_DIR="$withval"
170 ;;
171 esac
172 ]
173)
174AC_SUBST(DEFAULT_LOG_DIR)
175
a7f6af35
AJ
176DEFAULT_PIDFILE="$localstatedir/squid.pid"
177AC_ARG_WITH(pidfile,
62979ab1 178 AS_HELP_STRING([--with-pidfile=PATH],[Default location for squid PID file. default: $DEFAULT_PIDFILE]),
a7f6af35
AJ
179 [ case $withval in
180 yes|no)
181 AC_MSG_ERROR( --with-pidfile requires a file PATH. --with-pidfile=PATH )
182 ;;
183 *)
184 DEFAULT_PIDFILE="$withval"
185 ;;
186 esac
187 ]
188)
189AC_SUBST(DEFAULT_PIDFILE)
190
6ad85e8a 191dnl Gerben Wierda <Gerben_Wierda@RnA.nl>
192case "$host" in
193 mab-next-nextstep3)
194 CC="$CC -arch m68k -arch i486 -arch hppa -arch sparc"
195 ;;
196esac
197
4c43504f 198if test "$GCC" = "yes"; then
199 GCCVER=`$CC -v 2>&1 | awk '$2 == "version" {print $3}'`
200 GCCVER2=`echo $GCCVER | awk '{print $1 * 100}'`
201 case "$host" in
202 i386-*-freebsd*)
203 if test $GCCVER2 -lt 300 ; then
eed82608 204 AC_MSG_FAILURE([GCC $GCCVER causes a coredump on $host. Try a more recent GCC version])
dd81cb63 205 sleep 5
4c43504f 206 fi
207 ;;
208 esac
209 unset GCCVER
210 unset GCCVER2
211fi
212
30a4f2a8 213dnl Set Default CFLAGS
214if test -z "$PRESET_CFLAGS"; then
215 if test "$GCC" = "yes"; then
216 case "$host" in
97b12a5b 217 *-sun-sunos*)
30a4f2a8 218 # sunos has too many warnings for this to be useful
219 # motorola too
220 ;;
97b12a5b 221 *m88k*)
222 # Motorola cc/ld does not like -02 but is ok on -O
223 CFLAGS=`echo $CFLAGS | sed -e 's/-O[0-9]/-O/'`
224 ;;
30a4f2a8 225 *)
63e02610 226 CFLAGS="-Wall $CFLAGS"
30a4f2a8 227 ;;
228 esac
81a820c6 229 else
230 case "$host" in
c415c128 231 *mips-sgi-irix6.*)
81a820c6 232 # suggested by Rafael Seidl <rafaels@cthulhu.engr.sgi.com>
63e02610 233 CFLAGS="-O3 -OPT:Olimit=0:space=OFF \
776b0191 234 -woff 1009,1014,1110,1116,1183,1185,1188,1204,1230,1233,1355 \
81a820c6 235 -Wl,-woff,85,-woff,84,-woff,134 \
63e02610 236 -nostdinc -I/usr/include -D_BSD_SIGNALS $CFLAGS"
776b0191 237 CXXFLAGS="-O3 -OPT:Olimit=0:space=OFF \
238 -woff 1009,1014,1110,1116,1183,1185,1188,1204,1230,1233,1355 \
239 -Wl,-woff,85,-woff,84,-woff,134 \
240 -nostdinc -I/usr/include -D_BSD_SIGNALS $CXXFLAGS"
81a820c6 241 ;;
e8f5fb18 242 alpha-dec-osf4.*)
553c24ae 243 # Mogul says DEC compilers take both -g and -O2
b6a2f15e 244 CFLAGS=`echo $CFLAGS | sed -e 's/-g/-g3/'`
63e02610 245 CFLAGS="-O2 $CFLAGS"
553c24ae 246 ;;
81a820c6 247 *)
248 ;;
249 esac
30a4f2a8 250 fi
30a4f2a8 251fi
252
d2e3605e 253dnl set squid required flags
254if test "$GCC" = "yes"; then
9f68fb10 255dnl Guido Serassio (serassio@squid-cache.org) 20070811
256dnl Using the latest MinGW (gcc 3.4.5 + mingw-runtime 3.13) cannot build with
0a13cc9d 257dnl -Werror -Wmissing-prototypes -Wmissing-declarations
9f68fb10 258dnl TODO: check if the problem will be present in any other newer MinGW release.
259 case "$host_os" in
260 mingw|mingw32)
0a13cc9d 261 SQUID_CFLAGS="-Wall -Wpointer-arith -Wwrite-strings -Wcomments"
9f68fb10 262 ;;
263 *)
264 SQUID_CFLAGS="-Werror -Wall -Wpointer-arith -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wcomments"
265 ;;
266 esac
267 SQUID_CXXFLAGS="-Werror -Wall -Wpointer-arith -Wwrite-strings -Wcomments"
d2e3605e 268else
9f68fb10 269 SQUID_CFLAGS=
270 SQUID_CXXFLAGS=
d2e3605e 271fi
272AC_SUBST(SQUID_CFLAGS)
273AC_SUBST(SQUID_CXXFLAGS)
274
d7c59e37 275AC_TEST_CHECKFORHUGEOBJECTS
276SQUID_CXXFLAGS="$SQUID_CXXFLAGS $HUGE_OBJECT_FLAG"
277
30a4f2a8 278dnl Set LDFLAGS
279if test -z "$PRESET_LDFLAGS"; then
280 if test "$GCC" = "yes"; then
281 case "$host" in
63e02610 282 *mips-sgi-irix6.*)
283 # Silence Linker warnings 84, 85 and 134
284 LDFLAGS="-Wl,-woff,85 -Wl,-woff,84 -Wl,-woff,134 $LDFLAGS"
285 ;;
30a4f2a8 286 *)
287 # nothing
288 ;;
289 esac
81a820c6 290 else
291 case "$host" in
63e02610 292 *)
293 # nothing
81a820c6 294 ;;
295 esac
30a4f2a8 296 fi
297fi
2060fa9a 298
6c0c04db 299SquidInline="yes"
83079644 300
301AC_ARG_ENABLE(optimizations,
62979ab1 302 AS_HELP_STRING([--disable-optimizations],[Don't compile Squid with compiler optimizations enabled.
a2f6a96c
FC
303 Optimization is good for production builds, but not
304 good for debugging. During development, use
305 --disable-optimizations to reduce compilation times
306 and allow easier debugging. This option implicitly
307 also enabled --disable-inline]),
83079644 308[ if test "$enableval" = "no" ; then
eed82608 309 AC_MSG_NOTICE([Disabling compiler optimizations (-O flag)])
83079644 310 CFLAGS="`echo $CFLAGS | sed -e 's/-O[[0-9]]*//'`"
311 CXXFLAGS="`echo $CXXFLAGS | sed -e 's/-O[[0-9]]*//'`"
312 SquidInline="no"
313 fi
314])
315
6c0c04db 316AC_ARG_ENABLE(inline,
62979ab1 317 AS_HELP_STRING([--disable-inline],[Don't compile trivial methods as inline. Squid
a2f6a96c
FC
318 is coded with much of the code able to be inlined.
319 Inlining is good for production builds, but not
320 good for development. During development, use
321 --disable-inline to reduce compilation times and
322 allow incremental builds to be quick. For
323 production builds, or load tests, use
324 --enable-inline to have squid make all trivial
325 methods inlinable by the compiler.]),
6c0c04db 326[ if test "$enableval" = "no" ; then
327 SquidInline="no"
328 fi
329])
330
331if test "$SquidInline" = "yes" ; then
332 AC_DEFINE(_SQUID_INLINE_, inline, [Keyword used by squid for inlining methods])
333 AC_DEFINE(_USE_INLINE_,, [Include inline methods into header file])
334else
eed82608 335 AC_MSG_NOTICE([Inlining optimization disabled])
6c0c04db 336 AC_DEFINE(_SQUID_INLINE_,, [Keyword used by squid for inlining methods])
337fi
338
fa80a8ef 339AC_ARG_ENABLE(debug-cbdata,
62979ab1 340 AS_HELP_STRING([--enable-debug-cbdata],[Provide some debug information in cbdata]),
fa80a8ef 341[ if test "$enableval" = "yes" ; then
eed82608 342 AC_MSG_NOTICE([cbdata debugging enabled])
6a9f6389 343 AC_DEFINE(CBDATA_DEBUG,1,[Enable for cbdata debug information])
fa80a8ef 344 fi
345])
346
c9267250
AJ
347dnl Nasty hack to get autoconf 2.64 on Linux to run.
348dnl all other uses of RUN_IFELSE are wrapped inside CACHE_CHECK which breaks on 2.64
349AC_RUN_IFELSE([AC_LANG_SOURCE([[ int main(int argc, char **argv) { return 0; } ]])],[],[],[])
350
0961c811 351dnl This is a developer only option.. developers know how to set defines
352dnl
353dnl AC_ARG_ENABLE(xmalloc-debug,
354dnl [ --enable-xmalloc-debug Do some simple malloc debugging],
355dnl [ if test "$enableval" = "yes" ; then
eed82608 356dnl AC_MSG_NOTICE([malloc debugging enabled])
6a9f6389 357dnl AC_DEFINE(XMALLOC_DEBUG,1,[Define to do simple malloc debugging])
0961c811 358dnl fi
359dnl ])
360
361dnl This is a developer only option.. developers know how to set defines
362dnl
363dnl AC_ARG_ENABLE(xmalloc-debug-trace,
364dnl [ --enable-xmalloc-debug-trace
365dnl Detailed trace of memory allocations],
366dnl [ if test "$enableval" = "yes" ; then
eed82608 367dnl AC_MSG_NOTICE([malloc debug trace enabled])
6a9f6389 368dnl AC_DEFINE(XMALLOC_TRACE,1,[Define to have a detailed trace of memory allocations])
369dnl AC_DEFINE(XMALLOC_DEBUG,1)
0961c811 370dnl fi
371dnl ])
e5f4e1b0 372
d9180414 373AC_ARG_ENABLE(xmalloc-statistics,
62979ab1 374 AS_HELP_STRING([--enable-xmalloc-statistics],[Show malloc statistics in status page]),
e5f4e1b0 375[ if test "$enableval" = "yes" ; then
eed82608 376 AC_MSG_NOTICE([malloc statistics enabled])
6a9f6389 377 AC_DEFINE(XMALLOC_STATISTICS,1,[Define to have malloc statistics])
e5f4e1b0 378 fi
379])
380
cd748f27 381AC_ARG_ENABLE(async-io,
62979ab1 382 AS_HELP_STRING([--enable-async-io[=N_THREADS]],[Shorthand for "--with-aufs-threads=N_THREADS --with-pthreads
b0e7900f 383 --enable-storeio=ufs,aufs"]),
cd748f27 384[ case $enableval in
9bc73deb 385 yes)
69144041 386 with_pthreads="yes"
cd748f27 387 STORE_MODULES="ufs aufs"
9bc73deb 388 ;;
389 no)
9bc73deb 390 ;;
391 *)
f85c88f3 392 aufs_io_threads=$enableval
69144041 393 with_pthreads="yes"
cd748f27 394 STORE_MODULES="ufs aufs"
9bc73deb 395 ;;
396 esac
397])
398
f85c88f3 399AC_ARG_WITH(aufs-threads,
62979ab1 400 AS_HELP_STRING([--with-aufs-threads=N_THREADS],[Tune the number of worker threads for the aufs object store.]),
a3310b77 401[ case $withval in
402 [[0-9]]*)
403 aufs_io_threads=$withval
404 ;;
405 *)
8b0d8e31 406 AC_MSG_ERROR(--with-aufs-threads expects a numeric argument)
a3310b77 407 ;;
408 esac
409])
f85c88f3 410if test "$aufs_io_threads"; then
eed82608 411 AC_MSG_NOTICE([With $aufs_io_threads aufs threads])
6a9f6389 412 AC_DEFINE_UNQUOTED(AUFS_IO_THREADS,$aufs_io_threads,
413 [Defines how many threads aufs uses for I/O])
cd748f27 414fi
415
8154dd82 416AC_ARG_WITH(dl,
62979ab1 417 AS_HELP_STRING([--with-dl],[Use dynamic linking]))
8154dd82 418if test "$with_dl" = "yes"; then
eed82608 419 AC_MSG_NOTICE([With dl])
8154dd82 420fi
f85c88f3 421
2513178d
AJ
422AC_ARG_ENABLE(disk-io,
423 AS_HELP_STRING([--enable-disk-io="list of modules"],[Build support for the list of disk I/O modules.
4910f49d 424 Set without a value or omitted, all available modules will be built.
2513178d
AJ
425 See src/DiskIO for a list of available modules, or
426 Programmers Guide section on DiskIO
427 for details on how to build your custom disk module]),
428[ case $enableval in
429 yes)
430 for dir in $srcdir/src/DiskIO/*; do
431 module="`basename $dir`"
432 if test -d "$dir" && test "$module" != CVS; then
433 AC_MSG_NOTICE([Autodetected $module DiskIO module])
434 MAYBE_DISK_MODULES="$MAYBE_DISK_MODULES $module"
435 fi
436 done
437 AC_DEFINE(USE_DISKIO,1,[DiskIO modules are expected to be available.])
438 ;;
439 no)
440 AC_DEFINE(USE_DISKIO,0,[DiskIO modules are expected to be available.])
441 ;;
442 *)
443 MAYBE_DISK_MODULES=" `echo $enableval| sed -e 's/,/ /g;s/ */ /g'` "
444 AC_DEFINE(USE_DISKIO,1,[DiskIO modules are expected to be available.])
445 ;;
446 esac
447],
448[ if test -z "$MAYBE_DISK_MODULES"; then
4910f49d
AJ
449 AC_MSG_NOTICE([Enabling all available DiskIO modules (default)...])
450 for dir in $srcdir/src/DiskIO/*; do
451 module="`basename $dir`"
452 if test -d "$dir" && test "$module" != CVS; then
453 AC_MSG_NOTICE([Autodetected $module DiskIO module])
454 MAYBE_DISK_MODULES="$MAYBE_DISK_MODULES $module"
455 fi
456 done
457 AC_DEFINE(USE_DISKIO,1,[DiskIO modules are expected to be available.])
458fi ])
2513178d
AJ
459
460dnl Some autoconf.h defines we might enable later...
461AC_DEFINE(USE_DISKIO_AIO, 0, [Whether POSIX AIO support is needed. Automatic])
bceea3dc 462AC_DEFINE(USE_DISKIO_DISKTHREADS, 0, [Whether pthreads support is needed. Automatic])
2513178d
AJ
463USE_AIOPS_WIN32=0
464use_aio=
bceea3dc 465use_diskthreads=
2513178d
AJ
466
467dnl Setup the module paths etc.
468FOUND_DISKIO_AIO=
469FOUND_DISKIO_BLOCKING=
470FOUND_DISKIO_DISKDAEMON=
471FOUND_DISKIO_DISKTHREADS=
472DISK_LIBS=
473DISK_MODULES=
474DISK_LINKOBJS=
475for module in $MAYBE_DISK_MODULES none; do
476 if test "$module" = "none"; then
477 continue
478 fi
479 if ! test -d $srcdir/src/DiskIO/$module; then
480 AC_MSG_ERROR(disk-io $module does not exist)
481 fi
482 case "$module" in
483 DiskDaemon)
484 if test "$FOUND_DISKIO_DISKDAEMON" = "yes" ; then
485 AC_MSG_ERROR([DiskIO DiskDaemon module listed twice.])
486 fi
487 FOUND_DISKIO_DISKDAEMON="yes"
6312592e 488 AC_MSG_NOTICE([Enabling DiskDaemon DiskIO module])
2513178d
AJ
489 DISK_LIBS="$DISK_LIBS libDiskDaemon.a"
490 DISK_MODULES="$DISK_MODULES DiskDaemon"
491 DISK_PROGRAMS="$DISK_PROGRAMS DiskIO/DiskDaemon/diskd"
492 DISK_LINKOBJS="$DISK_LINKOBJS DiskIO/DiskDaemon/DiskDaemonDiskIOModule.o"
493 ;;
494 DiskThreads)
495 if test "$FOUND_DISKIO_DISKTHREADS" = "yes" ; then
496 AC_MSG_ERROR([DiskIO DiskThreads module listed twice.])
497 fi
498 FOUND_DISKIO_DISKTHREADS="yes"
6312592e
AJ
499 use_diskthreads="yes"
500 LIBPTHREADS=
501 SAVE_SQUID_CFLAGS="$SQUID_CFLAGS"
502 SAVE_SQUID_CXXFLAGS="$SQUID_CXXFLAGS"
f62a607f 503 AC_ARG_WITH(pthreads,AS_HELP_STRING([--without-pthreads],[Disable POSIX Threads]))
6312592e
AJ
504 if test "$with_pthreads" != "no"; then
505 dnl TODO: this needs to be extended to handle more systems and better
506 dnl REF: http://www.openldap.org/lists/openldap-bugs/200006/msg00070.html
507 dnl REF: http://autoconf-archive.cryp.to/acx_pthread.html
508 case "$host" in
509 mingw|mingw32)
510 USE_AIOPS_WIN32=1
511 AC_MSG_NOTICE([Windows threads support automatically enabled])
512 ;;
513 i386-unknown-freebsd*)
514 SQUID_CFLAGS="$SQUID_CFLAGS -D_REENTRANT"
515 SQUID_CXXFLAGS="$SQUID_CXXFLAGS -D_REENTRANT"
516 if test "$GCC" = "yes" ; then
517 if test -z "$PRESET_LDFLAGS"; then
518 LDFLAGS="$LDFLAGS -pthread"
519 fi
520 fi
521 ;;
522 *-solaris2.*)
523 if test "$GCC" = "yes" ; then
524 SQUID_CFLAGS="$SQUID_CFLAGS -D_REENTRANT -pthreads"
525 SQUID_CXXFLAGS="$SQUID_CXXFLAGS -D_REENTRANT -pthreads"
526 AC_CHECK_LIB(pthread, main,[LIBPTHREADS="-lpthread"],
527 [ AC_MSG_NOTICE(pthread library required but cannot be found.)
528 use_diskthreads="no"
529 ])
530 else
531 dnl test for -lpthread first. libc version is a stub apparently on Solaris.
532 SQUID_CFLAGS="$SQUID_CFLAGS -D_REENTRANT -lpthread"
533 SQUID_CXXFLAGS="$SQUID_CXXFLAGS -D_REENTRANT -lpthread"
534 AC_CHECK_LIB(pthread, main,[LIBPTHREADS="-lpthread"],
535 [ SQUID_CFLAGS="$SAVE_SQUID_CFLAGS -D_REENTRANT -lpthread -mt"
536 SQUID_CXXFLAGS="$SAVE_SQUID_CXXFLAGS -D_REENTRANT -lpthread -mt"
537 AC_CHECK_LIB(pthread, main,[LIBPTHREADS="-lpthread"],
538 [ AC_MSG_NOTICE(pthread library required but cannot be found.)
539 use_diskthreads="no"
540 ])
541 ])
542 fi
543 ;;
544 *)
545 SQUID_CFLAGS="$SQUID_CFLAGS -D_REENTRANT"
546 SQUID_CXXFLAGS="$SQUID_CXXFLAGS -D_REENTRANT"
547 AC_CHECK_LIB(pthread, main,[DISK_LIBS="$DISK_LIBS -lpthread"],
548 [ AC_MSG_NOTICE(pthread library required but cannot be found.)
549 use_diskthreads="no"
550 ])
551 ;;
552 esac
2513178d 553 else
6312592e
AJ
554 AC_MSG_NOTICE([Native pthreads support manually disabled.])
555 use_diskthreads="no"
2513178d 556 fi
6312592e
AJ
557 if test "$use_diskthreads" = "yes" ; then
558 AC_DEFINE(USE_DISKIO_DISKTHREADS, 1, [Whether pthreads support is needed. Automatic])
2513178d 559 AC_MSG_NOTICE([Enabling DiskThreads DiskIO module])
6312592e 560 DISK_LIBS="$DISK_LIBS $LIBPTHREADS libDiskThreads.a"
2513178d
AJ
561 DISK_MODULES="$DISK_MODULES DiskThreads"
562 DISK_LINKOBJS="$DISK_LINKOBJS DiskIO/DiskThreads/DiskThreadsDiskIOModule.o"
563 else
6312592e
AJ
564 AC_DEFINE(USE_DISKIO_DISKTHREADS, 0, [Whether pthreads support is needed. Automatic])
565 AC_MSG_NOTICE([Native pthreads support disabled. DiskThreads module automaticaly disabled.])
566 SQUID_CFLAGS="$SAVE_SQUID_CFLAGS"
567 SQUID_CXXFLAGS="$SAVE_SQUID_CXXFLAGS"
2513178d
AJ
568 fi
569 ;;
570
571 AIO)
572 if test "$FOUND_DISKIO_AIO" = "yes" ; then
573 AC_MSG_ERROR([DiskIO AIO module listed twice.])
574 fi
575 FOUND_DISKIO_AIO="yes"
576 dnl Check for POSIX AIO availability
577 use_aio="yes"
578 LIBAIO=
579 AC_ARG_WITH(aio, AS_HELP_STRING([--without-aio],[Do not use POSIX AIO. Default: auto-detect]))
580 if test "$with_aio" != "no"; then
581 have_aio_header=no
582 AC_CHECK_HEADERS(aio.h,[have_aio_header=yes])
583 dnl On some systems POSIX AIO functions are in librt
584 dnl On some systems POSIX AIO functions are in libaio
585 AC_CHECK_LIB(rt,aio_read,[LIBAIO="-lrt"],AC_CHECK_LIB(aio,aio_read,[LIBAIO="-laio"],[]))
586 dnl Enable AIO if the library and headers are found
587 if test "$LIBAIO" != "" && test "$have_aio_header" = "yes"; then
588 AC_MSG_NOTICE([Native POSIX AIO support detected.])
589 use_aio="yes"
590 else
591 dnl Windows does things differently. We provide wrappers.
592 dnl TODO: Windows really needs its own DiskIO module or its Overlaped IO
593 case "$host_os" in
594 mingw|mingw32)
595 use_aio="yes"
596 AC_MSG_NOTICE([Windows being built. Maybe-enable POSIX AIO.])
597 ;;
598 *)
599 AC_MSG_NOTICE([Native POSIX AIO support not detected. AIO automatically disabled.])
600 use_aio="no"
601 ;;
602 esac
603 fi
604 else
605 AC_MSG_NOTICE([POSIX AIO support manually disabled.])
606 use_aio="no"
607 fi
608 dnl Use the POSIX AIO pieces if we actually need them.
609 if test "$use_aio" = "yes" ; then
610 AC_DEFINE(USE_DISKIO_AIO, 1, [Whether POSIX AIO support is needed. Automatic])
611 DISK_MODULES="$DISK_MODULES AIO"
612 DISK_LIBS="$DISK_LIBS $LIBAIO libAIO.a"
613 DISK_LINKOBJS="$DISK_LINKOBJS DiskIO/AIO/AIODiskIOModule.o"
614 case "$host_os" in
615 mingw|mingw32)
616 USE_AIO_WIN32=1
617 AC_MSG_NOTICE([Replacing AIO DiskIO module with: Windows overlapped I/O support])
618 ;;
619 *)
620 AC_MSG_NOTICE([Enabling AIO DiskIO module])
621 ;;
622 esac
623 else
624 AC_MSG_NOTICE([AIO DiskIO Module disabled. Missing POSIX AIO support.])
625 fi
626 ;;
627
628 Blocking)
629 if test "$FOUND_DISKIO_BLOCKING" = "yes" ; then
630 AC_MSG_ERROR([DiskIO Blocking module listed twice.])
631 fi
632 FOUND_DISKIO_BLOCKING="yes"
633 AC_MSG_NOTICE([Enabling Blocking DiskIO module])
634 DISK_LIBS="$DISK_LIBS libBlocking.a"
635 DISK_MODULES="$DISK_MODULES Blocking"
636 DISK_LINKOBJS="$DISK_LINKOBJS DiskIO/Blocking/BlockingDiskIOModule.o"
637 ;;
638
639 *)
640 AC_MSG_NOTICE([Enabling $module DiskIO module])
641 DISK_LIBS="$DISK_LIBS lib${module}.a"
642 DISK_MODULES="$DISK_MODULES ${module}"
643 DISK_LINKOBJS="$DISK_LINKOBJS DiskIO/${module}/${module}DiskIOModule.o"
644 ;;
645 esac
646done
647AC_MSG_NOTICE([IO Modules built: $DISK_MODULES])
648AC_SUBST(DISK_MODULES)
649AC_SUBST(DISK_LIBS)
650AC_SUBST(DISK_PROGRAMS)
651AC_SUBST(DISK_LINKOBJS)
652AM_CONDITIONAL([USE_AIOPS_WIN32], [test "$USE_AIOPS_WIN32" = 1])
653AM_CONDITIONAL([USE_AIO_WIN32], [test "$USE_AIO_WIN32" = 1])
654
655
656dnl Check what Storage formats are wanted.
657dnl This version will error out with a message saying why if a required DiskIO is missing.
cd748f27 658AC_ARG_ENABLE(storeio,
62979ab1 659 AS_HELP_STRING([--enable-storeio="list of modules"],[Build support for the list of store I/O modules.
18cc92fb
FC
660 The default is only to build the "ufs" module.
661 See src/fs for a list of available modules, or
662 Programmers Guide section <not yet written>
663 for details on how to build your custom store module]),
cd748f27 664[ case $enableval in
665 yes)
1c690e30 666 for dir in $srcdir/src/fs/*; do
667 module="`basename $dir`"
db263d62 668 if test -d "$dir" && test "$module" != CVS && test "$module" != coss; then
1c690e30 669 STORE_MODULES="$STORE_MODULES $module"
8154dd82 670 fi
cd748f27 671 done
672 ;;
673 no)
674 ;;
1c690e30 675 *)
676 STORE_MODULES="`echo $enableval| sed -e 's/,/ /g;s/ */ /g'`"
cd748f27 677 ;;
678 esac
679],
680[ if test -z "$STORE_MODULES"; then
681 STORE_MODULES="ufs"
682 fi
683])
1c690e30 684if test -n "$STORE_MODULES"; then
3fcdb6b9
AJ
685 dnl ensure that all modules a) exist and b) only include once.
686 STORE_MODULES_FULL=$STORE_MODULES
687 STORE_MODULES=
3fcdb6b9
AJ
688 for module in $STORE_MODULES_FULL; do
689 have_mod=`echo "$STORE_MODULES" | grep "$module"`
690 if test "$have_mod" != ""; then
eed82608 691 AC_MSG_NOTICE([Removing duplicate $module from storeio])
3fcdb6b9
AJ
692 elif test -d $srcdir/src/fs/$module; then
693 STORE_MODULES="$STORE_MODULES $module"
1c690e30 694 else
8b0d8e31 695 AC_MSG_ERROR(storeio $module does not exist)
1c690e30 696 fi
697 done
63d3a8b0 698 for module in $STORE_MODULES_FULL; do
2513178d 699 case "$module" in
cf4158ba
HN
700 coss)
701 echo "WARNING: COSS Support is not stable yet in Squid-3. Please do not use."
702 sleep 10
703 ;;
2513178d 704 esac
63d3a8b0 705 done
eed82608 706 AC_MSG_NOTICE([Store modules built: $STORE_MODULES])
1c690e30 707fi
a2794549 708for fs in $STORE_MODULES none; do
8154dd82 709 case "$fs" in
710 diskd)
2513178d
AJ
711 if ! test "$FOUND_DISKIO_BLOCKING" = "yes" && ! test "$FOUND_DISKIO_DISKDAEMON" = "yes" ; then
712 AC_MSG_ERROR([Storage diskd module requires DiskIO modules: Blocking or DiskDaemon])
713 fi
1c690e30 714 NEED_UFS="true"
8154dd82 715 ;;
716 aufs)
2513178d
AJ
717 if ! test "$FOUND_DISKIO_BLOCKING" = "yes" && ! test "$FOUND_DISKIO_DISKTHREADS" = "yes" ; then
718 AC_MSG_ERROR([Storage diskd module requires DiskIO modules: Blocking or DiskThreads])
719 fi
1c690e30 720 NEED_UFS="true"
8154dd82 721 ;;
722 coss)
2513178d
AJ
723 if ! test "$FOUND_DISKIO_AIO" = "yes"; then
724 AC_MSG_ERROR([COSS requires POSIX AIO which is not available.])
725 fi
3256ae73 726 dnl
727 dnl Automake om MinGW needs explicit exe extension
728 dnl for STORE_TESTS substition
729 dnl
082a5e7a 730 STORE_TESTS="$STORE_TESTS tests/testCoss$EXEEXT"
731 ;;
d3b3ab85 732 ufs)
082a5e7a 733 UFS_FOUND="true"
734 STORE_TESTS="$STORE_TESTS tests/testUfs$EXEEXT"
8154dd82 735 esac
a2794549 736done
d3b3ab85 737
1c690e30 738if test -z "$UFS_FOUND" && test -n "$NEED_UFS"; then
eed82608 739 AC_MSG_NOTICE([Adding UFS, as it contains core logic for diskd and aufs])
3256ae73 740 STORE_MODULES="$STORE_MODULES ufs"
3256ae73 741 dnl
742 dnl Automake om MinGW needs explicit exe extension
743 dnl for STORE_TESTS substition
744 dnl
745 STORE_TESTS="$STORE_TESTS tests/testUfs$EXEEXT"
d3b3ab85 746fi
b66455ff 747
7b5b7ba8
CT
748AH_TEMPLATE(HAVE_FS_UFS, "Define to 1 if ufs filesystem module is build")
749AH_TEMPLATE(HAVE_FS_AUFS, "Define to 1 if aufs filesystem module is build")
750AH_TEMPLATE(HAVE_FS_DISKD, "Define to 1 if diskd filesystem module is build")
751AH_TEMPLATE(HAVE_FS_COSS, "Define to 1 if coss filesystem module is build")
752
753
b66455ff
AR
754dnl got final STORE_MODULES, build library lists
755dnl This list will not be needed when each fs library has its own Makefile
756STORE_LIBS_TO_BUILD=
757dnl File system libraries to link executables with.
758dnl These are the same as STORE_LIBS_TO_BUILD, but with a path
759STORE_LIBS_TO_ADD=
760for fs in $STORE_MODULES; do
7b5b7ba8
CT
761 STORE_LIBS_TO_BUILD="$STORE_LIBS_TO_BUILD lib${fs}.la"
762 STORE_LIBS_TO_ADD="$STORE_LIBS_TO_ADD fs/lib${fs}.la"
763 HAVE_FS_TYPE=HAVE_FS_`echo $fs | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
764 AC_DEFINE_UNQUOTED($HAVE_FS_TYPE, 1)
b66455ff
AR
765done
766
767AC_SUBST(STORE_LIBS_TO_BUILD)
768AC_SUBST(STORE_LIBS_TO_ADD)
082a5e7a 769AC_SUBST(STORE_TESTS)
a2794549 770
24a04df9
AJ
771
772dnl At lest one removal policy is always needed.
773dnl 'lru' removal policy is currently hard-coded by name for tests
774dnl so we must set it as default.
775REPL_POLICIES="lru"
d9180414 776AC_ARG_ENABLE(removal-policies,
62979ab1 777 AS_HELP_STRING([--enable-removal-policies="list of policies"],[Build support for the list of removal policies.
18cc92fb
FC
778 The default is only to build the "lru" module.
779 See src/repl for a list of available modules, or
780 Programmers Guide section 9.9 for details on how
781 to build your custom policy]),
6a566b9c 782[ case $enableval in
783 yes)
1c690e30 784 for dir in $srcdir/src/repl/*; do
785 module="`basename $dir`"
24a04df9 786 if test -d "$dir" && test "$module" != CVS && test "$module" != "lru"; then
1c690e30 787 REPL_POLICIES="$REPL_POLICIES $module"
6a566b9c 788 fi
789 done
790 ;;
791 no)
792 ;;
1c690e30 793 *)
794 REPL_POLICIES="`echo $enableval| sed -e 's/,/ /g;s/ */ /g'`"
6a566b9c 795 ;;
796 esac
6a566b9c 797])
1c690e30 798if test -n "$REPL_POLICIES"; then
799 for module in $REPL_POLICIES; do
800 if test -d $srcdir/src/repl/$module; then
801 :
802 else
8b0d8e31 803 AC_MSG_ERROR(Removal policy $module does not exist)
1c690e30 804 fi
805 done
eed82608 806 AC_MSG_NOTICE([Removal policies built: $REPL_POLICIES])
1c690e30 807 REPL_OBJS="repl/lib`echo $REPL_POLICIES|sed -e 's% %.a repl/lib%g'`.a"
808 REPL_LIBS="`echo $REPL_OBJS|sed -e 's%repl/%%g'`"
809fi
6a566b9c 810AC_SUBST(REPL_POLICIES)
6a566b9c 811AC_SUBST(REPL_OBJS)
f71946fc 812AC_SUBST(REPL_LIBS)
6a566b9c 813
d1da2d1f 814AM_CONDITIONAL(ENABLE_PINGER, false)
e5f4e1b0 815AC_ARG_ENABLE(icmp,
62979ab1 816 AS_HELP_STRING([--enable-icmp],[Enable ICMP pinging and Network Measurement]),
e5f4e1b0 817[ if test "$enableval" = "yes" ; then
eed82608 818 AC_MSG_NOTICE([ICMP enabled])
8e62bf65 819 AC_DEFINE(USE_ICMP,1,[Define to use Squid's ICMP and Network Measurement features (highly recommended!)])
d1da2d1f 820 AM_CONDITIONAL(ENABLE_PINGER, true)
e5f4e1b0 821 fi
822])
823
a2794549 824AM_CONDITIONAL(USE_DELAY_POOLS, false)
d9180414 825AC_ARG_ENABLE(delay-pools,
62979ab1 826 AS_HELP_STRING([--enable-delay-pools],[Enable delay pools to limit bandwidth usage]),
e5f4e1b0 827[ if test "$enableval" = "yes" ; then
eed82608 828 AC_MSG_NOTICE([Delay pools enabled])
6a9f6389 829 AC_DEFINE([DELAY_POOLS],1,[Traffic management via "delay pools".])
830 AM_CONDITIONAL(USE_DELAY_POOLS, true,)
e5f4e1b0 831 fi
832])
833
5fa840c3
AR
834dnl disable generic/common adaptation support by default
835use_adaptation=no
836
43ae1d95 837AM_CONDITIONAL(USE_ESI, false)
838AC_ARG_ENABLE(esi,
62979ab1 839 AS_HELP_STRING([--enable-esi],[Enable ESI for accelerators. Requires libexpat.
18cc92fb
FC
840 Enabling ESI will cause squid to follow the
841 Edge Acceleration Specification (www.esi.org).
842 This causes squid to IGNORE client Cache-Control headers.
843 DO NOT use this in a squid configured as a web proxy,
844 ONLY use it in a squid configured for webserver acceleration.]),
328c40de 845 use_esi=$enableval, use_esi=no)
846if test "$use_esi" = "yes" ; then
f41735ea 847 AC_DEFINE(USE_SQUID_ESI,1,[Compile the ESI processor and Surrogate header support])
43ae1d95 848 AM_CONDITIONAL(USE_ESI, true)
ad32c661
AJ
849
850 dnl Perform configuration consistency checks for ESI
851 dnl ESI support requires libexpat
852 AC_CHECK_LIB([expat], [main],
853 [ESI_LIBS="-lexpat"],
854 [AC_MSG_FAILURE([ESI support requires libexpat library, but no usable library was found])]
855 )
856 AC_CHECK_LIB([xml2], [main],
857 [ESI_LIBS="-lxml2"],
858 [AC_MSG_FAILURE([ESI support requires libxml2 library, but no usable library was found])]
859 )
964b44c3 860 XTRA_LIBS="$XTRA_LIBS -lexpat -lxml2"
ad32c661 861
a787b56a 862else
f41735ea 863 AC_DEFINE(USE_SQUID_ESI,0,[Compile the ESI processor and Surrogate header support])
43ae1d95 864fi
865
51952383 866AM_CONDITIONAL(USE_ICAP_CLIENT, false)
867AC_ARG_ENABLE(icap-client,
62979ab1 868 AS_HELP_STRING([--enable-icap-client],[Enable the ICAP client.]),
328c40de 869 use_icap_client=$enableval, use_icap_client=no)
870if test "$use_icap_client" = "yes" ; then
51952383 871 AC_DEFINE(ICAP_CLIENT,1,[Enable ICAP client features in Squid])
872 AM_CONDITIONAL(USE_ICAP_CLIENT, true)
1f3c65fc 873 ICAP_LIBS="icap/libicap.la"
5fa840c3 874 use_adaptation=yes
51952383 875else
876 AC_DEFINE(ICAP_CLIENT,0,[Enable ICAP client features in Squid])
c21ad0f5 877 ICAP_LIBS=""
51952383 878fi
c21ad0f5 879AC_SUBST(ICAP_LIBS)
51952383 880
3e7b6055
AR
881use_ecap=1
882AC_MSG_CHECKING(whether to support eCAP)
883AC_ARG_ENABLE(ecap,
62979ab1 884 AS_HELP_STRING([--enable-ecap],[support loadable content adaptation modules]),
3e7b6055
AR
885 [
886 case "${enableval}" in
887 yes) use_ecap=yes ;;
888 no) use_ecap=no ;;
889 *) AC_MSG_ERROR(bad value ${enableval} for --enable-ecap) ;;
890 esac
891 AC_MSG_RESULT([$use_ecap, explicitly])
892 ],
893 [
894 use_ecap=no;
895 AC_MSG_RESULT([$use_ecap, implicitly])
896 ]
897)
898
899dnl Perform configuration consistency checks for eCAP
b61a58df 900ECAPLIB=""
3e7b6055
AR
901if test $use_ecap = yes;
902then
5fa840c3 903 dnl eCAP support requires loadable modules, which are enabled by default
3e7b6055
AR
904 if test "$use_loadable_modules" != "yes"
905 then
945980c0 906 AC_MSG_ERROR([eCAP support requires loadable modules. Please do not use --disable-loadable-modules with --enable-ecap.]);
3e7b6055 907 fi
4cfba571
AR
908
909 dnl eCAP support requires libecap
910 AC_CHECK_LIB([ecap], [main],
b61a58df 911 [ECAPLIB="-lecap"],
591e6db0 912 [AC_MSG_FAILURE([eCAP support requires libecap library, but no usable library was found])]
4cfba571 913 )
3e7b6055
AR
914fi
915
916AM_CONDITIONAL(USE_ECAP, test $use_ecap = yes)
917if test $use_ecap = yes;
918then
919 AC_DEFINE(USE_ECAP,1,[Enable eCAP support])
1f3c65fc 920 ECAP_LIBS="ecap/libecap.la $ECAP_LIBS"
5fa840c3 921 use_adaptation=yes
3e7b6055 922else
5fa840c3 923 AC_DEFINE(USE_ECAP,0,[Disable eCAP support])
3e7b6055
AR
924 ECAP_LIBS=""
925fi
b61a58df 926dnl convenience library
3e7b6055 927AC_SUBST(ECAP_LIBS)
b61a58df
AJ
928dnl -lecap if needed
929AC_SUBST(ECAPLIB)
3e7b6055 930
3e7b6055 931
5fa840c3
AR
932dnl enable adaptation if requested by specific adaptation mechanisms
933AM_CONDITIONAL(USE_ADAPTATION, test $use_adaptation = yes)
934if test $use_adaptation = yes
935then
936 AC_DEFINE(USE_ADAPTATION,1,[common adaptation support])
937 ADAPTATION_LIBS="adaptation/libadaptation.la"
51952383 938else
5fa840c3
AR
939 AC_DEFINE(USE_ADAPTATION,0,[common adaptation support])
940 ADAPTATION_LIBS=""
51952383 941fi
5fa840c3 942AC_SUBST(ADAPTATION_LIBS)
3e7b6055
AR
943
944
0961c811 945dnl This is a developer only option. Developers know how to set defines
946dnl
947dnl AC_ARG_ENABLE(mem-gen-trace,
948dnl [ --enable-mem-gen-trace Do trace of memory stuff],
949dnl [ if test "$enableval" = "yes" ; then
eed82608 950dnl AC_MSG_NOTICE([Memory trace (to file) enabled])
6a9f6389 951dnl AC_DEFINE(MEM_GEN_TRACE,1,[Define for log file trace of mem alloc/free])
0961c811 952dnl fi
953dnl ])
36a97e19 954
d9180414 955AC_ARG_ENABLE(useragent-log,
62979ab1 956 AS_HELP_STRING([--enable-useragent-log],[Enable logging of User-Agent header]),
e5f4e1b0 957[ if test "$enableval" = "yes" ; then
eed82608 958 AC_MSG_NOTICE([User-Agent logging enabled])
6a9f6389 959 AC_DEFINE(USE_USERAGENT_LOG,1,[If you want to log User-Agent request header values, define this.
960 By default, they are written to useragent.log in the Squid log
961 directory.])
e5f4e1b0 962 fi
963])
964
dfca7e1a 965AC_ARG_ENABLE(referer-log,
62979ab1 966 AS_HELP_STRING([--enable-referer-log],[Enable logging of Referer header]),
dfca7e1a 967[ if test "$enableval" = "yes" ; then
eed82608 968 AC_MSG_NOTICE([Referer logging enabled])
6a9f6389 969 AC_DEFINE(USE_REFERER_LOG,1,[If you want to log Referer request header values, define this.
970 By default, they are written to referer.log in the Squid log
971 directory.])
dfca7e1a 972 fi
973])
974
0b0cfcf2 975USE_WCCP=1
320e9f36 976AC_ARG_ENABLE(wccp,
62979ab1 977 AS_HELP_STRING([--disable-wccp],[Disable Web Cache Coordination Protocol]),
eb824054 978[ if test "$enableval" = "no" ; then
eed82608 979 AC_MSG_NOTICE([Web Cache Coordination Protocol disabled])
0b0cfcf2 980 USE_WCCP=0
320e9f36 981 fi
982])
0b0cfcf2 983if test $USE_WCCP = 1; then
984 AC_DEFINE(USE_WCCP, 1, [Define to enable WCCP])
985fi
986
987USE_WCCPv2=1
988AC_ARG_ENABLE(wccpv2,
62979ab1 989 AS_HELP_STRING([--disable-wccpv2],[Disable Web Cache Coordination V2 Protocol]),
0b0cfcf2 990[ if test "$enableval" = "no" ; then
eed82608 991 AC_MSG_NOTICE(["Web Cache Coordination V2 Protocol disabled])
0b0cfcf2 992 USE_WCCPv2=0
993 fi
994])
995if test $USE_WCCPv2 = 1; then
996 AC_DEFINE(USE_WCCPv2, 1, [Define to enable WCCP V2])
14b32873 997fi
320e9f36 998
d9180414 999AC_ARG_ENABLE(kill-parent-hack,
62979ab1 1000 AS_HELP_STRING([--enable-kill-parent-hack],[Kill parent on shutdown]),
e5f4e1b0 1001[ if test "$enableval" = "yes" ; then
eed82608 1002 AC_MSG_NOTICE([Kill parent on shutdown])
6a9f6389 1003 AC_DEFINE(KILL_PARENT_OPT,1,[A dangerous feature which causes Squid to kill its parent process
1004 (presumably the RunCache script) upon receipt of SIGTERM or SIGINT.
1005 Use with caution.])
e5f4e1b0 1006 fi
1007])
1008
87630341 1009USE_SNMP=true
e5f4e1b0 1010AC_ARG_ENABLE(snmp,
62979ab1 1011 AS_HELP_STRING([--disable-snmp],[Disable SNMP monitoring support]),
87630341 1012[ if test "$enableval" = "no" ; then
eed82608 1013 AC_MSG_NOTICE([SNMP monitoring disabled])
87630341 1014 USE_SNMP=
1015 fi
1016])
10faea39 1017if test x"$USE_SNMP" = xtrue; then
6a9f6389 1018 AC_DEFINE(SQUID_SNMP,1,[Define to enable SNMP monitoring of Squid])
63705952 1019 SNMPLIB='../snmplib/libsnmp.a'
e5f4e1b0 1020 makesnmplib=snmplib
87630341 1021fi
cb50b537 1022AM_CONDITIONAL(USE_SNMP, [test x$USE_SNMP = xtrue])
e5f4e1b0 1023AC_SUBST(SNMPLIB)
e5f4e1b0 1024AC_SUBST(makesnmplib)
1025
d9180414 1026AC_ARG_ENABLE(cachemgr-hostname,
62979ab1 1027 AS_HELP_STRING([--enable-cachemgr-hostname=hostname],[Make cachemgr.cgi default to this host.
86f53af2 1028 If unspecified, uses the name of the build-host]),
e5f4e1b0 1029[ case $enableval in
1030 yes)
6a9f6389 1031 AC_DEFINE(CACHEMGR_HOSTNAME,[getfullhostname()],
1032 [If you are upset that the cachemgr.cgi form comes up with the hostname field blank, then define this to getfullhostname()])
eed82608 1033 AC_MSG_NOTICE([Cachemgr default hostname == host where cachemgr runs])
e5f4e1b0 1034 ;;
1035 no)
1036 : # Nothing to do..
1037 ;;
1038 *)
1039 AC_DEFINE_UNQUOTED(CACHEMGR_HOSTNAME,"${enableval}")
eed82608 1040 AC_MSG_NOTICE([Cachemgr default hostname set to ${enableval}])
e5f4e1b0 1041 ;;
1042 esac
1043])
1044
b0dd28ba 1045AM_CONDITIONAL(ENABLE_ARP_ACL, false)
d9180414 1046AC_ARG_ENABLE(arp-acl,
62979ab1 1047 AS_HELP_STRING([--enable-arp-acl],[Enable use of ARP ACL lists (ether address)]),
e5f4e1b0 1048[ if test "$enableval" = "yes" ; then
eed82608 1049 AC_MSG_NOTICE([ARP ACL lists enabled (ether address)])
933cc58d 1050 case "$host" in
ef614b1c 1051 *-linux-*)
1052 ;;
9d8d033e 1053 *-solaris*)
a931a29b 1054 ;;
9a2f1170 1055 *-freebsd*)
1056 ;;
f71a524f 1057 *-openbsd*)
1058 ;;
074bf084 1059 *-netbsd*)
1060 ;;
5700029a 1061 *-cygwin*)
1062 LIBS="$LIBS -liphlpapi"
1063 ;;
1064 *-mingw*)
1065 LIBS="$LIBS -liphlpapi"
1066 ;;
933cc58d 1067 *)
eed82608 1068 AC_MSG_WARN([ARP ACL support probably won't work on $host.])
933cc58d 1069 sleep 10
1070 ;;
1071 esac
6a9f6389 1072 AC_DEFINE(USE_ARP_ACL,1,[Define this to include code which lets you specify access control elements based on ethernet hardware addresses. This code uses functions found in 4.4 BSD derviations (e.g. FreeBSD, ?).])
b0dd28ba 1073 AM_CONDITIONAL(ENABLE_ARP_ACL, true)
e5f4e1b0 1074 fi
1075])
1076
87630341 1077USE_HTCP=true
a2794549 1078AM_CONDITIONAL(ENABLE_HTCP, false)
74075210 1079AC_ARG_ENABLE(htcp,
62979ab1 1080 AS_HELP_STRING([--disable-htcp],[Disable HTCP protocol support]),
87630341 1081[ if test "$enableval" = "no" ; then
eed82608 1082 AC_MSG_NOTICE([HTCP support disabled])
b4b8b6da 1083 fi
74075210 1084])
87630341 1085if test x$USE_HTCP = xtrue; then
1086 AC_DEFINE(USE_HTCP,1, [Define this to include code for the Hypertext Cache Protocol (HTCP)])
1087fi
1088AM_CONDITIONAL(ENABLE_HTCP, [test x$USE_HTCP = xtrue])
a2794549 1089
3d4022fa 1090dnl SSL is not enabled by default.
a2794549 1091AM_CONDITIONAL(ENABLE_SSL, false)
74075210 1092
3d4022fa 1093dnl Default is to use OpenSSL when available
1f7c9178 1094AC_ARG_ENABLE(ssl,
62979ab1 1095 AS_HELP_STRING([--enable-ssl],[Enable ssl gatewaying support using OpenSSL]),
1f7c9178 1096[ if test "$enableval" != "no"; then
eed82608 1097 AC_MSG_NOTICE([SSL gatewaying using OpenSSL enabled])
6a9f6389 1098 AC_DEFINE(USE_SSL,1,[Define this to include code for SSL encryption.])
a2794549 1099 AM_CONDITIONAL(ENABLE_SSL, true)
4b26fae9 1100 case "$host_os" in
1101 mingw|mingw32)
1102 dnl Native Windows port of OpenSSL needs -lgdi32
ee86c79b 1103 SSLLIB='-lssleay32 -leay32 -lgdi32'
4b26fae9 1104 ;;
1105 *)
1106 SSLLIB='-lssl -lcrypto'
1107 ;;
1108 esac
1f7c9178 1109 USE_OPENSSL=1
1110 fi
1111])
1112
3d4022fa 1113dnl User may specify OpenSSL is needed from a non-standard location
1f7c9178 1114AC_ARG_WITH(openssl,
62979ab1 1115 AS_HELP_STRING([--with-openssl{=PATH}],[Compile with the OpenSSL libraries. The path to
86f53af2
FC
1116 the OpenSSL development libraries and headers
1117 installation can be specified if outside of the
1118 system standard directories]),
1f7c9178 1119[
46ce628c 1120 case "$with_openssl" in
1f7c9178 1121 yes)
1122 USE_OPENSSL=1
1123 ;;
1124 no)
1125 USE_OPENSSL=
1126 ;;
1127 *)
46ce628c 1128 SSLLIBDIR="$with_openssl/lib"
bcce53ce 1129 CPPFLAGS="-I$with_openssl/include $CPPFLAGS"
1f7c9178 1130 USE_OPENSSL=1
1131 esac
1132])
1f7c9178 1133if test -n "$USE_OPENSSL"; then
eed82608 1134 AC_MSG_NOTICE([Using OpenSSL MD5 implementation])
6a9f6389 1135 AC_DEFINE(USE_OPENSSL,1,[Define this to make use of the OpenSSL libraries for MD5 calculation rather than Squid's own MD5 implementation or if building with SSL encryption (USE_SSL)])
1f7c9178 1136 if test -z "$SSLLIB"; then
1137 SSLLIB="-lcrypto" # for MD5 routines
1138 fi
f11555e0 1139 dnl This is a workaround for RedHat 9 brain damage..
1140 if test -d /usr/kerberos/include && test -z "$SSLLIBDIR" && test -f /usr/include/openssl/kssl.h; then
eed82608 1141 AC_MSG_NOTICE([OpenSSL depends on Kerberos])
f11555e0 1142 SSLLIBDIR="/usr/kerberos/lib"
1143 CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
1144 fi
1f7c9178 1145fi
1146if test -n "$SSLLIBDIR"; then
1147 SSLLIB="-L$SSLLIBDIR $SSLLIB"
1148fi
1f7c9178 1149AC_SUBST(SSLLIB)
1150
3d4022fa 1151
02749868 1152AC_ARG_ENABLE(forw-via-db,
62979ab1 1153 AS_HELP_STRING([--enable-forw-via-db],[Enable Forw/Via database]),
02749868 1154[ if test "$enableval" = "yes" ; then
eed82608 1155 AC_MSG_NOTICE([FORW-VIA enabled])
6a9f6389 1156 AC_DEFINE(FORW_VIA_DB,1,[Enable Forw/Via database])
02749868 1157 fi
1158])
1159
6cfa8966 1160AC_ARG_ENABLE(cache-digests,
62979ab1 1161 AS_HELP_STRING([--enable-cache-digests],[Use Cache Digests.
86f53af2 1162 See http://wiki.squid-cache.org/SquidFaq/CacheDigests]),
484f2ebc 1163[ if test "$enableval" = "yes" ; then
eed82608 1164 AC_MSG_NOTICE([Cache Disgests enabled])
6a9f6389 1165 AC_DEFINE(USE_CACHE_DIGESTS,1,[Use Cache Digests for locating objects in neighbor caches. This code is still semi-experimental.])
484f2ebc 1166 fi
1167])
1168
cd748f27 1169dnl Size of COSS memory buffer
1170AC_ARG_WITH(coss-membuf-size,
62979ab1 1171 AS_HELP_STRING([--with-coss-membuf-size=size],[COSS membuf size (default 1048576 bytes)]),
8b0d8e31 1172[ if test -n "$withval" -a "x$withval" != "xno" ; then
eed82608 1173 AC_MSG_NOTICE([Setting COSS membuf size to $with_coss_membuf_size bytes])
6a9f6389 1174 AC_DEFINE_UNQUOTED(COSS_MEMBUF_SZ, $with_coss_membuf_size,[Define if you want to set the COSS membuf size])
cd748f27 1175 fi
1176])
1177
1b3db6d9 1178dnl check for netio plugin stuff
6564c397 1179
9bb83c8b 1180dnl Enable poll()
6564c397 1181disable_poll=
9bb83c8b 1182AC_ARG_ENABLE(poll,
62979ab1 1183 AS_HELP_STRING([--disable-poll],[Disable poll(2) support.]),
1b3db6d9 1184[
c68e9c6b 1185 case "$enableval" in
1186 yes)
eed82608 1187 AC_MSG_WARN([Forcing poll() to be enabled])
d474c7a6 1188 SELECT_TYPE="poll"
c68e9c6b 1189 ;;
1190 no)
eed82608 1191 AC_MSG_WARN([Forcing poll() to be disabled])
6564c397 1192 disable_poll=true
c68e9c6b 1193 ;;
1194 esac
9bb83c8b 1195])
1196
1b3db6d9 1197dnl Enable select()
6564c397 1198disable_select=
1b3db6d9 1199AC_ARG_ENABLE(select,
62979ab1 1200 AS_HELP_STRING([--disable-select],[Disable select(2) support.]),
1b3db6d9 1201[
1202 case "$enableval" in
1203 yes)
eed82608 1204 AC_MSG_WARN([Forcing select() to be enabled])
d474c7a6 1205 SELECT_TYPE="select"
1b3db6d9 1206 ;;
1207 no)
eed82608 1208 AC_MSG_WARN([Forcing select() to be disabled])
6564c397 1209 disable_select=true
1b3db6d9 1210 ;;
1211 esac
1212])
1213
1214dnl Enable kqueue()
6564c397 1215dnl kqueue support is still experiemntal and unstable. Not enabled by default.
1216disable_kqueue=true
1b3db6d9 1217AC_ARG_ENABLE(kqueue,
62979ab1 1218 AS_HELP_STRING([--enable-kqueue],[Enable kqueue(2) support (experimental).]),
1b3db6d9 1219[
1220 case "$enableval" in
1221 yes)
eed82608 1222 AC_MSG_WARN([Forcing kqueue() to be enabled])
d474c7a6 1223 SELECT_TYPE="kqueue"
11f11b5c
AJ
1224 AC_CHECK_HEADERS([sys/event.h],[],
1225 [ AC_MSG_ERROR([kqueue support requires sys/event.h header file.]) ])
1b3db6d9 1226 ;;
1227 no)
eed82608 1228 AC_MSG_WARN([Forcing kqueue() to be disabled])
6564c397 1229 disable_kqueue=true
1b3db6d9 1230 ;;
11f11b5c
AJ
1231 *)
1232 AC_CHECK_HEADERS([sys/event.h])
1233 ;;
1b3db6d9 1234esac
1235])
1236
a46d2c0e 1237dnl Enable epoll()
6564c397 1238disable_epoll=
2ca8b332 1239force_epoll="no"
a46d2c0e 1240AC_ARG_ENABLE(epoll,
62979ab1 1241 AS_HELP_STRING([--disable-epoll],[Disable Linux epoll(2) support.]),
a46d2c0e 1242[
1243 case "$enableval" in
1244 yes)
eed82608 1245 AC_MSG_WARN([Forcing epoll() to be enabled])
d474c7a6 1246 SELECT_TYPE="epoll"
2ca8b332 1247 force_epoll="yes"
a46d2c0e 1248 ;;
1249 no)
eed82608 1250 AC_MSG_WARN([Forcing epoll() to be disabled])
6564c397 1251 disable_epoll=true
a46d2c0e 1252 ;;
1253esac
1254])
2ca8b332 1255dnl auto-detect and verify epoll header and library present and working
ad32c661 1256if test -z "$disable_epoll"; then
2ca8b332 1257
ad32c661
AJ
1258 # Check for libepoll
1259 EPOLL_LIB=
1260 AC_CHECK_LIB(epoll, epoll_ctl, [EPOLL_LIBS="-lepoll"])
1261 AC_SUBST(EPOLL_LIBS)
1262
2ca8b332
AJ
1263 dnl on some systems it is provided by libc
1264 dnl not to worry, the working test below will catch them
1265 dnl and we don't want to force additional libraries
1266
1267
ad32c661
AJ
1268 # Check for epoll_ctl, may need -lepoll
1269 SAVED_LIBS="$LIBS"
2ca8b332 1270 LIBS="$LIBS $EPOLL_LIBS"
ad32c661
AJ
1271 AC_CHECK_FUNCS(epoll_ctl)
1272 LIBS="$SAVED_LIBS"
a46d2c0e 1273
2ca8b332 1274 dnl epoll requires sys/epoll.h
98d13964 1275 AC_CHECK_HEADERS([sys/epoll.h])
ad32c661
AJ
1276
1277 dnl Verify that epoll really works
1278 if test $ac_cv_func_epoll_ctl = yes; then
1279 AC_CACHE_CHECK(if epoll works, ac_cv_epoll_works,
62979ab1 1280 AC_RUN_IFELSE([AC_LANG_SOURCE([[
ad32c661
AJ
1281#include <sys/epoll.h>
1282#include <stdlib.h>
1283#include <stdio.h>
1284int main(int argc, char **argv)
1285{
1286 int fd = epoll_create(256);
1287 if (fd < 0) {
1288 perror("epoll_create:");
b3167ca7 1289 return 1;
ad32c661 1290 }
b3167ca7 1291 return 0;
ad32c661 1292}
62979ab1 1293 ]])],[ac_cv_epoll_works=yes],[ac_cv_epoll_works=no],[]))
ad32c661 1294 fi
2ca8b332
AJ
1295
1296 if test "$force_epoll" = "yes" && test "$ac_cv_epoll_works" = "no" ; then
1297 AC_MSG_ERROR([Epoll does not work. Force-enabling it is not going to help.])
1298 fi
ad32c661 1299fi
a46d2c0e 1300
72fd085a 1301dnl Disable HTTP violations
14b32873 1302http_violations=1
72fd085a 1303AC_ARG_ENABLE(http-violations,
62979ab1 1304 AS_HELP_STRING([--disable-http-violations],[This allows you to remove code which is known to
ddfc433e 1305 violate the HTTP protocol specification.]),
72fd085a 1306[ if test "$enableval" = "no" ; then
eed82608 1307 AC_MSG_NOTICE([Disabling HTTP Violations])
14b32873 1308 http_violations=0
72fd085a 1309 fi
1310])
14b32873 1311if test $http_violations = 1; then
1312 AC_DEFINE(HTTP_VIOLATIONS, 1,[By default (for now anyway) Squid includes options which allows the cache administrator to violate the HTTP protocol specification in terms of cache behaviour. Setting this to '0' will disable such code.])
1313else
1314 AC_DEFINE(HTTP_VIOLATIONS, 0)
1315fi
72fd085a 1316
68075fad 1317dnl Enable IPFW Transparent Proxy
1318AC_ARG_ENABLE(ipfw-transparent,
62979ab1 1319 AS_HELP_STRING([--enable-ipfw-transparent],[Enable Transparent Proxy support for systems
ddfc433e 1320 using FreeBSD IPFW style redirection.]),
68075fad 1321[ if test "$enableval" = "yes" ; then
eed82608 1322 AC_MSG_NOTICE([IPFW Transparent Proxy enabled])
68075fad 1323 AC_DEFINE(IPFW_TRANSPARENT,1,[Enable support for Transparent Proxy on systems using FreeBSD IPFW address redirection.])
1324 IPFW_TRANSPARENT="yes"
a74968c2
AJ
1325 else
1326 AC_DEFINE(IPFW_TRANSPARENT,0,[Enable support for Transparent Proxy on systems using FreeBSD IPFW address redirection.])
68075fad 1327 fi
1328])
1329
5cafc1d6 1330dnl Enable IP-Filter Transparent Proxy
1331AC_ARG_ENABLE(ipf-transparent,
62979ab1 1332 AS_HELP_STRING([--enable-ipf-transparent],[Enable Transparent Proxy support for systems
ddfc433e 1333 using IP-Filter network address redirection.]),
5cafc1d6 1334[ if test "$enableval" = "yes" ; then
eed82608 1335 AC_MSG_NOTICE([IP-Filter Transparent Proxy enabled])
6a9f6389 1336 AC_DEFINE(IPF_TRANSPARENT,1,[Enable support for Transparent Proxy on systems using IP-Filter address redirection. This provides "masquerading" support for non Linux system.])
5cafc1d6 1337 IPF_TRANSPARENT="yes"
a74968c2
AJ
1338 else
1339 AC_DEFINE(IPF_TRANSPARENT,0,[Enable support for Transparent Proxy on systems using IP-Filter address redirection. This provides "masquerading" support for non Linux system.])
5cafc1d6 1340 fi
1341])
1342
2b0dd4ac 1343dnl Enable PF Transparent Proxy
1344AC_ARG_ENABLE(pf-transparent,
62979ab1 1345 AS_HELP_STRING([--enable-pf-transparent],[Enable Transparent Proxy support for systems
ddfc433e 1346 using PF network address redirection.]),
2b0dd4ac 1347[ if test "$enableval" = "yes" ; then
eed82608 1348 AC_MSG_NOTICE([PF Transparent Proxy enabled])
6a9f6389 1349 AC_DEFINE(PF_TRANSPARENT,1,[Enable support for Transparent Proxy on systems using PF address redirection. This provides "masquerading" support for OpenBSD.])
2b0dd4ac 1350 PF_TRANSPARENT="yes"
a74968c2
AJ
1351 else
1352 AC_DEFINE(PF_TRANSPARENT,0,[Enable support for Transparent Proxy on systems using PF address redirection. This provides "masquerading" support for OpenBSD.])
2b0dd4ac 1353 fi
1354])
1355
d6d62546 1356dnl Enable Linux Netfilter Transparent Proxy
d852fbad 1357AC_ARG_ENABLE(linux-netfilter,
62979ab1 1358 AS_HELP_STRING([--enable-linux-netfilter],[Enable Transparent Proxy support for Linux (Netfilter)]),
d852fbad 1359[ if test "$enableval" = "yes" ; then
eed82608 1360 AC_MSG_NOTICE([Linux (Netfilter) Transparent Proxy enabled])
d6d62546 1361 AC_DEFINE(LINUX_NETFILTER,1,[Enable support for Transparent Proxy on Linux (Netfilter) systems])
d852fbad 1362 LINUX_NETFILTER="yes"
a74968c2
AJ
1363 else
1364 AC_DEFINE(LINUX_NETFILTER,0,[Enable support for Transparent Proxy on Linux (Netfilter) systems])
d852fbad 1365 fi
1366])
1367
bb7b5fd0 1368dnl Enable Large file support
2df6213e 1369buildmodel=""
1370needlargefiles=
1371
1372AC_ARG_WITH(large-files,
62979ab1 1373 AS_HELP_STRING([--with-large-files],[Enable support for large files (logs etc).]),
8b0d8e31 1374[ if test "x$withval" = "xyes"; then
2df6213e 1375 needlargefiles=1
bb7b5fd0 1376 fi
1377])
1378
2df6213e 1379dnl UNIX Build environment
62979ab1 1380dnl AS_HELP_STRING is not suited here because it doesn't allow to specify newlines
2df6213e 1381AC_ARG_WITH(build-environment,
1382[ --with-build-environment=model
1383 The build environment to use. Normally one of
1384 POSIX_V6_ILP32_OFF32 32 bits
1385 POSIX_V6_ILP32_OFFBIG 32 bits with large file support
1386 POSIX_V6_LP64_OFF64 64 bits
1387 POSIX_V6_LPBIG_OFFBIG large pointers and files
1388 XBS5_ILP32_OFF32 32 bits (legacy)
1389 XBS5_ILP32_OFFBIG 32 bits with large file support (legacy)
1390 XBS5_LP64_OFF64 64 bits (legacy)
1391 XBS5_LPBIG_OFFBIG large pointers and files (legacy)
1392 default The default for your OS],
1393[ case "$withval" in
1394 yes|no)
eed82608 1395 AC_MSG_FAILURE(["--with-build-environment expects a build environment string as used by getconf])
2df6213e 1396 ;;
1397 *)
1398 buildmodel="$withval"
1399 ;;
1400 esac
1401])
1402
1403if test $needlargefiles && test -z "$buildmodel"; then
f6fd3d67 1404 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
2df6213e 1405 if test "`getconf _$model 2>/dev/null || true`" = 1 || test "`getconf $model 2>/dev/null || true`" ; then
1406 buildmodel=$model
1407 break
1408 fi
1409 done
1410 if test -z "$buildmodel"; then
eed82608 1411 AC_MSG_WARN(["No suitable build environment found for large files. Trying to use _FILE_OFFSET_BITS=64])
2df6213e 1412 sleep 1
9b8002de
HN
1413 fi
1414fi
1415case "$buildmodel" in
1416default|"")
1417 if test "$needlargefiles"; then
eed82608 1418 AC_MSG_NOTICE([Enabling -D_FILE_OFFSET_BITS=64])
2df6213e 1419 CFLAGS="-D_FILE_OFFSET_BITS=64 $CFLAGS"
cca81db1 1420 CXXFLAGS="-D_FILE_OFFSET_BITS=64 $CXXFLAGS"
2df6213e 1421 fi
9b8002de
HN
1422 ;;
1423*)
eed82608 1424 AC_MSG_NOTICE([Using $buildmodel build environment])
2df6213e 1425 if test "`getconf _$buildmodel 2>/dev/null || true`" = 1 || test "`getconf $buildmodel 2>/dev/null || true`" ; then
1426 : # All fine
1427 else
8b0d8e31 1428 AC_MSG_ERROR(Build environment $buildmodel not known to getconf.)
2df6213e 1429 fi
1430 CFLAGS="`getconf ${buildmodel}_CFLAGS` $CFLAGS"
cca81db1 1431 CXXFLAGS="`getconf ${buildmodel}_CFLAGS` $CXXFLAGS"
2df6213e 1432 LIBS="`getconf ${buildmodel}_LIBS` $LIBS"
1433 LDFLAGS="`getconf ${buildmodel}_LDFLAGS` $LDFLAGS"
63e02610 1434 case "$host" in
2df6213e 1435dnl
a078ea4d
GS
1436dnl On Solaris getconf returns for CFLAGS -xarch=generic64, -Xa and -Usun options, and
1437dnl for LDFLAGS -xarch=generic64, but:
1438dnl "-Xa" is supported only by Sun cc, so we need to remove it when using gcc
1439dnl For gcc "-xarch=generic64" must be replaced with "-m64"
1440dnl The 'sun' define is needed by ipfilter includes, so we must remove "-Usun"
2df6213e 1441 *-solaris*)
1442 if test "$GCC" = "yes"; then
eed82608 1443 AC_MSG_NOTICE([Removing -Xa for gcc/g++ on $host])
2df6213e 1444 CFLAGS="`echo $CFLAGS | sed -e 's/-Xa//'`"
cca81db1 1445 CXXFLAGS="`echo $CXXFLAGS | sed -e 's/-Xa//'`"
eed82608 1446 AC_MSG_NOTICE([Replacing -xarch=generic64 with -m64 for gcc/g++ on $host])
a078ea4d 1447 CFLAGS="`echo $CFLAGS | sed -e 's/-xarch=generic64/-m64/'`"
bb60974e 1448 CXXFLAGS="`echo $CXXFLAGS | sed -e 's/-xarch=generic64/-m64/'`"
a078ea4d 1449 LDFLAGS="`echo $LDFLAGS | sed -e 's/-xarch=generic64//'`"
2df6213e 1450 fi
eed82608 1451 AC_MSG_NOTICE([Removing -Usun on $host])
2df6213e 1452 CFLAGS="`echo $CFLAGS | sed -e 's/-Usun//'`"
cca81db1 1453 CXXFLAGS="`echo $CXXFLAGS | sed -e 's/-Usun//'`"
2df6213e 1454 ;;
eed82608 1455dnl
63e02610 1456dnl On Irix 6.x getconf returns options valid only for the SGI MipsPRO compiler,
1457dnl so we must adjust something to avoid gcc errors.
1458dnl On Irix 6.x 32/64 bit we must replace "-n32" with "-mabi=n32" in CFLAGS and
1459dnl remove "-n32" from LDFLAGS
1460dnl On Irix 6.x 64 bit we must replace "-64" with "-mabi=64" in CFLAGS and remove
1461dnl "-64" from LDFLAGS
1462 *-sgi-irix6.*)
1463 if test "$GCC" = "yes"; then
1464 CFLAGS="`echo $CFLAGS | sed -e 's/-n32/-mabi=n32/'`"
ff37fe61 1465 CXXFLAGS="`echo $CXXFLAGS | sed -e 's/-n32/-mabi=n32/'`"
63e02610 1466 LDFLAGS="`echo $LDFLAGS | sed -e 's/-n32//'`"
1467 CFLAGS="`echo $CFLAGS | sed -e 's/-64/-mabi=64/'`"
ff37fe61 1468 CXXFLAGS="`echo $CXXFLAGS | sed -e 's/-64/-mabi=64/'`"
63e02610 1469 LDFLAGS="`echo $LDFLAGS | sed -e 's/-64//'`"
1470 fi
1471 ;;
2df6213e 1472 *)
1473 ;;
1474 esac
993f04c1 1475 ;;
9b8002de 1476esac
2df6213e 1477
7b0a0d1f 1478dnl Enable Linux transparent proxy support for obsolete TPROXY
e8cca4ac 1479AC_ARG_ENABLE(linux-tproxy,
62979ab1 1480 AS_HELP_STRING([--enable-linux-tproxy],[Enable real Transparent Proxy support for Netfilter TPROXY
19b4777c 1481 (version 2).]),
fc68f6b1 1482[ if test "$enableval" = "yes" ; then
eed82608 1483 AC_MSG_NOTICE(["Linux Netfilter/TPROXY v2 enabled])
f1e0717c
AJ
1484 AC_DEFINE(LINUX_TPROXY2, 1, [Enable real Transparent Proxy support for Netfilter TPROXY v2.])
1485 LINUX_TPROXY2="yes"
1486 if test -z "$LINUX_NETFILTER"; then
eed82608 1487 AC_MSG_NOTICE([Linux-Netfilter Transparent Proxy automatically enabled])
f1e0717c
AJ
1488 LINUX_NETFILTER="yes"
1489 fi
a74968c2
AJ
1490 else
1491 AC_DEFINE(LINUX_TPROXY2, 0, [Enable real Transparent Proxy support for Netfilter TPROXY v2.])
f1e0717c
AJ
1492 fi
1493])
fc68f6b1 1494
a2794549 1495AM_CONDITIONAL(MAKE_LEAKFINDER, false)
5d620373 1496dnl Enable Leak Finding Functions
1497AC_ARG_ENABLE(leakfinder,
62979ab1 1498 AS_HELP_STRING([--enable-leakfinder],[Enable Leak Finding code. Enabling this alone
19b4777c
FC
1499 does nothing; you also have to modify the source
1500 code to use the leak finding functions. Probably
1501 Useful for hackers only.]),
5d620373 1502[ if test "$enableval" = "yes" ; then
eed82608 1503 AC_MSG_NOTICE([Leak-Finding enabled])
6a9f6389 1504 AC_DEFINE(USE_LEAKFINDER,1,[Enable code for assisting in finding memory leaks. Hacker stuff only.])
5d620373 1505 USE_LEAKFINDER="yes"
a2794549 1506 AM_CONDITIONAL(MAKE_LEAKFINDER, true)
5d620373 1507 fi
1508])
5d620373 1509
3d674977
AJ
1510follow_xff=1
1511AC_ARG_ENABLE(follow-x-forwarded-for,
62979ab1 1512 AS_HELP_STRING([--enable-follow-x-forwarded-for],[Enable support for following the X-Forwarded-For
19b4777c
FC
1513 HTTP header to try to find the IP address of the
1514 original or indirect client when a request has
1515 been forwarded through other proxies.]),
3d674977 1516[ if test "$enableval" = "yes" ; then
eed82608 1517 AC_MSG_NOTICE([follow X-Forwarded-For enabled])
3d674977
AJ
1518 follow_xff=1
1519 fi
1520])
1521if test $follow_xff = 1; then
1522 AC_DEFINE(FOLLOW_X_FORWARDED_FOR, 1, [Enable following X-Forwarded-For headers])
1523else
1524 AC_DEFINE(FOLLOW_X_FORWARDED_FOR, 0)
1525fi
1526
14b32873 1527use_ident=1
3898f57f 1528AC_ARG_ENABLE(ident-lookups,
62979ab1 1529 AS_HELP_STRING([--disable-ident-lookups],[This allows you to remove code that performs Ident (RFC 931) lookups.]),
3898f57f 1530[ if test "$enableval" = "no" ; then
eed82608 1531 AC_MSG_NOTICE([Disabling Ident Lookups])
14b32873 1532 use_ident=0
3898f57f 1533 fi
1534])
14b32873 1535if test $use_ident = 1; then
1536 AC_DEFINE(USE_IDENT, 1,[Compile in support for Ident (RFC 931) lookups? Enabled by default.])
1537else
1538 AC_DEFINE(USE_IDENT, 0)
1539fi
3898f57f 1540
a2794549 1541AM_CONDITIONAL(USE_DNSSERVER, false)
3c573763 1542use_dnsserver=
eb824054 1543AC_ARG_ENABLE(internal-dns,
62979ab1 1544 AS_HELP_STRING([--disable-internal-dns],[Prevents Squid from directly sending and receiving DNS messages,
19b4777c 1545 and instead enables the old external 'dnsserver' processes.]),
eb824054 1546[ if test "$enableval" = "no" ; then
eed82608 1547 AC_MSG_WARN([Disabling Internal DNS queries])
3c573763 1548 use_dnsserver="yes"
eb824054 1549 fi
1550])
3c573763 1551if test "$use_dnsserver" = "yes"; then
6a9f6389 1552 AC_DEFINE(USE_DNSSERVERS,1,[Use dnsserver processes instead of the internal DNS protocol support])
a2794549 1553 AM_CONDITIONAL(USE_DNSSERVER, true)
3c573763 1554fi
eb824054 1555
9d798391 1556dnl Select Default hosts file location
1557AC_ARG_ENABLE(default-hostsfile,
62979ab1 1558 AS_HELP_STRING([--enable-default-hostsfile=path],[Select default location for hosts file.
19b4777c 1559 See hosts_file directive in squid.conf for details]),
9d798391 1560[
1561 if test "$enableval" != "none" ; then
1562 if test -f $enableval; then
1563 OPT_DEFAULT_HOSTS=$enableval
1564 else
eed82608 1565 AC_MSG_WARN([Unable to find $enableval])
9d798391 1566 sleep 5
1567 fi
1568 else
eed82608 1569 OPT_DEFAULT_HOSTS="none"
9d798391 1570 fi
eed82608 1571 AC_MSG_NOTICE([Default hosts file set to: $enableval])
9d798391 1572],[OPT_DEFAULT_HOSTS="/etc/hosts"])
1573AC_SUBST(OPT_DEFAULT_HOSTS)
1574
94439e4e 1575dnl Select auth schemes modules to build
1576AC_ARG_ENABLE(auth,
62979ab1 1577 AS_HELP_STRING([--enable-auth="list of auth scheme modules"],[Build support for the list of authentication schemes.
19b4777c
FC
1578 The default is to build support for the Basic scheme.
1579 See src/auth for a list of available modules, or
1580 Programmers Guide section authentication schemes
1581 for details on how to build your custom auth scheme
1582 module]),
94439e4e 1583[ case $enableval in
1584 yes)
1c42c4a1 1585 for dir in $srcdir/src/auth/*; do
1586 module="`basename $dir`"
1c690e30 1587 if test -d "$dir" && test "$module" != CVS; then
1c42c4a1 1588 AUTH_MODULES="$AUTH_MODULES $module"
94439e4e 1589 fi
1590 done
1591 ;;
1592 no)
1593 ;;
1c690e30 1594 *)
1595 AUTH_MODULES="`echo $enableval| sed -e 's/,/ /g;s/ */ /g'`"
1596 ;;
94439e4e 1597 esac
1598],
1599[ if test -z "$AUTH_MODULES"; then
6bf4f823 1600 AUTH_MODULES="ntlm basic digest negotiate"
94439e4e 1601 fi
1602])
1c690e30 1603if test -n "$AUTH_MODULES"; then
1604 for module in $AUTH_MODULES; do
1605 if test -d $srcdir/src/auth/$module; then
1606 :
1607 else
8b0d8e31 1608 AC_MSG_ERROR(Auth scheme $module does not exist)
1c690e30 1609 fi
7f18d2bd 1610 eval AUTH_MODULE_${module}=yes
1c690e30 1611 done
eed82608 1612 AC_MSG_NOTICE([Auth scheme modules built: $AUTH_MODULES])
d0571da6 1613else
eed82608 1614 AC_MSG_WARN([Auth scheme modules built: None])
1c690e30 1615fi
2d2b0bb7
AR
1616dnl Authentication libraries to build
1617dnl This list will not be needed when each auth library has its own Makefile
1618AUTH_LIBS_TO_BUILD=
f5691f9c 1619for module in $AUTH_MODULES; do
bcf44a2c 1620 AUTH_LIBS_TO_BUILD="$AUTH_LIBS_TO_BUILD lib${module}.la"
f5691f9c 1621done
94439e4e 1622AC_SUBST(AUTH_MODULES)
2d2b0bb7 1623AC_SUBST(AUTH_LIBS_TO_BUILD)
94439e4e 1624
7762106d
FC
1625dnl bundled auth modules, in order to have handy defines for the cppunit testsuite
1626test -n "$AUTH_MODULE_basic" && AC_DEFINE([HAVE_AUTH_MODULE_BASIC],1,[Basic auth module is built])
1627test -n "$AUTH_MODULE_digest" && AC_DEFINE([HAVE_AUTH_MODULE_DIGEST],1,[Digest auth module is built])
1628test -n "$AUTH_MODULE_ntlm" && AC_DEFINE([HAVE_AUTH_MODULE_NTLM],1,[NTLM auth module is built])
1629test -n "$AUTH_MODULE_negotiate" && AC_DEFINE([HAVE_AUTH_MODULE_NEGOTIATE],1,[Negotiate auth module is built])
1630
94439e4e 1631dnl Select basic auth scheme helpers to build
7f18d2bd 1632if test -n "$AUTH_MODULE_basic"; then
1633 BASIC_AUTH_HELPERS="all"
1634fi
94439e4e 1635AC_ARG_ENABLE(basic-auth-helpers,
62979ab1 1636 AS_HELP_STRING([--enable-basic-auth-helpers="list of helpers"],[This option selects which basic scheme proxy_auth
19b4777c
FC
1637 helpers to build and install as part of the normal
1638 build process. For a list of available
1639 helpers see the helpers/basic_auth directory.]),
94439e4e 1640[ case "$enableval" in
7f18d2bd 1641 yes)
1642 BASIC_AUTH_HELPERS="all"
1c690e30 1643 ;;
94439e4e 1644 no)
7f18d2bd 1645 BASIC_AUTH_HELPERS=""
1c690e30 1646 ;;
94439e4e 1647 *)
7f18d2bd 1648 if test -z "$AUTH_MODULE_basic"; then
eed82608 1649 AC_MSG_WARN([Basic auth helpers selected without the basic scheme enabled])
7f18d2bd 1650 sleep 15
1651 fi
1c690e30 1652 BASIC_AUTH_HELPERS="`echo $enableval| sed -e 's/,/ /g;s/ */ /g'`"
1653 ;;
94439e4e 1654 esac
1655])
7f18d2bd 1656if test "$BASIC_AUTH_HELPERS" = "all" ; then
1657 BASIC_AUTH_HELPERS=""
1658 for dir in $srcdir/helpers/basic_auth/*; do
1659 helper="`basename $dir`"
1660 if test -f $dir/config.test && sh $dir/config.test "$@"; then
1661 BASIC_AUTH_HELPERS="$BASIC_AUTH_HELPERS $helper"
1662 fi
1663 done
1664fi
fc83a946 1665if test -n "$BASIC_AUTH_HELPERS"; then
20d8bfe4 1666 for helper in $BASIC_AUTH_HELPERS; do
1c690e30 1667 if test -d $srcdir/helpers/basic_auth/$helper; then
2adff954 1668 case $helper in
1669 SASL)
1670 require_sasl=yes
1671 ;;
1672 esac
20d8bfe4 1673 else
8b0d8e31 1674 AC_MSG_ERROR(Basic auth helper $helper does not exist)
20d8bfe4 1675 fi
1676 done
eed82608 1677 AC_MSG_NOTICE([Basic auth helpers built: $BASIC_AUTH_HELPERS])
94439e4e 1678fi
fc83a946 1679AC_SUBST(BASIC_AUTH_HELPERS)
94439e4e 1680
1681dnl Select ntlm auth helpers to build
7f18d2bd 1682if test -n "$AUTH_MODULE_ntlm"; then
1683 NTLM_AUTH_HELPERS="all"
1684fi
94439e4e 1685AC_ARG_ENABLE(ntlm-auth-helpers,
62979ab1 1686 AS_HELP_STRING([--enable-ntlm-auth-helpers="list of helpers"],[This option selects which proxy_auth ntlm helpers
19b4777c
FC
1687 to build and install as part of the normal build
1688 process. For a list of available helpers see
1689 the helpers/ntlm_auth directory.]),
380f0a87 1690[ case "$enableval" in
1691 yes)
7f18d2bd 1692 NTLM_AUTH_HELPERS="all"
1c690e30 1693 ;;
380f0a87 1694 no)
7f18d2bd 1695 NTLM_AUTH_HELPERS=""
1c690e30 1696 ;;
380f0a87 1697 *)
1c690e30 1698 NTLM_AUTH_HELPERS="`echo $enableval| sed -e 's/,/ /g;s/ */ /g'`"
1699 ;;
380f0a87 1700 esac
1701])
7f18d2bd 1702if test "$NTLM_AUTH_HELPERS" = "all" ; then
1703 NTLM_AUTH_HELPERS=""
1704 for dir in $srcdir/helpers/ntlm_auth/*; do
1705 helper="`basename $dir`"
1706 if test -f $dir/config.test && sh $dir/config.test "$@"; then
1707 NTLM_AUTH_HELPERS="$NTLM_AUTH_HELPERS $helper"
1708 fi
1709 done
1710fi
94439e4e 1711if test -n "$NTLM_AUTH_HELPERS"; then
20d8bfe4 1712 for helper in $NTLM_AUTH_HELPERS; do
1c690e30 1713 if test -d $srcdir/helpers/ntlm_auth/$helper; then
1714 :
20d8bfe4 1715 else
8b0d8e31 1716 AC_MSG_ERROR(NTLM Auth helper $helper does not exist)
20d8bfe4 1717 fi
1718 done
eed82608 1719 AC_MSG_NOTICE([NTLM auth helpers built: $NTLM_AUTH_HELPERS])
380f0a87 1720fi
94439e4e 1721AC_SUBST(NTLM_AUTH_HELPERS)
1722
6e785d85 1723dnl Select negotiate auth helpers to build
7f18d2bd 1724if test -n "$AUTH_MODULE_negotiate"; then
1725 NEGOTIATE_AUTH_HELPERS="all"
1726fi
6e785d85 1727AC_ARG_ENABLE(negotiate-auth-helpers,
62979ab1 1728 AS_HELP_STRING([--enable-negotiate-auth-helpers="list of helpers"],[This option selects which proxy_auth negotiate helpers
e702812e
FC
1729 to build and install as part of the normal build
1730 process. For a list of available helpers see
1731 the helpers/negotiate_auth directory.]),
6e785d85 1732[ case "$enableval" in
1733 yes)
7f18d2bd 1734 NEGOTIATE_AUTH_HELPERS="all"
6e785d85 1735 ;;
1736 no)
7f18d2bd 1737 NEGOTIATE_AUTH_HELPERS=""
6e785d85 1738 ;;
1739 *)
1740 NEGOTIATE_AUTH_HELPERS="`echo $enableval| sed -e 's/,/ /g;s/ */ /g'`"
1741 ;;
1742 esac
1743])
7f18d2bd 1744if test "$NEGOTIATE_AUTH_HELPERS" = "all" ; then
1745 NEGOTIATE_AUTH_HELPERS=""
1746 for dir in $srcdir/helpers/negotiate_auth/*; do
1747 helper="`basename $dir`"
1748 if test -f $dir/config.test && sh $dir/config.test "$@"; then
1749 NEGOTIATE_AUTH_HELPERS="$NEGOTIATE_AUTH_HELPERS $helper"
1750 fi
1751 done
1752fi
6e785d85 1753if test -n "$NEGOTIATE_AUTH_HELPERS"; then
1754 for helper in $NEGOTIATE_AUTH_HELPERS; do
1755 if test -d $srcdir/helpers/negotiate_auth/$helper; then
1756 :
1757 else
8b0d8e31 1758 AC_MSG_ERROR(Negotiate Auth helper $helper does not exist)
6e785d85 1759 fi
1760 done
eed82608 1761 AC_MSG_NOTICE([Negotiate auth helpers built: $NEGOTIATE_AUTH_HELPERS])
6e785d85 1762fi
1763AC_SUBST(NEGOTIATE_AUTH_HELPERS)
95329c22 1764AC_CONFIG_SUBDIRS(helpers/negotiate_auth/squid_kerb_auth)
6e785d85 1765
2d70df72 1766dnl Select digest auth scheme helpers to build
7f18d2bd 1767if test -n "$AUTH_MODULE_digest"; then
1768 DIGEST_AUTH_HELPERS=all
1769fi
2d70df72 1770AC_ARG_ENABLE(digest-auth-helpers,
62979ab1 1771 AS_HELP_STRING([--enable-digest-auth-helpers="list of helpers"],[This option selects which digest scheme authentication
e702812e
FC
1772 helpers to build and install as part of the normal build
1773 process. For a list of available helpers see the
1774 helpers/digest_auth directory.]),
2d70df72 1775[ case "$enableval" in
1776 yes)
7f18d2bd 1777 DIGEST_AUTH_HELPERS="all"
1c690e30 1778 ;;
2d70df72 1779 no)
7f18d2bd 1780 DIGEST_AUTH_HELPERS=""
1c690e30 1781 ;;
2d70df72 1782 *)
1c690e30 1783 DIGEST_AUTH_HELPERS="`echo $enableval| sed -e 's/,/ /g;s/ */ /g'`"
1784 ;;
2d70df72 1785 esac
1786])
7f18d2bd 1787if test "$DIGEST_AUTH_HELPERS" = "all" ; then
1788 DIGEST_AUTH_HELPERS=""
1789 for dir in $srcdir/helpers/digest_auth/*; do
1790 helper="`basename $dir`"
1791 if test -f $dir/config.test && sh $dir/config.test "$@"; then
1792 DIGEST_AUTH_HELPERS="$DIGEST_AUTH_HELPERS $helper"
1793 fi
1794 done
1795fi
2d70df72 1796if test -n "$DIGEST_AUTH_HELPERS"; then
1daefc1a 1797 for helper in $DIGEST_AUTH_HELPERS; do
1798 if test -f $srcdir/helpers/digest_auth/$helper/Makefile.in; then
1799 :
1800 else
8b0d8e31 1801 AC_MSG_ERROR(digest auth helper $helper does not exist)
1daefc1a 1802 fi
1803 done
eed82608 1804 AC_MSG_NOTICE([Digest auth helpers built: $DIGEST_AUTH_HELPERS])
2d70df72 1805fi
1806AC_SUBST(DIGEST_AUTH_HELPERS)
380f0a87 1807
9ca29d23
AJ
1808dnl Check Kerberos
1809SAVED_CPPFLAGS=$CPPFLAGS
1810SAVED_LIBS=$LIBS
1811AC_ARG_WITH(krb5-config,
1812 [ --with-krb5-config=PATH specify path to krb5-config @<:@default=detect@:>@],
1813[ if test "$withval" = "yes"; then
1814 unset krb5confpath
1815 elif test "$withval" != "no"; then
1816 krb5confpath=$withval
1817 else
1818 krb5confpath=no
1819 fi
1820])
1821if test x"$krb5confpath" != xno; then
1822 if test x"$krb5confpath" != x; then
1823 if ! test -x "$krb5confpath"; then
1824 AC_MSG_WARN([krb5-config '$krb5confpath' not executable, ignoring])
1825 AC_CHECK_PROG(ac_krb5_config, krb5-config, yes, no)
1826 krb5confpath=krb5-config
1827 fi
1828 krb5_config_path=`dirname $krb5confpath`
1829 AC_CHECK_PROG(ac_krb5_config, krb5-config, yes, no, $krb5_config_path)
1830 else
1831 AC_CHECK_PROG(ac_krb5_config,krb5-config,yes,no)
1832 krb5confpath=krb5-config
1833 fi
1834fi
1835if test "$ac_krb5_config" = "yes" ; then
cf99ae25
AJ
1836 ac_heimdal="`$krb5confpath --version 2>/dev/null | grep -i heimdal`"
1837 ac_solaris="`$krb5confpath --version 2>/dev/null | grep -i solaris`"
9ca29d23
AJ
1838 if test "x$ac_heimdal" != "x" ; then
1839 AC_DEFINE(HAVE_HEIMDAL_KERBEROS,1,[Define to 1 if you have Heimdal Kerberos])
1840 else
1841 AC_DEFINE(HAVE_MIT_KERBEROS,1,[Define to 1 if you have MIT Kerberos])
1842 fi
1843 if test "$ac_solaris" != "" ; then
cf99ae25
AJ
1844 KRB5INCS="`$krb5confpath --cflags krb5 2>/dev/null`"
1845 KRB5LIBS="`$krb5confpath --libs krb5 2>/dev/null`"
9ca29d23
AJ
1846 KRB5INCS="-I/usr/include/gssapi $KRB5INCS"
1847 KRB5LIBS="-L/usr/lib -R/usr/lib -lgss -lresolv -lsocket -lnsl $KRB5LIBS"
1848 else
cf99ae25
AJ
1849 KRB5INCS="`$krb5confpath --cflags krb5 2>/dev/null`"
1850 KRB5LIBS="`$krb5confpath --libs krb5 2>/dev/null`"
9ca29d23
AJ
1851 KRB5INCS="`$krb5confpath --cflags gssapi 2>/dev/null` $KRB5INCS"
1852 KRB5LIBS="`$krb5confpath --libs gssapi 2>/dev/null` $KRB5LIBS"
1853 fi
1854 CPPFLAGS="$CPPFLAGS $KRB5INCS"
1855 LIBS="$LIBS $KRB5LIBS"
1856 AC_CHECK_HEADERS(gssapi.h gssapi/gssapi.h gssapi/gssapi_krb5.h)
1857 if test "x$ac_heimdal" == "x" ; then
1858 AC_CHECK_HEADERS(gssapi/gssapi_generic.h)
1859 fi
cf99ae25 1860 AC_CHECK_HEADERS(krb5.h com_err.h et/comm_err.h)
9ca29d23
AJ
1861 AC_MSG_CHECKING([for max_skew in struct krb5_context])
1862AC_TRY_COMPILE([
1863#include <krb5.h>
1864 ],
1865 [ krb5_context kc; kc->max_skew = 1; ],
1866 [ AC_DEFINE(HAVE_MAX_SKEW_IN_KRB5_CONTEXT, 1, [Define to 1 if max_skew in struct krb5_context])
1867 AC_MSG_RESULT(yes) ],
1868 [ AC_MSG_RESULT(no) ]
1869 )
1870
1871 if test "x$ac_heimdal" == "x" ; then
1872 AC_CHECK_HEADERS(profile.h)
1873 fi
cf99ae25
AJ
1874 AC_CHECK_LIB(com_err,error_message,
1875 AC_DEFINE(HAVE_ERROR_MESSAGE,1,[Define to 1 if you have error_message]),)
1876 AC_CHECK_LIB(krb5,krb5_get_err_text,
1877 AC_DEFINE(HAVE_KRB5_GET_ERR_TEXT,1,[Define to 1 if you have krb5_get_err_text]),)
1878 AC_CHECK_LIB(krb5,krb5_get_error_message,
1879 AC_DEFINE(HAVE_KRB5_GET_ERROR_MESSAGE,1,[Define to 1 if you have krb5_get_error_message]),)
9ca29d23
AJ
1880 AC_CHECK_LIB(krb5,krb5_kt_free_entry,
1881 AC_DEFINE(HAVE_KRB5_KT_FREE_ENTRY,1,[Define to 1 if you have krb5_kt_free_entry]),)
1882 AC_CHECK_LIB(krb5,krb5_get_init_creds_keytab,
1883 AC_DEFINE(HAVE_GET_INIT_CREDS_KEYTAB,1,[Define to 1 if you have krb5_get_init_creds_keytab]),)
1884 AC_CHECK_LIB(krb5,krb5_get_max_time_skew,
1885 AC_DEFINE(HAVE_KRB5_GET_MAX_TIME_SKEW,1,[Define to 1 if you have krb5_get_max_time_skew]),)
1886 AC_CHECK_LIB(krb5,krb5_get_profile,
1887 AC_DEFINE(HAVE_KRB5_GET_PROFILE,1,[Define to 1 if you have krb5_get_profile]),)
1888 AC_CHECK_LIB(krb5,profile_get_integer,
1889 AC_DEFINE(HAVE_PROFILE_GET_INTEGER,1,[Define to 1 if you have profile_get_integer]),)
1890 AC_CHECK_LIB(krb5,profile_release,
1891 AC_DEFINE(HAVE_PROFILE_RELEASE,1,[Define to 1 if you have profile_release]),)
1892 AC_MSG_CHECKING([for memory cache])
1893 AC_TRY_RUN([
1894#include<krb5.h>
1895main()
1896{
1897 krb5_context context;
1898 krb5_ccache cc;
1899
1900 krb5_init_context(&context);
1901 return krb5_cc_resolve(context, "MEMORY:test_cache", &cc);
1902}],
1903 [AC_DEFINE(HAVE_KRB5_MEMORY_CACHE,1, [Define to 1 if you have MEMORY: cache support])
1904 AC_MSG_RESULT(yes)],
1905 AC_MSG_RESULT(no))
1906
1907 AC_MSG_CHECKING([for working gssapi])
1908 AC_TRY_RUN([
1909#ifdef HAVE_GSSAPI_GSSAPI_H
1910#include <gssapi/gssapi.h>
1911#elif HAVE_GSSAPI_H
1912#include <gssapi.h>
1913#endif
1914
1915#ifdef HAVE_GSSAPI_GSSAPI_EXT_H
1916#include <gssapi/gssapi_ext.h>
1917#endif
1918
1919#ifdef HAVE_GSSAPI_GSSAPI_KRB5_H
1920#include <gssapi/gssapi_krb5.h>
1921#endif
1922
1923#ifdef HAVE_GSSAPI_GSSAPI_GENERIC_H
1924#include <gssapi/gssapi_generic.h>
1925#endif
1926int
1927main(void)
1928{
1929 OM_uint32 val;
1930 gss_OID_set set;
1931
1932 gss_create_empty_oid_set(&val, &set);
1933
1934 return 0;
1935}
1936], [AC_DEFINE(HAVE_GSSAPI, 1, [GSSAPI support])
1937 AC_MSG_RESULT(yes)],
1938 AC_MSG_RESULT(no))
1939 AC_MSG_CHECKING([for spnego support])
1940 AC_TRY_RUN([
1941#ifdef HAVE_HEIMDAL_KERBEROS
1942#ifdef HAVE_GSSAPI_GSSAPI_H
1943#include <gssapi/gssapi.h>
1944#elif defined(HAVE_GSSAPI_H)
1945#include <gssapi.h>
1946#endif
1947#else
1948#ifdef HAVE_GSSAPI_GSSAPI_H
1949#include <gssapi/gssapi.h>
1950#elif defined(HAVE_GSSAPI_H)
1951#include <gssapi.h>
1952#endif
1953#ifdef HAVE_GSSAPI_GSSAPI_KRB5_H
1954#include <gssapi/gssapi_krb5.h>
1955#endif
1956#ifdef HAVE_GSSAPI_GSSAPI_GENERIC_H
1957#include <gssapi/gssapi_generic.h>
1958#endif
1959#endif
1960#include <string.h>
1961int main(int argc, char *argv[]) {
1962 OM_uint32 major_status,minor_status;
1963 gss_OID_set gss_mech_set;
1964 int i;
1965
1966static gss_OID_desc _gss_mech_spnego = {6, (void *)"\x2b\x06\x01\x05\x05\x02"};
1967gss_OID gss_mech_spnego = &_gss_mech_spnego;
1968
1969 major_status = gss_indicate_mechs( &minor_status, &gss_mech_set);
1970
1971 for (i=0;i<gss_mech_set->count;i++) {
1972 if (!memcmp(gss_mech_set->elements[i].elements,gss_mech_spnego->elements,gss_mech_set->elements[i].length)) {
1973 return 0;
1974 }
1975 }
1976
1977 return 1;
1978}],
1979 [ac_cv_have_spnego=yes
1980 AC_DEFINE(HAVE_SPNEGO,1, [Define to 1 if you have SPNEGO support])
1981 AC_MSG_RESULT(yes)],
1982 [ac_cv_have_spnego=no
1983 AC_MSG_RESULT(no)])
1984 AC_MSG_CHECKING([for working krb5])
1985 AC_TRY_RUN([
1986#ifdef HAVE_KRB5_H
1987#include <krb5.h>
1988#endif
1989
1990int
1991main(void)
1992{
1993 krb5_context context;
1994
1995 krb5_init_context(&context);
1996
1997 return 0;
1998}
1999], [AC_DEFINE(HAVE_KRB5, 1, [KRB5 support])
2000 AC_MSG_RESULT(yes)],
2001 AC_MSG_RESULT(no))
2002 LIBS=$SAVED_LIBS
2003 CPPFLAGS=$SAVED_CPPFLAGS
2004 AC_SUBST(KRB5INCS)
2005 AC_SUBST(KRB5LIBS)
2006fi
2007AM_CONDITIONAL(HAVE_SPNEGO, test x"$ac_cv_have_spnego" = x"yes" )
2008
6437ac71 2009dnl Enable "NTLM fail open"
2010AC_ARG_ENABLE(ntlm-fail-open,
62979ab1 2011 AS_HELP_STRING([--enable-ntlm-fail-open],[Enable NTLM fail open, where a helper that fails one of the
e702812e
FC
2012 Authentication steps can allow squid to still authenticate
2013 the user.]),
6437ac71 2014[ if test "$enableval" = "yes" ; then
6a9f6389 2015 AC_DEFINE(NTLM_FAIL_OPEN,1,[Define if NTLM is allowed to fail gracefully when a helper has problems. WARNING: This has security implications. DO NOT enable unless you KNOW you need it.])
6437ac71 2016 fi
2017])
2018
c6588c68 2019dnl Select external_acl helpers to build
7f18d2bd 2020EXTERNAL_ACL_HELPERS=all
c6588c68 2021AC_ARG_ENABLE(external-acl-helpers,
62979ab1 2022 AS_HELP_STRING([--enable-external-acl-helpers="list of helpers"],[This option selects which external_acl helpers to
e702812e
FC
2023 build and install as part of the normal build
2024 process. For a list of available helpers see the
2025 helpers/external_acl directory.]),
c6588c68 2026[ case "$enableval" in
2027 yes)
7f18d2bd 2028 EXTERNAL_ACL_HELPERS=all
1c690e30 2029 ;;
c6588c68 2030 no)
7f18d2bd 2031 EXTERNAL_ACL_HELPERS=""
1c690e30 2032 ;;
c6588c68 2033 *)
1c690e30 2034 EXTERNAL_ACL_HELPERS="`echo $enableval| sed -e 's/,/ /g;s/ */ /g'`"
2035 ;;
c6588c68 2036 esac
2037])
7f18d2bd 2038if test "$EXTERNAL_ACL_HELPERS" = "all" ; then
39ee7289 2039 EXTERNAL_ACL_HELPERS=""
7f18d2bd 2040 for dir in $srcdir/helpers/external_acl/*; do
2041 helper="`basename $dir`"
2042 if test -f $dir/config.test && sh $dir/config.test "$@"; then
2043 EXTERNAL_ACL_HELPERS="$EXTERNAL_ACL_HELPERS $helper"
2044 fi
2045 done
2046fi
c6588c68 2047if test -n "$EXTERNAL_ACL_HELPERS"; then
20d8bfe4 2048 for helper in $EXTERNAL_ACL_HELPERS; do
2049 if test -f $srcdir/helpers/external_acl/$helper/Makefile.in; then
2050 :
2051 else
8b0d8e31 2052 AC_MSG_ERROR(external acl helper $helper does not exist)
20d8bfe4 2053 fi
2054 done
eed82608 2055 AC_MSG_NOTICE([External acl helpers built: $EXTERNAL_ACL_HELPERS])
c6588c68 2056fi
2057AC_SUBST(EXTERNAL_ACL_HELPERS)
2058
fdbb3b19
AJ
2059dnl Select url_rewrite helpers to build
2060URL_REWRITE_HELPERS=all
2061AC_ARG_ENABLE(url-rewrite-helpers,
2062 AC_HELP_STRING([--enable-url-rewrite-helpers="list of helpers"],
2063 [This option selects which url_rewrite helpers to
2064 build and install as part of the normal build
2065 process. For a list of available helpers see the
2066 helpers/url_rewrite directory.]),
2067[ case "$enableval" in
2068 yes)
2069 URL_REWRITE_HELPERS=all
2070 ;;
2071 no)
2072 URL_REWRITE_HELPERS=""
2073 ;;
2074 *)
2075 URL_REWRITE_HELPERS="`echo $enableval| sed -e 's/,/ /g;s/ */ /g'`"
2076 ;;
2077 esac
2078])
2079if test "$URL_REWRITE_HELPERS" = "all" ; then
2080 URL_REWRITE_HELPERS=""
2081 for dir in $srcdir/helpers/url_rewrite/*; do
2082 helper="`basename $dir`"
2083 if test -f $dir/config.test && sh $dir/config.test "$@"; then
2084 URL_REWRITE_HELPERS="$URL_REWRITE_HELPERS $helper"
2085 fi
2086 done
2087fi
2088if test -n "$URL_REWRITE_HELPERS"; then
2089 for helper in $URL_REWRITE_HELPERS; do
2090 if test -f $srcdir/helpers/url_rewrite/$helper/Makefile.in; then
2091 :
2092 else
2093 AC_MSG_ERROR(url_rewrite helper $helper does not exist)
2094 fi
2095 done
2096 AC_MSG_NOTICE([url_rewrite helpers built: $URL_REWRITE_HELPERS])
2097fi
2098AC_SUBST(URL_REWRITE_HELPERS)
2099
2100
3a125142 2101AC_ARG_WITH(valgrind-debug,
62979ab1 2102 AS_HELP_STRING([--with-valgrind-debug],[Include debug instrumentation for use with valgrind]),
b4bab919 2103[ case $withval in
2104 yes)
2105 valgrind=1
2106 ;;
2107 no)
2108 valgrind=
2109 ;;
2110 *)
2111 CPPFLAGS="$CPPFLAGS -I${enableval}/include"
2112 valgrind=1
2113 ;;
2114 esac
2115 if test $valgrind; then
ad32c661
AJ
2116 AC_CHECK_HEADERS(valgrind/memcheck.h,
2117 [ AC_DEFINE(WITH_VALGRIND, 1, [Valgrind memory debugger support])
eed82608
AJ
2118 AC_MSG_NOTICE([Valgrind debug support enabled]) ],
2119 [ AC_MSG_WARN([Valgrind header not found. Valgrind support disabled.]) ]
ad32c661 2120 )
b4bab919 2121 fi
2122])
2123
d96ceb8e 2124dnl Disable "memPools" code
2125AC_ARG_ENABLE(mempools,
62979ab1 2126 AS_HELP_STRING([--disable-mempools],[Disable memPools. Note that this option now simply sets the
e702812e
FC
2127 default behaviour. Specific classes can override this at runtime, and
2128 only lib/MemPool.c needs to be altered to change the squid-wide
2129 default for all classes.]),
d96ceb8e 2130[ if test "$enableval" = "no" ; then
eed82608 2131 AC_MSG_NOTICE([memPools disabled])
6a9f6389 2132 AC_DEFINE(DISABLE_POOLS, 1, [Define if you have problems with memPools and want to disable Pools])
3e0dc9a8 2133 else
2134 AC_DEFINE(DISABLE_POOLS, 0, [Define if you have problems with memPools and want to disable Pools.])
d96ceb8e 2135 fi
3e0dc9a8 2136],
2137[ AC_DEFINE(DISABLE_POOLS, 0, [Define if you have problems with memPools and want to disable Pools.])
d96ceb8e 2138])
2139
0e657244 2140dnl Enable WIN32 Service compile mode
2141AC_ARG_ENABLE(win32-service,
62979ab1 2142 AS_HELP_STRING([--enable-win32-service],[Compile Squid as a WIN32 Service.
e702812e 2143 Works only on MS-Windows platforms (NT and up).]),
0e657244 2144[ if test "$enableval" = "yes" ; then
eed82608 2145 AC_MSG_NOTICE([Enabling WIN32 run service mode])
0e657244 2146 AC_DEFINE(USE_WIN32_SERVICE,1,[Define Windows NT & Windows 2000 run service mode])
2147 fi
2148])
2149
b1485ff8 2150
2adff954 2151dnl Check for Cyrus SASL
2152if test "$require_sasl" = "yes"; then
2153 AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
2154 if test "$ac_cv_header_sasl_sasl_h" = "yes"; then
eed82608 2155 AC_MSG_NOTICE([using SASL2])
2adff954 2156 LIBSASL="-lsasl2"
2157 else
2158 if test "$ac_cv_header_sasl_h" = "yes"; then
eed82608 2159 AC_MSG_NOTICE([using SASL])
2adff954 2160 LIBSASL="-lsasl"
2161 else
8b0d8e31 2162 AC_MSG_ERROR(Neither SASL nor SASL2 found)
2adff954 2163 fi
2164 fi
2165 AC_SUBST(LIBSASL)
2166fi
2167
3c573763 2168dnl Disable "unlinkd" code
fe0810ac 2169AC_ARG_ENABLE(unlinkd,
62979ab1 2170 AS_HELP_STRING([--disable-unlinkd],[Do not use unlinkd]),
fe0810ac 2171[ if test "$enableval" = "no" ; then
3c573763 2172 use_unlinkd=no
fe0810ac 2173 else
3c573763 2174 use_unlinkd=yes
fe0810ac 2175 fi
2176],[
2177 # Here we should probably use some magic depending on the selected
2178 # storage models
3c573763 2179 use_unlinkd=yes
fe0810ac 2180])
3c573763 2181if test "$use_unlinkd" = "yes"; then
eed82608 2182 AC_MSG_NOTICE([unlinkd enabled])
6a9f6389 2183 AC_DEFINE(USE_UNLINKD,1,[Define this if unlinkd is required (strongly recommended for ufs storage type)])
a2794549 2184 AM_CONDITIONAL(ENABLE_UNLINKD, true)
fe0810ac 2185else
eed82608 2186 AC_MSG_NOTICE([unlinkd disabled])
a2794549 2187 AM_CONDITIONAL(ENABLE_UNLINKD, false)
fe0810ac 2188fi
fe0810ac 2189
ce3d30fb 2190dnl Enable backtraces on fatal errors
2191AC_ARG_ENABLE(stacktraces,
62979ab1 2192 AS_HELP_STRING([--enable-stacktraces],[Enable automatic call backtrace on fatal errors]),
ce3d30fb 2193[ if test "$enableval" = "yes" ; then
eed82608 2194 AC_MSG_NOTICE([Enabling automatic stack backtraces on fatal errors])
6a9f6389 2195 AC_DEFINE(PRINT_STACK_TRACE, 1,[Print stacktraces on fatal errors])
ce3d30fb 2196 fi
2197])
2198
88bfe092 2199AM_CONDITIONAL(ENABLE_XPROF_STATS, false)
2200dnl Enable USE_XPROF_STATS
2201AC_ARG_ENABLE(cpu-profiling,
62979ab1 2202 AS_HELP_STRING([--enable-cpu-profiling],[Enable instrumentation to try and understand how CPU power
e702812e
FC
2203 is spent by squid, by enabling specific probes in selected
2204 functions. New probes can only be added by modifying the source code.
2205 It is meant to help developers in optimizing performance
2206 of Squid internal functions.
2207 If you are not developer you shouldn't enable this,
2208 as it slows squid down somewhat. See lib/Profiler.c for more details.]),
88bfe092 2209[ if test "$enableval" = "yes" ; then
eed82608 2210 AC_MSG_NOTICE([Enabling cpu-profiling])
6a9f6389 2211 AC_DEFINE(USE_XPROF_STATS, 1,[Define to enable CPU profiling within Squid])
88bfe092 2212 AM_CONDITIONAL(ENABLE_XPROF_STATS, true)
2213 fi
2214])
2215
f66a9ef4 2216dnl Enable X-Accelerator-Vary for Vary support within an accelerator setup
2092c67d 2217AC_ARG_ENABLE(x-accelerator-vary,
62979ab1 2218 AS_HELP_STRING([--enable-x-accelerator-vary],[Enable support for the X-Accelerator-Vary
e702812e
FC
2219 HTTP header. Can be used to indicate
2220 variance within an accelerator setup.
2221 Typically used together with other code
2222 that adds custom HTTP headers to the requests.]),
f66a9ef4 2223[ if test "$enableval" = "yes" ; then
eed82608 2224 AC_MSG_NOTICE([Enabling support for X-Accelerator-Vary])
6a9f6389 2225 AC_DEFINE(X_ACCELERATOR_VARY, 1, [Enable support for the X-Accelerator-Vary HTTP header])
f66a9ef4 2226 fi
2227])
2228
7172612f 2229AC_ARG_ENABLE(zph-qos,
62979ab1 2230 AS_HELP_STRING([--enable-zph-qos],[Enable ZPH QOS support]),
7172612f 2231[ if test "$enableval" = "yes" ; then
eed82608 2232 AC_MSG_NOTICE([ZPH QOS enabled])
7172612f
AJ
2233 AC_DEFINE(USE_ZPH_QOS,1,
2234 [ Define this to use Squid's ZPH (Zero Penalty Hit) QOS features.
2235 When enabled, Squid will alter TOS field of HIT responses for better QOS on intermediate routing/shaping devices.])
2236 fi
2237])
2238
a41b3435
AJ
2239dnl --with-maxfd present for compatibility with Squid-2.
2240dnl undocumented in ./configure --help to encourage using the Squid-3 directive.
2241AC_ARG_WITH(maxfd,,
2242[
2243 case ${withval} in
2244 [[0-9]]*)
2245 squid_filedescriptors_num=$withval
2246 ;;
2247 *)
2248 AC_MSG_ERROR(--with-maxfd expects a numeric argument)
2249 ;;
2250 esac
2251])
f49be7d1 2252AC_ARG_WITH(filedescriptors,
62979ab1 2253 AS_HELP_STRING([--with-filedescriptors=NUMBER],[Force squid to support NUMBER filedescriptors]),
8b0d8e31
AJ
2254[
2255 case ${withval} in
2256 [[0-9]]*)
2257 squid_filedescriptors_num=$withval
2258 ;;
2259 *)
2260 AC_MSG_ERROR(--with-filedescriptors expects a numeric argument)
2261 ;;
2262 esac
2263])
f49be7d1 2264
8b5e106b 2265AC_PATH_PROG(CPPUNITCONFIG, cppunit-config, false)
2266if $CPPUNITCONFIG --help >/dev/null; then
eed82608 2267 AC_MSG_NOTICE([using system installed cppunit])
8b5e106b 2268 SQUID_CPPUNIT_LIBS="`$CPPUNITCONFIG --libs`"
2269 SQUID_CPPUNIT_LA=''
2270 SQUID_CPPUNIT_INC="`$CPPUNITCONFIG --cflags`"
2271else
eed82608 2272 AC_MSG_WARN([cppunit does not appear to be installed. squid does not require this, but code testing with 'make check' will fail.])
63d03edb 2273 SQUID_CPPUNIT_LA=''
2274 SQUID_CPPUNIT_LIBS=''
2275 SQUID_CPPUNIT_INC=''
f5691f9c 2276fi
8b5e106b 2277
f5691f9c 2278AC_ARG_WITH(cppunit-basedir,
62979ab1 2279 AS_HELP_STRING([--with-cppunit-basedir=PATH],[Path where the cppunit headers are libraries are found
b0e7900f 2280 for unit testing.]),
f5691f9c 2281[ if test -f $withval/include/cppunit/TestCase.h; then
eed82608 2282 AC_MSG_NOTICE([Using cppunit includes from $withval])
f5691f9c 2283 SQUID_CPPUNIT_INC="-I${withval}/include"
2284 else
8b0d8e31 2285 AC_MSG_ERROR(Cannot find cppunit at $withval)
f5691f9c 2286 fi
2287 if test -f $withval/lib/libcppunit.la; then
eed82608 2288 AC_MSG_NOTICE([Using cppunit lib from $withval])
549b1e60 2289 SQUID_CPPUNIT_LA="${withval}/lib/libcppunit.la"
8b5e106b 2290 SQUID_CPPUNIT_LIBS='$(SQUID_CPPUNIT_LA)'
f5691f9c 2291 else
8b0d8e31 2292 AC_MSG_ERROR(Cannot find cppunit at $withval)
f5691f9c 2293 fi
f5691f9c 2294])
8b5e106b 2295AC_SUBST(SQUID_CPPUNIT_LIBS)
f5691f9c 2296AC_SUBST(SQUID_CPPUNIT_LA)
2297AC_SUBST(SQUID_CPPUNIT_INC)
f5691f9c 2298
fd9aaa3e 2299# Force some compilers to use ANSI features
2300#
2301case "$host" in
2302 alpha-dec-osf*)
2303 if test "$ac_cv_prog_CC" = "cc" ; then
eed82608 2304 AC_MSG_NOTICE([adding '-std1' to cc args for $host])
fd9aaa3e 2305 CC="cc -std1";
2306 ac_cv_prog_CC="$CC"
2307 fi
2308 ;;
c68e9c6b 2309 *-hp-hpux*)
2310 if test "$ac_cv_prog_CC" = "cc" ; then
eed82608 2311 AC_MSG_NOTICE([adding '-Ae' to cc args for $host])
c68e9c6b 2312 CC="cc -Ae";
2313 ac_cv_prog_CC="$CC"
2314 fi
2315 ;;
fd9aaa3e 2316esac
2317
090089c4 2318dnl Check for programs
2319AC_PROG_CPP
2320AC_PROG_INSTALL
090089c4 2321AC_PROG_LN_S
81280a96 2322AC_PATH_PROG(SH, sh, /bin/sh)
d9f67e6f 2323AC_PATH_PROG(FALSE, false, /usr/bin/false)
2324AC_PATH_PROG(TRUE, true, /usr/bin/true)
d9f67e6f 2325AC_PATH_PROG(MV, mv, $FALSE)
2326AC_PATH_PROG(MKDIR, mkdir, $FALSE)
090089c4 2327AC_PATH_PROG(LN, ln, cp)
dd56802c
AJ
2328
2329AC_PATH_PROG(RM, rm, $FALSE)
2330dnl Libtool 2.2.6 requires: rm -f
2331RM="$RM -f"
2332
a2794549 2333dnl automake handles this AC_PATH_PROG(MAKEDEPEND, makedepend, $TRUE)
d69f0c78 2334AC_PROG_EGREP
6ad85e8a 2335
d69f0c78 2336AC_PATH_PROG(PERL, perl, none)
4e9d8e26 2337if test "$ac_cv_path_PERL" = "none"; then
eed82608 2338 AC_MSG_FAILURE([Perl is required to compile Squid. Please install Perl and then re-run configure ])
4e9d8e26 2339fi
2340
6ad85e8a 2341case "$host" in
2342 *-hp-hpux*)
eed82608 2343 AC_MSG_NOTICE([Disabling 'ranlib' for HP-UX...])
6ad85e8a 2344 RANLIB=":"
2345 ;;
2346esac
2347
2348dnl set $(AR)
d69f0c78 2349AC_PATH_PROG(AR, ar, $FALSE)
6ad85e8a 2350AR_R="$AR r"
2351case "$host" in
2352 *-next-nextstep3)
2353 AR="libtool -o"
2354 ;;
2355esac
2356AC_SUBST(AR_R)
090089c4 2357
2358dnl Check for headers
2359AC_HEADER_DIRENT
2360AC_HEADER_STDC
db40ae20 2361
2362AC_CHECK_HEADERS( \
db40ae20 2363 arpa/inet.h \
30a4f2a8 2364 arpa/nameser.h \
9441aa34 2365 assert.h \
db40ae20 2366 bstring.h \
27e059d4 2367 cassert \
db40ae20 2368 crypt.h \
281422f8 2369 cstring \
30a4f2a8 2370 ctype.h \
2371 errno.h \
ce3d30fb 2372 execinfo.h \
db40ae20 2373 fcntl.h \
42ad37af 2374 fnmatch.h \
9c1d8929 2375 getopt.h \
52303a3d 2376 glob.h \
88738790 2377 gnumalloc.h \
30a4f2a8 2378 grp.h \
27e059d4
AJ
2379 iosfwd \
2380 iomanip \
2381 iostream \
5cafc1d6 2382 ip_compat.h \
42b51993 2383 ip_fil_compat.h \
5cafc1d6 2384 ip_fil.h \
2385 ip_nat.h \
dbc5782a 2386 ipl.h \
30a4f2a8 2387 libc.h \
6ad85e8a 2388 limits.h \
d2422105 2389 linux/types.h \
1cc2f840 2390 machine/byte_swap.h \
30a4f2a8 2391 malloc.h \
e0bddc45 2392 math.h \
db40ae20 2393 memory.h \
b075cbb1 2394 mount.h \
30a4f2a8 2395 netdb.h \
db40ae20 2396 netinet/in.h \
cc192b50 2397 netinet/in_systm.h \
42b51993 2398 netinet/ip_fil_compat.h \
1f7c9178 2399 openssl/err.h \
2400 openssl/md5.h \
2401 openssl/ssl.h \
cc192b50 2402 netinet/tcp.h \
a7ad6e4e 2403 openssl/engine.h \
27e059d4 2404 ostream \
4da086c4 2405 paths.h \
dcfe6390 2406 poll.h \
30a4f2a8 2407 pwd.h \
b5e4d7d4 2408 shadow.h \
30a4f2a8 2409 regex.h \
c68e9c6b 2410 sched.h \
30a4f2a8 2411 signal.h \
27e059d4 2412 sstream \
30a4f2a8 2413 stdarg.h \
2414 stddef.h \
27e059d4 2415 stdexcept \
30a4f2a8 2416 stdio.h \
db40ae20 2417 stdlib.h \
27e059d4 2418 string \
db40ae20 2419 string.h \
2420 strings.h \
0a4e8536 2421 sys/bitypes.h \
f9576890 2422 sys/bswap.h \
2423 sys/endian.h \
db40ae20 2424 sys/file.h \
5cafc1d6 2425 sys/ioctl.h \
30a4f2a8 2426 sys/param.h \
62ae0622 2427 sys/prctl.h \
3d4022fa 2428 sys/md5.h \
77e4c0c9 2429 sys/msg.h \
30a4f2a8 2430 sys/resource.h \
db40ae20 2431 sys/select.h\
30a4f2a8 2432 sys/socket.h \
2433 sys/stat.h \
b075cbb1 2434 sys/statvfs.h \
3c641669 2435 syscall.h \
30a4f2a8 2436 sys/syscall.h \
db40ae20 2437 sys/time.h \
2438 sys/types.h \
30a4f2a8 2439 sys/un.h \
b075cbb1 2440 sys/vfs.h \
30a4f2a8 2441 sys/wait.h \
db40ae20 2442 syslog.h \
30a4f2a8 2443 time.h \
2444 unistd.h \
3c641669 2445 utime.h \
30a4f2a8 2446 varargs.h \
77d6bd88 2447 byteswap.h \
2448 glib.h \
60d096f4 2449 stdint.h \
2450 inttypes.h \
3c641669 2451 grp.h \
94331f58 2452 db.h \
5b43d209 2453 db_185.h
db40ae20 2454)
2455
fc68f6b1 2456AC_CHECK_HEADERS(
2457 linux/netfilter_ipv4.h \
2458 linux/netfilter_ipv4/ip_tproxy.h \
2459,,,
dcd1dc78 2460SQUID_DEFAULT_INCLUDES
2461#if HAVE_LIMITS_H
2462#include <limits.h>
2463#endif
a74968c2
AJ
2464/* Netfilter ip(6)tables v1.4.0 has broken headers */
2465#if HAVE_NETINET_IN_H
2466#include <netinet/in.h>
2467#endif
dcd1dc78 2468)
2469
d1e5191e 2470dnl *BSD dont include the depenencies for all their net/ and netinet/ files
c92b4732 2471dnl We must include a few basic type headers for them to work.
d1e5191e
AJ
2472AC_CHECK_HEADERS( \
2473 net/if.h \
5a3237b0 2474 netinet/if_ether.h\
d1e5191e 2475 netinet/icmp6.h \
975cfef6 2476 netinet/in.h \
d1e5191e
AJ
2477 netinet/ip.h \
2478 netinet/ip6.h \
5a3237b0 2479 netinet/ip_compat.h\
975cfef6 2480 netinet/ip_fil_compat.h\
5a3237b0 2481 netinet/ip_fil.h\
d1e5191e 2482 netinet/ip_icmp.h \
dbc5782a 2483 netinet/ipl.h \
975cfef6 2484 netinet/ip_nat.h\
ec9909b0 2485 net/pf/pfvar.h \
d1e5191e 2486 net/pfvar.h \
77e4c0c9 2487 sys/mount.h\
d1e5191e
AJ
2488 resolv.h \
2489,,,
2490SQUID_BSDNET_INCLUDES)
5a3237b0 2491
a1559187 2492AC_CHECK_HEADERS([libxml/parser.h], [], [
2493 SAVED_CPPFLAGS="$CPPFLAGS"
2494 CPPFLAGS="-I/usr/include/libxml2 $CPPFLAGS"
2495 unset ac_cv_header_libxml_parser_h
15c21a9a
HN
2496 AC_CHECK_HEADERS([libxml/parser.h], [ac_cv_libxml2_include=yes], [])
2497 CPPFLAGS="$SAVED_CPPFLAGS"
a1559187 2498 ])
15c21a9a
HN
2499if test "x$ac_cv_libxml2_include" = "xyes"; then
2500 SQUID_CXXFLAGS="-I/usr/include/libxml2 $SQUID_CXXFLAGS"
2501fi
a1559187 2502
aee0606f 2503AC_C_CONST
d57288d2 2504AC_C_BIGENDIAN
aee0606f 2505
6a9f6389 2506AC_STRUCT_TM
2507AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[
2508#if TM_IN_SYS_TIME
2509#if HAVE_SYS_TIME_H
2510#include <sys/time.h>
2511#endif
2512#elif HAVE_TIME_H
2513#include <time.h>
2514#endif
5c51415d 2515])
46c883ed 2516
6a9f6389 2517AC_CHECK_TYPE(struct mallinfo,AC_DEFINE(HAVE_STRUCT_MALLINFO,1,[The system provides struct mallinfo]),,[
2518#if HAVE_SYS_TYPES_H
2519#include <sys/types.h>
2520#endif
eb824054 2521#if HAVE_MALLOC_H
2522#include <malloc.h>
6a9f6389 2523#endif])
eb824054 2524
6a9f6389 2525AC_CHECK_MEMBERS([struct mallinfo.mxfast],,,[
2526#if HAVE_SYS_TYPES_H
2527#include <sys/types.h>
2528#endif
2529#if HAVE_MALLOC_H
2530#include <malloc.h>
2531#endif])
090089c4 2532
08caf8c6 2533dnl Override rusage() detect on MinGW because is emulated in source code
2534case "$host_os" in
2535 mingw|mingw32)
2536 AC_DEFINE(HAVE_STRUCT_RUSAGE)
2537 ac_cv_func_getrusage='yes'
eed82608 2538 AC_MSG_NOTICE([Using own rusage on Windows.])
08caf8c6 2539 ;;
2540 *)
2541 AC_CHECK_TYPE(struct rusage,AC_DEFINE(HAVE_STRUCT_RUSAGE,1,[The system provides struct rusage]),,[
8ff51bba 2542#if HAVE_SYS_TIME_H
2543#include <sys/time.h>
2544#endif
b54a6789 2545#if HAVE_SYS_RESOURCE_H
2546#include <sys/resource.h>
6a9f6389 2547#endif])
08caf8c6 2548 ;;
2549esac
b54a6789 2550
6a9f6389 2551AC_CHECK_MEMBERS([struct iphdr.ip_hl],,,[
2552#if HAVE_SYS_TYPES_H
2553#include <sys/types.h>
2554#endif
a025a745 2555#include <netinet/in.h>
2556#include <netinet/in_systm.h>
6ad85e8a 2557#include <netinet/ip.h>
b05490a8 2558#if defined (__linux__) || defined (__CYGWIN__)
6ad85e8a 2559#define ip_hl ihl
2560#endif
2561#ifndef __linux__
b05490a8 2562#ifndef __CYGWIN__
6ad85e8a 2563#define iphdr ip
b05490a8 2564#endif
6a9f6389 2565#endif])
a025a745 2566
090089c4 2567dnl Check for typedefs
77d6bd88 2568AC_CHECK_SIZEOF(void *)
090089c4 2569
0409a509 2570dnl 8 bit integers - int8_t
2571dnl if this is defined we trust it to be 8 bits
2572AC_CHECK_TYPE(int8_t,[
2573 AC_CHECK_SIZEOF(int8_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2574 AC_DEFINE(HAVE_INT8_T,1,[int8_t is defined in system headers])
2575 ],,SQUID_DEFAULT_INCLUDES)
2576
2577dnl fallback #1
2578AC_CHECK_TYPE(char,[
2579 AC_CHECK_SIZEOF(char,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2580 AC_DEFINE(HAVE_CHAR,1,[char is defined in system headers])
2581 ],,SQUID_DEFAULT_INCLUDES)
2582
2583dnl unsigned 8 bit ints - u_int8_t
2584dnl if this is defined we trust it to be 8 bits
2585AC_CHECK_TYPE(u_int8_t,[
2586 AC_CHECK_SIZEOF(u_int8_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2587 AC_DEFINE(HAVE_U_INT8_T,1,[u_int8_t is defined in system headers])
2588 ],,SQUID_DEFAULT_INCLUDES)
2589
2590dnl fallback #1
2591dnl if this is defined we trust it to be 8 bits
2592AC_CHECK_TYPE(uint8_t,[
2593 AC_CHECK_SIZEOF(uint8_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2594 AC_DEFINE(HAVE_UINT8_T,1,[uint8_t is defined in system headers])
2595 ],,SQUID_DEFAULT_INCLUDES)
2596
2597dnl 16 bit integers - int16_t
6a9f6389 2598dnl if this is defined we trust it to be 16 bits
62266438 2599AC_CHECK_TYPE(int16_t,[
2600 AC_CHECK_SIZEOF(int16_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2601 AC_DEFINE(HAVE_INT16_T,1,[int16_t is defined in system headers])
2602 ],,SQUID_DEFAULT_INCLUDES)
6a9f6389 2603
2604dnl fallback #1
2605AC_CHECK_TYPE(short,[
856e69c5 2606 AC_CHECK_SIZEOF(short,,SQUID_DEFAULT_SIZEOF_INCLUDES)
6a9f6389 2607 AC_DEFINE(HAVE_SHORT,1,[short is defined in system headers])
2608 ],,SQUID_DEFAULT_INCLUDES)
2609
2610dnl fallback #2
2611AC_CHECK_TYPE(int,[
856e69c5 2612 AC_CHECK_SIZEOF(int,,SQUID_DEFAULT_SIZEOF_INCLUDES)
6a9f6389 2613 AC_DEFINE(HAVE_INT,1,[int is defined in system headers])
2614 ],,SQUID_DEFAULT_INCLUDES)
2615
2616dnl unsigned 16 bit ints - u_int16_t
2617dnl if this is defined we trust it to be 16 bits
62266438 2618AC_CHECK_TYPE(u_int16_t,[
2619 AC_CHECK_SIZEOF(u_int16_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2620 AC_DEFINE(HAVE_U_INT16_T,1,[u_int16_t is defined in system headers])
2621 ],,SQUID_DEFAULT_INCLUDES)
6a9f6389 2622
2623dnl fallback #1
2624dnl if this is defined we trust it to be 16 bits
62266438 2625AC_CHECK_TYPE(uint16_t,[
2626 AC_CHECK_SIZEOF(uint16_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2627 AC_DEFINE(HAVE_UINT16_T,1,[uint16_t is defined in system headers])
2628 ],,SQUID_DEFAULT_INCLUDES)
6a9f6389 2629
2630dnl 32 bit signed int - int32_t
2631dnl if this is defined we trust it to be 32 bits
62266438 2632AC_CHECK_TYPE(int32_t,[
2633 AC_CHECK_SIZEOF(int32_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2634 AC_DEFINE(HAVE_INT32_T,1,[int32_t is defined in system headers])
2635 ],,SQUID_DEFAULT_INCLUDES)
6a9f6389 2636
2637dnl fallback #1
2638AC_CHECK_TYPE(long,[
856e69c5 2639 AC_CHECK_SIZEOF(long,,SQUID_DEFAULT_SIZEOF_INCLUDES)
6a9f6389 2640 AC_DEFINE(HAVE_LONG,1,[long is defined in system headers])
2641 ],,SQUID_DEFAULT_INCLUDES)
2642
2643dnl 32 bit unsigned int - u_int32_t
2644dnl if this is defined we trust it to be 32 bits
62266438 2645AC_CHECK_TYPE(u_int32_t,[
2646 AC_CHECK_SIZEOF(u_int32_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2647 AC_DEFINE(HAVE_U_INT32_T,1,[u_int32_t is defined in system headers])
2648 ],,SQUID_DEFAULT_INCLUDES)
6a9f6389 2649
2650dnl fallback #1
2651dnl if this is defined we trust it to be 32 bits
62266438 2652AC_CHECK_TYPE(uint32_t,[
2653 AC_CHECK_SIZEOF(uint32_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2654 AC_DEFINE(HAVE_UINT32_T,1,[uint32_t is defined in system headers])
2655 ],,SQUID_DEFAULT_INCLUDES)
6a9f6389 2656
2657dnl 64 bit signed - int64_t
2658dnl if this is defind we trust it to be 64 bits
62266438 2659AC_CHECK_TYPE(int64_t,[
2660 AC_CHECK_SIZEOF(int64_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2661 AC_DEFINE(HAVE_INT64_T,1,[int64_t is defined in system headers])
2662 ],,SQUID_DEFAULT_INCLUDES)
6a9f6389 2663
2664dnl fallback #1
2665dnl if this is defind we trust it to be 64 bits
62266438 2666AC_CHECK_TYPE(__int64,[
2667 AC_CHECK_SIZEOF(__int64,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2668 AC_DEFINE(HAVE___INT64,1,[__int64 is defined in system headers])
2669 ],,SQUID_DEFAULT_INCLUDES)
6a9f6389 2670
2671dnl fallback #2
2672AC_CHECK_TYPE(long long,[
856e69c5 2673 AC_CHECK_SIZEOF(long long,,SQUID_DEFAULT_SIZEOF_INCLUDES)
6a9f6389 2674 AC_DEFINE(HAVE_LONG_LONG,1,[long long is defined in system headers])
2675 ],,SQUID_DEFAULT_INCLUDES)
2676
2677dnl 64 bit unsigned - u_int64_t
2678dnl if this is defind we trust it to be 64 bits
62266438 2679AC_CHECK_TYPE(u_int64_t,[
2680 AC_CHECK_SIZEOF(u_int64_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2681 AC_DEFINE(HAVE_U_INT64_T,1,[u_int64_t is defined in system headers])
2682 ],,SQUID_DEFAULT_INCLUDES)
6a9f6389 2683
2684dnl fallback #1
2685dnl if this is defind we trust it to be 64 bits
62266438 2686AC_CHECK_TYPE(uint64_t,[
2687 AC_CHECK_SIZEOF(uint64_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2688 AC_DEFINE(HAVE_UINT64_T,1,[uint64_t is defined in system headers])
2689 ],,SQUID_DEFAULT_INCLUDES)
6a9f6389 2690
588e71df 2691dnl On Solaris 9 x86, gcc may includes a "fixed" set of old system include files
2692dnl that is incompatible with the updated Solaris header files.
2693dnl For this reason, we must check if pad128_t and upad128_t are defined.
2694AC_CHECK_TYPE(pad128_t,
2695 AC_DEFINE(HAVE_PAD128_T,1,[pad128_t is defined in system headers]),
2696 ,SQUID_DEFAULT_INCLUDES)
2697
2698AC_CHECK_TYPE(upad128_t,
2699 AC_DEFINE(HAVE_UPAD128_T,1,[upad128_t is defined in system headers]),
2700 ,SQUID_DEFAULT_INCLUDES)
2701
6a9f6389 2702AC_CHECK_TYPE(pid_t, AC_DEFINE(HAVE_PID_T,1,[pid_t is defined by the system headers]),,SQUID_DEFAULT_INCLUDES)
856e69c5 2703AC_CHECK_TYPE(size_t, [AC_CHECK_SIZEOF(size_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
6a9f6389 2704 AC_DEFINE(HAVE_SIZE_T,1,[size_t is defined by the system headers])],,SQUID_DEFAULT_INCLUDES)
2705AC_CHECK_TYPE(ssize_t, AC_DEFINE(HAVE_SSIZE_T,1,[ssize_t is defined by the system headers]),,SQUID_DEFAULT_INCLUDES)
856e69c5 2706AC_CHECK_TYPE(off_t,[ AC_CHECK_SIZEOF(off_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
6a9f6389 2707 AC_DEFINE(HAVE_OFF_T,1,[off_t is defined by the system headers])],,SQUID_DEFAULT_INCLUDES)
2708AC_CHECK_TYPE(mode_t, AC_DEFINE(HAVE_MODE_T,1,[mode_t is defined by the system headers]),,SQUID_DEFAULT_INCLUDES)
2709AC_CHECK_TYPE(fd_mask, AC_DEFINE(HAVE_FD_MASK,1,[fd_mask is defined by the system headers]),,SQUID_DEFAULT_INCLUDES)
adcceb47 2710
77d6bd88 2711dnl Check for special functions
2712AC_FUNC_ALLOCA
2713
6a9f6389 2714AC_CHECK_TYPE(socklen_t,AC_DEFINE(HAVE_SOCKLEN_T,1,[socklen_t is defined by the system headers]),,[
2715#include <sys/types.h>
6637e3a5 2716#include <sys/socket.h>
2717#if STDC_HEADERS
2718#include <stdlib.h>
2719#include <stddef.h>
6a9f6389 2720#endif])
6637e3a5 2721
b50f1b2b
AJ
2722dnl Check for libcap header (assume its not broken unless
2723use_caps=yes
2724AC_ARG_ENABLE(caps, AS_HELP_STRING([--disable-caps],[disable usage of Linux capabilities library to control privileges]),
2725[ if test "x$enableval" = "xyes" ; then
2726 AC_MSG_RESULT(forced yes)
2727 else
2728 AC_MSG_RESULT(no)
2729 use_caps=no
2730 fi
2731],[AC_MSG_RESULT(yes)])
2732if test "x$use_caps" = "xyes"; then
2733 dnl Check for libcap1 breakage or libcap2 fixed (assume broken unless found working)
2734 libcap_broken=1
2735 AC_CHECK_HEADERS(sys/capability.h)
2736 AC_CACHE_CHECK([for operational libcap2], $libcap_broken,
2737 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/capability.h>]], [[
2738 capget(NULL, NULL);
2739 capset(NULL, NULL);
2740 ]])],[libcap_broken=0],[])
2741 )
2742 AC_DEFINE_UNQUOTED([LIBCAP_BROKEN],$libcap_broken,[if libcap2 is available and not clashing with libc])
2743fi
5b43d209 2744
6a9f6389 2745AC_CHECK_TYPE(mtyp_t,AC_DEFINE(HAVE_MTYP_T,1,[mtyp_t is defined by the system headers]),,[#include <sys/types.h>
aea1be68 2746#include <sys/ipc.h>
6a9f6389 2747#include <sys/msg.h>])
aea1be68 2748
090089c4 2749dnl Check for needed libraries
30a4f2a8 2750AC_CHECK_LIB(nsl, main)
6716b242 2751AC_CHECK_LIB(socket, main)
bfe8dedf 2752dnl Check for Winsock only on MinGW, on Cygwin we must use emulated BSD socket API
4b26fae9 2753case "$host_os" in
2754 mingw|mingw32)
2755 AC_MSG_CHECKING(for winsock)
2756 save_LIBS="$LIBS"
2757 for curlib in ws2_32 wsock32; do
2758 LIBS="$LIBS -l$curlib"
62979ab1 2759 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <winsock.h>]], [[
1635bf30
GS
2760 socket(0,0,0);
2761 select(0,NULL,NULL,NULL,NULL);
2762 closesocket(0);
2763 gethostname(NULL,0);
62979ab1 2764 ]])],[have_winsock=yes],[have_winsock=no])
4b26fae9 2765
2766 if test $have_winsock = yes; then
2767 ac_cv_func_select='yes'
2768 if test $curlib = ws2_32; then
2769 have_winsock=winsock2
2770 fi
2771 break
2772 fi
2773 LIBS="$save_LIBS"
2774 done
2775 AC_MSG_RESULT($have_winsock)
bfe8dedf
GS
2776 if test $have_winsock = winsock2; then
2777 AC_CHECK_HEADERS(winsock2.h)
2778 else
2779 AC_CHECK_HEADERS(winsock.h)
2780 fi
4b26fae9 2781 ;;
2782esac
94d48591 2783
3c641669 2784dnl Ripped from the Samba sources
2785AC_CACHE_CHECK([for unix domain sockets],squid_cv_unixsocket, [
62979ab1 2786 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3c641669 2787#include <sys/types.h>
2788#include <stdlib.h>
2789#include <stddef.h>
2790#include <sys/socket.h>
62979ab1 2791#include <sys/un.h>]], [[
3c641669 2792 struct sockaddr_un sunaddr;
2793 sunaddr.sun_family = AF_UNIX;
62979ab1 2794]])],[squid_cv_unixsocket=yes],[squid_cv_unixsocket=no])])
3c641669 2795if test x"$squid_cv_unixsocket" = x"yes"; then
6a9f6389 2796 AC_DEFINE(HAVE_UNIXSOCKET,1,[Do we have unix sockets? (required for the winbind ntlm helper])
3c641669 2797fi
2798dnl end rip
2799
94d48591 2800 AC_CHECK_LIB(gnumalloc, main)
2801 if test "$ac_cv_lib_gnumalloc_main" = "yes"; then
eed82608 2802 AC_MSG_NOTICE([Disabling extended malloc functions when using gnumalloc])
94d48591 2803 ac_cv_func_mallinfo=no
2804 ac_cv_func_mallocblksize=no
2805 ac_cv_func_mallopt=no
2806 else
2807 case "$host" in
2808 *-sun-solaris*)
eed82608 2809 AC_MSG_NOTICE([skipping libmalloc check for $host])
94d48591 2810 ;;
2811 i386-*-freebsd*)
eed82608 2812 AC_MSG_NOTICE([skipping libmalloc check for $host])
94d48591 2813 ;;
2814 *)
2815
2816 AC_CHECK_LIB(malloc, main)
2817 ;;
2818 esac
2819 fi
94d48591 2820
6716b242 2821AC_CHECK_LIB(bsd, main)
be79ade0 2822AC_CHECK_LIB(regex, main, [REGEXLIB="-lregex"])
04a56fa3 2823AC_CHECK_LIB(bind, gethostbyname)
2824if test $ac_cv_lib_bind_gethostbyname = "no" ; then
2825 case "$host" in
78743365 2826 i386-*-freebsd*)
eed82608 2827 AC_MSG_NOTICE([skipping libresolv checks for $host])
78743365 2828 ;;
2829 *)
78743365 2830 AC_CHECK_LIB(resolv, main)
2831 ;;
04a56fa3 2832 esac
2833fi
08caf8c6 2834case "$host_os" in
2835mingw|mingw32)
eed82608 2836 AC_MSG_NOTICE([Use MSVCRT for math functions.])
08caf8c6 2837 ;;
2838 *)
2839 AC_CHECK_LIB(m, main)
2840 ;;
2841esac
090089c4 2842
001ad4cc
AJ
2843dnl Enable IPv6 support
2844AC_MSG_CHECKING([whether to enable IPv6])
2845use_ipng=yes
2846AC_ARG_ENABLE(ipv6,
62979ab1 2847 AS_HELP_STRING([--disable-ipv6],[Disable IPv6 support]),
001ad4cc
AJ
2848[ if test "x$enableval" = "xyes" ; then
2849 AC_MSG_RESULT(yes)
2850 else
2851 AC_MSG_RESULT(no)
2852 use_ipng=no
2853 fi
2854],[AC_MSG_RESULT(yes)])
2855
2856if test "$use_ipng" = "yes"; then
2857 SAVED_LIBS="$LIBS"
2858 dnl Solaris 10/11 requires -lsocket
2859 case "$host" in
2860 *-solaris*)
2861 LIBS="$LIBS -lsocket"
2862 ;;
2863 *)
2864 ;;
2865 esac
2866 AC_CACHE_CHECK([if PF_INET6 is available], $use_ipng,
62979ab1 2867 AC_RUN_IFELSE([AC_LANG_SOURCE([[ /* PF_INET6 available check */
001ad4cc
AJ
2868# include <sys/types.h>
2869# include <sys/socket.h>
b3167ca7 2870 int main(int argc, char **argv) {
001ad4cc
AJ
2871 if (socket(PF_INET6, SOCK_STREAM, 0) < 0)
2872 return 1;
2873 else
2874 return 0;
2875 }
62979ab1 2876 ]])],[ AC_MSG_RESULT(yes)
001ad4cc 2877 use_ipng=yes
62979ab1
AJ
2878 SAVED_LIBS="$LIBS" ],[ AC_MSG_RESULT(no)
2879 use_ipng=no ],[])
001ad4cc
AJ
2880 )
2881 LIBS="$SAVED_LIBS"
2882fi
2883
2884if test "$use_ipng" = "yes"; then
2885 AC_DEFINE(USE_IPV6,1,[Enable support for IPv6 ])
2886 use_v4mapped=yes
2887
44770d71 2888dnl Check for forced split-stack mode
001ad4cc
AJ
2889 AC_MSG_CHECKING([for IPv6 split-stack requirement])
2890 AC_ARG_WITH(ipv6-split-stack,
62979ab1 2891 AS_HELP_STRING([--with-ipv6-split-stack],[Force-Enable experimental split-stack support for Windows XP and *BSD. Requires IPv6.]),
001ad4cc
AJ
2892 [ use_v4mapped="no"
2893 AC_MSG_RESULT(yes)],
2894 [ AC_MSG_RESULT(no) ])
2895
44770d71
AJ
2896dnl Check for IPv6 v4-mapping availability
2897dnl Useful for other OS with hybrid-stack defaults turned OFF
001ad4cc
AJ
2898dnl But only usable if it actually works...
2899 if test "$use_v4mapped" = "yes" ; then
2900 AC_MSG_CHECKING([for IPv6 v4-mapping ability])
62979ab1 2901 AC_RUN_IFELSE([AC_LANG_SOURCE([[ /* IPPROTO_V4MAPPED is usable check */
001ad4cc
AJ
2902# include <sys/types.h>
2903# include <sys/socket.h>
2904# include <netinet/in.h>
2905#if HAVE_NETINET_IN6_H
2906# include <netinet/in6.h>
2907#endif
b3167ca7 2908 int main(int argc, char **argv) {
001ad4cc
AJ
2909 int s = socket(PF_INET6, SOCK_STREAM, 0);
2910 int tos = 0;
2911 if (setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, (char *) &tos, sizeof(int)) < 0)
2912 return 1;
2913 else
2914 return 0;
2915 }
62979ab1 2916 ]])],[ AC_MSG_RESULT(yes)
001ad4cc
AJ
2917 use_v4mapped=yes
2918 AC_DEFINE(IPV6_SPECIAL_V4MAPPED, 1, [Enable v4-mapping through v6 sockets])
62979ab1 2919 ],[ AC_MSG_RESULT(no)
001ad4cc
AJ
2920 AC_DEFINE(IPV6_SPECIAL_V4MAPPED, 0, [Enable v4-mapping through v6 sockets])
2921 use_v4mapped=no
62979ab1 2922 ],[])
001ad4cc
AJ
2923 fi
2924
2925dnl if we can't defer v4-mapping to the OS we are forced to split-stack the FD table.
2926 AC_MSG_CHECKING([for IPv6 stack type/mode])
2927 if test "$use_v4mapped" = "yes"; then
2928 AC_DEFINE(IPV6_SPECIAL_V4MAPPED, 1, [Enable v4-mapping through v6 sockets. Requires IPv6 hybrid-stack.])
2929 AC_DEFINE(IPV6_SPECIAL_SPLITSTACK, 0, [Enable support for IPv6 on split-stack implementations])
2930 AC_MSG_RESULT(mapping hybrid)
2931 else
2932 AC_DEFINE(IPV6_SPECIAL_V4MAPPED, 0, [Enable v4-mapping through v6 sockets. Requires IPv6 hybrid-stack.])
2933 AC_DEFINE(IPV6_SPECIAL_SPLITSTACK, 1, [Enable support for IPv6 on split-stack implementations])
2934 AC_MSG_RESULT(split-stack or BSD non-mapping dual-stack)
2935 fi
2936
2937dnl Check whether this OS defines sin6_len as a member of sockaddr_in6 as a backup to ss_len
2938AC_CACHE_CHECK([for sin6_len field in struct sockaddr_in6],
2939 ac_cv_have_sin6_len_in_struct_sai, [
62979ab1 2940 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
001ad4cc
AJ
2941#include <sys/types.h>
2942#include <sys/socket.h>
2943#include <netinet/in.h>
62979ab1
AJ
2944 ]], [[ struct sockaddr_in6 s; s.sin6_len = 1; ]])],[ ac_cv_have_sin6_len_in_struct_sai="yes" ],[ ac_cv_have_sin6_len_in_struct_sai="no"
2945 ])
001ad4cc
AJ
2946 ])
2947 if test "x$ac_cv_have_sin6_len_in_struct_sai" = "xyes" ; then
2948 AC_DEFINE(HAVE_SIN6_LEN_IN_SAI, 1, [Does struct sockaddr_in6 have sin6_len? 1: Yes, 0: No])
2949 else
2950 AC_DEFINE(HAVE_SIN6_LEN_IN_SAI, 0, [Does struct sockaddr_in6 have sin6_len? 1: Yes, 0: No])
2951 fi
2952
2953else
2954 # NP: semi-silent failure as IPv4-only mode is perfectly usable on this system.
2955 AC_MSG_WARN([IPv6 is not available on this system.])
2956 AC_DEFINE(USE_IPV6,0,[Enable support for IPv6])
2957 AC_DEFINE(IPV6_SPECIAL_SPLITSTACK,0,[Enable support for IPv6 on split-stack implementations])
2958 AC_DEFINE(IPV6_SPECIAL_V4MAPPED,0,[Enable v4-mapping through v6 sockets])
2959fi
2960
2961dnl Check whether this OS defines ss_len as a member of sockaddr_storage
2962AC_CACHE_CHECK([for ss_len field in struct sockaddr_storage],
2963 ac_cv_have_ss_len_in_struct_ss, [
62979ab1 2964 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
001ad4cc
AJ
2965#include <sys/types.h>
2966#include <sys/socket.h>
2967#include <netinet/in.h>
62979ab1
AJ
2968 ]], [[ struct sockaddr_storage s; s.ss_len = 1; ]])],[ ac_cv_have_ss_len_in_struct_ss="yes" ],[ ac_cv_have_ss_len_in_struct_ss="no"
2969 ])
001ad4cc
AJ
2970])
2971if test "x$ac_cv_have_ss_len_in_struct_ss" = "xyes" ; then
2972 AC_DEFINE(HAVE_SS_LEN_IN_SS, 1, [Does struct sockaddr_storage have ss_len? 1: Yes, 0: No])
2973else
2974 AC_DEFINE(HAVE_SS_LEN_IN_SS, 0, [Does struct sockaddr_storage have ss_len? 1: Yes, 0: No])
2975fi
2976
2977dnl Check whether this OS defines sin_len as a member of sockaddr_in as a backup to ss_len
2978AC_CACHE_CHECK([for sin_len field in struct sockaddr_in],
2979 ac_cv_have_sin_len_in_struct_sai, [
62979ab1 2980 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
001ad4cc
AJ
2981#include <sys/types.h>
2982#include <sys/socket.h>
2983#include <netinet/in.h>
62979ab1
AJ
2984 ]], [[ struct sockaddr_in s; s.sin_len = 1; ]])],[ ac_cv_have_sin_len_in_struct_sai="yes" ],[ ac_cv_have_sin_len_in_struct_sai="no"
2985 ])
001ad4cc
AJ
2986])
2987if test "x$ac_cv_have_sin_len_in_struct_sai" = "xyes" ; then
2988 AC_DEFINE(HAVE_SIN_LEN_IN_SAI, 1, [Does struct sockaddr_in have sin_len? 1: Yes, 0: No])
2989else
2990 AC_DEFINE(HAVE_SIN_LEN_IN_SAI, 0, [Does struct sockaddr_in have sin_len? 1: Yes, 0: No])
2991fi
2992
090089c4 2993dnl Check for libcrypt
8154dd82 2994dnl Some of our helpers use crypt(3) which may be in libc, or in
2995dnl libcrypt (eg FreeBSD)
c1dc012a 2996AC_CHECK_LIB(crypt, crypt, [CRYPTLIB="-lcrypt"])
3d4022fa 2997dnl Solaris10 provides MD5 natively through libmd5
c1dc012a 2998AC_CHECK_LIB(md5, MD5Init, [CRYPTLIB="$CRYPTLIB -lmd5"])
be79ade0 2999AC_SUBST(CRYPTLIB)
77f675ad 3000
042b1f8a 3001dnl Check for libdl, used by auth_modules/PAM
8154dd82 3002if test "$with_dl" = "yes"; then
3003 AC_CHECK_LIB(dl, dlopen)
3004fi
042b1f8a 3005
86ec11aa 3006dnl -lintl is needed on SCO version 3.2v4.2 for strftime()
3007dnl Robert Side <rside@aiinc.bc.ca>
3008dnl Mon, 18 Jan 1999 17:48:00 GMT
3009case "$host" in
3010 *-pc-sco3.2*)
3011 AC_CHECK_LIB(intl, strftime)
3012 ;;
3013esac
3014
20e869bf 3015dnl On MinGW OpenLDAP is not available, so LDAP helpers can be linked
3016dnl only with Windows LDAP libraries using -lwldap32
3017case "$host_os" in
3018mingw|mingw32)
3019 LIB_LDAP="-lwldap32"
3020 LIB_LBER=""
3021 ;;
3022*)
3023 LIB_LDAP="-lldap"
3024 dnl LDAP helpers need to know if -llber is needed or not
3025 AC_CHECK_LIB(lber, main, [LIB_LBER="-llber"])
3026 ;;
3027esac
3028AC_SUBST(LIB_LDAP)
3029AC_SUBST(LIB_LBER)
3030
b7a1c19e 3031dnl Check for libdb
3032DBLIB=
01b4931d 3033dnl 1.85
a258dfca 3034AC_CACHE_CHECK(if dbopen needs -ldb,ac_cv_dbopen_libdb, [
32d0bbd7 3035SAVED_LIBS="$LIBS"; LIBS="$LIBS -ldb"
62979ab1 3036 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
a258dfca 3037#if HAVE_SYS_TYPES_H
3038#include <sys/types.h>
3039#endif
3040#if HAVE_LIMITS_H
3041#include <limits.h>
3042#endif
3043#if HAVE_DB_185_H
3044#include <db_185.h>
3045#elif HAVE_DB_H
3046#include <db.h>
62979ab1 3047#endif]], [[dbopen("", 0, 0, DB_HASH, (void *)0L)]])],[ac_cv_dbopen_libdb="yes"],[ac_cv_dbopen_libdb="no"])
32d0bbd7 3048LIBS="$SAVED_LIBS"
a258dfca 3049])
2b2161bb 3050if test $ac_cv_dbopen_libdb = yes; then
32d0bbd7 3051 LIB_DB="-ldb"
3052fi
01b4931d 3053AC_SUBST(LIB_DB)
b7a1c19e 3054
77f675ad 3055dnl System-specific library modifications
3056dnl
3057case "$host" in
88738790 3058 i386-*-solaris2.*)
7149a49f 3059 if test "$GCC" = "yes"; then
eed82608 3060 AC_MSG_NOTICE([Removing -O for gcc on $host])
80e92d6d 3061 CFLAGS="`echo $CFLAGS | sed -e 's/-O[[0-9]]*//'`"
7149a49f 3062 fi
3063 ;;
77f675ad 3064 *-sgi-irix*)
eed82608 3065 AC_MSG_NOTICE([Removing -lsocket for IRIX...])
6716b242 3066 LIBS=`echo $LIBS | sed -e s/-lsocket//`
eed82608 3067 AC_MSG_NOTICE([Removing -lnsl for IRIX...])
6716b242 3068 LIBS=`echo $LIBS | sed -e s/-lnsl//`
c415c128 3069 ac_cv_lib_nsl_main=no
eed82608 3070 AC_MSG_NOTICE([Removing -lbsd for IRIX...])
b44c0fb4 3071 LIBS=`echo $LIBS | sed -e s/-lbsd//`
77f675ad 3072 ;;
4ba0bd0e 3073dnl From: c0032033@ws.rz.tu-bs.de (Joerg Schumacher)
3074dnl Date: Thu, 17 Oct 1996 04:09:30 +0200
3075dnl Please change your configure script. AIX doesn't need -lbsd.
3076 *-ibm-aix*)
eed82608 3077 AC_MSG_NOTICE([Removing -lbsd for AIX...])
4ba0bd0e 3078 LIBS=`echo $LIBS | sed -e s/-lbsd//`
3079 ;;
30a4f2a8 3080 *m88k*)
fa035612 3081 SQUID_CFLAGS="$SQUID_CFLAGS -D_SQUID_MOTOROLA_"
3082 SQUID_CXXFLAGS="$SQUID_CXXFLAGS -D_SQUID_MOTOROLA_"
6a9f6389 3083 AC_DEFINE(GETTIMEOFDAY_NO_TZP,1,[If gettimeofday is known to take only one argument])
7149a49f 3084 ;;
580ce039 3085 [*-*-solaris2.[0-4]])
6a9f6389 3086 AC_DEFINE(GETTIMEOFDAY_NO_TZP,1)
30a4f2a8 3087 ;;
711fa75e 3088 [*-sony-newsos[56]*])
6a9f6389 3089 AC_DEFINE(GETTIMEOFDAY_NO_TZP,1)
f62c73dc 3090 ;;
77f675ad 3091esac
090089c4 3092
57faa85a 3093# Remove optimization for GCC 2.95.[123]
d20b1cd0 3094# gcc -O[2] on *BSD and Linux (x86) causes pointers to magically become NULL
3095if test "$GCC" = "yes"; then
3096 GCCVER=`$CC -v 2>&1 | awk '$2 == "version" {print $3}'`
3097 case "$GCCVER" in
57faa85a 3098 [2.95.[123]])
eed82608 3099 AC_MSG_NOTICE([Removing -O for gcc on $host with GCC $GCCVER])
d20b1cd0 3100 CFLAGS="`echo $CFLAGS | sed -e 's/-O[[0-9]]*//'`"
3101 ;;
3102 esac
3103fi
3104
176d10ee 3105# Recommended by Balint Nagy Endre <bne@CareNet.hu>
3106case "$host" in
3107 *-univel-sysv4.2MP)
3108 if test `uname -v` = "2.03"; then
eed82608 3109 AC_MSG_NOTICE([disabling mallinfo for $host])
176d10ee 3110 ac_cv_func_mallinfo=no
3111 fi
3112 ;;
3113esac
3114
84cecfd2 3115dnl This has to be before AC_CHECK_FUNCS
3116# Disable poll() on certain platforms. Override by setting ac_cv_func_poll
3117# when running configure.
3118if test -z "$ac_cv_func_poll"; then
3119 case "$host" in
3120 [alpha-dec-osf3.*])
3121 # John Kay (jkay@nlanr.net) 19970818
eed82608 3122 AC_MSG_NOTICE([disabling poll for $host...])
84cecfd2 3123 ac_cv_func_poll='no'
3124 ;;
3125 [*-hp-hpux*.*])
3126 # Duane Wessels
eed82608 3127 AC_MSG_NOTICE([disabling poll for $host...])
84cecfd2 3128 ac_cv_func_poll='no'
3129 ;;
3130 [*-linux-*])
f5cec332 3131 # Henrik Nordstrom (hno@squid-cache.org) 19980817
9bb83c8b 3132 # poll is problematic on Linux. We disable it
3133 # by default until Linux gets it right.
b6a2f15e 3134 rev=`uname -r | awk -F. '{printf "%03d%03d",$1,$2}'`
3135 if test $rev -lt 002002; then
eed82608 3136 AC_MSG_NOTICE([disabling poll for $host < 2.2...])
b6a2f15e 3137 ac_cv_func_poll='no'
3138 fi
84cecfd2 3139 ;;
c68e9c6b 3140 [powerpc-ibm-aix4.1.*])
3141 # Mike Laster (mlaster@metavillage.com) 19981021
eed82608 3142 AC_MSG_NOTICE([disabling poll for $host...])
c68e9c6b 3143 ac_cv_func_poll='no'
3144 ;;
86ec11aa 3145 [*-pc-sco3.2*])
3146 # Robert Side <rside@aiinc.bc.ca>
3147 # Mon, 18 Jan 1999 17:48:00 GMT
eed82608 3148 AC_MSG_NOTICE([disabling poll for $host...])
86ec11aa 3149 ac_cv_func_poll='no'
3150 ;;
84cecfd2 3151 esac
3152fi
176d10ee 3153
08caf8c6 3154dnl Override statfs() detect on MinGW becasue is emulated in source code
3155case "$host_os" in
3156mingw|mingw32)
3157 ac_cv_func_statfs='yes'
3158 ;;
3159esac
3160
6716b242 3161dnl Check for library functions
3162AC_CHECK_FUNCS(\
ce3d30fb 3163 backtrace_symbols_fd \
3a144521 3164 bcopy \
3165 bswap_16 \
3166 bswap_32 \
f9576890 3167 bswap16 \
3168 bswap32 \
4ac29a5b 3169 fchmod \
6716b242 3170 getdtablesize \
8505e57b 3171 getpagesize \
230c091c 3172 getpass \
3a144521 3173 getrlimit \
30a4f2a8 3174 getrusage \
9c1d8929 3175 getspnam \
379d5751 3176 gettimeofday \
52303a3d 3177 glob \
f9576890 3178 htobe16 \
3179 htole16 \
d474c7a6 3180 kqueue\
30a4f2a8 3181 lrand48 \
6716b242 3182 mallinfo \
0f5efab0 3183 mallocblksize \
6716b242 3184 mallopt \
2ae6b9b0 3185 memcpy \
30a4f2a8 3186 memmove \
dac27377 3187 memset \
b99a6dec 3188 mkstemp \
1812b6c7 3189 mktime \
88738790 3190 mstats \
84cecfd2 3191 poll \
62ae0622 3192 prctl \
3a144521 3193 pthread_attr_setschedparam \
cd748f27 3194 pthread_attr_setscope \
3195 pthread_setschedparam \
42b51993 3196 pthread_sigmask \
c68e9c6b 3197 putenv \
b1e77ec1 3198 random \
6716b242 3199 regcomp \
3200 regexec \
3201 regfree \
30a4f2a8 3202 res_init \
af76ec93 3203 __res_init \
4915be3b 3204 rint \
a4ba1105 3205 sbrk \
3a144521 3206 select \
234967c9 3207 seteuid \
c415c128 3208 setgroups \
30a4f2a8 3209 setpgrp \
6716b242 3210 setrlimit \
30a4f2a8 3211 setsid \
3212 sigaction \
11430c03 3213 snprintf \
1ccc0d40 3214 socketpair \
30a4f2a8 3215 srand48 \
b1e77ec1 3216 srandom \
0343b99c 3217 statfs \
6716b242 3218 sysconf \
3219 syslog \
234967c9 3220 timegm \
28da5e0d 3221 vsnprintf \
6716b242 3222)
f5e5c4cf 3223dnl ... and some we provide local replacements for
3224AC_REPLACE_FUNCS(\
3225 drand48 \
cc192b50 3226 inet_ntop \
3227 inet_pton \
f5e5c4cf 3228 initgroups \
cc192b50 3229 getaddrinfo \
3230 getnameinfo \
f5e5c4cf 3231 strerror \
585cddda
AJ
3232 strsep \
3233 strtoll \
f5e5c4cf 3234 tempnam \
3235)
6716b242 3236
d06d566f 3237# check for crypt, may require -lcrypt
3238SAVED_LIBS="$LIBS"
3239LIBS="$LIBS $CRYPTLIB"
3240AC_CHECK_FUNCS(crypt)
3241LIBS="$SAVED_LIBS"
3242
1b3db6d9 3243dnl Magic which checks whether we are forcing a type of comm loop we
3244dnl are actually going to (ab)use
3245
3246dnl Actually do the define magic now
3247dnl mostly ripped from squid-commloops, thanks to adrian and benno
3248
d474c7a6 3249if test -n "$SELECT_TYPE"; then
3250 : # Already decided above. Nothing to do here
6564c397 3251elif test -z "$disable_epoll" && test "$ac_cv_epoll_works" = "yes" ; then
a46d2c0e 3252 SELECT_TYPE="epoll"
6564c397 3253elif test -z "$disable_kqueue" && test "$ac_cv_func_kqueue" = "yes" ; then
3254 SELECT_TYPE="kqueue"
3255elif test -z "$disable_poll" && test "$ac_cv_func_poll" = "yes" ; then
6c9797b9 3256 SELECT_TYPE="poll"
6564c397 3257elif test -z "$disable_select" && test "$ac_cv_func_select" = "yes" ; then
663c0a38 3258 case "$host_os" in
3259 mingw|mingw32)
3260 SELECT_TYPE="select_win32"
663c0a38 3261 ;;
3262 *)
3263 SELECT_TYPE="select"
663c0a38 3264 ;;
3265 esac
1b3db6d9 3266else
eed82608
AJ
3267 AC_MSG_WARN([Eep! Can't find poll, kqueue, epoll, or select!])
3268 AC_MSG_WARN([I'll try select and hope for the best.])
1b3db6d9 3269 SELECT_TYPE="select"
6a9f6389 3270 AC_DEFINE(USE_SELECT,1)
1b3db6d9 3271fi
d474c7a6 3272
eed82608 3273AC_MSG_NOTICE([Using ${SELECT_TYPE} for the IO loop.])
d474c7a6 3274
3275AM_CONDITIONAL([USE_POLL], [test $SELECT_TYPE = poll])
3276AM_CONDITIONAL([USE_EPOLL], [test $SELECT_TYPE = epoll])
3277AM_CONDITIONAL([USE_SELECT], [test $SELECT_TYPE = select])
3278AM_CONDITIONAL([USE_SELECT_SIMPLE], [test $SELECT_TYPE = select_simple])
3279AM_CONDITIONAL([USE_SELECT_WIN32], [test $SELECT_TYPE = select_win32])
3280AM_CONDITIONAL([USE_KQUEUE], [test $SELECT_TYPE = kqueue])
3281AM_CONDITIONAL([USE_DEVPOLL], [test $SELECT_TYPE = devpoll])
3282
3283case $SELECT_TYPE in
3284epoll)
3285 AC_DEFINE(USE_EPOLL,1,[Use epoll() for the IO loop])
3286 ;;
3287poll)
3288 AC_DEFINE(USE_POLL,1,[Use poll() for the IO loop])
3289 ;;
3290kqueue)
3291 AC_DEFINE(USE_KQUEUE,1,[Use kqueue() for the IO loop])
3292 ;;
3293select_win32)
3294 AC_DEFINE(USE_SELECT_WIN32,1,[Use Winsock select() for the IO loop])
3295 ;;
3296select)
3297 AC_DEFINE(USE_SELECT,1,[Use select() for the IO loop])
3298 ;;
3299esac
1b3db6d9 3300
3301
d06d566f 3302
60939927 3303dnl Yay! Another Linux brokenness. Its not good enough
3304dnl to know that setresuid() exists, because RedHat 5.0 declares
3305dnl setresuid() but doesn't implement it.
3306dnl
3307AC_CACHE_CHECK(if setresuid is implemented, ac_cv_func_setresuid,
62979ab1 3308 AC_RUN_IFELSE([AC_LANG_SOURCE([[
60939927 3309#include <stdlib.h>
b3167ca7 3310 int main(int argc, char **argv) {
5c51415d 3311 if(setresuid(-1,-1,-1)) {
3312 perror("setresuid:");
b3167ca7 3313 return 1;
60939927 3314 }
b3167ca7 3315 return 0;
5c51415d 3316 }
62979ab1 3317 ]])],[ac_cv_func_setresuid="yes"],[ac_cv_func_setresuid="no"],[])
60939927 3318)
5c51415d 3319if test "$ac_cv_func_setresuid" = "yes" ; then
6a9f6389 3320 AC_DEFINE(HAVE_SETRESUID,1,[Yay! Another Linux brokenness. Its not good enough to know that setresuid() exists, because RedHat 5.0 declare setresuid() but doesn't implement it.])
5c51415d 3321fi
60939927 3322
cee08cbc
AJ
3323dnl Yay! This one is a MacOSX brokenness. Its not good enough
3324dnl to know that strnstr() exists, because MacOSX 10.4 have a bad
3325dnl copy that crashes with a buffer over-run!
3326dnl
3327AC_CACHE_CHECK(if strnstr is well implemented, ac_cv_func_strnstr,
62979ab1 3328 AC_RUN_IFELSE([AC_LANG_SOURCE([[
cee08cbc
AJ
3329#include <stdlib.h>
3330#include <stdio.h>
3331#include <string.h>
3332 // we expect this to succeed, or crash on over-run.
3333 // if it passes otherwise we may need a better check.
3334int main(int argc, char **argv)
3335{
3336 int size = 20;
3337 char *str = malloc(size);
3338 memset(str, 'x', size);
3339 strnstr(str, "fubar", size);
3340 return 0;
3341}
62979ab1 3342 ]])],[ac_cv_func_strnstr="yes"],[ac_cv_func_strnstr="no"],[])
cee08cbc
AJ
3343)
3344if test "$ac_cv_func_strnstr" = "yes" ; then
3345 AC_DEFINE(HAVE_STRNSTR,1,[Yay! We have a working strnstr!])
3346else
3347 AC_DEFINE(HAVE_STRNSTR,0,[Yay! A MacOS X brokenness. Its not good enough to know that strnstr() exists, because MacOSX 10.4 and earlier may have a buffer overrun.])
3348fi
3349
eee79a2e 3350dnl
3351dnl Test for va_copy
3352dnl
3353AC_CACHE_CHECK(if va_copy is implemented, ac_cv_func_va_copy,
62979ab1 3354 AC_RUN_IFELSE([AC_LANG_SOURCE([[
eee79a2e 3355 #include <stdarg.h>
cf69e4f2 3356 #include <stdlib.h>
b3167ca7 3357 int f (int i, ...) {
eee79a2e 3358 va_list args1, args2;
3359 va_start (args1, i);
3360 va_copy (args2, args1);
3361 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
b3167ca7 3362 return 1;
eee79a2e 3363 va_end (args1); va_end (args2);
eee79a2e 3364 return 0;
3365 }
b3167ca7 3366 int main(int argc, char **argv) { return f (0, 42); }
62979ab1 3367 ]])],[ac_cv_func_va_copy="yes"],[ac_cv_func_va_copy="no"],[])
eee79a2e 3368)
3369if test "$ac_cv_func_va_copy" = "yes" ; then
a45f884d 3370 AC_DEFINE(HAVE_VA_COPY, 1, [If your system have va_copy])
eee79a2e 3371fi
3372
3373dnl
3374dnl Some systems support __va_copy
3375dnl
3376AC_CACHE_CHECK(if __va_copy is implemented, ac_cv_func___va_copy,
62979ab1 3377 AC_RUN_IFELSE([AC_LANG_SOURCE([[
eee79a2e 3378 #include <stdarg.h>
cf69e4f2 3379 #include <stdlib.h>
b3167ca7 3380 int f (int i, ...) {
eee79a2e 3381 va_list args1, args2;
3382 va_start (args1, i);
3383 __va_copy (args2, args1);
3384 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
b3167ca7 3385 return 1;
eee79a2e 3386 va_end (args1); va_end (args2);
eee79a2e 3387 return 0;
3388 }
b3167ca7 3389 int main(int argc, char **argv) { return f (0, 42); }
62979ab1 3390 ]])],[ac_cv_func___va_copy="yes"],[ac_cv_func___va_copy="no"],[])
eee79a2e 3391)
3392if test "$ac_cv_func___va_copy" = "yes" ; then
a45f884d 3393 AC_DEFINE(HAVE___VA_COPY, 1, [Some systems have __va_copy instead of va_copy])
eee79a2e 3394fi
c3d0c8b5 3395
5cafc1d6 3396dnl IP-Filter support requires ipf header files. These aren't
3397dnl installed by default, so we need to check for them
3398if test "$IPF_TRANSPARENT" ; then
3399 AC_MSG_CHECKING(if IP-Filter header files are installed)
42b51993 3400 # hold on to your hats...
3401 if test "$ac_cv_header_ip_compat_h" = "yes" ||
3402 test "$ac_cv_header_ip_fil_compat_h" = "yes" ||
87d21d8b 3403 test "$ac_cv_header_netinet_ip_compat_h" = "yes" ||
3404 test "$ac_cv_header_netinet_ip_fil_compat_h" = "yes" ; then
42b51993 3405 have_ipfilter_compat_header="yes"
3406 fi
3407 if test "x$have_ipfilter_compat_header" = "xyes" &&
eb824054 3408 test "$ac_cv_header_ip_fil_h" = "yes" &&
3409 test "$ac_cv_header_ip_nat_h" = "yes" ; then
3410 IPF_TRANSPARENT="yes"
3411 AC_DEFINE(IPF_TRANSPARENT, 1)
42b51993 3412 elif test "$have_ipfilter_compat_header" = "yes" &&
eb824054 3413 test "$ac_cv_header_netinet_ip_fil_h" = "yes" &&
3414 test "$ac_cv_header_netinet_ip_nat_h" = "yes" ; then
3415 IPF_TRANSPARENT="yes"
3416 AC_DEFINE(IPF_TRANSPARENT, 1)
3417 else
5cafc1d6 3418 IPF_TRANSPARENT="no"
3419 AC_DEFINE(IPF_TRANSPARENT, 0)
5cafc1d6 3420 fi
3421 AC_MSG_RESULT($IPF_TRANSPARENT)
3422fi
3423if test "$IPF_TRANSPARENT" = "no" ; then
eed82608
AJ
3424 AC_MSG_WARN([Cannot find necessary IP-Filter header files])
3425 AC_MSG_WARN([Transparent Proxy support WILL NOT be enabled])
5cafc1d6 3426 sleep 10
8f6ca20d 3427elif test "$IPF_TRANSPARENT" = "yes" ; then
3428dnl On Solaris Ipfilter includes expect that SOLARIS2 is defined with the
3429dnl Solaris minor version (8, 9, 10, ...)
3430 case "$host" in
3431 *-solaris*)
3432 solrev=`uname -r | sh -c 'IFS=. read j n x; echo $n'`
3433 CFLAGS="-DSOLARIS2=$solrev $CFLAGS"
20b3ae10 3434 CXXFLAGS="-DSOLARIS2=$solrev $CXXFLAGS"
8f6ca20d 3435 ;;
3436 *)
3437 ;;
3438 esac
5cafc1d6 3439fi
3440
2b0dd4ac 3441dnl PF support requires a header file.
3442if test "$PF_TRANSPARENT" ; then
3443 AC_MSG_CHECKING(if PF header file is installed)
3444 # hold on to your hats...
ec9909b0 3445 if test "$ac_cv_header_net_pfvar_h" = "yes" || test "$ac_cv_header_net_pf_pfvar_h" = "yes"; then
2b0dd4ac 3446 PF_TRANSPARENT="yes"
3447 AC_DEFINE(PF_TRANSPARENT, 1)
3448 else
3449 PF_TRANSPARENT="no"
3450 AC_DEFINE(PF_TRANSPARENT, 0)
3451 fi
3452 AC_MSG_RESULT($PF_TRANSPARENT)
3453fi
3454if test "$PF_TRANSPARENT" = "no" ; then
eed82608
AJ
3455 AC_MSG_WARN([Cannot find necessary PF header file])
3456 AC_MSG_WARN([Transparent Proxy support WILL NOT be enabled])
2b0dd4ac 3457 sleep 10
3458fi
3459
d852fbad 3460dnl Linux-Netfilter support requires Linux 2.4 kernel header files.
3461dnl Shamelessly copied from above
3462if test "$LINUX_NETFILTER" ; then
d6d62546 3463 AC_MSG_CHECKING(if Linux (Netfilter) kernel header files are installed)
d852fbad 3464 # hold on to your hats...
3465 if test "$ac_cv_header_linux_netfilter_ipv4_h" = "yes"; then
3466 LINUX_NETFILTER="yes"
3467 AC_DEFINE(LINUX_NETFILTER, 1)
3468 else
3469 LINUX_NETFILTER="no"
3470 AC_DEFINE(LINUX_NETFILTER, 0)
3471 fi
3472 AC_MSG_RESULT($LINUX_NETFILTER)
b50f1b2b 3473fi
d852fbad 3474if test "$LINUX_NETFILTER" = "no" ; then
eed82608
AJ
3475 AC_MSG_WARN([Cannot find necessary Linux kernel (Netfilter) header files])
3476 AC_MSG_WARN([Linux Transparent and Intercepting Proxy support WILL NOT be enabled])
d852fbad 3477 sleep 10
3478fi
b50f1b2b
AJ
3479dnl Netfilter TPROXY depends on libcap but the NAT parts can still work.
3480if test "$LINUX_NETFILTER" = "yes" && test "$use_caps" != "yes" ; then
3481 AC_MSG_WARN([Missing needed capabilities (libcap or libcap2) for TPROXY])
3482 AC_MSG_WARN([Linux Transparent Proxy support WILL NOT be enabled])
3483 AC_MSG_WARN([Reduced support to Interception Proxy])
3484 sleep 10
3485fi
d852fbad 3486
f1e0717c 3487dnl Linux Netfilter/TPROXYv2 support requires some specific header files
b50f1b2b
AJ
3488dnl Shamelessly copied from above
3489if test "$LINUX_TPROXY2"; then
3490 if test "$use_caps" = "yes"; then
f1e0717c 3491 AC_MSG_CHECKING(if TPROXYv2 header files are installed)
fc68f6b1 3492 # hold on to your hats...
3493 if test "$ac_cv_header_linux_netfilter_ipv4_ip_tproxy_h" = "yes" && test "$LINUX_NETFILTER" = "yes"; then
f1e0717c
AJ
3494 LINUX_TPROXY2="yes"
3495 AC_DEFINE(LINUX_TPROXY2, 1, [Enable real Transparent Proxy support for Netfilter TPROXY v2.])
fc68f6b1 3496 else
f1e0717c
AJ
3497 LINUX_TPROXY2="no"
3498 AC_DEFINE(LINUX_TPROXY2, 0, [Enable real Transparent Proxy support for Netfilter TPROXY v2.])
3499 fi
3500 AC_MSG_RESULT($LINUX_TPROXY2)
3501 if test "$LINUX_TPROXY2" = "no" && test "$LINUX_NETFILTER" = "yes"; then
eed82608
AJ
3502 AC_MSG_WARN([Cannot find TPROXY v2 headers, you need to patch the kernel with ])
3503 AC_MSG_WARN([tproxy package from:])
3504 AC_MSG_WARN([ - lynx http://www.balabit.com/downloads/files/tproxy/])
3505 AC_MSG_WARN([Or select the '--enable-linux-netfilter' option instead for Netfilter support.])
f1e0717c 3506 sleep 10
fc68f6b1 3507 fi
b50f1b2b
AJ
3508 else
3509 AC_MSG_WARN([Missing needed capabilities (libcap or libcap2) for TPROXY v2])
3510 AC_MSG_WARN([Linux Transparent Proxy support WILL NOT be enabled])
3511 sleep 10
3512 fi
fc68f6b1 3513fi
3514
cc937513 3515AC_ARG_ENABLE(gnuregex,
62979ab1 3516 AS_HELP_STRING([--enable-gnuregex],[Compile GNUregex. Unless you have reason to use
cc937513
AJ
3517 this option, you should not enable it.
3518 This library file is usually only required on Windows and
3519 very old Unix boxes which do not have their own regex
3520 library built in.]),
3521[USE_GNUREGEX=$enableval])
91bc414e 3522if test -z "$USE_GNUREGEX" ; then
3523 case "$host" in
3524 *-sun-solaris2.[[0-4]])
3525 USE_GNUREGEX="yes"
3526 ;;
3527 *-next-nextstep*)
3528 USE_GNUREGEX="yes"
3529 ;;
3530 esac
3531fi
7a081912 3532AC_MSG_CHECKING(if GNUregex needs to be compiled)
91bc414e 3533if test -z "$USE_GNUREGEX"; then
55878dfd 3534if test "$ac_cv_func_regcomp" = "no" || test "$USE_GNUREGEX" = "yes" ; then
74946a0f 3535 USE_GNUREGEX="yes"
00fa2c12 3536else
62979ab1
AJ
3537 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
3538#include <regex.h>]], [[regex_t t; regcomp(&t,"",0);]])],[USE_GNUREGEX="no"],[USE_GNUREGEX="yes"])
91bc414e 3539fi
00fa2c12 3540fi
74946a0f 3541AC_MSG_RESULT($USE_GNUREGEX)
3542if test "$USE_GNUREGEX" = "yes"; then
cc937513
AJ
3543 # override system regex with ours. Not good. But what was asked for.
3544 REGEXLIB=""
6a9f6389 3545 AC_DEFINE(USE_GNUREGEX,1,[Define if we should use GNU regex])
7a081912 3546fi
26675bf4 3547AC_SUBST(REGEXLIB)
cc937513 3548#AC_SUBST(LIBREGEX)
7a081912 3549
5c51415d 3550dnl Not cached since people are likely to tune this
e924600d 3551AC_MSG_CHECKING(Default FD_SETSIZE value)
62979ab1 3552AC_RUN_IFELSE([AC_LANG_SOURCE([[
e924600d 3553#if HAVE_STDIO_H
3554#include <stdio.h>
3555#endif
3556#if HAVE_UNISTD_H
3557#include <unistd.h>
3558#endif
cf69e4f2
HN
3559#if HAVE_STDLIB_H
3560#include <stdlib.h>
3561#endif
e924600d 3562#if HAVE_SYS_TIME_H
3563#include <sys/time.h>
3564#endif
3565#if HAVE_SYS_SELECT_H
3566#include <sys/select.h>
3567#endif
3568#if HAVE_SYS_TYPES_H
3569#include <sys/types.h>
3570#endif
bfe8dedf
GS
3571#if HAVE_WINSOCK_H
3572#include <winsock.h>
3573#endif
3574#if HAVE_WINSOCK2_H
3575#include <winsock2.h>
3576#endif
b3167ca7 3577int main(int argc, char **argv) {
635e6242 3578 FILE *fp = fopen("conftestval", "w");
3579 fprintf (fp, "%d\n", FD_SETSIZE);
b3167ca7 3580 return 0;
e924600d 3581}
62979ab1 3582]])],[DEFAULT_FD_SETSIZE=`cat conftestval`],[DEFAULT_FD_SETSIZE=256],[DEFAULT_FD_SETSIZE=256])
e924600d 3583AC_MSG_RESULT($DEFAULT_FD_SETSIZE)
6a9f6389 3584AC_DEFINE_UNQUOTED(DEFAULT_FD_SETSIZE, $DEFAULT_FD_SETSIZE, [Default FD_SETSIZE value])
e924600d 3585
f49be7d1 3586
5c51415d 3587dnl Not cached since people are likely to tune this
234967c9 3588AC_MSG_CHECKING(Maximum number of filedescriptors we can open)
c76d8acc 3589dnl damn! FreeBSD's pthreads breaks dup2().
5132a9eb 3590TLDFLAGS="$LDFLAGS"
f49be7d1 3591if test -n "$squid_filedescriptors_num" ; then
3592 SQUID_MAXFD=$squid_filedescriptors_num
3593 AC_MSG_RESULT($SQUID_MAXFD (user-forced))
3594else
f49be7d1 3595 case $host in
3596 i386-unknown-freebsd*)
3597 if echo "$LDFLAGS" | grep -q pthread; then
3598 LDFLAGS=`echo $LDFLAGS | sed -e "s/-pthread//"`
3599 fi
3600 esac
62979ab1 3601 AC_RUN_IFELSE([AC_LANG_SOURCE([[
8cca06da 3602#include <stdio.h>
234967c9 3603#include <unistd.h>
cf69e4f2 3604#include <stdlib.h>
30a4f2a8 3605#include <sys/time.h> /* needed on FreeBSD */
234967c9 3606#include <sys/param.h>
3607#include <sys/resource.h>
b3167ca7 3608int main(int argc, char **argv) {
635e6242 3609 FILE *fp;
234967c9 3610 int i,j;
42b51993 3611#if defined(__CYGWIN32__) || defined (__CYGWIN__)
b05490a8 3612 /* getrlimit and sysconf returns bogous values on cygwin32.
df087e68 3613 * Number of fds is virtually unlimited in cygwin (sys/param.h)
b05490a8 3614 * __CYGWIN32__ is deprecated.
df087e68 3615 */
3616 i = NOFILE;
b05490a8 3617#else
3618#if HAVE_SETRLIMIT
234967c9 3619 struct rlimit rl;
3620#if defined(RLIMIT_NOFILE)
3621 if (getrlimit(RLIMIT_NOFILE, &rl) < 0) {
3622 perror("getrlimit: RLIMIT_NOFILE");
3623 } else {
f168f0c5
AJ
3624#if defined(__APPLE__)
3625 /* asking for more than OPEN_MAX fails on Leopard */
3626 rl.rlim_cur = (OPEN_MAX < rl.rlim_max ? OPEN_MAX : rl.rlim_max);
3627#else
234967c9 3628 rl.rlim_cur = rl.rlim_max; /* set it to the max */
f168f0c5 3629#endif
234967c9 3630 if (setrlimit(RLIMIT_NOFILE, &rl) < 0) {
3631 perror("setrlimit: RLIMIT_NOFILE");
3632 }
3633 }
3634#elif defined(RLIMIT_OFILE)
3635 if (getrlimit(RLIMIT_OFILE, &rl) < 0) {
3636 perror("getrlimit: RLIMIT_OFILE");
3637 } else {
3638 rl.rlim_cur = rl.rlim_max; /* set it to the max */
3639 if (setrlimit(RLIMIT_OFILE, &rl) < 0) {
3640 perror("setrlimit: RLIMIT_OFILE");
3641 }
3642 }
3643#endif /* RLIMIT_NOFILE */
3644#endif /* HAVE_SETRLIMIT */
d9399075 3645 /* by starting at 2^14, we will never get higher
3646 than 2^15 for SQUID_MAXFD */
3647 i = j = 1<<14;
3648 while (j) {
3649 j >>= 1;
3650 if (dup2(0, i) < 0) {
3651 i -= j;
3652 } else {
3653 close(i);
3654 i += j;
3655 }
3656 }
3657 i++;
b05490a8 3658#endif /* IF !DEF CYGWIN */
635e6242 3659 fp = fopen("conftestval", "w");
a4d7e961 3660 fprintf (fp, "%d\n", i & ~0x3F);
b3167ca7 3661 return 0;
234967c9 3662}
62979ab1 3663 ]])],[SQUID_MAXFD=`cat conftestval`],[SQUID_MAXFD=256],[SQUID_MAXFD=256])
4b26fae9 3664 dnl Microsoft MSVCRT.DLL supports 2048 maximum FDs
3665 case "$host_os" in
3666 mingw|mingw32)
3667 SQUID_MAXFD="2048"
3668 ;;
3669 esac
f49be7d1 3670 AC_MSG_RESULT($SQUID_MAXFD)
3671fi
6a9f6389 3672AC_DEFINE_UNQUOTED(SQUID_MAXFD, $SQUID_MAXFD,[Maximum number of open filedescriptors])
b9cc811d 3673if test "$SQUID_MAXFD" -lt 512 ; then
eed82608
AJ
3674 AC_MSG_WARN([$SQUID_MAXFD may not be enough filedescriptors if your])
3675 AC_MSG_WARN([cache will be very busy. Please see the FAQ page])
3676 AC_MSG_WARN([http://wiki.squid-cache.org/SquidFaq/TroubleShooting])
3677 AC_MSG_WARN([on how to increase your filedescriptor limit])
933cc58d 3678 sleep 10
80ab193b 3679fi
c76d8acc 3680LDFLAGS="$TLDFLAGS"
234967c9 3681
d0f9207a 3682if test `expr $SQUID_MAXFD % 64` != 0; then
eed82608 3683 AC_MSG_WARN([$SQUID_MAXFD is not an multiple of 64. This may cause issues on certain platforms.])
a4d7e961 3684 sleep 10
3685fi
3686
5c51415d 3687dnl Not cached since people are likely to tune this
30a4f2a8 3688AC_MSG_CHECKING(Default UDP send buffer size)
62979ab1 3689AC_RUN_IFELSE([AC_LANG_SOURCE([[
8cca06da 3690#include <stdlib.h>
3691#include <stdio.h>
30a4f2a8 3692#include <sys/types.h>
bfe8dedf 3693#if HAVE_SYS_SOCKET_H
30a4f2a8 3694#include <sys/socket.h>
bfe8dedf
GS
3695#endif
3696#if HAVE_NETINET_IN_H
30a4f2a8 3697#include <netinet/in.h>
bfe8dedf
GS
3698#endif
3699#if HAVE_WINSOCK_H
3700#include <winsock.h>
3701#endif
3702#if HAVE_WINSOCK2_H
3703#include <winsock2.h>
3704#endif
b3167ca7 3705int main(int argc, char **argv)
30a4f2a8 3706{
635e6242 3707 FILE *fp;
eab7694a 3708 int fd,val=0;
bfe8dedf 3709#if (defined(WIN32) || defined(__WIN32__) || defined(__WIN32)) && !(defined(__CYGWIN32__) || defined(__CYGWIN__))
eab7694a 3710 int len=sizeof(int);
bfe8dedf
GS
3711 WSADATA wsaData;
3712 WSAStartup(2, &wsaData);
eab7694a
GS
3713#else
3714 socklen_t len=sizeof(socklen_t);
bfe8dedf 3715#endif
b3167ca7 3716 if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) return 1;
bfe8dedf 3717#if (defined(WIN32) || defined(__WIN32__) || defined(__WIN32)) && !(defined(__CYGWIN32__) || defined(__CYGWIN__))
b3167ca7 3718 if (getsockopt(fd, SOL_SOCKET, SO_SNDBUF, (char *)&val, &len) < 0) return 1;
bfe8dedf 3719 WSACleanup();
f3f3e961 3720#else
b3167ca7 3721 if (getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &val, &len) < 0) return 1;
bfe8dedf 3722#endif
b3167ca7 3723 if (val<=0) return 1;
635e6242 3724 fp = fopen("conftestval", "w");
3725 fprintf (fp, "%d\n", val);
b3167ca7 3726 return 0;
30a4f2a8 3727}
62979ab1 3728]])],[SQUID_DETECT_UDP_SO_SNDBUF=`cat conftestval`],[SQUID_DETECT_UDP_SO_SNDBUF=16384],[SQUID_DETECT_UDP_SO_SNDBUF=16384])
6a9f6389 3729AC_MSG_RESULT($SQUID_DETECT_UDP_SO_SNDBUF)
3730AC_DEFINE_UNQUOTED(SQUID_DETECT_UDP_SO_SNDBUF, $SQUID_DETECT_UDP_SO_SNDBUF,[UDP send buffer size])
30a4f2a8 3731
5c51415d 3732dnl Not cached since people are likely to tune this
30a4f2a8 3733AC_MSG_CHECKING(Default UDP receive buffer size)
62979ab1 3734AC_RUN_IFELSE([AC_LANG_SOURCE([[
8cca06da 3735#include <stdlib.h>
3736#include <stdio.h>
30a4f2a8 3737#include <sys/types.h>
bfe8dedf 3738#if HAVE_SYS_SOCKET_H
30a4f2a8 3739#include <sys/socket.h>
bfe8dedf
GS
3740#endif
3741#if HAVE_NETINET_IN_H
30a4f2a8 3742#include <netinet/in.h>
bfe8dedf
GS
3743#endif
3744#if HAVE_WINSOCK_H
3745#include <winsock.h>
3746#endif
3747#if HAVE_WINSOCK2_H
3748#include <winsock2.h>
3749#endif
b3167ca7 3750int main(int argc, char **argv)
30a4f2a8 3751{
635e6242 3752 FILE *fp;
eab7694a 3753 int fd,val=0;
bfe8dedf 3754#if (defined(WIN32) || defined(__WIN32__) || defined(__WIN32)) && !(defined(__CYGWIN32__) || defined(__CYGWIN__))
eab7694a 3755 int len=sizeof(int);
bfe8dedf
GS
3756 WSADATA wsaData;
3757 WSAStartup(2, &wsaData);
eab7694a
GS
3758#else
3759 socklen_t len=sizeof(socklen_t);
bfe8dedf 3760#endif
b3167ca7 3761 if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) return 1;
bfe8dedf 3762#if (defined(WIN32) || defined(__WIN32__) || defined(__WIN32)) && !(defined(__CYGWIN32__) || defined(__CYGWIN__))
b3167ca7 3763 if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char *)&val, &len) < 0) return 1;
bfe8dedf 3764 WSACleanup();
f3f3e961 3765#else
b3167ca7 3766 if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &val, &len) < 0) return 1;
bfe8dedf 3767#endif
b3167ca7 3768 if (val <= 0) return 1;
635e6242 3769 fp = fopen("conftestval", "w");
3770 fprintf (fp, "%d\n", val);
b3167ca7 3771 return 0;
30a4f2a8 3772}
62979ab1 3773]])],[SQUID_DETECT_UDP_SO_RCVBUF=`cat conftestval`],[SQUID_DETECT_UDP_SO_RCVBUF=16384],[SQUID_DETECT_UDP_SO_RCVBUF=16384])
6a9f6389 3774AC_MSG_RESULT($SQUID_DETECT_UDP_SO_RCVBUF)
3775AC_DEFINE_UNQUOTED(SQUID_DETECT_UDP_SO_RCVBUF, $SQUID_DETECT_UDP_SO_RCVBUF,[UDP receive buffer size])
30a4f2a8 3776
5c51415d 3777dnl Not cached since people are likely to tune this
30a4f2a8 3778AC_MSG_CHECKING(Default TCP send buffer size)
62979ab1 3779AC_RUN_IFELSE([AC_LANG_SOURCE([[
8cca06da 3780#include <stdlib.h>
3781#include <stdio.h>
30a4f2a8 3782#include <sys/types.h>
bfe8dedf 3783#if HAVE_SYS_SOCKET_H
30a4f2a8 3784#include <sys/socket.h>
bfe8dedf
GS
3785#endif
3786#if HAVE_NETINET_IN_H
30a4f2a8 3787#include <netinet/in.h>
bfe8dedf
GS
3788#endif
3789#if HAVE_WINSOCK_H
3790#include <winsock.h>
3791#endif
3792#if HAVE_WINSOCK2_H
3793#include <winsock2.h>
3794#endif
b3167ca7 3795int main(int argc, char **argv)
30a4f2a8 3796{
635e6242 3797 FILE *fp;
eab7694a 3798 int fd,val=0;
bfe8dedf 3799#if (defined(WIN32) || defined(__WIN32__) || defined(__WIN32)) && !(defined(__CYGWIN32__) || defined(__CYGWIN__))
eab7694a 3800 int len=sizeof(int);
bfe8dedf
GS
3801 WSADATA wsaData;
3802 WSAStartup(2, &wsaData);
eab7694a
GS
3803#else
3804 socklen_t len=sizeof(socklen_t);
bfe8dedf 3805#endif
b3167ca7 3806 if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) return 1;
bfe8dedf 3807#if (defined(WIN32) || defined(__WIN32__) || defined(__WIN32)) && !(defined(__CYGWIN32__) || defined(__CYGWIN__))
b3167ca7 3808 if (getsockopt(fd, SOL_SOCKET, SO_SNDBUF, (char *)&val, &len) < 0) return 1;
bfe8dedf 3809 WSACleanup();
f3f3e961 3810#else
b3167ca7 3811 if (getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &val, &len) < 0) return 1;
bfe8dedf 3812#endif
b3167ca7 3813 if (val <= 0) return 1;
635e6242 3814 fp = fopen("conftestval", "w");
3815 fprintf (fp, "%d\n", val);
b3167ca7 3816 return 0;
30a4f2a8 3817}
62979ab1 3818]])],[SQUID_TCP_SO_SNDBUF=`cat conftestval`],[SQUID_TCP_SO_SNDBUF=16384],[SQUID_TCP_SO_SNDBUF=16384])
30a4f2a8 3819AC_MSG_RESULT($SQUID_TCP_SO_SNDBUF)
2aa6ca58 3820if test $SQUID_TCP_SO_SNDBUF -gt 32768; then
eed82608 3821 AC_MSG_NOTICE([Limiting send buffer size to 32K])
2aa6ca58 3822 SQUID_TCP_SO_SNDBUF=32768
3823fi
6a9f6389 3824AC_DEFINE_UNQUOTED(SQUID_TCP_SO_SNDBUF, $SQUID_TCP_SO_SNDBUF,[TCP send buffer size])
30a4f2a8 3825
5c51415d 3826dnl Not cached since people are likely to tune this
30a4f2a8 3827AC_MSG_CHECKING(Default TCP receive buffer size)
62979ab1 3828AC_RUN_IFELSE([AC_LANG_SOURCE([[
8cca06da 3829#include <stdlib.h>
3830#include <stdio.h>
30a4f2a8 3831#include <sys/types.h>
bfe8dedf 3832#if HAVE_SYS_SOCKET_H
30a4f2a8 3833#include <sys/socket.h>
bfe8dedf
GS
3834#endif
3835#if HAVE_NETINET_IN_H
30a4f2a8 3836#include <netinet/in.h>
bfe8dedf
GS
3837#endif
3838#if HAVE_WINSOCK_H
3839#include <winsock.h>
3840#endif
3841#if HAVE_WINSOCK2_H
3842#include <winsock2.h>
3843#endif
b3167ca7 3844int main(int argc, char **argv)
30a4f2a8 3845{
635e6242 3846 FILE *fp;
eab7694a 3847 int fd,val=0;
bfe8dedf 3848#if (defined(WIN32) || defined(__WIN32__) || defined(__WIN32)) && !(defined(__CYGWIN32__) || defined(__CYGWIN__))
eab7694a 3849 int len=sizeof(int);
bfe8dedf
GS
3850 WSADATA wsaData;
3851 WSAStartup(2, &wsaData);
eab7694a
GS
3852#else
3853 socklen_t len=sizeof(socklen_t);
bfe8dedf 3854#endif
b3167ca7 3855 if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) return 1;
bfe8dedf 3856#if (defined(WIN32) || defined(__WIN32__) || defined(__WIN32)) && !(defined(__CYGWIN32__) || defined(__CYGWIN__))
b3167ca7 3857 if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char *)&val, &len) < 0) return 1;
bfe8dedf 3858 WSACleanup();
f3f3e961 3859#else
b3167ca7 3860 if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &val, &len) < 0) return 1;
bfe8dedf 3861#endif
b3167ca7 3862 if (val <= 0) return 1;
635e6242 3863 fp = fopen("conftestval", "w");
3864 fprintf (fp, "%d\n", val);
b3167ca7 3865 return 0;
30a4f2a8 3866}
62979ab1 3867]])],[SQUID_TCP_SO_RCVBUF=`cat conftestval`],[SQUID_TCP_SO_RCVBUF=16384],[SQUID_TCP_SO_RCVBUF=16384])
30a4f2a8 3868AC_MSG_RESULT($SQUID_TCP_SO_RCVBUF)
2aa6ca58 3869if test $SQUID_TCP_SO_RCVBUF -gt 65535; then
eed82608 3870 AC_MSG_NOTICE([Limiting receive buffer size to 64K])
2aa6ca58 3871 SQUID_TCP_SO_RCVBUF=65535
3872fi
6a9f6389 3873AC_DEFINE_UNQUOTED(SQUID_TCP_SO_RCVBUF, $SQUID_TCP_SO_RCVBUF,[TCP receive buffer size])
5c51415d 3874AC_CACHE_CHECK(if sys_errlist is already defined, ac_cv_needs_sys_errlist,
62979ab1 3875 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]], [[char *s = sys_errlist;]])],[ac_cv_needs_sys_errlist="no"],[ac_cv_needs_sys_errlist="yes"])
5c51415d 3876)
3877if test "$ac_cv_needs_sys_errlist" = "yes" ; then
6a9f6389 3878 AC_DEFINE(NEED_SYS_ERRLIST,1,[If we need to declare sys_errlist[] as external])
5c51415d 3879fi
30a4f2a8 3880
5c51415d 3881dnl Not cached since people are likely to change this
6bf65235 3882AC_MSG_CHECKING(for libresolv _dns_ttl_ hack)
62979ab1
AJ
3883AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern int _dns_ttl_;]], [[return _dns_ttl_;]])],[AC_MSG_RESULT(yes)
3884AC_DEFINE(LIBRESOLV_DNS_TTL_HACK,1,[If libresolv.a has been hacked to export _dns_ttl_])],[AC_MSG_RESULT(no)])
6bf65235 3885
b6a2f15e 3886if test "$ac_cv_header_sys_statvfs_h" = "yes" ; then
c68e9c6b 3887AC_MSG_CHECKING(for working statvfs() interface)
62979ab1 3888AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
c68e9c6b 3889#include <stdlib.h>
3890#include <stdio.h>
3891#include <sys/types.h>
3892#include <sys/statvfs.h>
62979ab1 3893]], [[
c68e9c6b 3894struct statvfs sfs;
3895sfs.f_blocks = sfs.f_bfree = sfs.f_frsize =
3896sfs.f_files = sfs.f_ffree = 0;
3897statvfs("/tmp", &sfs);
62979ab1 3898]])],[ac_cv_func_statvfs=yes],[ac_cv_func_statvfs=no])
c68e9c6b 3899AC_MSG_RESULT($ac_cv_func_statvfs)
6b8e7481 3900if test "$ac_cv_func_statvfs" = "yes" ; then
6a9f6389 3901 AC_DEFINE(HAVE_STATVFS,1,[If your system has statvfs(), and if it actually works!])
b6a2f15e 3902fi
6b8e7481 3903fi
c68e9c6b 3904
cc192b50 3905dnl Detect what resolver fields we have available to use...
3906AC_CACHE_CHECK(for _res_ext.nsaddr_list, ac_cv_have_res_ext_nsaddr_list,
62979ab1 3907AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
cc192b50 3908#if HAVE_SYS_TYPES_H
3909#include <sys/types.h>
3910#endif
3911#if HAVE_NETINET_IN_H
3912#include <netinet/in.h>
3913#endif
3914#if HAVE_ARPA_INET_H
3915#include <arpa/inet.h>
3916#endif
3917#if HAVE_ARPA_NAMESER_H
3918#include <arpa/nameser.h>
3919#endif
3920#if HAVE_RESOLV_H
3921#include <resolv.h>
3922#endif
62979ab1 3923]], [[_res_ext.nsaddr_list[[0]].s_addr;]])],[ac_cv_have_res_ext_nsaddr_list="yes"],[ac_cv_have_res_ext_nsaddr_list="no"]))
cc192b50 3924if test "$ac_cv_have_res_ext_nsaddr_list" = "yes" ; then
3925 AC_DEFINE(_SQUID_RES_NSADDR6_LARRAY,_res_ext.nsaddr_list,[If _res_ext structure has nsaddr_list member])
3926 AC_DEFINE(_SQUID_RES_NSADDR6_COUNT,ns6count,[Nameserver Counter for IPv6 _res_ext])
3927fi
3928
0873b2ab 3929if test "$_SQUID_RES_NSADDR6_LIST" = ""; then
cc192b50 3930AC_CACHE_CHECK(for _res._u._ext.nsaddrs, ac_cv_have_res_ext_nsaddrs,
62979ab1 3931AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
cc192b50 3932#if HAVE_SYS_TYPES_H
3933#include <sys/types.h>
3934#endif
3935#if HAVE_NETINET_IN_H
3936#include <netinet/in.h>
3937#endif
3938#if HAVE_ARPA_INET_H
3939#include <arpa/inet.h>
3940#endif
3941#if HAVE_ARPA_NAMESER_H
3942#include <arpa/nameser.h>
3943#endif
3944#if HAVE_RESOLV_H
3945#include <resolv.h>
3946#endif
62979ab1 3947]], [[_res._u._ext.nsaddrs[[0]]->sin6_addr;]])],[ac_cv_have_res_ext_nsaddrs="yes"],[ac_cv_have_res_ext_nsaddrs="no"]))
cc192b50 3948if test "$ac_cv_have_res_ext_nsaddrs" = "yes" ; then
3949 AC_DEFINE(_SQUID_RES_NSADDR6_LPTR,_res._u._ext.nsaddrs,[If _res structure has _ext.nsaddrs member])
3950 AC_DEFINE(_SQUID_RES_NSADDR6_COUNT,_res._u._ext.nscount6,[Nameserver Counter for IPv6 _res])
3951fi
3952fi
3953
c68e9c6b 3954AC_CACHE_CHECK(for _res.nsaddr_list, ac_cv_have_res_nsaddr_list,
62979ab1 3955AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
c68e9c6b 3956#if HAVE_SYS_TYPES_H
3957#include <sys/types.h>
3958#endif
3959#if HAVE_NETINET_IN_H
3960#include <netinet/in.h>
3961#endif
3962#if HAVE_ARPA_INET_H
3963#include <arpa/inet.h>
3964#endif
3965#if HAVE_ARPA_NAMESER_H
3966#include <arpa/nameser.h>
3967#endif
3968#if HAVE_RESOLV_H
3969#include <resolv.h>
3970#endif
62979ab1 3971]], [[_res.nsaddr_list[[0]];]])],[ac_cv_have_res_nsaddr_list="yes"],[ac_cv_have_res_nsaddr_list="no"]))
c68e9c6b 3972if test $ac_cv_have_res_nsaddr_list = "yes" ; then
cc192b50 3973 AC_DEFINE(_SQUID_RES_NSADDR_LIST,_res.nsaddr_list,[If _res structure has nsaddr_list member])
3974 AC_DEFINE(_SQUID_RES_NSADDR_COUNT,_res.nscount,[Nameserver counter for IPv4 _res])
c68e9c6b 3975fi
3976
0873b2ab 3977if test "$_SQUID_RES_NSADDR_LIST" = ""; then
c68e9c6b 3978AC_CACHE_CHECK(for _res.ns_list, ac_cv_have_res_ns_list,
62979ab1 3979AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
c68e9c6b 3980#if HAVE_SYS_TYPES_H
3981#include <sys/types.h>
3982#endif
3983#if HAVE_NETINET_IN_H
3984#include <netinet/in.h>
3985#endif
3986#if HAVE_ARPA_INET_H
3987#include <arpa/inet.h>
3988#endif
3989#if HAVE_ARPA_NAMESER_H
3990#include <arpa/nameser.h>
3991#endif
3992#if HAVE_RESOLV_H
3993#include <resolv.h>
3994#endif
62979ab1 3995]], [[_res.ns_list[[0]].addr;]])],[ac_cv_have_res_ns_list="yes"],[ac_cv_have_res_ns_list="no"]))
c68e9c6b 3996if test $ac_cv_have_res_ns_list = "yes" ; then
cc192b50 3997 AC_DEFINE(_SQUID_RES_NSADDR_LIST,_res.ns_list,[If _res structure has ns_list member])
3998 AC_DEFINE(_SQUID_RES_NSADDR_COUNT,_res.nscount,[Nameserver counter for IPv4 _res])
c68e9c6b 3999fi
4000fi
4001
461b8219 4002dnl Squid will usually attempt to translate when packaging or building from VCS
44e0a249 4003use_translation="yes"
461b8219 4004AC_ARG_ENABLE(translation,
62979ab1 4005 AS_HELP_STRING([--disable-translation],[Prevent Squid generating localized error page templates and manuals.
b3fed8c3 4006 Which is usually tried, but may not be needed.]),
461b8219
AJ
4007[ if test "$enableval" = "no" ; then
4008 use_translation=no
4009 fi
4010])
e4b70b44 4011dnl Squid now has .po translation capability, given the right toolkit
461b8219
AJ
4012if test "$use_translation" = "yes" ; then
4013 AX_WITH_PROG([PO2HTML],[po2html])
4014else
4015 PO2HTML="off"
4016fi
4017AC_SUBST(PO2HTML)
ee1a8ac2 4018
43000484
AJ
4019dnl Squid now has limited locale handling ...
4020dnl on error pages
8db7a54b 4021use_errlocale=yes
43000484 4022AC_ARG_ENABLE(auto-locale,
62979ab1 4023 AS_HELP_STRING([--disable-auto-locale],[This prevents Squid providing localized error pages based on the
21d5413e
AJ
4024 clients request headers.
4025 When disabled Squid requires explicit language configuration.]),
8db7a54b
AJ
4026[ if test "$enableval" = "no" ; then
4027 use_errlocale=no
4028 fi
4029])
4030if test "$use_errlocale" = "yes" ; then
eed82608 4031 AC_MSG_NOTICE([Enabling Multi-Language Support])
43000484 4032 AC_DEFINE(USE_ERR_LOCALES,1,[Use multi-language support on error pages])
8db7a54b 4033else
eed82608 4034 AC_MSG_WARN([Disabling Multi-Language Support])
43000484 4035 AC_DEFINE(USE_ERR_LOCALES,0,[Use multi-language support on error pages])
8db7a54b 4036fi
43000484 4037
090089c4 4038dnl Need the debugging version of malloc if available
4039XTRA_OBJS=''
6509a1a0 4040if test "$ac_cv_lib_malloc_main" = "yes" ; then
090089c4 4041 if test -r /usr/lib/debug/malloc.o ; then
4042 XTRA_OBJS="$XTRA_OBJS /usr/lib/debug/malloc.o"
4043 fi
4044 if test -r /usr/lib/debug/mallocmap.o ; then
4045 XTRA_OBJS="$XTRA_OBJS /usr/lib/debug/mallocmap.o"
4046 fi
4047fi
4048AC_SUBST(XTRA_OBJS)
4049
38fea766 4050if test -z "$XTRA_LIBS"; then
4051 XTRA_LIBS="$LIBS"
0f5a16f8 4052 dnl minor cleanup
4053 XTRA_LIBS=`echo $XTRA_LIBS | sed -e "s/ */ /g"`
38fea766 4054 LIBS=''
4055fi
090089c4 4056AC_SUBST(XTRA_LIBS)
4057
090089c4 4058dnl Clean up after OSF/1 core dump bug
4059rm -f core
4060
6a9f6389 4061AC_CONFIG_FILES([\
a2794549 4062 Makefile \
eee95dfe 4063 compat/Makefile \
a2794549 4064 lib/Makefile \
a2794549 4065 scripts/Makefile \
4066 scripts/RunCache \
4067 scripts/RunAccel \
4068 src/Makefile \
5bd7a218 4069 src/base/Makefile \
bcf44a2c 4070 src/acl/Makefile \
a2794549 4071 src/fs/Makefile \
4072 src/repl/Makefile \
4073 src/auth/Makefile \
5fa840c3 4074 src/adaptation/Makefile \
1f3c65fc
AR
4075 src/adaptation/icap/Makefile \
4076 src/adaptation/ecap/Makefile \
f99c2cfe 4077 src/esi/Makefile \
663ff9aa 4078 src/icmp/Makefile \
4daaf3cb 4079 src/ident/Makefile \
f963428c 4080 src/ip/Makefile \
a2794549 4081 contrib/Makefile \
4082 snmplib/Makefile \
4083 icons/Makefile \
4084 errors/Makefile \
1077c1b8 4085 test-suite/Makefile \
99db07b3 4086 doc/Makefile \
3faa6da8 4087 doc/manuals/Makefile \
0c510f3c 4088 helpers/Makefile \
4089 helpers/basic_auth/Makefile \
4090 helpers/basic_auth/LDAP/Makefile \
4091 helpers/basic_auth/MSNT/Makefile \
4092 helpers/basic_auth/NCSA/Makefile \
4093 helpers/basic_auth/PAM/Makefile \
4094 helpers/basic_auth/SMB/Makefile \
6e785d85 4095 helpers/basic_auth/mswin_sspi/Makefile \
0c510f3c 4096 helpers/basic_auth/YP/Makefile \
4097 helpers/basic_auth/getpwnam/Makefile \
4098 helpers/basic_auth/multi-domain-NTLM/Makefile \
4099 helpers/basic_auth/SASL/Makefile \
bcf74be7 4100 helpers/basic_auth/POP3/Makefile \
002d9b03 4101 helpers/basic_auth/DB/Makefile \
d80aac12 4102 helpers/basic_auth/squid_radius_auth/Makefile \
0c510f3c 4103 helpers/digest_auth/Makefile \
4104 helpers/digest_auth/password/Makefile \
55013f9c 4105 helpers/digest_auth/ldap/Makefile \
89f77e43 4106 helpers/digest_auth/eDirectory/Makefile \
0c510f3c 4107 helpers/ntlm_auth/Makefile \
4108 helpers/ntlm_auth/fakeauth/Makefile \
4109 helpers/ntlm_auth/no_check/Makefile \
3963d7b1
AJ
4110 helpers/ntlm_auth/smb_lm/Makefile \
4111 helpers/ntlm_auth/smb_lm/smbval/Makefile \
6e785d85 4112 helpers/ntlm_auth/mswin_sspi/Makefile \
4113 helpers/negotiate_auth/Makefile \
4114 helpers/negotiate_auth/mswin_sspi/Makefile \
c6588c68 4115 helpers/external_acl/Makefile \
4116 helpers/external_acl/ip_user/Makefile \
4117 helpers/external_acl/ldap_group/Makefile \
74ab8d10 4118 helpers/external_acl/session/Makefile \
c6588c68 4119 helpers/external_acl/unix_group/Makefile \
736a9a4d 4120 helpers/external_acl/wbinfo_group/Makefile \
9e6e0372 4121 helpers/external_acl/mswin_ad_group/Makefile \
94ab55b0 4122 helpers/external_acl/mswin_lm_group/Makefile \
fdbb3b19
AJ
4123 helpers/url_rewrite/Makefile \
4124 helpers/url_rewrite/fake/Makefile \
94ab55b0 4125 tools/Makefile
53cbe3e4 4126])
43ae1d95 4127
377792e4 4128AC_CONFIG_SUBDIRS(lib/libTrie)
4129
3e7b6055
AR
4130# must configure libltdl subdir unconditionally for "make distcheck" to work
4131AC_CONFIG_SUBDIRS(lib/libLtdl)
4132
6a9f6389 4133AC_OUTPUT