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