]> git.ipfire.org Git - thirdparty/squid.git/blob - configure.in
Import IPv6 support from squid3-ipv6 branch to 3-HEAD.
[thirdparty/squid.git] / configure.in
1
2 dnl Configuration input file for Squid
3 dnl
4 dnl $Id: configure.in,v 1.490 2007/12/14 23:11:41 amosjeffries Exp $
5 dnl
6 dnl
7 dnl
8 AC_INIT(Squid Web Proxy, 3.HEAD-IPv6-CVS, http://www.squid-cache.org/bugs/, squid)
9 AC_PREREQ(2.52)
10 AM_CONFIG_HEADER(include/autoconf.h)
11 AC_CONFIG_AUX_DIR(cfgaux)
12 AC_CONFIG_SRCDIR([src/main.cc])
13 AM_INIT_AUTOMAKE([tar-ustar])
14 AC_REVISION($Revision: 1.490 $)dnl
15 AC_PREFIX_DEFAULT(/usr/local/squid)
16 AM_MAINTAINER_MODE
17
18 PRESET_CFLAGS="$CFLAGS"
19 PRESET_LDFLAGS="$LDFLAGS"
20
21 dnl Set default LDFLAGS
22 if test -z "$LDFLAGS"; then
23 LDFLAGS="-g"
24 fi
25
26 dnl Check for GNU cc
27 AC_PROG_CC
28 AM_PROG_CC_C_O
29 AC_LANG_C
30 AC_PROG_CXX
31 AC_CANONICAL_HOST
32 AC_DISABLE_SHARED
33 AC_PROG_LIBTOOL
34 AC_LTDL_DLLIB
35 AC_PROG_RANLIB
36
37
38 CRYPTLIB=''
39 REGEXLIB='' # -lregex
40 LIBREGEX='' # libregex.a
41
42 dnl find out the exe extension for this platform. If it's not empty, use it for CGI's as well.
43 AC_EXEEXT
44 AC_OBJEXT
45
46 if test -z "$EXEEXT"; then
47 CGIEXT=".cgi"
48 else
49 # automake automatically adds .exe when installing binaries
50 CGIEXT=""
51 fi
52 AC_SUBST(CGIEXT)
53
54 dnl this should be expanded to a list of platform sensible support requirements.
55 dnl (adding an option like --enable-cygwin-support doesn't make sense :]) - R Collins 2001
56 case "$host_os" in
57 mingw|mingw32|cygwin|cygwin32)
58 AM_CONDITIONAL(ENABLE_WIN32SPECIFIC, true)
59 ;;
60 *)
61 AM_CONDITIONAL(ENABLE_WIN32SPECIFIC, false)
62 ;;
63 esac
64
65 case "$host_os" in
66 mingw|mingw32)
67 AC_PATH_PROG(WIN32_PSAPI, psapi.dll, none)
68 CFLAGS="$CFLAGS -mthreads"
69 CXXFLAGS="$CXXFLAGS -mthreads"
70 if test "$ac_cv_path_WIN32_PSAPI" = "none"; then
71 echo "PSAPI.DLL is recommended to run Squid on Windows NT Platform"
72 echo "Please see PSAPI.DLL section on doc/win32-relnotes.html."
73 else
74 AC_DEFINE(HAVE_WIN32_PSAPI,1,[Define if you have PSAPI.DLL on Windows systems])
75 LIBS="$LIBS -lpsapi"
76 fi
77 MINGW_LIBS="-lmingwex"
78 AM_CONDITIONAL(USE_IPC_WIN32, true)
79 AC_SUBST(MINGW_LIBS)
80 ;;
81 *)
82 AM_CONDITIONAL(USE_IPC_WIN32, false)
83 ;;
84 esac
85
86 if test -z "$CACHE_HTTP_PORT"; then
87 CACHE_HTTP_PORT="3128"
88 fi
89 if test -z "$CACHE_ICP_PORT"; then
90 CACHE_ICP_PORT="3130"
91 fi
92
93 dnl Substitutions
94 AC_DEFINE_UNQUOTED(CACHE_HTTP_PORT, $CACHE_HTTP_PORT,
95 [What default TCP port to use for HTTP listening?])
96 AC_SUBST(CACHE_HTTP_PORT)
97 AC_DEFINE_UNQUOTED(CACHE_ICP_PORT, $CACHE_ICP_PORT,
98 [What default UDP port to use for ICP listening?])
99 AC_SUBST(CACHE_ICP_PORT)
100
101 AC_DEFINE_UNQUOTED(CONFIG_HOST_TYPE, "$host",[Host type from configure])
102
103 AC_DEFINE_UNQUOTED(SQUID_CONFIGURE_OPTIONS, "$ac_configure_args", [configure command line used to configure Squid])
104
105 CACHE_EFFECTIVE_USER="nobody"
106 AC_ARG_WITH(default-user,
107 [ --with-default-user=USER System user account for squid permissions.
108 default: nobody],
109 [ CACHE_EFFECTIVE_USER="$withval" ]
110 )
111 AC_SUBST(CACHE_EFFECTIVE_USER)
112
113 dnl Gerben Wierda <Gerben_Wierda@RnA.nl>
114 case "$host" in
115 mab-next-nextstep3)
116 CC="$CC -arch m68k -arch i486 -arch hppa -arch sparc"
117 ;;
118 esac
119
120 if test "$GCC" = "yes"; then
121 GCCVER=`$CC -v 2>&1 | awk '$2 == "version" {print $3}'`
122 GCCVER2=`echo $GCCVER | awk '{print $1 * 100}'`
123 case "$host" in
124 i386-*-freebsd*)
125 if test $GCCVER2 -lt 300 ; then
126 echo "ERROR: GCC $GCCVER causes a coredump on $host"
127 echo "ERROR: Try a more recent GCC version"
128 sleep 5
129 fi
130 ;;
131 esac
132 unset GCCVER
133 unset GCCVER2
134 fi
135
136 dnl Set Default CFLAGS
137 if test -z "$PRESET_CFLAGS"; then
138 if test "$GCC" = "yes"; then
139 case "$host" in
140 *-sun-sunos*)
141 # sunos has too many warnings for this to be useful
142 # motorola too
143 ;;
144 *m88k*)
145 # Motorola cc/ld does not like -02 but is ok on -O
146 CFLAGS=`echo $CFLAGS | sed -e 's/-O[0-9]/-O/'`
147 ;;
148 *)
149 CFLAGS="-Wall $CFLAGS"
150 ;;
151 esac
152 else
153 case "$host" in
154 *mips-sgi-irix6.*)
155 # suggested by Rafael Seidl <rafaels@cthulhu.engr.sgi.com>
156 CFLAGS="-O3 -OPT:Olimit=0:space=OFF \
157 -woff 1009,1014,1110,1116,1183,1185,1188,1204,1230,1233,1355 \
158 -Wl,-woff,85,-woff,84,-woff,134 \
159 -nostdinc -I/usr/include -D_BSD_SIGNALS $CFLAGS"
160 CXXFLAGS="-O3 -OPT:Olimit=0:space=OFF \
161 -woff 1009,1014,1110,1116,1183,1185,1188,1204,1230,1233,1355 \
162 -Wl,-woff,85,-woff,84,-woff,134 \
163 -nostdinc -I/usr/include -D_BSD_SIGNALS $CXXFLAGS"
164 ;;
165 alpha-dec-osf4.*)
166 # Mogul says DEC compilers take both -g and -O2
167 CFLAGS=`echo $CFLAGS | sed -e 's/-g/-g3/'`
168 CFLAGS="-O2 $CFLAGS"
169 ;;
170 *)
171 ;;
172 esac
173 fi
174 fi
175
176 dnl set squid required flags
177 if test "$GCC" = "yes"; then
178 dnl Guido Serassio (serassio@squid-cache.org) 20070811
179 dnl Using the latest MinGW (gcc 3.4.5 + mingw-runtime 3.13) cannot build with
180 dnl -Wmissing-prototypes -Wmissing-declarations
181 dnl TODO: check if the problem will be present in any other newer MinGW release.
182 case "$host_os" in
183 mingw|mingw32)
184 SQUID_CFLAGS="-Werror -Wall -Wpointer-arith -Wwrite-strings -Wcomments"
185 ;;
186 *)
187 SQUID_CFLAGS="-Werror -Wall -Wpointer-arith -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wcomments"
188 ;;
189 esac
190 SQUID_CXXFLAGS="-Werror -Wall -Wpointer-arith -Wwrite-strings -Wcomments"
191 else
192 SQUID_CFLAGS=
193 SQUID_CXXFLAGS=
194 fi
195 AC_SUBST(SQUID_CFLAGS)
196 AC_SUBST(SQUID_CXXFLAGS)
197
198 AC_TEST_CHECKFORHUGEOBJECTS
199 SQUID_CXXFLAGS="$SQUID_CXXFLAGS $HUGE_OBJECT_FLAG"
200
201 dnl Set LDFLAGS
202 if test -z "$PRESET_LDFLAGS"; then
203 if test "$GCC" = "yes"; then
204 case "$host" in
205 *mips-sgi-irix6.*)
206 # Silence Linker warnings 84, 85 and 134
207 LDFLAGS="-Wl,-woff,85 -Wl,-woff,84 -Wl,-woff,134 $LDFLAGS"
208 ;;
209 *)
210 # nothing
211 ;;
212 esac
213 else
214 case "$host" in
215 *)
216 # nothing
217 ;;
218 esac
219 fi
220 fi
221
222 AC_ARG_ENABLE(gnuregex,
223 [ --enable-gnuregex Compile GNUregex. Unless you have reason to use this
224 option, you should not enable it. This library file
225 is usually only required on Windows and very old
226 Unix boxes which do not have their own regex library
227 built in.],
228 [USE_GNUREGEX=$enableval])
229
230 SquidInline="yes"
231
232 AC_ARG_ENABLE(optimizations,
233 [ --disable-optimizations Don't compile Squid with compiler optimizations enabled.
234 Optimization is good for production builds, but not
235 good for debugging. During development, use
236 --disable-optimizations to reduce compilation times
237 and allow easier debugging. This option implicitly
238 also enabled --disable-inline],
239 [ if test "$enableval" = "no" ; then
240 echo "Disabling compiler optimizations (-O flag)"
241 CFLAGS="`echo $CFLAGS | sed -e 's/-O[[0-9]]*//'`"
242 CXXFLAGS="`echo $CXXFLAGS | sed -e 's/-O[[0-9]]*//'`"
243 SquidInline="no"
244 fi
245 ])
246
247 AC_ARG_ENABLE(inline,
248 [ --disable-inline Don't compile trivial methods as inline. Squid
249 is coded with much of the code able to be inlined.
250 Inlining is good for production builds, but not
251 good for development. During development, use
252 --disable-inline to reduce compilation times and
253 allow incremental builds to be quick. For
254 production builds, or load tests, use
255 --enable-inline to have squid make all trivial
256 methods inlinable by the compiler.],
257 [ if test "$enableval" = "no" ; then
258 SquidInline="no"
259 fi
260 ])
261
262 if test "$SquidInline" = "yes" ; then
263 AC_DEFINE(_SQUID_INLINE_, inline, [Keyword used by squid for inlining methods])
264 AC_DEFINE(_USE_INLINE_,, [Include inline methods into header file])
265 else
266 echo "Inlining optimization disabled"
267 AC_DEFINE(_SQUID_INLINE_,, [Keyword used by squid for inlining methods])
268 fi
269
270 AC_ARG_ENABLE(debug-cbdata,
271 [ --enable-debug-cbdata Provide some debug information in cbdata],
272 [ if test "$enableval" = "yes" ; then
273 echo "cbdata debugging enabled"
274 AC_DEFINE(CBDATA_DEBUG,1,[Enable for cbdata debug information])
275 fi
276 ])
277
278 dnl This is a developer only option.. developers know how to set defines
279 dnl
280 dnl AC_ARG_ENABLE(xmalloc-debug,
281 dnl [ --enable-xmalloc-debug Do some simple malloc debugging],
282 dnl [ if test "$enableval" = "yes" ; then
283 dnl echo "Malloc debugging enabled"
284 dnl AC_DEFINE(XMALLOC_DEBUG,1,[Define to do simple malloc debugging])
285 dnl fi
286 dnl ])
287
288 dnl This is a developer only option.. developers know how to set defines
289 dnl
290 dnl AC_ARG_ENABLE(xmalloc-debug-trace,
291 dnl [ --enable-xmalloc-debug-trace
292 dnl Detailed trace of memory allocations],
293 dnl [ if test "$enableval" = "yes" ; then
294 dnl echo "Malloc debug trace enabled"
295 dnl AC_DEFINE(XMALLOC_TRACE,1,[Define to have a detailed trace of memory allocations])
296 dnl AC_DEFINE(XMALLOC_DEBUG,1)
297 dnl fi
298 dnl ])
299
300 AC_ARG_ENABLE(xmalloc-statistics,
301 [ --enable-xmalloc-statistics
302 Show malloc statistics in status page],
303 [ if test "$enableval" = "yes" ; then
304 echo "Malloc statistics enabled"
305 AC_DEFINE(XMALLOC_STATISTICS,1,[Define to have malloc statistics])
306 fi
307 ])
308
309 use_carp=1
310 AC_ARG_ENABLE(carp,
311 [ --disable-carp Disable CARP support],
312 [ if test "$enableval" = "no" ; then
313 echo "CARP disabled"
314 use_carp=0
315 fi
316 ])
317 if test $use_carp = 1; then
318 AC_DEFINE(USE_CARP, 1, [Cache Array Routing Protocol])
319 fi
320
321 AC_ARG_ENABLE(async-io,
322 [ --enable-async-io[=N_THREADS]
323 Shorthand for
324 --with-aufs-threads=N_THREADS
325 --with-pthreads
326 --enable-storeio=ufs,aufs],
327 [ case $enableval in
328 yes)
329 with_pthreads="yes"
330 STORE_MODULES="ufs aufs"
331 ;;
332 no)
333 ;;
334 *)
335 aufs_io_threads=$enableval
336 with_pthreads="yes"
337 STORE_MODULES="ufs aufs"
338 ;;
339 esac
340 ])
341
342 AC_ARG_WITH(aufs-threads,
343 [ --with-aufs-threads=N_THREADS
344 Tune the number of worker threads for the aufs object
345 store.],
346 [ case $withval in
347 [[0-9]]*)
348 aufs_io_threads=$withval
349 ;;
350 *)
351 echo "ERROR: Invalid --with-aufs-threads argument"
352 exit 1
353 ;;
354 esac
355 ])
356 if test "$aufs_io_threads"; then
357 echo "With $aufs_io_threads aufs threads"
358 AC_DEFINE_UNQUOTED(AUFS_IO_THREADS,$aufs_io_threads,
359 [Defines how many threads aufs uses for I/O])
360 fi
361
362 AC_ARG_WITH(pthreads,
363 [ --with-pthreads Use POSIX Threads])
364 if test "$with_pthreads" = "yes"; then
365 echo "With pthreads"
366 fi
367
368 AC_ARG_WITH(aio,
369 [ --with-aio Use POSIX AIO])
370 if test "$with_aio" = "yes"; then
371 echo "With aio"
372 fi
373
374 AC_ARG_WITH(dl,
375 [ --with-dl Use dynamic linking])
376 if test "$with_dl" = "yes"; then
377 echo "With dl"
378 fi
379
380 AC_ARG_ENABLE(storeio,
381 [ --enable-storeio=\"list of modules\"
382 Build support for the list of store I/O modules.
383 The default is only to build the "ufs" module.
384 See src/fs for a list of available modules, or
385 Programmers Guide section <not yet written>
386 for details on how to build your custom store module],
387 [ case $enableval in
388 yes)
389 for dir in $srcdir/src/fs/*; do
390 module="`basename $dir`"
391 if test -d "$dir" && test "$module" != CVS; then
392 STORE_MODULES="$STORE_MODULES $module"
393 fi
394 done
395 ;;
396 no)
397 ;;
398 *)
399 STORE_MODULES="`echo $enableval| sed -e 's/,/ /g;s/ */ /g'`"
400 ;;
401 esac
402 ],
403 [ if test -z "$STORE_MODULES"; then
404 STORE_MODULES="ufs"
405 fi
406 ])
407 if test -n "$STORE_MODULES"; then
408 for module in $STORE_MODULES; do
409 if test -d $srcdir/src/fs/$module; then
410 :
411 else
412 echo "ERROR: storeio $module does not exists"
413 exit 1
414 fi
415 done
416 echo "Store modules built: $STORE_MODULES"
417 STORE_LINKOBJS=
418 for module in $STORE_MODULES; do
419 STORE_LINKOBJS="$STORE_LINKOBJS fs/${module}/StoreFS${module}.o"
420 done
421 fi
422 dnl remove all but diskd - its the only module that needs to recurse
423 dnl into the sub directory
424 UFS_FOUND=
425 NEED_UFS=
426 NEED_BLOCKING=
427 NEED_DISKDAEMON=
428 NEED_DISKTHREADS=
429 NEED_AIO=
430 STORE_TESTS=
431 for fs in $STORE_MODULES none; do
432 case "$fs" in
433 diskd)
434 NEED_UFS="true"
435 NEED_BLOCKING="true"
436 NEED_DISKDAEMON="true"
437 ;;
438 aufs)
439 NEED_UFS="true"
440 NEED_BLOCKING="true"
441 NEED_DISKTHREADS="true"
442 ;;
443 coss)
444 NEED_AIO="true"
445 dnl
446 dnl Automake om MinGW needs explicit exe extension
447 dnl for STORE_TESTS substition
448 dnl
449 STORE_TESTS="$STORE_TESTS tests/testCoss$EXEEXT"
450 ;;
451 null)
452 STORE_TESTS="$STORE_TESTS tests/testNull$EXEEXT"
453 ;;
454 ufs)
455 UFS_FOUND="true"
456 STORE_TESTS="$STORE_TESTS tests/testUfs$EXEEXT"
457 esac
458 done
459 STORE_OBJS=
460 STORE_LIBS=
461 dnl We have 'fake' modules - aufs and diskd - legacy.
462 for fs in $STORE_MODULES; do
463 case "$fs" in
464 diskd);;
465 aufs);;
466 *)
467 STORE_OBJS="$STORE_OBJS fs/lib${fs}.a"
468 STORE_LIBS="$STORE_LIBS lib${fs}.a"
469 ;;
470 esac
471 done
472
473 if test -z "$UFS_FOUND" && test -n "$NEED_UFS"; then
474 echo "adding UFS, as it contains core logic for diskd and aufs"
475 STORE_OBJS="$STORE_OBJS fs/libufs.a"
476 STORE_LIBS="$STORE_LIBS libufs.a"
477 STORE_MODULES="$STORE_MODULES ufs"
478 STORE_LINKOBJS="$STORE_LINKOBJS fs/ufs/StoreFSufs.o"
479 dnl
480 dnl Automake om MinGW needs explicit exe extension
481 dnl for STORE_TESTS substition
482 dnl
483 STORE_TESTS="$STORE_TESTS tests/testUfs$EXEEXT"
484 fi
485
486 AC_SUBST(STORE_OBJS)
487 AC_SUBST(STORE_LIBS)
488 AC_SUBST(STORE_LINKOBJS)
489 AC_SUBST(STORE_TESTS)
490
491 AC_ARG_ENABLE(disk-io,
492 [ --enable-disk-io=\"list of modules\"
493 Build support for the list of disk I/O modules.
494 The default is only to build the "Blocking" module.
495 See src/DiskIO for a list of available modules, or
496 Programmers Guide section <not yet written>
497 for details on how to build your custom disk module],
498 [ case $enableval in
499 yes)
500 for dir in $srcdir/src/DiskIO/*; do
501 module="`basename $dir`"
502 if test -d "$dir" && test "$module" != CVS; then
503 DISK_MODULES="$DISK_MODULES $module"
504 fi
505 done
506 ;;
507 no)
508 ;;
509 *)
510 DISK_MODULES="`echo $enableval| sed -e 's/,/ /g;s/ */ /g'`"
511 ;;
512 esac
513 ],
514 [ if test -z "$DISK_MODULES"; then
515 DISK_MODULES="Blocking"
516 fi
517 ])
518 if test -n "$DISK_MODULES"; then
519 for module in $DISK_MODULES; do
520 if test -d $srcdir/src/DiskIO/$module; then
521 :
522 else
523 echo "ERROR: disk-io $module does not exists"
524 exit 1
525 fi
526 done
527 DISK_LIBS="lib`echo $DISK_MODULES|sed -e 's% %.a lib%g'`.a"
528 DISK_LINKOBJS=
529 for module in $DISK_MODULES; do
530 DISK_LINKOBJS="$DISK_LINKOBJS DiskIO/${module}/${module}DiskIOModule.o"
531 done
532 fi
533 for fs in $DISK_MODULES none; do
534 case "$fs" in
535 DiskDaemon)
536 DISK_PROGRAMS="$DISK_PROGRAMS DiskIO/DiskDaemon/diskd"
537 FOUND_DISKDAEMON="true"
538 ;;
539 DiskThreads)
540 FOUND_DISKTHREADS="true"
541 ;;
542 AIO)
543 FOUND_AIO="true"
544 ;;
545 Blocking)
546 FOUND_BLOCKING="true"
547 esac
548 done
549
550 if test -z "$FOUND_BLOCKING" && test -n "$NEED_BLOCKING"; then
551 echo "adding Blocking, as it is used by an active, legacy Store Module"
552 DISK_LIBS="$DISK_LIBS libBlocking.a"
553 DISK_MODULES="$DISK_MODULES Blocking"
554 DISK_LINKOBJS="$DISK_LINKOBJS DiskIO/Blocking/BlockingDiskIOModule.o"
555 fi
556
557 if test -z "$FOUND_DISKDAEMON" && test -n "$NEED_DISKDAEMON"; then
558 echo "adding DiskDaemon, as it is used by an active, legacy Store Module"
559 DISK_LIBS="$DISK_LIBS libDiskDaemon.a"
560 DISK_MODULES="$DISK_MODULES DiskDaemon"
561 DISK_PROGRAMS="$DISK_PROGRAMS DiskIO/DiskDaemon/diskd"
562 DISK_LINKOBJS="$DISK_LINKOBJS DiskIO/DiskDaemon/DiskDaemonDiskIOModule.o"
563 fi
564
565 if test -z "$FOUND_DISKTHREADS" && test -n "$NEED_DISKTHREADS"; then
566 echo "adding DiskThreads, as it is used by an active, legacy Store Module"
567 DISK_LIBS="$DISK_LIBS libDiskThreads.a"
568 DISK_MODULES="$DISK_MODULES DiskThreads"
569 DISK_LINKOBJS="$DISK_LINKOBJS DiskIO/DiskThreads/DiskThreadsDiskIOModule.o"
570 fi
571
572 if test -z "$FOUND_AIO" && test -n "$NEED_AIO"; then
573 echo "adding AIO, as it is used by an active, legacy Store Module"
574 DISK_LIBS="$DISK_LIBS libAIO.a"
575 DISK_MODULES="$DISK_MODULES AIO"
576 DISK_LINKOBJS="$DISK_LINKOBJS DiskIO/AIO/AIODiskIOModule.o"
577 fi
578 echo "IO Modules built: $DISK_MODULES"
579 USE_AIOPS_WIN32=0
580 USE_AIO_WIN32=0
581 dnl we know what is being built. now add dependencies.
582 for fs in $DISK_MODULES none; do
583 case "$fs" in
584 DiskThreads)
585 if test -z "$with_pthreads"; then
586 case "$host_os" in
587 mingw|mingw32)
588 USE_AIOPS_WIN32=1
589 echo "DiskThreads IO Module used, Windows threads support automatically enabled"
590 ;;
591 *)
592 echo "DiskThreads IO Module used, pthreads support automatically enabled"
593 with_pthreads=yes
594 ;;
595 esac
596 fi
597 ;;
598 AIO)
599 if test -z "$with_aio"; then
600 case "$host_os" in
601 mingw|mingw32)
602 USE_AIO_WIN32=1
603 echo "Aio IO Module used, Windows overlapped I/O support automatically enabled"
604 ;;
605 *)
606 echo "Aio IO Module used, aio support automatically enabled"
607 with_aio=yes
608 ;;
609 esac
610 fi
611 ;;
612 esac
613 done
614
615 AC_SUBST(DISK_LIBS)
616 AC_SUBST(DISK_PROGRAMS)
617 AC_SUBST(DISK_LINKOBJS)
618 AM_CONDITIONAL([USE_AIOPS_WIN32], [test "$USE_AIOPS_WIN32" = 1])
619 AM_CONDITIONAL([USE_AIO_WIN32], [test "$USE_AIO_WIN32" = 1])
620
621 AC_ARG_ENABLE(removal-policies,
622 [ --enable-removal-policies=\"list of policies\"
623 Build support for the list of removal policies.
624 The default is only to build the "lru" module.
625 See src/repl for a list of available modules, or
626 Programmers Guide section 9.9 for details on how
627 to build your custom policy],
628 [ case $enableval in
629 yes)
630 for dir in $srcdir/src/repl/*; do
631 module="`basename $dir`"
632 if test -d "$dir" && test "$module" != CVS; then
633 REPL_POLICIES="$REPL_POLICIES $module"
634 fi
635 done
636 ;;
637 no)
638 ;;
639 *)
640 REPL_POLICIES="`echo $enableval| sed -e 's/,/ /g;s/ */ /g'`"
641 ;;
642 esac
643 ],
644 [ if test -z "$REPL_POLICIES"; then
645 REPL_POLICIES="lru"
646 fi
647 ])
648 if test -n "$REPL_POLICIES"; then
649 for module in $REPL_POLICIES; do
650 if test -d $srcdir/src/repl/$module; then
651 :
652 else
653 echo "ERROR: Removal policy $module does not exists"
654 exit 1
655 fi
656 done
657 echo "Removal policies built: $REPL_POLICIES"
658 REPL_OBJS="repl/lib`echo $REPL_POLICIES|sed -e 's% %.a repl/lib%g'`.a"
659 REPL_LIBS="`echo $REPL_OBJS|sed -e 's%repl/%%g'`"
660 fi
661 AC_SUBST(REPL_POLICIES)
662 AC_SUBST(REPL_OBJS)
663 AC_SUBST(REPL_LIBS)
664
665 AM_CONDITIONAL(ENABLE_PINGER, false)
666 AC_ARG_ENABLE(icmp,
667 [ --enable-icmp Enable ICMP pinging],
668 [ if test "$enableval" = "yes" ; then
669 echo "ICMP enabled"
670 AC_DEFINE(USE_ICMP,1,
671 [ Defined this to use Squid's ICMP features (highly recommended!)
672 When USE_ICMP is defined, Squid will send ICMP pings to origin server sites.])
673 AM_CONDITIONAL(ENABLE_PINGER, true)
674 fi
675 ])
676
677 AM_CONDITIONAL(USE_DELAY_POOLS, false)
678 AC_ARG_ENABLE(delay-pools,
679 [ --enable-delay-pools Enable delay pools to limit bandwidth usage],
680 [ if test "$enableval" = "yes" ; then
681 echo "Delay pools enabled"
682 AC_DEFINE([DELAY_POOLS],1,[Traffic management via "delay pools".])
683 AM_CONDITIONAL(USE_DELAY_POOLS, true,)
684 fi
685 ])
686
687 AM_CONDITIONAL(USE_ESI, false)
688 AC_ARG_ENABLE(esi,
689 AC_HELP_STRING([--enable-esi],[Enable ESI for accelerators. Requires libexpat. Enabling ESI will cause squid to follow the Edge Acceleration Specification (www.esi.org). This causes squid to IGNORE client Cache-Control headers. DO NOT use this in a squid configured as a web proxy, ONLY use it in a squid configured for webserver acceleration.]),
690 use_esi=$enableval, use_esi=no)
691 if test "$use_esi" = "yes" ; then
692 AC_DEFINE(USE_SQUID_ESI,1,[Compile the ESI processor and Surrogate header support])
693 AM_CONDITIONAL(USE_ESI, true)
694 XTRA_LIBS="$XTRA_LIBS -lexpat -lxml2"
695 else
696 AC_DEFINE(USE_SQUID_ESI,0,[Compile the ESI processor and Surrogate header support])
697 fi
698
699 AM_CONDITIONAL(USE_ICAP_CLIENT, false)
700 AC_ARG_ENABLE(icap-client,
701 AC_HELP_STRING([--enable-icap-client],[Enable the ICAP client.]),
702 use_icap_client=$enableval, use_icap_client=no)
703 if test "$use_icap_client" = "yes" ; then
704 AC_DEFINE(ICAP_CLIENT,1,[Enable ICAP client features in Squid])
705 AM_CONDITIONAL(USE_ICAP_CLIENT, true)
706 ICAP_LIBS="ICAP/libicap.a"
707 else
708 AC_DEFINE(ICAP_CLIENT,0,[Enable ICAP client features in Squid])
709 ICAP_LIBS=""
710 fi
711 AC_SUBST(ICAP_LIBS)
712
713 dnl This is a developer only option. Developers know how to set defines
714 dnl
715 dnl AC_ARG_ENABLE(mem-gen-trace,
716 dnl [ --enable-mem-gen-trace Do trace of memory stuff],
717 dnl [ if test "$enableval" = "yes" ; then
718 dnl echo "Memory trace (to file) enabled"
719 dnl AC_DEFINE(MEM_GEN_TRACE,1,[Define for log file trace of mem alloc/free])
720 dnl fi
721 dnl ])
722
723 AC_ARG_ENABLE(useragent-log,
724 [ --enable-useragent-log Enable logging of User-Agent header],
725 [ if test "$enableval" = "yes" ; then
726 echo "User-Agent logging enabled"
727 AC_DEFINE(USE_USERAGENT_LOG,1,[If you want to log User-Agent request header values, define this.
728 By default, they are written to useragent.log in the Squid log
729 directory.])
730 fi
731 ])
732
733 AC_ARG_ENABLE(referer-log,
734 [ --enable-referer-log Enable logging of Referer header],
735 [ if test "$enableval" = "yes" ; then
736 echo "Referer logging enabled"
737 AC_DEFINE(USE_REFERER_LOG,1,[If you want to log Referer request header values, define this.
738 By default, they are written to referer.log in the Squid log
739 directory.])
740 fi
741 ])
742
743 USE_WCCP=1
744 AC_ARG_ENABLE(wccp,
745 [ --disable-wccp Disable Web Cache Coordination Protocol],
746 [ if test "$enableval" = "no" ; then
747 echo "Web Cache Coordination Protocol disabled"
748 USE_WCCP=0
749 fi
750 ])
751 if test $USE_WCCP = 1; then
752 AC_DEFINE(USE_WCCP, 1, [Define to enable WCCP])
753 fi
754
755 USE_WCCPv2=1
756 AC_ARG_ENABLE(wccpv2,
757 [ --disable-wccpv2 Disable Web Cache Coordination V2 Protocol],
758 [ if test "$enableval" = "no" ; then
759 echo "Web Cache Coordination V2 Protocol disabled"
760 USE_WCCPv2=0
761 fi
762 ])
763 if test $USE_WCCPv2 = 1; then
764 AC_DEFINE(USE_WCCPv2, 1, [Define to enable WCCP V2])
765 fi
766
767 AC_ARG_ENABLE(kill-parent-hack,
768 [ --enable-kill-parent-hack
769 Kill parent on shutdown],
770 [ if test "$enableval" = "yes" ; then
771 echo "Kill parent on shutdown"
772 AC_DEFINE(KILL_PARENT_OPT,1,[A dangerous feature which causes Squid to kill its parent process
773 (presumably the RunCache script) upon receipt of SIGTERM or SIGINT.
774 Use with caution.])
775 fi
776 ])
777
778 USE_SNMP=true
779 AC_ARG_ENABLE(snmp,
780 [ --disable-snmp Disable SNMP monitoring support],
781 [ if test "$enableval" = "no" ; then
782 echo "SNMP monitoring disabled"
783 USE_SNMP=
784 fi
785 ])
786 if test x"$USE_SNMP" = xtrue; then
787 AC_DEFINE(SQUID_SNMP,1,[Define to enable SNMP monitoring of Squid])
788 SNMPLIB='../snmplib/libsnmp.a'
789 makesnmplib=snmplib
790 fi
791 AM_CONDITIONAL(USE_SNMP, [test x$USE_SNMP = xtrue])
792 AC_SUBST(SNMPLIB)
793 AC_SUBST(makesnmplib)
794
795 AC_ARG_ENABLE(cachemgr-hostname,
796 [ --enable-cachemgr-hostname[=hostname]
797 Make cachemgr.cgi default to this host],
798 [ case $enableval in
799 yes)
800 AC_DEFINE(CACHEMGR_HOSTNAME,[getfullhostname()],
801 [If you are upset that the cachemgr.cgi form comes up with the hostname field blank, then define this to getfullhostname()])
802 echo "Cachemgr default hostname == host where cachemgr runs"
803 ;;
804 no)
805 : # Nothing to do..
806 ;;
807 *)
808 AC_DEFINE_UNQUOTED(CACHEMGR_HOSTNAME,"${enableval}")
809 echo "Cachemgr default hostname set to ${enableval}"
810 ;;
811 esac
812 ])
813
814 AM_CONDITIONAL(ENABLE_ARP_ACL, false)
815 AC_ARG_ENABLE(arp-acl,
816 [ --enable-arp-acl Enable use of ARP ACL lists (ether address)],
817 [ if test "$enableval" = "yes" ; then
818 echo "ARP ACL lists enabled (ether address)"
819 case "$host" in
820 *-linux-*)
821 ;;
822 *-solaris*)
823 ;;
824 *-freebsd*)
825 ;;
826 *-openbsd*)
827 ;;
828 *-netbsd*)
829 ;;
830 *-cygwin*)
831 LIBS="$LIBS -liphlpapi"
832 ;;
833 *-mingw*)
834 LIBS="$LIBS -liphlpapi"
835 ;;
836 *)
837 echo "WARNING: ARP ACL support probably won't work on $host."
838 sleep 10
839 ;;
840 esac
841 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, ?).])
842 AM_CONDITIONAL(ENABLE_ARP_ACL, true)
843 fi
844 ])
845
846 USE_HTCP=true
847 AM_CONDITIONAL(ENABLE_HTCP, false)
848 AC_ARG_ENABLE(htcp,
849 [ --disable-htcp Disable HTCP protocol support],
850 [ if test "$enableval" = "no" ; then
851 echo "HTCP support disabled"
852 fi
853 ])
854 if test x$USE_HTCP = xtrue; then
855 AC_DEFINE(USE_HTCP,1, [Define this to include code for the Hypertext Cache Protocol (HTCP)])
856 fi
857 AM_CONDITIONAL(ENABLE_HTCP, [test x$USE_HTCP = xtrue])
858
859 dnl SSL is not enabled by default.
860 AM_CONDITIONAL(ENABLE_SSL, false)
861
862 dnl Default is to use OpenSSL when available
863 AC_ARG_ENABLE(ssl,
864 [ --enable-ssl Enable ssl gatewaying support using OpenSSL],
865 [ if test "$enableval" != "no"; then
866 echo "SSL gatewaying using OpenSSL enabled"
867 AC_DEFINE(USE_SSL,1,[Define this to include code for SSL encryption.])
868 AM_CONDITIONAL(ENABLE_SSL, true)
869 case "$host_os" in
870 mingw|mingw32)
871 dnl Native Windows port of OpenSSL needs -lgdi32
872 SSLLIB='-lssleay32 -leay32 -lgdi32'
873 ;;
874 *)
875 SSLLIB='-lssl -lcrypto'
876 ;;
877 esac
878 USE_OPENSSL=1
879 fi
880 ])
881
882 dnl User may specify OpenSSL is needed from a non-standard location
883 AC_ARG_WITH(openssl,
884 [ --with-openssl[=prefix]
885 Compile with the OpenSSL libraries. The path to
886 the OpenSSL development libraries and headers
887 installation can be specified if outside of the
888 system standard directories],
889 [
890 case "$with_openssl" in
891 yes)
892 USE_OPENSSL=1
893 ;;
894 no)
895 USE_OPENSSL=
896 ;;
897 *)
898 SSLLIBDIR="$with_openssl/lib"
899 CPPFLAGS="-I$with_openssl/include $CPPFLAGS"
900 USE_OPENSSL=1
901 esac
902 ])
903 if test -n "$USE_OPENSSL"; then
904 echo "Using OpenSSL MD5 implementation"
905 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)])
906 if test -z "$SSLLIB"; then
907 SSLLIB="-lcrypto" # for MD5 routines
908 fi
909 dnl This is a workaround for RedHat 9 brain damage..
910 if test -d /usr/kerberos/include && test -z "$SSLLIBDIR" && test -f /usr/include/openssl/kssl.h; then
911 echo "OpenSSL depends on Kerberos"
912 SSLLIBDIR="/usr/kerberos/lib"
913 CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
914 fi
915 fi
916 if test -n "$SSLLIBDIR"; then
917 SSLLIB="-L$SSLLIBDIR $SSLLIB"
918 fi
919 AC_SUBST(SSLLIB)
920
921
922 AC_ARG_ENABLE(forw-via-db,
923 [ --enable-forw-via-db Enable Forw/Via database],
924 [ if test "$enableval" = "yes" ; then
925 echo "FORW-VIA enabled"
926 AC_DEFINE(FORW_VIA_DB,1,[Enable Forw/Via database])
927 fi
928 ])
929
930 AC_ARG_ENABLE(cache-digests,
931 [ --enable-cache-digests Use Cache Digests
932 see http://www.squid-cache.org/FAQ/FAQ-16.html],
933 [ if test "$enableval" = "yes" ; then
934 echo "USE_CACHE_DIGESTS enabled"
935 AC_DEFINE(USE_CACHE_DIGESTS,1,[Use Cache Digests for locating objects in neighbor caches. This code is still semi-experimental.])
936 fi
937 ])
938
939 dnl Select Default Error language
940 AC_ARG_ENABLE(default-err-language,
941 [ --enable-default-err-language=lang
942 Select default language for Error pages (see
943 errors directory) ],
944 [
945 if test -d $srcdir/errors/$enableval; then
946 ERR_DEFAULT_LANGUAGE=$enableval
947 else
948 echo "ERROR! Unknown language $enableval, see errors/ directory"
949 exit 1
950 fi
951 ],[ERR_DEFAULT_LANGUAGE="English"])
952 AC_SUBST(ERR_DEFAULT_LANGUAGE)
953
954 dnl Select languages to be installed
955 AC_ARG_ENABLE(err-languages,
956 [ --enable-err-languages=\"lang1 lang2..\"
957 Select languages to be installed. (All will be
958 installed by default) ],
959 [
960 for l in $enableval; do
961 if test -d $srcdir/errors/$l; then :; else
962 echo "ERROR! Unknown language $$l, see errors/"
963 exit 1
964 fi
965 done
966 ERR_LANGUAGES=$enableval
967 ],[
968 ERR_LANGUAGES=
969 for l in $srcdir/errors/*; do
970 if test -f $l/ERR_ACCESS_DENIED; then
971 ERR_LANGUAGES="$ERR_LANGUAGES `basename $l`"
972 fi
973 done
974 ])
975 AC_SUBST(ERR_LANGUAGES)
976
977 dnl Size of COSS memory buffer
978 AC_ARG_WITH(coss-membuf-size,
979 [ --with-coss-membuf-size COSS membuf size (default 1048576 bytes) ],
980 [ if test "$with_coss_membuf_size"; then
981 echo "Setting COSS membuf size to $with_coss_membuf_size bytes"
982 AC_DEFINE_UNQUOTED(COSS_MEMBUF_SZ, $with_coss_membuf_size,[Define if you want to set the COSS membuf size])
983 fi
984 ])
985
986 dnl check for netio plugin stuff
987
988 dnl Enable poll()
989 disable_poll=
990 AC_ARG_ENABLE(poll,
991 [ --disable-poll Disable poll() support. ],
992
993 [
994 case "$enableval" in
995 yes)
996 echo "Forcing poll() to be enabled"
997 SELECT_TYPE="poll"
998 ;;
999 no)
1000 echo "Forcing poll() to be disabled"
1001 disable_poll=true
1002 ;;
1003 esac
1004 ])
1005
1006 dnl Enable select()
1007 disable_select=
1008 AC_ARG_ENABLE(select,
1009 [ --disable-select Disable select() support. ],
1010
1011 [
1012 case "$enableval" in
1013 yes)
1014 echo "Forcing select() to be enabled"
1015 SELECT_TYPE="select"
1016 ;;
1017 no)
1018 echo "Forcing select() to be disabled"
1019 disable_select=true
1020 ;;
1021 esac
1022 ])
1023
1024 dnl Enable kqueue()
1025 dnl kqueue support is still experiemntal and unstable. Not enabled by default.
1026 disable_kqueue=true
1027 AC_ARG_ENABLE(kqueue,
1028 [ --enable-kqueue Enable kqueue() support (experimental).],
1029
1030 [
1031 case "$enableval" in
1032 yes)
1033 echo "Forcing kqueue() to be enabled"
1034 SELECT_TYPE="kqueue"
1035 ;;
1036 no)
1037 echo "Forcing kqueue() to be disabled"
1038 disable_kqueue=true
1039 ;;
1040 esac
1041 ])
1042
1043 dnl Enable epoll()
1044 disable_epoll=
1045 AC_ARG_ENABLE(epoll,
1046 [ --disable-epoll Disable Linux epoll() support.],
1047
1048 [
1049 case "$enableval" in
1050 yes)
1051 echo "Forcing epoll() to be enabled"
1052 SELECT_TYPE="epoll"
1053 ;;
1054 no)
1055 echo "Forcing epoll() to be disabled"
1056 disable_epoll=true
1057 ;;
1058 esac
1059 ])
1060
1061
1062 dnl Disable HTTP violations
1063 http_violations=1
1064 AC_ARG_ENABLE(http-violations,
1065 [ --disable-http-violations
1066 This allows you to remove code which is known to
1067 violate the HTTP protocol specification.],
1068 [ if test "$enableval" = "no" ; then
1069 echo "Disabling HTTP Violations"
1070 http_violations=0
1071 fi
1072 ])
1073 if test $http_violations = 1; then
1074 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.])
1075 else
1076 AC_DEFINE(HTTP_VIOLATIONS, 0)
1077 fi
1078
1079 dnl Enable IPFW Transparent Proxy
1080 AC_ARG_ENABLE(ipfw-transparent,
1081 [ --enable-ipfw-transparent
1082 Enable Transparent Proxy support for systems
1083 using FreeBSD IPFW style redirection.],
1084 [ if test "$enableval" = "yes" ; then
1085 echo "IPFW Transparent Proxy enabled"
1086 AC_DEFINE(IPFW_TRANSPARENT,1,[Enable support for Transparent Proxy on systems using FreeBSD IPFW address redirection.])
1087 IPFW_TRANSPARENT="yes"
1088 fi
1089 ])
1090
1091 dnl Enable IP-Filter Transparent Proxy
1092 AC_ARG_ENABLE(ipf-transparent,
1093 [ --enable-ipf-transparent
1094 Enable Transparent Proxy support for systems
1095 using IP-Filter network address redirection.],
1096 [ if test "$enableval" = "yes" ; then
1097 echo "IP-Filter Transparent Proxy enabled"
1098 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.])
1099 IPF_TRANSPARENT="yes"
1100 fi
1101 ])
1102
1103 dnl Enable PF Transparent Proxy
1104 AC_ARG_ENABLE(pf-transparent,
1105 [ --enable-pf-transparent
1106 Enable Transparent Proxy support for systems
1107 using PF network address redirection.],
1108 [ if test "$enableval" = "yes" ; then
1109 echo "PF Transparent Proxy enabled"
1110 AC_DEFINE(PF_TRANSPARENT,1,[Enable support for Transparent Proxy on systems using PF address redirection. This provides "masquerading" support for OpenBSD.])
1111 PF_TRANSPARENT="yes"
1112 fi
1113 ])
1114
1115 dnl Enable Linux Netfilter Transparent Proxy
1116 AC_ARG_ENABLE(linux-netfilter,
1117 [ --enable-linux-netfilter
1118 Enable Transparent Proxy support for Linux (Netfilter) systems.],
1119 [ if test "$enableval" = "yes" ; then
1120 echo "Linux (Netfilter) Transparent Proxy enabled"
1121 AC_DEFINE(LINUX_NETFILTER,1,[Enable support for Transparent Proxy on Linux (Netfilter) systems])
1122 LINUX_NETFILTER="yes"
1123 fi
1124 ])
1125
1126 dnl Enable Large file support
1127 buildmodel=""
1128 needlargefiles=
1129
1130 AC_ARG_WITH(large-files,
1131 [ --with-large-files Enable support for large files (logs etc).],
1132 [ if test "$withval" = yes; then
1133 needlargefiles=1
1134 fi
1135 ])
1136
1137 dnl UNIX Build environment
1138 AC_ARG_WITH(build-environment,
1139 [ --with-build-environment=model
1140 The build environment to use. Normally one of
1141 POSIX_V6_ILP32_OFF32 32 bits
1142 POSIX_V6_ILP32_OFFBIG 32 bits with large file support
1143 POSIX_V6_LP64_OFF64 64 bits
1144 POSIX_V6_LPBIG_OFFBIG large pointers and files
1145 XBS5_ILP32_OFF32 32 bits (legacy)
1146 XBS5_ILP32_OFFBIG 32 bits with large file support (legacy)
1147 XBS5_LP64_OFF64 64 bits (legacy)
1148 XBS5_LPBIG_OFFBIG large pointers and files (legacy)
1149 default The default for your OS],
1150 [ case "$withval" in
1151 yes|no)
1152 echo "--with-build-environment expects a build environment string as used by getconf"
1153 exit 1
1154 ;;
1155 *)
1156 buildmodel="$withval"
1157 ;;
1158 esac
1159 ])
1160
1161 if test $needlargefiles && test -z "$buildmodel"; then
1162 for model in POSIX_V6_ILP32_OFFBIG XBS5_ILP32_OFFBIG POSIX_V6_LP64_OFF64 XBS5_LP64_OFF64 POSIX_V6_LPBIG_OFFBIG XBS5_LPBIG_OFFBIG; do
1163 if test "`getconf _$model 2>/dev/null || true`" = 1 || test "`getconf $model 2>/dev/null || true`" ; then
1164 buildmodel=$model
1165 break
1166 fi
1167 done
1168 if test -z "$buildmodel"; then
1169 echo "WARNING: No suitable build environment found for large files. Trying to use _FILE_OFFSET_BITS=64"
1170 sleep 1
1171 CFLAGS="-D_FILE_OFFSET_BITS=64 $CFLAGS"
1172 CXXFLAGS="-D_FILE_OFFSET_BITS=64 $CXXFLAGS"
1173 fi
1174 fi
1175 if test -n "$buildmodel" && test "$buildmodel" != "default"; then
1176 echo "Using $buildmodel build environment"
1177 if test "`getconf _$buildmodel 2>/dev/null || true`" = 1 || test "`getconf $buildmodel 2>/dev/null || true`" ; then
1178 : # All fine
1179 else
1180 echo "ERROR: Build environment $buildmodel not known to getconf."
1181 exit 1
1182 fi
1183 CFLAGS="`getconf ${buildmodel}_CFLAGS` $CFLAGS"
1184 CXXFLAGS="`getconf ${buildmodel}_CFLAGS` $CXXFLAGS"
1185 LIBS="`getconf ${buildmodel}_LIBS` $LIBS"
1186 LDFLAGS="`getconf ${buildmodel}_LDFLAGS` $LDFLAGS"
1187 case "$host" in
1188 dnl
1189 dnl On Solaris getconf returns for CFLAGS -Xa and -Usun options, but:
1190 dnl -Xa is supported only by Sun cc, so we need to remove it when using gcc
1191 dnl The 'sun' define is needed by ipfilter includes, so we must remove -Usun
1192 *-solaris*)
1193 if test "$GCC" = "yes"; then
1194 echo "Removing -Xa for gcc on $host"
1195 CFLAGS="`echo $CFLAGS | sed -e 's/-Xa//'`"
1196 CXXFLAGS="`echo $CXXFLAGS | sed -e 's/-Xa//'`"
1197 fi
1198 echo "Removing -Usun on $host"
1199 CFLAGS="`echo $CFLAGS | sed -e 's/-Usun//'`"
1200 CXXFLAGS="`echo $CXXFLAGS | sed -e 's/-Usun//'`"
1201 ;;
1202 dnl
1203 dnl On Irix 6.x getconf returns options valid only for the SGI MipsPRO compiler,
1204 dnl so we must adjust something to avoid gcc errors.
1205 dnl On Irix 6.x 32/64 bit we must replace "-n32" with "-mabi=n32" in CFLAGS and
1206 dnl remove "-n32" from LDFLAGS
1207 dnl On Irix 6.x 64 bit we must replace "-64" with "-mabi=64" in CFLAGS and remove
1208 dnl "-64" from LDFLAGS
1209 *-sgi-irix6.*)
1210 if test "$GCC" = "yes"; then
1211 CFLAGS="`echo $CFLAGS | sed -e 's/-n32/-mabi=n32/'`"
1212 CXXFLAGS="`echo $CXXFLAGS | sed -e 's/-n32/-mabi=n32/'`"
1213 LDFLAGS="`echo $LDFLAGS | sed -e 's/-n32//'`"
1214 CFLAGS="`echo $CFLAGS | sed -e 's/-64/-mabi=64/'`"
1215 CXXFLAGS="`echo $CXXFLAGS | sed -e 's/-64/-mabi=64/'`"
1216 LDFLAGS="`echo $LDFLAGS | sed -e 's/-64//'`"
1217 fi
1218 ;;
1219 *)
1220 ;;
1221 esac
1222 fi
1223
1224 dnl Enable Linux transparent proxy support
1225 AC_ARG_ENABLE(linux-tproxy,
1226 [ --enable-linux-tproxy
1227 Enable real Transparent Proxy support for Netfilter TPROXY.],
1228 [ if test "$enableval" = "yes" ; then
1229 echo "Linux Netfilter/TPROXY enabled"
1230 AC_DEFINE(LINUX_TPROXY, 1, [Enable real Transparent Proxy support for Netfilter TPROXY.])
1231 LINUX_TPROXY="yes"
1232 if test -z "$LINUX_NETFILTER"; then
1233 echo "Linux-Netfilter Transparent Proxy automatically enabled"
1234 LINUX_NETFILTER="yes"
1235 fi
1236 fi
1237 ])
1238
1239 AM_CONDITIONAL(MAKE_LEAKFINDER, false)
1240 dnl Enable Leak Finding Functions
1241 AC_ARG_ENABLE(leakfinder,
1242 [ --enable-leakfinder
1243 Enable Leak Finding code. Enabling this alone
1244 does nothing; you also have to modify the source
1245 code to use the leak finding functions. Probably
1246 Useful for hackers only.],
1247 [ if test "$enableval" = "yes" ; then
1248 echo "Leak-Finding enabled"
1249 AC_DEFINE(USE_LEAKFINDER,1,[Enable code for assisting in finding memory leaks. Hacker stuff only.])
1250 USE_LEAKFINDER="yes"
1251 AM_CONDITIONAL(MAKE_LEAKFINDER, true)
1252 fi
1253 ])
1254
1255 use_ident=1
1256 AC_ARG_ENABLE(ident-lookups,
1257 [ --disable-ident-lookups
1258 This allows you to remove code that performs
1259 Ident (RFC 931) lookups.],
1260 [ if test "$enableval" = "no" ; then
1261 echo "Disabling Ident Lookups"
1262 use_ident=0
1263 fi
1264 ])
1265 if test $use_ident = 1; then
1266 AC_DEFINE(USE_IDENT, 1,[Compile in support for Ident (RFC 931) lookups? Enabled by default.])
1267 AM_CONDITIONAL(ENABLE_IDENT, true)
1268 else
1269 AC_DEFINE(USE_IDENT, 0)
1270 AM_CONDITIONAL(ENABLE_IDENT, false)
1271 fi
1272
1273 AM_CONDITIONAL(USE_DNSSERVER, false)
1274 use_dnsserver=
1275 AC_ARG_ENABLE(internal-dns,
1276 [ --disable-internal-dns This prevents Squid from directly sending and
1277 receiving DNS messages, and instead enables the
1278 old external 'dnsserver' processes.],
1279 [ if test "$enableval" = "no" ; then
1280 echo "Disabling Internal DNS queries"
1281 use_dnsserver="yes"
1282 fi
1283 ])
1284 if test "$use_dnsserver" = "yes"; then
1285 AC_DEFINE(USE_DNSSERVERS,1,[Use dnsserver processes instead of the internal DNS protocol support])
1286 AM_CONDITIONAL(USE_DNSSERVER, true)
1287 fi
1288
1289 dnl Select Default hosts file location
1290 AC_ARG_ENABLE(default-hostsfile,
1291 [ --enable-default-hostsfile=path
1292 Select default location for hosts file.
1293 See hosts_file directive in squid.conf for details],
1294 [
1295 if test "$enableval" != "none" ; then
1296 if test -f $enableval; then
1297 OPT_DEFAULT_HOSTS=$enableval
1298 else
1299 echo "Warning Unable to find $enableval"
1300 sleep 5
1301 fi
1302 else
1303 OPT_DEFAULT_HOSTS="none"
1304 fi
1305 echo "Default hosts file set to: $enableval"
1306 ],[OPT_DEFAULT_HOSTS="/etc/hosts"])
1307 AC_SUBST(OPT_DEFAULT_HOSTS)
1308
1309 dnl Select auth schemes modules to build
1310 AC_ARG_ENABLE(auth,
1311 [ --enable-auth=\"list of auth scheme modules\"
1312 Build support for the list of authentication schemes.
1313 The default is to build support for the Basic scheme.
1314 See src/auth for a list of available modules, or
1315 Programmers Guide section authentication schemes
1316 for details on how to build your custom auth scheme
1317 module],
1318 [ case $enableval in
1319 yes)
1320 for dir in $srcdir/src/auth/*; do
1321 module="`basename $dir`"
1322 if test -d "$dir" && test "$module" != CVS; then
1323 AUTH_MODULES="$AUTH_MODULES $module"
1324 fi
1325 done
1326 ;;
1327 no)
1328 ;;
1329 *)
1330 AUTH_MODULES="`echo $enableval| sed -e 's/,/ /g;s/ */ /g'`"
1331 ;;
1332 esac
1333 ],
1334 [ if test -z "$AUTH_MODULES"; then
1335 AUTH_MODULES="ntlm basic digest negotiate"
1336 fi
1337 ])
1338 if test -n "$AUTH_MODULES"; then
1339 for module in $AUTH_MODULES; do
1340 if test -d $srcdir/src/auth/$module; then
1341 :
1342 else
1343 echo "ERROR: Auth scheme $module does not exists"
1344 exit 1
1345 fi
1346 eval AUTH_MODULE_${module}=yes
1347 done
1348 echo "Auth scheme modules built: $AUTH_MODULES"
1349 AUTH_OBJS="auth/lib`echo $AUTH_MODULES|sed -e 's% %.a auth/lib%g'`.a"
1350 AUTH_LIBS="`echo $AUTH_OBJS|sed -e 's%auth/%%g'`"
1351 else
1352 echo "Auth scheme modules built: None"
1353 fi
1354 AUTH_LINKOBJS=
1355 for module in $AUTH_MODULES; do
1356 AUTH_LINKOBJS="$AUTH_LINKOBJS auth/${module}/${module}Scheme.o"
1357 done
1358 AC_SUBST(AUTH_MODULES)
1359 AC_SUBST(AUTH_LIBS)
1360 AC_SUBST(AUTH_LINKOBJS)
1361 AC_SUBST(AUTH_OBJS)
1362
1363 dnl Select basic auth scheme helpers to build
1364 if test -n "$AUTH_MODULE_basic"; then
1365 BASIC_AUTH_HELPERS="all"
1366 fi
1367 AC_ARG_ENABLE(basic-auth-helpers,
1368 [ --enable-basic-auth-helpers=\"list of helpers\"
1369 This option selects which basic scheme proxy_auth
1370 helpers to build and install as part of the normal
1371 build process. For a list of available
1372 helpers see the helpers/basic_auth directory.],
1373 [ case "$enableval" in
1374 yes)
1375 BASIC_AUTH_HELPERS="all"
1376 ;;
1377 no)
1378 BASIC_AUTH_HELPERS=""
1379 ;;
1380 *)
1381 if test -z "$AUTH_MODULE_basic"; then
1382 echo "WARNING: Basic auth helpers selected without the basic scheme enabled"
1383 sleep 15
1384 fi
1385 BASIC_AUTH_HELPERS="`echo $enableval| sed -e 's/,/ /g;s/ */ /g'`"
1386 ;;
1387 esac
1388 ])
1389 if test "$BASIC_AUTH_HELPERS" = "all" ; then
1390 BASIC_AUTH_HELPERS=""
1391 for dir in $srcdir/helpers/basic_auth/*; do
1392 helper="`basename $dir`"
1393 if test -f $dir/config.test && sh $dir/config.test "$@"; then
1394 BASIC_AUTH_HELPERS="$BASIC_AUTH_HELPERS $helper"
1395 fi
1396 done
1397 fi
1398 if test -n "$BASIC_AUTH_HELPERS"; then
1399 for helper in $BASIC_AUTH_HELPERS; do
1400 if test -d $srcdir/helpers/basic_auth/$helper; then
1401 case $helper in
1402 SASL)
1403 require_sasl=yes
1404 ;;
1405 esac
1406 else
1407 echo "ERROR: Basic auth helper $helper does not exists"
1408 exit 1
1409 fi
1410 done
1411 echo "Basic auth helpers built: $BASIC_AUTH_HELPERS"
1412 fi
1413 AC_SUBST(BASIC_AUTH_HELPERS)
1414
1415 dnl Select ntlm auth helpers to build
1416 if test -n "$AUTH_MODULE_ntlm"; then
1417 NTLM_AUTH_HELPERS="all"
1418 fi
1419 AC_ARG_ENABLE(ntlm-auth-helpers,
1420 [ --enable-ntlm-auth-helpers=\"list of helpers\"
1421 This option selects which proxy_auth ntlm helpers
1422 to build and install as part of the normal build
1423 process. For a list of available helpers see
1424 the helpers/ntlm_auth directory.],
1425 [ case "$enableval" in
1426 yes)
1427 NTLM_AUTH_HELPERS="all"
1428 ;;
1429 no)
1430 NTLM_AUTH_HELPERS=""
1431 ;;
1432 *)
1433 NTLM_AUTH_HELPERS="`echo $enableval| sed -e 's/,/ /g;s/ */ /g'`"
1434 ;;
1435 esac
1436 ])
1437 if test "$NTLM_AUTH_HELPERS" = "all" ; then
1438 NTLM_AUTH_HELPERS=""
1439 for dir in $srcdir/helpers/ntlm_auth/*; do
1440 helper="`basename $dir`"
1441 if test -f $dir/config.test && sh $dir/config.test "$@"; then
1442 NTLM_AUTH_HELPERS="$NTLM_AUTH_HELPERS $helper"
1443 fi
1444 done
1445 fi
1446 if test -n "$NTLM_AUTH_HELPERS"; then
1447 for helper in $NTLM_AUTH_HELPERS; do
1448 if test -d $srcdir/helpers/ntlm_auth/$helper; then
1449 :
1450 else
1451 echo "ERROR: NTLM Auth helper $helper does not exists"
1452 exit 1
1453 fi
1454 done
1455 echo "NTLM auth helpers built: $NTLM_AUTH_HELPERS"
1456 fi
1457 AC_SUBST(NTLM_AUTH_HELPERS)
1458
1459 dnl Select negotiate auth helpers to build
1460 if test -n "$AUTH_MODULE_negotiate"; then
1461 NEGOTIATE_AUTH_HELPERS="all"
1462 fi
1463 AC_ARG_ENABLE(negotiate-auth-helpers,
1464 [ --enable-negotiate-auth-helpers=\"list of helpers\"
1465 This option selects which proxy_auth negotiate helpers
1466 to build and install as part of the normal build
1467 process. For a list of available helpers see
1468 the helpers/negotiate_auth directory.],
1469 [ case "$enableval" in
1470 yes)
1471 NEGOTIATE_AUTH_HELPERS="all"
1472 ;;
1473 no)
1474 NEGOTIATE_AUTH_HELPERS=""
1475 ;;
1476 *)
1477 NEGOTIATE_AUTH_HELPERS="`echo $enableval| sed -e 's/,/ /g;s/ */ /g'`"
1478 ;;
1479 esac
1480 ])
1481 if test "$NEGOTIATE_AUTH_HELPERS" = "all" ; then
1482 NEGOTIATE_AUTH_HELPERS=""
1483 for dir in $srcdir/helpers/negotiate_auth/*; do
1484 helper="`basename $dir`"
1485 if test -f $dir/config.test && sh $dir/config.test "$@"; then
1486 NEGOTIATE_AUTH_HELPERS="$NEGOTIATE_AUTH_HELPERS $helper"
1487 fi
1488 done
1489 fi
1490 if test -n "$NEGOTIATE_AUTH_HELPERS"; then
1491 for helper in $NEGOTIATE_AUTH_HELPERS; do
1492 if test -d $srcdir/helpers/negotiate_auth/$helper; then
1493 :
1494 else
1495 echo "ERROR: Negotiate Auth helper $helper does not exists"
1496 exit 1
1497 fi
1498 done
1499 echo "Negotiate auth helpers built: $NEGOTIATE_AUTH_HELPERS"
1500 fi
1501 AC_SUBST(NEGOTIATE_AUTH_HELPERS)
1502
1503 dnl Select digest auth scheme helpers to build
1504 if test -n "$AUTH_MODULE_digest"; then
1505 DIGEST_AUTH_HELPERS=all
1506 fi
1507 AC_ARG_ENABLE(digest-auth-helpers,
1508 [ --enable-digest-auth-helpers=\"list of helpers\"
1509 This option selects which digest scheme authentication
1510 helpers to build and install as part of the normal build
1511 process. For a list of available helpers see the
1512 helpers/digest_auth directory.],
1513 [ case "$enableval" in
1514 yes)
1515 DIGEST_AUTH_HELPERS="all"
1516 ;;
1517 no)
1518 DIGEST_AUTH_HELPERS=""
1519 ;;
1520 *)
1521 DIGEST_AUTH_HELPERS="`echo $enableval| sed -e 's/,/ /g;s/ */ /g'`"
1522 ;;
1523 esac
1524 ])
1525 if test "$DIGEST_AUTH_HELPERS" = "all" ; then
1526 DIGEST_AUTH_HELPERS=""
1527 for dir in $srcdir/helpers/digest_auth/*; do
1528 helper="`basename $dir`"
1529 if test -f $dir/config.test && sh $dir/config.test "$@"; then
1530 DIGEST_AUTH_HELPERS="$DIGEST_AUTH_HELPERS $helper"
1531 fi
1532 done
1533 fi
1534 if test -n "$DIGEST_AUTH_HELPERS"; then
1535 for helper in $DIGEST_AUTH_HELPERS; do
1536 if test -f $srcdir/helpers/digest_auth/$helper/Makefile.in; then
1537 :
1538 else
1539 echo "ERROR: digest auth helper $helper does not exists"
1540 exit 1
1541 fi
1542 done
1543 echo "Digest auth helpers built: $DIGEST_AUTH_HELPERS"
1544 fi
1545 AC_SUBST(DIGEST_AUTH_HELPERS)
1546
1547 dnl Enable "NTLM fail open"
1548 AC_ARG_ENABLE(ntlm-fail-open,
1549 [ --enable-ntlm-fail-open Enable NTLM fail open, where a helper that fails one of the
1550 Authentication steps can allow squid to still authenticate
1551 the user.],
1552 [ if test "$enableval" = "yes" ; then
1553 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.])
1554 fi
1555 ])
1556
1557 dnl Select external_acl helpers to build
1558 EXTERNAL_ACL_HELPERS=all
1559 AC_ARG_ENABLE(external-acl-helpers,
1560 [ --enable-external-acl-helpers=\"list of helpers\"
1561 This option selects which external_acl helpers to
1562 build and install as part of the normal build
1563 process. For a list of available helpers see the
1564 helpers/external_acl directory.],
1565 [ case "$enableval" in
1566 yes)
1567 EXTERNAL_ACL_HELPERS=all
1568 ;;
1569 no)
1570 EXTERNAL_ACL_HELPERS=""
1571 ;;
1572 *)
1573 EXTERNAL_ACL_HELPERS="`echo $enableval| sed -e 's/,/ /g;s/ */ /g'`"
1574 ;;
1575 esac
1576 ])
1577 if test "$EXTERNAL_ACL_HELPERS" = "all" ; then
1578 EXTERNAL_ACL_HELPERS=""
1579 for dir in $srcdir/helpers/external_acl/*; do
1580 helper="`basename $dir`"
1581 if test -f $dir/config.test && sh $dir/config.test "$@"; then
1582 EXTERNAL_ACL_HELPERS="$EXTERNAL_ACL_HELPERS $helper"
1583 fi
1584 done
1585 fi
1586 if test -n "$EXTERNAL_ACL_HELPERS"; then
1587 for helper in $EXTERNAL_ACL_HELPERS; do
1588 if test -f $srcdir/helpers/external_acl/$helper/Makefile.in; then
1589 :
1590 else
1591 echo "ERROR: external acl helper $helper does not exists"
1592 exit 1
1593 fi
1594 done
1595 echo "External acl helpers built: $EXTERNAL_ACL_HELPERS"
1596 fi
1597 AC_SUBST(EXTERNAL_ACL_HELPERS)
1598
1599 AC_ARG_WITH(valgrind-debug,
1600 [ --with-valgrind-debug Include debug instrumentation for use with valgrind],
1601 [ case $withval in
1602 yes)
1603 valgrind=1
1604 ;;
1605 no)
1606 valgrind=
1607 ;;
1608 *)
1609 CPPFLAGS="$CPPFLAGS -I${enableval}/include"
1610 valgrind=1
1611 ;;
1612 esac
1613 if test $valgrind; then
1614 AC_DEFINE(WITH_VALGRIND, 1, [Valgrind memory debugger support])
1615 echo "Valgrind debug support enabled"
1616 fi
1617 ])
1618
1619 dnl Disable "memPools" code
1620 AC_ARG_ENABLE(mempools,
1621 [ --disable-mempools Disable memPools. Note that this option now simply sets the
1622 default behaviour. Specific classes can override this at runtime, and
1623 only lib/MemPool.c needs to be altered to change the squid-wide
1624 default for all classes.],
1625 [ if test "$enableval" = "no" ; then
1626 echo "memPools disabled"
1627 AC_DEFINE(DISABLE_POOLS, 1, [Define if you have problems with memPools and want to disable Pools])
1628 else
1629 AC_DEFINE(DISABLE_POOLS, 0, [Define if you have problems with memPools and want to disable Pools.])
1630 fi
1631 ],
1632 [ AC_DEFINE(DISABLE_POOLS, 0, [Define if you have problems with memPools and want to disable Pools.])
1633 ])
1634
1635 dnl Enable WIN32 Service compile mode
1636 AC_ARG_ENABLE(win32-service,
1637 [ --enable-win32-service Compile Squid as a WIN32 Service
1638 Works only on Windows NT and Windows 2000 Platforms.],
1639 [ if test "$enableval" = "yes" ; then
1640 echo "Enabling WIN32 run service mode"
1641 AC_DEFINE(USE_WIN32_SERVICE,1,[Define Windows NT & Windows 2000 run service mode])
1642 fi
1643 ])
1644
1645
1646 dnl Check for Cyrus SASL
1647 if test "$require_sasl" = "yes"; then
1648 AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
1649 if test "$ac_cv_header_sasl_sasl_h" = "yes"; then
1650 echo "using SASL2"
1651 LIBSASL="-lsasl2"
1652 else
1653 if test "$ac_cv_header_sasl_h" = "yes"; then
1654 echo "using SASL"
1655 LIBSASL="-lsasl"
1656 else
1657 echo "ERROR: Neither SASL nor SASL2 found"
1658 exit 1
1659 fi
1660 fi
1661 AC_SUBST(LIBSASL)
1662 fi
1663
1664 dnl Disable "unlinkd" code
1665 AC_ARG_ENABLE(unlinkd,
1666 [ --disable-unlinkd Do not use unlinkd],
1667 [ if test "$enableval" = "no" ; then
1668 use_unlinkd=no
1669 else
1670 use_unlinkd=yes
1671 fi
1672 ],[
1673 # Here we should probably use some magic depending on the selected
1674 # storage models
1675 use_unlinkd=yes
1676 ])
1677 if test "$use_unlinkd" = "yes"; then
1678 echo "unlinkd enabled"
1679 AC_DEFINE(USE_UNLINKD,1,[Define this if unlinkd is required (strongly recommended for ufs storage type)])
1680 AM_CONDITIONAL(ENABLE_UNLINKD, true)
1681 else
1682 echo "unlinkd disabled"
1683 AM_CONDITIONAL(ENABLE_UNLINKD, false)
1684 fi
1685
1686 dnl Enable backtraces on fatal errors
1687 AC_ARG_ENABLE(stacktraces,
1688 [ --enable-stacktraces Enable automatic call backtrace on fatal errors],
1689 [ if test "$enableval" = "yes" ; then
1690 echo "Enabling automatic stack backtraces on fatal errors"
1691 AC_DEFINE(PRINT_STACK_TRACE, 1,[Print stacktraces on fatal errors])
1692 fi
1693 ])
1694
1695 AM_CONDITIONAL(ENABLE_XPROF_STATS, false)
1696 dnl Enable USE_XPROF_STATS
1697 AC_ARG_ENABLE(cpu-profiling,
1698 [ --enable-cpu-profiling
1699 This option allows you to see which internal functions
1700 in Squid are consuming how much CPU. Compiles in probes
1701 that measure time spent in probed functions. Needs
1702 source modifications to add new probes. This is meant
1703 for developers to assist in performance optimisations
1704 of Squid internal functions.
1705 If you are not developer and not interested in the stats
1706 you shouldn't enable this, as overhead added, although
1707 small, is still overhead. See lib/Profiler.c for more.
1708 ],
1709 [ if test "$enableval" = "yes" ; then
1710 echo "Enabling cpu-profiling"
1711 AC_DEFINE(USE_XPROF_STATS, 1,[Define to enable CPU profiling within Squid])
1712 AM_CONDITIONAL(ENABLE_XPROF_STATS, true)
1713 fi
1714 ])
1715
1716 dnl Enable X-Accelerator-Vary for Vary support within an accelerator setup
1717 AC_ARG_ENABLE(x_accelerator_vary,
1718 [ --enable-x-accelerator-vary
1719 Enable support for the X-Accelerator-Vary
1720 HTTP header. Can be used to indicate
1721 variance within an accelerator setup.
1722 Typically used together with other code
1723 that adds custom HTTP headers to the requests.],
1724 [ if test "$enableval" = "yes" ; then
1725 echo "Enabling support for X-Accelerator-Vary"
1726 AC_DEFINE(X_ACCELERATOR_VARY, 1, [Enable support for the X-Accelerator-Vary HTTP header])
1727 fi
1728 ])
1729
1730 dnl Enable IPv6 support
1731 AC_MSG_CHECKING([whether to enable IPv6])
1732 AC_ARG_ENABLE(ipv6,
1733 [ --enable-ipv6 Enable ipv6 support],
1734 [ AC_MSG_RESULT(yes)
1735 AC_CACHE_CHECK([if PF_INET6 is available], $enableval,
1736 AC_TRY_RUN(
1737 [ /* PF_INET6 available check */
1738 # include <sys/types.h>
1739 # include <sys/socket.h>
1740 void main() {
1741 if (socket(PF_INET6, SOCK_STREAM, 0) < 0)
1742 exit(1);
1743 else
1744 exit(0);
1745 }
1746 ],
1747 [ AC_DEFINE(USE_IPV6,1,[Enable support for IPv6 ])
1748 AC_MSG_RESULT(yes)
1749 ],
1750 [ AC_DEFINE(USE_IPV6,0,[0 == Disable support for IPv6])
1751 AC_DEFINE(IPV6_SPECIAL_SPLITSTACK,0,[0 == Disable support for Split-Stack IPv6 Implementations])
1752 AC_DEFINE(IPV6_SPECIAL_LOCALHOST,0,[0 == Keep IPv4 and IPv6 Localhosts seperate.])
1753 AC_DEFINE(IPV6_SPECIAL_V4MAPPING,0,[0 == Leave all v4-mapping to OS Implementation])
1754 AC_MSG_RESULT(no)
1755 ])
1756 )
1757 ],
1758 [ AC_DEFINE(USE_IPV6,0,[Disable support for IPv6])
1759 AC_DEFINE(IPV6_SPECIAL_SPLITSTACK,0,[ 0 == Disable support for Split-Stack IPv6 Implementations])
1760 AC_DEFINE(IPV6_SPECIAL_LOCALHOST,0,[ 0 == Keep IPv4 and IPv6 Localhosts seperate.])
1761 AC_DEFINE(IPV6_SPECIAL_V4MAPPING,0,[ 0 == Leave v4-mapping to OS Implementation])
1762 AC_MSG_RESULT(no)
1763 ])
1764 if test $ac_cv_enable_ipv6 ; then
1765 dnl Check for Windows XP option
1766 AC_MSG_CHECKING([for IPv6 split-stack requirement])
1767 AC_ARG_WITH(ipv6-split-stack,
1768 [ --with-ipv6-split-stack Require IPv6 split-stack support (Requires IPv6 Support)],
1769 [AC_DEFINE(IPV6_SPECIAL_SPLITSTACK, 1, [ 1 == Enable support for IPv6 on split-stack implementations]) AC_MSG_RESULT(yes)],
1770 [AC_DEFINE(IPV6_SPECIAL_SPLITSTACK, 0, [ 0 == Disable support for split-stack IPv6 implementations]) AC_MSG_RESULT(no)]
1771 )
1772
1773 dnl Check for IPv6 Windows Vista option
1774 AC_MSG_CHECKING([for IPv6 v4-mapping requirement])
1775 AC_ARG_WITH(ipv4-mapped,
1776 [ --with-ipv4-mapped Hybrid-Stack OS require Squid to do any v4-mapping (Requires IPv6 Support)],
1777 [AC_DEFINE(IPV6_SPECIAL_V4MAPPING, 1, [ 1 == Perform v4-mapping internally]) AC_MSG_RESULT(yes)],
1778 [AC_DEFINE(IPV6_SPECIAL_V4MAPPING, 0, [ 0 == Leave all v4-mapping to the OS]) AC_MSG_RESULT(no)]
1779 )
1780
1781 dnl Check for IPv6-pure option
1782 AC_MSG_CHECKING([for IPv6-Localhost requirement])
1783 AC_ARG_WITH(localhost-ipv6,
1784 [ --with-localhost-ipv6 Prefer IPv6 localhost address over IPv4 (Requires IPv6 Support).
1785 Treats 127.0.0.1 and ::1 as identical and converts all inputs of to ::1
1786 This depends on Dual-Stack support in the OS and all applications
1787 squid contacts via localhost being IPv6 enabled.
1788 Default: OFF. Treats these two IP as different, squid.conf must
1789 define both 127.0.0.1 and ::1 for the localhost ACL, etc. ],
1790 [AC_DEFINE(IPV6_SPECIAL_LOCALHOST, 1, [ 1 == Convert IPv4-localhost requests to IPv6.]) AC_MSG_RESULT(yes)],
1791 [AC_DEFINE(IPV6_SPECIAL_LOCALHOST, 0, [ 0 == Keep IPv4 and IPv6 Localhosts seperate.]) AC_MSG_RESULT(no)]
1792 )
1793 # end IPv6-only options
1794 fi
1795
1796 AC_ARG_WITH(filedescriptors,
1797 [ --with-filedescriptors=NUMBER
1798 Force squid to support NUMBER filedescriptors],
1799 [ squid_filedescriptors_num=$withval ])
1800
1801 AC_PATH_PROG(CPPUNITCONFIG, cppunit-config, false)
1802 if $CPPUNITCONFIG --help >/dev/null; then
1803 echo "using system installed cppunit"
1804 SQUID_CPPUNIT_LIBS="`$CPPUNITCONFIG --libs`"
1805 SQUID_CPPUNIT_LA=''
1806 SQUID_CPPUNIT_INC="`$CPPUNITCONFIG --cflags`"
1807 else
1808 echo "cppunit does not apear to be installed. squid does not require this, but code testing with 'make check' will fail."
1809 SQUID_CPPUNIT_LA=''
1810 SQUID_CPPUNIT_LIBS=''
1811 SQUID_CPPUNIT_INC=''
1812 fi
1813
1814 AC_ARG_WITH(cppunit-basedir,
1815 [ --with-cppunit-basedir=/path/to/cppunit-base
1816 Path where the cppunit headers are libraries are found
1817 for unit testing.
1818 ],
1819 [ if test -f $withval/include/cppunit/TestCase.h; then
1820 echo "Using cppunit includes from $withval"
1821 SQUID_CPPUNIT_INC="-I${withval}/include"
1822 else
1823 echo "ERROR: Cannot find cppunit at $withval"
1824 exit 1
1825 fi
1826 if test -f $withval/lib/libcppunit.la; then
1827 echo "Using cppunit lib from $withval"
1828 SQUID_CPPUNIT_LA="${withval}/lib/libcppunit.la"
1829 SQUID_CPPUNIT_LIBS='$(SQUID_CPPUNIT_LA)'
1830 else
1831 echo "ERROR: Cannot find cppunit at $withval"
1832 exit 1
1833 fi
1834 ])
1835 AC_SUBST(SQUID_CPPUNIT_LIBS)
1836 AC_SUBST(SQUID_CPPUNIT_LA)
1837 AC_SUBST(SQUID_CPPUNIT_INC)
1838
1839 # Force some compilers to use ANSI features
1840 #
1841 case "$host" in
1842 alpha-dec-osf*)
1843 if test "$ac_cv_prog_CC" = "cc" ; then
1844 echo "adding '-std1' to cc args for $host"
1845 CC="cc -std1";
1846 ac_cv_prog_CC="$CC"
1847 fi
1848 ;;
1849 *-hp-hpux*)
1850 if test "$ac_cv_prog_CC" = "cc" ; then
1851 echo "adding '-Ae' to cc args for $host"
1852 CC="cc -Ae";
1853 ac_cv_prog_CC="$CC"
1854 fi
1855 ;;
1856 esac
1857
1858 dnl Check for programs
1859 AC_PROG_CPP
1860 AC_PROG_INSTALL
1861 AC_PROG_LN_S
1862 AC_PATH_PROG(SH, sh, /bin/sh)
1863 AC_PATH_PROG(FALSE, false, /usr/bin/false)
1864 AC_PATH_PROG(TRUE, true, /usr/bin/true)
1865 AC_PATH_PROG(RM, rm, $FALSE)
1866 AC_PATH_PROG(MV, mv, $FALSE)
1867 AC_PATH_PROG(MKDIR, mkdir, $FALSE)
1868 AC_PATH_PROG(LN, ln, cp)
1869 AC_PATH_PROG(PERL, perl, none)
1870 dnl automake handles this AC_PATH_PROG(MAKEDEPEND, makedepend, $TRUE)
1871 AC_PATH_PROG(AR, ar, $FALSE)
1872
1873 if test "$ac_cv_path_PERL" = "none"; then
1874 echo "Perl is required to compile Squid"
1875 echo "Please install Perl and then re-run configure"
1876 exit 1
1877 fi
1878
1879 case "$host" in
1880 *-hp-hpux*)
1881 echo "Disabling 'ranlib' for HP-UX..."
1882 RANLIB=":"
1883 ;;
1884 esac
1885
1886 dnl set $(AR)
1887 AR_R="$AR r"
1888 case "$host" in
1889 *-next-nextstep3)
1890 AR="libtool -o"
1891 ;;
1892 esac
1893 AC_SUBST(AR_R)
1894
1895 dnl Check for headers
1896 AC_HEADER_DIRENT
1897 AC_HEADER_STDC
1898
1899 AC_CHECK_HEADERS( \
1900 arpa/inet.h \
1901 arpa/nameser.h \
1902 assert.h \
1903 bstring.h \
1904 crypt.h \
1905 ctype.h \
1906 errno.h \
1907 execinfo.h \
1908 fcntl.h \
1909 fnmatch.h \
1910 getopt.h \
1911 gnumalloc.h \
1912 grp.h \
1913 ip_compat.h \
1914 ip_fil_compat.h \
1915 ip_fil.h \
1916 ip_nat.h \
1917 ipl.h \
1918 libc.h \
1919 limits.h \
1920 malloc.h \
1921 math.h \
1922 memory.h \
1923 mount.h \
1924 net/if.h \
1925 net/pfvar.h \
1926 netdb.h \
1927 netinet/in.h \
1928 netinet/icmp6.h \
1929 netinet/in_systm.h \
1930 netinet/ip.h \
1931 netinet/ip6.h \
1932 netinet/ip_icmp.h \
1933 netinet/ip_fil_compat.h \
1934 openssl/err.h \
1935 openssl/md5.h \
1936 openssl/ssl.h \
1937 netinet/tcp.h \
1938 openssl/engine.h \
1939 paths.h \
1940 poll.h \
1941 pwd.h \
1942 shadow.h \
1943 regex.h \
1944 sched.h \
1945 signal.h \
1946 stdarg.h \
1947 stddef.h \
1948 stdio.h \
1949 stdlib.h \
1950 string.h \
1951 strings.h \
1952 sys/bitypes.h \
1953 sys/bswap.h \
1954 sys/endian.h \
1955 sys/file.h \
1956 sys/ioctl.h \
1957 sys/param.h \
1958 sys/prctl.h \
1959 sys/md5.h \
1960 sys/msg.h \
1961 sys/resource.h \
1962 sys/select.h\
1963 sys/socket.h \
1964 sys/stat.h \
1965 sys/statvfs.h \
1966 syscall.h \
1967 sys/syscall.h \
1968 sys/time.h \
1969 sys/types.h \
1970 sys/un.h \
1971 sys/vfs.h \
1972 sys/wait.h \
1973 syslog.h \
1974 time.h \
1975 unistd.h \
1976 utime.h \
1977 varargs.h \
1978 byteswap.h \
1979 glib.h \
1980 stdint.h \
1981 inttypes.h \
1982 grp.h \
1983 nss_common.h \
1984 nss.h \
1985 db.h \
1986 db_185.h \
1987 sys/capability.h
1988 )
1989
1990 AC_CHECK_HEADERS(
1991 linux/netfilter_ipv4.h \
1992 linux/netfilter_ipv4/ip_tproxy.h \
1993 ,,,
1994 SQUID_DEFAULT_INCLUDES
1995 #if HAVE_LIMITS_H
1996 #include <limits.h>
1997 #endif
1998 )
1999
2000 AC_CHECK_HEADERS(net/if.h \
2001 netinet/if_ether.h\
2002 netinet/ip_compat.h\
2003 netinet/ip_fil.h\
2004 netinet/ip_nat.h\
2005 netinet/ipl.h \
2006 sys/mount.h\
2007 resolv.h,,,SQUID_BSDNET_INCLUDES)
2008
2009 AC_CHECK_HEADERS([libxml/parser.h], [], [
2010 SAVED_CPPFLAGS="$CPPFLAGS"
2011 CPPFLAGS="-I/usr/include/libxml2 $CPPFLAGS"
2012 unset ac_cv_header_libxml_parser_h
2013 AC_CHECK_HEADERS([libxml/parser.h], [], [
2014 CPPFLAGS="$SAVED_CPPFLAGS"
2015 ])
2016 ])
2017
2018 AC_C_CONST
2019 AC_C_BIGENDIAN
2020
2021 AC_STRUCT_TM
2022 AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[
2023 #if TM_IN_SYS_TIME
2024 #if HAVE_SYS_TIME_H
2025 #include <sys/time.h>
2026 #endif
2027 #elif HAVE_TIME_H
2028 #include <time.h>
2029 #endif
2030 ])
2031
2032 AC_CHECK_TYPE(struct mallinfo,AC_DEFINE(HAVE_STRUCT_MALLINFO,1,[The system provides struct mallinfo]),,[
2033 #if HAVE_SYS_TYPES_H
2034 #include <sys/types.h>
2035 #endif
2036 #if HAVE_MALLOC_H
2037 #include <malloc.h>
2038 #endif])
2039
2040 AC_CHECK_MEMBERS([struct mallinfo.mxfast],,,[
2041 #if HAVE_SYS_TYPES_H
2042 #include <sys/types.h>
2043 #endif
2044 #if HAVE_MALLOC_H
2045 #include <malloc.h>
2046 #endif])
2047
2048 dnl Override rusage() detect on MinGW because is emulated in source code
2049 case "$host_os" in
2050 mingw|mingw32)
2051 AC_DEFINE(HAVE_STRUCT_RUSAGE)
2052 ac_cv_func_getrusage='yes'
2053 echo "Using own rusage on Windows."
2054 ;;
2055 *)
2056 AC_CHECK_TYPE(struct rusage,AC_DEFINE(HAVE_STRUCT_RUSAGE,1,[The system provides struct rusage]),,[
2057 #if HAVE_SYS_TIME_H
2058 #include <sys/time.h>
2059 #endif
2060 #if HAVE_SYS_RESOURCE_H
2061 #include <sys/resource.h>
2062 #endif])
2063 ;;
2064 esac
2065
2066 AC_CHECK_MEMBERS([struct iphdr.ip_hl],,,[
2067 #if HAVE_SYS_TYPES_H
2068 #include <sys/types.h>
2069 #endif
2070 #include <netinet/in.h>
2071 #include <netinet/in_systm.h>
2072 #include <netinet/ip.h>
2073 #if defined (__linux__) || defined (__CYGWIN__)
2074 #define ip_hl ihl
2075 #endif
2076 #ifndef __linux__
2077 #ifndef __CYGWIN__
2078 #define iphdr ip
2079 #endif
2080 #endif])
2081
2082 dnl Check for typedefs
2083 AC_CHECK_SIZEOF(void *)
2084
2085 dnl 8 bit integers - int8_t
2086 dnl if this is defined we trust it to be 8 bits
2087 AC_CHECK_TYPE(int8_t,[
2088 AC_CHECK_SIZEOF(int8_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2089 AC_DEFINE(HAVE_INT8_T,1,[int8_t is defined in system headers])
2090 ],,SQUID_DEFAULT_INCLUDES)
2091
2092 dnl fallback #1
2093 AC_CHECK_TYPE(char,[
2094 AC_CHECK_SIZEOF(char,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2095 AC_DEFINE(HAVE_CHAR,1,[char is defined in system headers])
2096 ],,SQUID_DEFAULT_INCLUDES)
2097
2098 dnl unsigned 8 bit ints - u_int8_t
2099 dnl if this is defined we trust it to be 8 bits
2100 AC_CHECK_TYPE(u_int8_t,[
2101 AC_CHECK_SIZEOF(u_int8_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2102 AC_DEFINE(HAVE_U_INT8_T,1,[u_int8_t is defined in system headers])
2103 ],,SQUID_DEFAULT_INCLUDES)
2104
2105 dnl fallback #1
2106 dnl if this is defined we trust it to be 8 bits
2107 AC_CHECK_TYPE(uint8_t,[
2108 AC_CHECK_SIZEOF(uint8_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2109 AC_DEFINE(HAVE_UINT8_T,1,[uint8_t is defined in system headers])
2110 ],,SQUID_DEFAULT_INCLUDES)
2111
2112 dnl 16 bit integers - int16_t
2113 dnl if this is defined we trust it to be 16 bits
2114 AC_CHECK_TYPE(int16_t,[
2115 AC_CHECK_SIZEOF(int16_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2116 AC_DEFINE(HAVE_INT16_T,1,[int16_t is defined in system headers])
2117 ],,SQUID_DEFAULT_INCLUDES)
2118
2119 dnl fallback #1
2120 AC_CHECK_TYPE(short,[
2121 AC_CHECK_SIZEOF(short,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2122 AC_DEFINE(HAVE_SHORT,1,[short is defined in system headers])
2123 ],,SQUID_DEFAULT_INCLUDES)
2124
2125 dnl fallback #2
2126 AC_CHECK_TYPE(int,[
2127 AC_CHECK_SIZEOF(int,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2128 AC_DEFINE(HAVE_INT,1,[int is defined in system headers])
2129 ],,SQUID_DEFAULT_INCLUDES)
2130
2131 dnl unsigned 16 bit ints - u_int16_t
2132 dnl if this is defined we trust it to be 16 bits
2133 AC_CHECK_TYPE(u_int16_t,[
2134 AC_CHECK_SIZEOF(u_int16_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2135 AC_DEFINE(HAVE_U_INT16_T,1,[u_int16_t is defined in system headers])
2136 ],,SQUID_DEFAULT_INCLUDES)
2137
2138 dnl fallback #1
2139 dnl if this is defined we trust it to be 16 bits
2140 AC_CHECK_TYPE(uint16_t,[
2141 AC_CHECK_SIZEOF(uint16_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2142 AC_DEFINE(HAVE_UINT16_T,1,[uint16_t is defined in system headers])
2143 ],,SQUID_DEFAULT_INCLUDES)
2144
2145 dnl 32 bit signed int - int32_t
2146 dnl if this is defined we trust it to be 32 bits
2147 AC_CHECK_TYPE(int32_t,[
2148 AC_CHECK_SIZEOF(int32_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2149 AC_DEFINE(HAVE_INT32_T,1,[int32_t is defined in system headers])
2150 ],,SQUID_DEFAULT_INCLUDES)
2151
2152 dnl fallback #1
2153 AC_CHECK_TYPE(long,[
2154 AC_CHECK_SIZEOF(long,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2155 AC_DEFINE(HAVE_LONG,1,[long is defined in system headers])
2156 ],,SQUID_DEFAULT_INCLUDES)
2157
2158 dnl 32 bit unsigned int - u_int32_t
2159 dnl if this is defined we trust it to be 32 bits
2160 AC_CHECK_TYPE(u_int32_t,[
2161 AC_CHECK_SIZEOF(u_int32_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2162 AC_DEFINE(HAVE_U_INT32_T,1,[u_int32_t is defined in system headers])
2163 ],,SQUID_DEFAULT_INCLUDES)
2164
2165 dnl fallback #1
2166 dnl if this is defined we trust it to be 32 bits
2167 AC_CHECK_TYPE(uint32_t,[
2168 AC_CHECK_SIZEOF(uint32_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2169 AC_DEFINE(HAVE_UINT32_T,1,[uint32_t is defined in system headers])
2170 ],,SQUID_DEFAULT_INCLUDES)
2171
2172 dnl 64 bit signed - int64_t
2173 dnl if this is defind we trust it to be 64 bits
2174 AC_CHECK_TYPE(int64_t,[
2175 AC_CHECK_SIZEOF(int64_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2176 AC_DEFINE(HAVE_INT64_T,1,[int64_t is defined in system headers])
2177 ],,SQUID_DEFAULT_INCLUDES)
2178
2179 dnl fallback #1
2180 dnl if this is defind we trust it to be 64 bits
2181 AC_CHECK_TYPE(__int64,[
2182 AC_CHECK_SIZEOF(__int64,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2183 AC_DEFINE(HAVE___INT64,1,[__int64 is defined in system headers])
2184 ],,SQUID_DEFAULT_INCLUDES)
2185
2186 dnl fallback #2
2187 AC_CHECK_TYPE(long long,[
2188 AC_CHECK_SIZEOF(long long,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2189 AC_DEFINE(HAVE_LONG_LONG,1,[long long is defined in system headers])
2190 ],,SQUID_DEFAULT_INCLUDES)
2191
2192 dnl 64 bit unsigned - u_int64_t
2193 dnl if this is defind we trust it to be 64 bits
2194 AC_CHECK_TYPE(u_int64_t,[
2195 AC_CHECK_SIZEOF(u_int64_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2196 AC_DEFINE(HAVE_U_INT64_T,1,[u_int64_t is defined in system headers])
2197 ],,SQUID_DEFAULT_INCLUDES)
2198
2199 dnl fallback #1
2200 dnl if this is defind we trust it to be 64 bits
2201 AC_CHECK_TYPE(uint64_t,[
2202 AC_CHECK_SIZEOF(uint64_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2203 AC_DEFINE(HAVE_UINT64_T,1,[uint64_t is defined in system headers])
2204 ],,SQUID_DEFAULT_INCLUDES)
2205
2206 dnl On Solaris 9 x86, gcc may includes a "fixed" set of old system include files
2207 dnl that is incompatible with the updated Solaris header files.
2208 dnl For this reason, we must check if pad128_t and upad128_t are defined.
2209 AC_CHECK_TYPE(pad128_t,
2210 AC_DEFINE(HAVE_PAD128_T,1,[pad128_t is defined in system headers]),
2211 ,SQUID_DEFAULT_INCLUDES)
2212
2213 AC_CHECK_TYPE(upad128_t,
2214 AC_DEFINE(HAVE_UPAD128_T,1,[upad128_t is defined in system headers]),
2215 ,SQUID_DEFAULT_INCLUDES)
2216
2217 AC_CHECK_TYPE(pid_t, AC_DEFINE(HAVE_PID_T,1,[pid_t is defined by the system headers]),,SQUID_DEFAULT_INCLUDES)
2218 AC_CHECK_TYPE(size_t, [AC_CHECK_SIZEOF(size_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2219 AC_DEFINE(HAVE_SIZE_T,1,[size_t is defined by the system headers])],,SQUID_DEFAULT_INCLUDES)
2220 AC_CHECK_TYPE(ssize_t, AC_DEFINE(HAVE_SSIZE_T,1,[ssize_t is defined by the system headers]),,SQUID_DEFAULT_INCLUDES)
2221 AC_CHECK_TYPE(off_t,[ AC_CHECK_SIZEOF(off_t,,SQUID_DEFAULT_SIZEOF_INCLUDES)
2222 AC_DEFINE(HAVE_OFF_T,1,[off_t is defined by the system headers])],,SQUID_DEFAULT_INCLUDES)
2223 AC_CHECK_TYPE(mode_t, AC_DEFINE(HAVE_MODE_T,1,[mode_t is defined by the system headers]),,SQUID_DEFAULT_INCLUDES)
2224 AC_CHECK_TYPE(fd_mask, AC_DEFINE(HAVE_FD_MASK,1,[fd_mask is defined by the system headers]),,SQUID_DEFAULT_INCLUDES)
2225
2226 dnl Check for special functions
2227 AC_FUNC_ALLOCA
2228
2229 AC_CHECK_TYPE(socklen_t,AC_DEFINE(HAVE_SOCKLEN_T,1,[socklen_t is defined by the system headers]),,[
2230 #include <sys/types.h>
2231 #include <sys/socket.h>
2232 #if STDC_HEADERS
2233 #include <stdlib.h>
2234 #include <stddef.h>
2235 #endif])
2236
2237 AC_CHECK_TYPE(mtyp_t,AC_DEFINE(HAVE_MTYP_T,1,[mtyp_t is defined by the system headers]),,[#include <sys/types.h>
2238 #include <sys/ipc.h>
2239 #include <sys/msg.h>])
2240
2241 dnl Check for needed libraries
2242 AC_CHECK_LIB(nsl, main)
2243 AC_CHECK_LIB(socket, main)
2244 case "$host_os" in
2245 mingw|mingw32)
2246 AC_MSG_CHECKING(for winsock)
2247 save_LIBS="$LIBS"
2248 for curlib in ws2_32 wsock32; do
2249 LIBS="$LIBS -l$curlib"
2250 AC_TRY_LINK([
2251 char __attribute__((stdcall)) socket(int,int,int);
2252 char __attribute__((stdcall)) select(int,int,int,int,int);
2253 char __attribute__((stdcall)) closesocket(int);
2254 char __attribute__((stdcall)) gethostname(int,int);
2255 ],
2256 [
2257 socket(1,2,3);
2258 select(1,2,3,4,5);
2259 closesocket(1);
2260 gethostname(1,2);
2261 ],
2262 have_winsock=yes, have_winsock=no)
2263
2264 if test $have_winsock = yes; then
2265 ac_cv_func_select='yes'
2266 if test $curlib = ws2_32; then
2267 have_winsock=winsock2
2268 fi
2269 break
2270 fi
2271 LIBS="$save_LIBS"
2272 done
2273 AC_MSG_RESULT($have_winsock)
2274 ;;
2275 esac
2276
2277 dnl Ripped from the Samba sources
2278 AC_CACHE_CHECK([for unix domain sockets],squid_cv_unixsocket, [
2279 AC_TRY_COMPILE([
2280 #include <sys/types.h>
2281 #include <stdlib.h>
2282 #include <stddef.h>
2283 #include <sys/socket.h>
2284 #include <sys/un.h>],
2285 [
2286 struct sockaddr_un sunaddr;
2287 sunaddr.sun_family = AF_UNIX;
2288 ],
2289 squid_cv_unixsocket=yes,squid_cv_unixsocket=no)])
2290 if test x"$squid_cv_unixsocket" = x"yes"; then
2291 AC_DEFINE(HAVE_UNIXSOCKET,1,[Do we have unix sockets? (required for the winbind ntlm helper])
2292 fi
2293 dnl end rip
2294
2295 AC_CHECK_LIB(gnumalloc, main)
2296 if test "$ac_cv_lib_gnumalloc_main" = "yes"; then
2297 echo "Disabling extended malloc functions when using gnumalloc"
2298 ac_cv_func_mallinfo=no
2299 ac_cv_func_mallocblksize=no
2300 ac_cv_func_mallopt=no
2301 else
2302 case "$host" in
2303 *-sun-solaris*)
2304 echo "skipping libmalloc check for $host"
2305 ;;
2306 i386-*-freebsd*)
2307 echo "skipping libmalloc check for $host"
2308 ;;
2309 *)
2310
2311 AC_CHECK_LIB(malloc, main)
2312 ;;
2313 esac
2314 fi
2315
2316 AC_CHECK_LIB(bsd, main)
2317 AC_CHECK_LIB(regex, main, [REGEXLIB="-lregex"])
2318 AC_CHECK_LIB(bind, gethostbyname)
2319 if test $ac_cv_lib_bind_gethostbyname = "no" ; then
2320 case "$host" in
2321 i386-*-freebsd*)
2322 echo "skipping libresolv checks for $host"
2323 ;;
2324 *)
2325 AC_CHECK_LIB(resolv, inet_aton, AC_CHECK_LIB(44bsd, inet_aton))
2326 AC_CHECK_LIB(resolv, main)
2327 ;;
2328 esac
2329 fi
2330 case "$host_os" in
2331 mingw|mingw32)
2332 echo "Use MSVCRT for math functions."
2333 ;;
2334 *)
2335 AC_CHECK_LIB(m, main)
2336 ;;
2337 esac
2338
2339 dnl Check for libcrypt
2340 dnl Some of our helpers use crypt(3) which may be in libc, or in
2341 dnl libcrypt (eg FreeBSD)
2342 AC_CHECK_LIB(crypt, crypt, [CRYPTLIB="-lcrypt"])
2343
2344 dnl Solaris10 provides MD5 natively through libmd5
2345 AC_CHECK_LIB(md5, MD5Init, [CRYPTLIB="$CRYPTLIB -lmd5"])
2346
2347 AC_SUBST(CRYPTLIB)
2348
2349 dnl Check for libdl, used by auth_modules/PAM
2350 if test "$with_dl" = "yes"; then
2351 AC_CHECK_LIB(dl, dlopen)
2352 fi
2353
2354 dnl Check for pthreads
2355 dnl We use pthreads when doing ASYNC I/O
2356 if test "$with_pthreads" = "yes"; then
2357 SQUID_CFLAGS="$SQUID_CFLAGS -D_REENTRANT"
2358 SQUID_CXXFLAGS="$SQUID_CXXFLAGS -D_REENTRANT"
2359 case "$host" in
2360 i386-unknown-freebsd*)
2361 if test "$GCC" = "yes" ; then
2362 if test -z "$PRESET_LDFLAGS"; then
2363 LDFLAGS="$LDFLAGS -pthread"
2364 fi
2365 fi
2366 ;;
2367 *-solaris2.*)
2368 if test "$GCC" = "yes" ; then
2369 SQUID_CFLAGS="$SQUID_CFLAGS -pthreads"
2370 SQUID_CXXFLAGS="$SQUID_CXXFLAGS -pthreads"
2371 else
2372 SQUID_CFLAGS="$SQUID_CFLAGS -mt"
2373 SQUID_CXXFLAGS="$SQUID_CXXFLAGS -mt"
2374 fi
2375 ;;
2376 esac
2377 AC_CHECK_LIB(pthread, main)
2378 fi
2379
2380 dnl Check for librt
2381 dnl We use AIO in the coss store
2382 if test "$with_aio" = "yes"; then
2383 dnl On some systems POSIX AIO functions are in libaio
2384 AC_CHECK_LIB(rt, aio_read,,AC_CHECK_LIB(aio, aio_read))
2385 fi
2386
2387 dnl -lintl is needed on SCO version 3.2v4.2 for strftime()
2388 dnl Robert Side <rside@aiinc.bc.ca>
2389 dnl Mon, 18 Jan 1999 17:48:00 GMT
2390 case "$host" in
2391 *-pc-sco3.2*)
2392 AC_CHECK_LIB(intl, strftime)
2393 ;;
2394 esac
2395
2396 dnl On MinGW OpenLDAP is not available, so LDAP helpers can be linked
2397 dnl only with Windows LDAP libraries using -lwldap32
2398 case "$host_os" in
2399 mingw|mingw32)
2400 LIB_LDAP="-lwldap32"
2401 LIB_LBER=""
2402 ;;
2403 *)
2404 LIB_LDAP="-lldap"
2405 dnl LDAP helpers need to know if -llber is needed or not
2406 AC_CHECK_LIB(lber, main, [LIB_LBER="-llber"])
2407 ;;
2408 esac
2409 AC_SUBST(LIB_LDAP)
2410 AC_SUBST(LIB_LBER)
2411
2412 dnl Check for libdb
2413 DBLIB=
2414 dnl 1.85
2415 AC_CACHE_CHECK(if dbopen needs -ldb,ac_cv_dbopen_libdb, [
2416 SAVED_LIBS="$LIBS"; LIBS="$LIBS -ldb"
2417 AC_TRY_LINK([
2418 #if HAVE_SYS_TYPES_H
2419 #include <sys/types.h>
2420 #endif
2421 #if HAVE_LIMITS_H
2422 #include <limits.h>
2423 #endif
2424 #if HAVE_DB_185_H
2425 #include <db_185.h>
2426 #elif HAVE_DB_H
2427 #include <db.h>
2428 #endif],
2429 [dbopen((void *)0L, 0, 0, DB_HASH, (void *)0L)],
2430 ac_cv_dbopen_libdb="yes",
2431 ac_cv_dbopen_libdb="no")
2432 LIBS="$SAVED_LIBS"
2433 ])
2434 if test $ac_cv_dbopen_libdb = yes; then
2435 LIB_DB="-ldb"
2436 fi
2437 AC_SUBST(LIB_DB)
2438
2439 dnl System-specific library modifications
2440 dnl
2441 case "$host" in
2442 i386-*-solaris2.*)
2443 if test "$GCC" = "yes"; then
2444 echo "Removing -O for gcc on $host"
2445 CFLAGS="`echo $CFLAGS | sed -e 's/-O[[0-9]]*//'`"
2446 fi
2447 ;;
2448 *-sgi-irix*)
2449 echo "Removing -lsocket for IRIX..."
2450 LIBS=`echo $LIBS | sed -e s/-lsocket//`
2451 echo "Removing -lnsl for IRIX..."
2452 LIBS=`echo $LIBS | sed -e s/-lnsl//`
2453 ac_cv_lib_nsl_main=no
2454 echo "Removing -lbsd for IRIX..."
2455 LIBS=`echo $LIBS | sed -e s/-lbsd//`
2456 ;;
2457 dnl From: c0032033@ws.rz.tu-bs.de (Joerg Schumacher)
2458 dnl Date: Thu, 17 Oct 1996 04:09:30 +0200
2459 dnl Please change your configure script. AIX doesn't need -lbsd.
2460 *-ibm-aix*)
2461 echo "Removing -lbsd for AIX..."
2462 LIBS=`echo $LIBS | sed -e s/-lbsd//`
2463 ;;
2464 *m88k*)
2465 SQUID_CFLAGS="$SQUID_CFLAGS -D_SQUID_MOTOROLA_"
2466 SQUID_CXXFLAGS="$SQUID_CXXFLAGS -D_SQUID_MOTOROLA_"
2467 AC_DEFINE(GETTIMEOFDAY_NO_TZP,1,[If gettimeofday is known to take only one argument])
2468 ;;
2469 [*-*-solaris2.[0-4]])
2470 AC_DEFINE(GETTIMEOFDAY_NO_TZP,1)
2471 ;;
2472 [*-sony-newsos[56]*])
2473 AC_DEFINE(GETTIMEOFDAY_NO_TZP,1)
2474 ;;
2475 esac
2476
2477 # Remove optimization for GCC 2.95.[123]
2478 # gcc -O[2] on *BSD and Linux (x86) causes pointers to magically become NULL
2479 if test "$GCC" = "yes"; then
2480 GCCVER=`$CC -v 2>&1 | awk '$2 == "version" {print $3}'`
2481 case "$GCCVER" in
2482 [2.95.[123]])
2483 echo "Removing -O for gcc on $host with GCC $GCCVER"
2484 CFLAGS="`echo $CFLAGS | sed -e 's/-O[[0-9]]*//'`"
2485 ;;
2486 esac
2487 fi
2488
2489 # Recommended by Balint Nagy Endre <bne@CareNet.hu>
2490 case "$host" in
2491 *-univel-sysv4.2MP)
2492 if test `uname -v` = "2.03"; then
2493 echo "disabling mallinfo for $host"
2494 ac_cv_func_mallinfo=no
2495 fi
2496 ;;
2497 esac
2498
2499 dnl This has to be before AC_CHECK_FUNCS
2500 # Disable poll() on certain platforms. Override by setting ac_cv_func_poll
2501 # when running configure.
2502 if test -z "$ac_cv_func_poll"; then
2503 case "$host" in
2504 [alpha-dec-osf3.*])
2505 # John Kay (jkay@nlanr.net) 19970818
2506 echo "disabling poll for $host..."
2507 ac_cv_func_poll='no'
2508 ;;
2509 [*-hp-hpux*.*])
2510 # Duane Wessels
2511 echo "disabling poll for $host..."
2512 ac_cv_func_poll='no'
2513 ;;
2514 [*-linux-*])
2515 # Henrik Nordstrom (hno@squid-cache.org) 19980817
2516 # poll is problematic on Linux. We disable it
2517 # by default until Linux gets it right.
2518 rev=`uname -r | awk -F. '{printf "%03d%03d",$1,$2}'`
2519 if test $rev -lt 002002; then
2520 echo "disabling poll for $host < 2.2..."
2521 ac_cv_func_poll='no'
2522 fi
2523 ;;
2524 [powerpc-ibm-aix4.1.*])
2525 # Mike Laster (mlaster@metavillage.com) 19981021
2526 echo "disabling poll for $host..."
2527 ac_cv_func_poll='no'
2528 ;;
2529 [*-pc-sco3.2*])
2530 # Robert Side <rside@aiinc.bc.ca>
2531 # Mon, 18 Jan 1999 17:48:00 GMT
2532 echo "disabling poll for $host..."
2533 ac_cv_func_poll='no'
2534 ;;
2535 esac
2536 fi
2537
2538 dnl Override statfs() detect on MinGW becasue is emulated in source code
2539 case "$host_os" in
2540 mingw|mingw32)
2541 ac_cv_func_statfs='yes'
2542 ;;
2543 esac
2544
2545 dnl Check for library functions
2546 AC_CHECK_FUNCS(\
2547 backtrace_symbols_fd \
2548 bcopy \
2549 bswap_16 \
2550 bswap_32 \
2551 bswap16 \
2552 bswap32 \
2553 fchmod \
2554 getdtablesize \
2555 getpagesize \
2556 getpass \
2557 getrlimit \
2558 getrusage \
2559 getspnam \
2560 gettimeofday \
2561 htobe16 \
2562 htole16 \
2563 kqueue\
2564 lrand48 \
2565 mallinfo \
2566 mallocblksize \
2567 mallopt \
2568 memcpy \
2569 memmove \
2570 memset \
2571 mkstemp \
2572 mktime \
2573 mstats \
2574 poll \
2575 prctl \
2576 pthread_attr_setschedparam \
2577 pthread_attr_setscope \
2578 pthread_setschedparam \
2579 pthread_sigmask \
2580 putenv \
2581 random \
2582 regcomp \
2583 regexec \
2584 regfree \
2585 res_init \
2586 __res_init \
2587 rint \
2588 sbrk \
2589 select \
2590 seteuid \
2591 setgroups \
2592 setpgrp \
2593 setrlimit \
2594 setsid \
2595 sigaction \
2596 snprintf \
2597 socketpair \
2598 srand48 \
2599 srandom \
2600 statfs \
2601 strsep \
2602 strtoll \
2603 sysconf \
2604 syslog \
2605 timegm \
2606 vsnprintf \
2607 )
2608 dnl ... and some we provide local replacements for
2609 AC_REPLACE_FUNCS(\
2610 drand48 \
2611 inet_ntop \
2612 inet_pton \
2613 initgroups \
2614 getaddrinfo \
2615 getnameinfo \
2616 strerror \
2617 tempnam \
2618 )
2619
2620 # check for crypt, may require -lcrypt
2621 SAVED_LIBS="$LIBS"
2622 LIBS="$LIBS $CRYPTLIB"
2623 AC_CHECK_FUNCS(crypt)
2624 LIBS="$SAVED_LIBS"
2625
2626 # Check for libepoll
2627 EPOLL_LIB=
2628 AC_CHECK_LIB(epoll, epoll_ctl, [EPOLL_LIBS="-lepoll"])
2629 AC_SUBST(EPOLL_LIBS)
2630
2631 # Check for epoll_ctl, may need -lepoll
2632 SAVED_LIBS="$LIBS"
2633 LIBS="$LIBS $LIB_EPOLL"
2634 AC_CHECK_FUNCS(epoll_ctl)
2635 LIBS="$SAVED_LIBS"
2636
2637 dnl Verify that epoll really works
2638 if test $ac_cv_func_epoll_ctl = yes; then
2639 AC_CACHE_CHECK(if epoll works, ac_cv_epoll_works,
2640 AC_TRY_RUN([
2641 #include <sys/epoll.h>
2642 #include <stdlib.h>
2643 #include <stdio.h>
2644 int main(int argc, char **argv)
2645 {
2646 int fd = epoll_create(256);
2647 if (fd < 0) {
2648 perror("epoll_create:");
2649 exit(1);
2650 }
2651 exit(0);
2652 }
2653 ], [ac_cv_epoll_works=yes], [ac_cv_epoll_works=no]))
2654 fi
2655
2656 dnl Magic which checks whether we are forcing a type of comm loop we
2657 dnl are actually going to (ab)use
2658
2659 dnl Actually do the define magic now
2660 dnl mostly ripped from squid-commloops, thanks to adrian and benno
2661
2662 if test -n "$SELECT_TYPE"; then
2663 : # Already decided above. Nothing to do here
2664 elif test -z "$disable_epoll" && test "$ac_cv_epoll_works" = "yes" ; then
2665 SELECT_TYPE="epoll"
2666 elif test -z "$disable_kqueue" && test "$ac_cv_func_kqueue" = "yes" ; then
2667 SELECT_TYPE="kqueue"
2668 elif test -z "$disable_poll" && test "$ac_cv_func_poll" = "yes" ; then
2669 SELECT_TYPE="poll"
2670 elif test -z "$disable_select" && test "$ac_cv_func_select" = "yes" ; then
2671 case "$host_os" in
2672 mingw|mingw32)
2673 SELECT_TYPE="select_win32"
2674 ;;
2675 *)
2676 SELECT_TYPE="select"
2677 ;;
2678 esac
2679 else
2680 echo "Eep! Can't find poll, kqueue, epoll, or select!"
2681 echo "I'll try select and hope for the best."
2682 SELECT_TYPE="select"
2683 AC_DEFINE(USE_SELECT,1)
2684 fi
2685
2686 echo "Using ${SELECT_TYPE} for the IO loop."
2687
2688 AM_CONDITIONAL([USE_POLL], [test $SELECT_TYPE = poll])
2689 AM_CONDITIONAL([USE_EPOLL], [test $SELECT_TYPE = epoll])
2690 AM_CONDITIONAL([USE_SELECT], [test $SELECT_TYPE = select])
2691 AM_CONDITIONAL([USE_SELECT_SIMPLE], [test $SELECT_TYPE = select_simple])
2692 AM_CONDITIONAL([USE_SELECT_WIN32], [test $SELECT_TYPE = select_win32])
2693 AM_CONDITIONAL([USE_KQUEUE], [test $SELECT_TYPE = kqueue])
2694 AM_CONDITIONAL([USE_DEVPOLL], [test $SELECT_TYPE = devpoll])
2695
2696 case $SELECT_TYPE in
2697 epoll)
2698 AC_DEFINE(USE_EPOLL,1,[Use epoll() for the IO loop])
2699 ;;
2700 poll)
2701 AC_DEFINE(USE_POLL,1,[Use poll() for the IO loop])
2702 ;;
2703 kqueue)
2704 AC_DEFINE(USE_KQUEUE,1,[Use kqueue() for the IO loop])
2705 ;;
2706 select_win32)
2707 AC_DEFINE(USE_SELECT_WIN32,1,[Use Winsock select() for the IO loop])
2708 ;;
2709 select)
2710 AC_DEFINE(USE_SELECT,1,[Use select() for the IO loop])
2711 ;;
2712 esac
2713
2714
2715
2716 dnl Yay! Another Linux brokenness. Its not good enough
2717 dnl to know that setresuid() exists, because RedHat 5.0 declares
2718 dnl setresuid() but doesn't implement it.
2719 dnl
2720 AC_CACHE_CHECK(if setresuid is implemented, ac_cv_func_setresuid,
2721 AC_TRY_RUN([
2722 #include <stdlib.h>
2723 int main() {
2724 if(setresuid(-1,-1,-1)) {
2725 perror("setresuid:");
2726 exit(1);
2727 }
2728 exit(0);
2729 }
2730 ],ac_cv_func_setresuid="yes",ac_cv_func_setresuid="no")
2731 )
2732 if test "$ac_cv_func_setresuid" = "yes" ; then
2733 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.])
2734 fi
2735
2736 AM_CONDITIONAL(NEED_OWN_STRSEP, false)
2737 if test "$ac_cv_func_strsep" = "no" ; then
2738 AM_CONDITIONAL(NEED_OWN_STRSEP, true)
2739 fi
2740
2741 AM_CONDITIONAL(NEED_OWN_STRTOLL, false)
2742 if test "$ac_cv_func_strtoll" = "no" ; then
2743 AM_CONDITIONAL(NEED_OWN_STRTOLL, true)
2744 fi
2745
2746 dnl
2747 dnl Test for va_copy
2748 dnl
2749 AC_CACHE_CHECK(if va_copy is implemented, ac_cv_func_va_copy,
2750 AC_TRY_RUN([
2751 #include <stdarg.h>
2752 void f (int i, ...) {
2753 va_list args1, args2;
2754 va_start (args1, i);
2755 va_copy (args2, args1);
2756 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
2757 exit (1);
2758 va_end (args1); va_end (args2);
2759 }
2760 int main() {
2761 f (0, 42);
2762 return 0;
2763 }
2764 ],ac_cv_func_va_copy="yes",ac_cv_func_va_copy="no")
2765 )
2766 if test "$ac_cv_func_va_copy" = "yes" ; then
2767 AC_DEFINE(HAVE_VA_COPY, 1, [If your system have va_copy])
2768 fi
2769
2770 dnl
2771 dnl Some systems support __va_copy
2772 dnl
2773 AC_CACHE_CHECK(if __va_copy is implemented, ac_cv_func___va_copy,
2774 AC_TRY_RUN([
2775 #include <stdarg.h>
2776 void f (int i, ...) {
2777 va_list args1, args2;
2778 va_start (args1, i);
2779 __va_copy (args2, args1);
2780 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
2781 exit (1);
2782 va_end (args1); va_end (args2);
2783 }
2784 int main() {
2785 f (0, 42);
2786 return 0;
2787 }
2788 ],ac_cv_func___va_copy="yes",ac_cv_func___va_copy="no")
2789 )
2790 if test "$ac_cv_func___va_copy" = "yes" ; then
2791 AC_DEFINE(HAVE___VA_COPY, 1, [Some systems have __va_copy instead of va_copy])
2792 fi
2793
2794 dnl IP-Filter support requires ipf header files. These aren't
2795 dnl installed by default, so we need to check for them
2796 if test "$IPF_TRANSPARENT" ; then
2797 AC_MSG_CHECKING(if IP-Filter header files are installed)
2798 # hold on to your hats...
2799 if test "$ac_cv_header_ip_compat_h" = "yes" ||
2800 test "$ac_cv_header_ip_fil_compat_h" = "yes" ||
2801 test "$ac_cv_header_netinet_ip_compat_h" = "yes" ||
2802 test "$ac_cv_header_netinet_ip_fil_compat_h" = "yes" ; then
2803 have_ipfilter_compat_header="yes"
2804 fi
2805 if test "x$have_ipfilter_compat_header" = "xyes" &&
2806 test "$ac_cv_header_ip_fil_h" = "yes" &&
2807 test "$ac_cv_header_ip_nat_h" = "yes" ; then
2808 IPF_TRANSPARENT="yes"
2809 AC_DEFINE(IPF_TRANSPARENT, 1)
2810 elif test "$have_ipfilter_compat_header" = "yes" &&
2811 test "$ac_cv_header_netinet_ip_fil_h" = "yes" &&
2812 test "$ac_cv_header_netinet_ip_nat_h" = "yes" ; then
2813 IPF_TRANSPARENT="yes"
2814 AC_DEFINE(IPF_TRANSPARENT, 1)
2815 else
2816 IPF_TRANSPARENT="no"
2817 AC_DEFINE(IPF_TRANSPARENT, 0)
2818 fi
2819 AC_MSG_RESULT($IPF_TRANSPARENT)
2820 fi
2821 if test "$IPF_TRANSPARENT" = "no" ; then
2822 echo "WARNING: Cannot find necessary IP-Filter header files"
2823 echo " Transparent Proxy support WILL NOT be enabled"
2824 sleep 10
2825 elif test "$IPF_TRANSPARENT" = "yes" ; then
2826 dnl On Solaris Ipfilter includes expect that SOLARIS2 is defined with the
2827 dnl Solaris minor version (8, 9, 10, ...)
2828 case "$host" in
2829 *-solaris*)
2830 solrev=`uname -r | sh -c 'IFS=. read j n x; echo $n'`
2831 CFLAGS="-DSOLARIS2=$solrev $CFLAGS"
2832 CXXFLAGS="-DSOLARIS2=$solrev $CXXFLAGS"
2833 ;;
2834 *)
2835 ;;
2836 esac
2837 fi
2838
2839 dnl PF support requires a header file.
2840 if test "$PF_TRANSPARENT" ; then
2841 AC_MSG_CHECKING(if PF header file is installed)
2842 # hold on to your hats...
2843 if test "$ac_cv_header_net_pfvar_h" = "yes"; then
2844 PF_TRANSPARENT="yes"
2845 AC_DEFINE(PF_TRANSPARENT, 1)
2846 else
2847 PF_TRANSPARENT="no"
2848 AC_DEFINE(PF_TRANSPARENT, 0)
2849 fi
2850 AC_MSG_RESULT($PF_TRANSPARENT)
2851 fi
2852 if test "$PF_TRANSPARENT" = "no" ; then
2853 echo "WARNING: Cannot find necessary PF header file"
2854 echo " Transparent Proxy support WILL NOT be enabled"
2855 sleep 10
2856 fi
2857
2858 dnl Linux-Netfilter support requires Linux 2.4 kernel header files.
2859 dnl Shamelessly copied from above
2860 if test "$LINUX_NETFILTER" ; then
2861 AC_MSG_CHECKING(if Linux (Netfilter) kernel header files are installed)
2862 # hold on to your hats...
2863 if test "$ac_cv_header_linux_netfilter_ipv4_h" = "yes"; then
2864 LINUX_NETFILTER="yes"
2865 AC_DEFINE(LINUX_NETFILTER, 1)
2866 else
2867 LINUX_NETFILTER="no"
2868 AC_DEFINE(LINUX_NETFILTER, 0)
2869 fi
2870 AC_MSG_RESULT($LINUX_NETFILTER)
2871 fi
2872 if test "$LINUX_NETFILTER" = "no" ; then
2873 echo "WARNING: Cannot find necessary Linux kernel (Netfilter) header files"
2874 echo " Linux Transparent Proxy support WILL NOT be enabled"
2875 sleep 10
2876 fi
2877
2878 dnl Linux Netfilter/TPROXY support requires some specific header files
2879 dnl Shamelessly copied from shamelessly copied from above
2880 if test "$LINUX_TPROXY" ; then
2881 AC_MSG_CHECKING(if TPROXY header files are installed)
2882 # hold on to your hats...
2883 if test "$ac_cv_header_linux_netfilter_ipv4_ip_tproxy_h" = "yes" && test "$LINUX_NETFILTER" = "yes"; then
2884 LINUX_TPROXY="yes"
2885 AC_DEFINE(LINUX_TPROXY, 1, [Enable real Transparent Proxy support for Netfilter TPROXY.])
2886 else
2887 LINUX_TPROXY="no"
2888 AC_DEFINE(LINUX_TPROXY, 0, [Enable real Transparent Proxy support for Netfilter TPROXY.])
2889 fi
2890 AC_MSG_RESULT($LINUX_TPROXY)
2891 fi
2892 if test "$LINUX_TPROXY" = "no" && test "$LINUX_NETFILTER" = "yes"; then
2893 echo "WARNING: Cannot find TPROXY headers, you need to install the"
2894 echo "tproxy package from:"
2895 echo " - lynx http://www.balabit.com/downloads/tproxy/"
2896 sleep 10
2897 fi
2898
2899 if test -z "$USE_GNUREGEX" ; then
2900 case "$host" in
2901 *-sun-solaris2.[[0-4]])
2902 USE_GNUREGEX="yes"
2903 ;;
2904 *-next-nextstep*)
2905 USE_GNUREGEX="yes"
2906 ;;
2907 esac
2908 fi
2909 AC_MSG_CHECKING(if GNUregex needs to be compiled)
2910 if test -z "$USE_GNUREGEX"; then
2911 if test "$ac_cv_func_regcomp" = "no" || test "$USE_GNUREGEX" = "yes" ; then
2912 USE_GNUREGEX="yes"
2913 else
2914 AC_TRY_COMPILE([#include <sys/types.h>
2915 #include <regex.h>],[regex_t t; regcomp(&t,"",0);],
2916 USE_GNUREGEX="no",
2917 USE_GNUREGEX="yes")
2918 fi
2919 fi
2920 AC_MSG_RESULT($USE_GNUREGEX)
2921 if test "$USE_GNUREGEX" = "yes"; then
2922 REGEXLIB="-lregex"
2923 LIBREGEX="libregex.a"
2924 AC_DEFINE(USE_GNUREGEX,1,[Define if we should use GNU regex])
2925 fi
2926 AC_SUBST(REGEXLIB)
2927 AC_SUBST(LIBREGEX)
2928
2929 dnl Not cached since people are likely to tune this
2930 AC_MSG_CHECKING(Default FD_SETSIZE value)
2931 AC_TRY_RUN([
2932 #if HAVE_STDIO_H
2933 #include <stdio.h>
2934 #endif
2935 #if HAVE_UNISTD_H
2936 #include <unistd.h>
2937 #endif
2938 #if HAVE_SYS_TIME_H
2939 #include <sys/time.h>
2940 #endif
2941 #if HAVE_SYS_SELECT_H
2942 #include <sys/select.h>
2943 #endif
2944 #if HAVE_SYS_TYPES_H
2945 #include <sys/types.h>
2946 #endif
2947 main() {
2948 FILE *fp = fopen("conftestval", "w");
2949 fprintf (fp, "%d\n", FD_SETSIZE);
2950 exit(0);
2951 }
2952 ],
2953 DEFAULT_FD_SETSIZE=`cat conftestval`,
2954 DEFAULT_FD_SETSIZE=256,
2955 DEFAULT_FD_SETSIZE=256)
2956 AC_MSG_RESULT($DEFAULT_FD_SETSIZE)
2957 AC_DEFINE_UNQUOTED(DEFAULT_FD_SETSIZE, $DEFAULT_FD_SETSIZE, [Default FD_SETSIZE value])
2958
2959
2960 dnl Not cached since people are likely to tune this
2961 AC_MSG_CHECKING(Maximum number of filedescriptors we can open)
2962 dnl damn! FreeBSD's pthreads breaks dup2().
2963 if test -n "$squid_filedescriptors_num" ; then
2964 SQUID_MAXFD=$squid_filedescriptors_num
2965 AC_MSG_RESULT($SQUID_MAXFD (user-forced))
2966 else
2967 TLDFLAGS="$LDFLAGS"
2968 case $host in
2969 i386-unknown-freebsd*)
2970 if echo "$LDFLAGS" | grep -q pthread; then
2971 LDFLAGS=`echo $LDFLAGS | sed -e "s/-pthread//"`
2972 fi
2973 esac
2974 AC_TRY_RUN([
2975 #include <stdio.h>
2976 #include <unistd.h>
2977 #include <sys/time.h> /* needed on FreeBSD */
2978 #include <sys/param.h>
2979 #include <sys/resource.h>
2980 main() {
2981 FILE *fp;
2982 int i,j;
2983 #if defined(__CYGWIN32__) || defined (__CYGWIN__)
2984 /* getrlimit and sysconf returns bogous values on cygwin32.
2985 * Number of fds is virtually unlimited in cygwin (sys/param.h)
2986 * __CYGWIN32__ is deprecated.
2987 */
2988 i = NOFILE;
2989 #else
2990 #if HAVE_SETRLIMIT
2991 struct rlimit rl;
2992 #if defined(RLIMIT_NOFILE)
2993 if (getrlimit(RLIMIT_NOFILE, &rl) < 0) {
2994 perror("getrlimit: RLIMIT_NOFILE");
2995 } else {
2996 rl.rlim_cur = rl.rlim_max; /* set it to the max */
2997 if (setrlimit(RLIMIT_NOFILE, &rl) < 0) {
2998 perror("setrlimit: RLIMIT_NOFILE");
2999 }
3000 }
3001 #elif defined(RLIMIT_OFILE)
3002 if (getrlimit(RLIMIT_OFILE, &rl) < 0) {
3003 perror("getrlimit: RLIMIT_OFILE");
3004 } else {
3005 rl.rlim_cur = rl.rlim_max; /* set it to the max */
3006 if (setrlimit(RLIMIT_OFILE, &rl) < 0) {
3007 perror("setrlimit: RLIMIT_OFILE");
3008 }
3009 }
3010 #endif /* RLIMIT_NOFILE */
3011 #endif /* HAVE_SETRLIMIT */
3012 /* by starting at 2^14, we will never get higher
3013 than 2^15 for SQUID_MAXFD */
3014 i = j = 1<<14;
3015 while (j) {
3016 j >>= 1;
3017 if (dup2(0, i) < 0) {
3018 i -= j;
3019 } else {
3020 close(i);
3021 i += j;
3022 }
3023 }
3024 i++;
3025 #endif /* IF !DEF CYGWIN */
3026 fp = fopen("conftestval", "w");
3027 fprintf (fp, "%d\n", i & ~0x3F);
3028 exit(0);
3029 }
3030 ],
3031 SQUID_MAXFD=`cat conftestval`,
3032 SQUID_MAXFD=256,
3033 SQUID_MAXFD=256)
3034 dnl Microsoft MSVCRT.DLL supports 2048 maximum FDs
3035 case "$host_os" in
3036 mingw|mingw32)
3037 SQUID_MAXFD="2048"
3038 ;;
3039 esac
3040 AC_MSG_RESULT($SQUID_MAXFD)
3041 fi
3042 AC_DEFINE_UNQUOTED(SQUID_MAXFD, $SQUID_MAXFD,[Maximum number of open filedescriptors])
3043 if test "$SQUID_MAXFD" -lt 512 ; then
3044 echo "WARNING: $SQUID_MAXFD may not be enough filedescriptors if your"
3045 echo " cache will be very busy. Please see the FAQ page"
3046 echo " http://www.squid-cache.org/FAQ/FAQ-11.html#filedescriptors"
3047 echo " on how to increase your filedescriptor limit"
3048 sleep 10
3049 fi
3050 LDFLAGS="$TLDFLAGS"
3051
3052 if test `expr $SQUID_MAXFD % 64` != 0; then
3053 echo "WARNING: $SQUID_MAXFD is not an multiple of 64. This may cause issues"
3054 echo " on certain platforms."
3055 sleep 10
3056 fi
3057
3058 dnl Not cached since people are likely to tune this
3059 AC_MSG_CHECKING(Default UDP send buffer size)
3060 AC_TRY_RUN([
3061 #include <stdlib.h>
3062 #include <stdio.h>
3063 #include <sys/types.h>
3064 #include <sys/socket.h>
3065 #include <netinet/in.h>
3066 main ()
3067 {
3068 FILE *fp;
3069 int fd,val=0,len=sizeof(int);
3070 if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) exit(1);
3071 if (getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &val, &len) < 0) exit(1);
3072 if (val<=0) exit(1);
3073 fp = fopen("conftestval", "w");
3074 fprintf (fp, "%d\n", val);
3075 exit(0);
3076 }
3077 ],
3078 SQUID_DETECT_UDP_SO_SNDBUF=`cat conftestval`,
3079 SQUID_DETECT_UDP_SO_SNDBUF=16384,
3080 SQUID_DETECT_UDP_SO_SNDBUF=16384)
3081 AC_MSG_RESULT($SQUID_DETECT_UDP_SO_SNDBUF)
3082 AC_DEFINE_UNQUOTED(SQUID_DETECT_UDP_SO_SNDBUF, $SQUID_DETECT_UDP_SO_SNDBUF,[UDP send buffer size])
3083
3084 dnl Not cached since people are likely to tune this
3085 AC_MSG_CHECKING(Default UDP receive buffer size)
3086 AC_TRY_RUN([
3087 #include <stdlib.h>
3088 #include <stdio.h>
3089 #include <sys/types.h>
3090 #include <sys/socket.h>
3091 #include <netinet/in.h>
3092 main ()
3093 {
3094 FILE *fp;
3095 int fd,val=0,len=sizeof(int);
3096 if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) exit(1);
3097 if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &val, &len) < 0) exit(1);
3098 if (val <= 0) exit(1);
3099 fp = fopen("conftestval", "w");
3100 fprintf (fp, "%d\n", val);
3101 exit(0);
3102 }
3103 ],
3104 SQUID_DETECT_UDP_SO_RCVBUF=`cat conftestval`,
3105 SQUID_DETECT_UDP_SO_RCVBUF=16384,
3106 SQUID_DETECT_UDP_SO_RCVBUF=16384)
3107 AC_MSG_RESULT($SQUID_DETECT_UDP_SO_RCVBUF)
3108 AC_DEFINE_UNQUOTED(SQUID_DETECT_UDP_SO_RCVBUF, $SQUID_DETECT_UDP_SO_RCVBUF,[UDP receive buffer size])
3109
3110 dnl Not cached since people are likely to tune this
3111 AC_MSG_CHECKING(Default TCP send buffer size)
3112 AC_TRY_RUN([
3113 #include <stdlib.h>
3114 #include <stdio.h>
3115 #include <sys/types.h>
3116 #include <sys/socket.h>
3117 #include <netinet/in.h>
3118 main ()
3119 {
3120 FILE *fp;
3121 int fd,val=0,len=sizeof(int);
3122 if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) exit(1);
3123 if (getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &val, &len) < 0) exit(1);
3124 if (val <= 0) exit(1);
3125 fp = fopen("conftestval", "w");
3126 fprintf (fp, "%d\n", val);
3127 exit(0);
3128 }
3129 ],
3130 SQUID_TCP_SO_SNDBUF=`cat conftestval`,
3131 SQUID_TCP_SO_SNDBUF=16384,
3132 SQUID_TCP_SO_SNDBUF=16384)
3133 AC_MSG_RESULT($SQUID_TCP_SO_SNDBUF)
3134 if test $SQUID_TCP_SO_SNDBUF -gt 32768; then
3135 echo "Limiting send buffer size to 32K"
3136 SQUID_TCP_SO_SNDBUF=32768
3137 fi
3138 AC_DEFINE_UNQUOTED(SQUID_TCP_SO_SNDBUF, $SQUID_TCP_SO_SNDBUF,[TCP send buffer size])
3139
3140 dnl Not cached since people are likely to tune this
3141 AC_MSG_CHECKING(Default TCP receive buffer size)
3142 AC_TRY_RUN([
3143 #include <stdlib.h>
3144 #include <stdio.h>
3145 #include <sys/types.h>
3146 #include <sys/socket.h>
3147 #include <netinet/in.h>
3148 main ()
3149 {
3150 FILE *fp;
3151 int fd,val=0,len=sizeof(int);
3152 if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) exit(1);
3153 if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &val, &len) < 0) exit(1);
3154 if (val <= 0) exit(1);
3155 fp = fopen("conftestval", "w");
3156 fprintf (fp, "%d\n", val);
3157 exit(0);
3158 }
3159 ],
3160 SQUID_TCP_SO_RCVBUF=`cat conftestval`,
3161 SQUID_TCP_SO_RCVBUF=16384,
3162 SQUID_TCP_SO_RCVBUF=16384)
3163 AC_MSG_RESULT($SQUID_TCP_SO_RCVBUF)
3164 if test $SQUID_TCP_SO_RCVBUF -gt 65535; then
3165 echo "Limiting receive buffer size to 64K"
3166 SQUID_TCP_SO_RCVBUF=65535
3167 fi
3168 AC_DEFINE_UNQUOTED(SQUID_TCP_SO_RCVBUF, $SQUID_TCP_SO_RCVBUF,[TCP receive buffer size])
3169 AC_CACHE_CHECK(if sys_errlist is already defined, ac_cv_needs_sys_errlist,
3170 AC_TRY_COMPILE([#include <stdio.h>],[char *s = sys_errlist;],
3171 ac_cv_needs_sys_errlist="no",
3172 ac_cv_needs_sys_errlist="yes")
3173 )
3174 if test "$ac_cv_needs_sys_errlist" = "yes" ; then
3175 AC_DEFINE(NEED_SYS_ERRLIST,1,[If we need to declare sys_errlist[] as external])
3176 fi
3177
3178 dnl Not cached since people are likely to change this
3179 AC_MSG_CHECKING(for libresolv _dns_ttl_ hack)
3180 AC_TRY_LINK(extern int _dns_ttl_;,return _dns_ttl_;,
3181 [AC_MSG_RESULT(yes)
3182 AC_DEFINE(LIBRESOLV_DNS_TTL_HACK,1,[If libresolv.a has been hacked to export _dns_ttl_])],
3183 AC_MSG_RESULT(no))
3184
3185 AC_MSG_CHECKING(if inet_ntoa() actually works)
3186 AC_TRY_RUN([
3187 #include <stdlib.h>
3188 #include <stdio.h>
3189 #include <sys/types.h>
3190 #include <netinet/in.h>
3191 #include <arpa/inet.h>
3192 main ()
3193 {
3194 FILE *fp;
3195 struct in_addr in;
3196 in.s_addr = inet_addr("1.2.3.4");
3197 fp = fopen("conftestval", "w");
3198 fprintf (fp, "%s\n", inet_ntoa(in));
3199 exit(0);
3200 }
3201 ],
3202 INET_NTOA_RESULT=`cat conftestval`,
3203 INET_NTOA_RESULT="broken",
3204 INET_NTOA_RESULT="broken")
3205 if test "$INET_NTOA_RESULT" = "1.2.3.4" ; then
3206 AC_MSG_RESULT("yes")
3207 else
3208 AC_MSG_RESULT("no")
3209 case "$host_os" in
3210 mingw|mingw32)
3211 echo "Using Win32 resolver instead."
3212 ;;
3213 *)
3214 echo "Will use our own inet_ntoa()."
3215 AC_LIBOBJ(inet_ntoa)
3216 # echo "WARNING: This looks bad, and probably prevents Squid from working."
3217 # echo " If you're on IRIX and using GCC 2.8, you probably need"
3218 # echo " to use the IRIX C compiler instead."
3219 # sleep 10
3220 ;;
3221 esac
3222 fi
3223
3224 if test "$ac_cv_header_sys_statvfs_h" = "yes" ; then
3225 AC_MSG_CHECKING(for working statvfs() interface)
3226 AC_TRY_COMPILE([
3227 #include <stdlib.h>
3228 #include <stdio.h>
3229 #include <sys/types.h>
3230 #include <sys/statvfs.h>
3231 ],
3232 [
3233 struct statvfs sfs;
3234 sfs.f_blocks = sfs.f_bfree = sfs.f_frsize =
3235 sfs.f_files = sfs.f_ffree = 0;
3236 statvfs("/tmp", &sfs);
3237 ],
3238 ac_cv_func_statvfs=yes,
3239 ac_cv_func_statvfs=no)
3240 AC_MSG_RESULT($ac_cv_func_statvfs)
3241 if test "$ac_cv_func_statvfs" = "yes" ; then
3242 AC_DEFINE(HAVE_STATVFS,1,[If your system has statvfs(), and if it actually works!])
3243 fi
3244 fi
3245
3246 dnl Detect what resolver fields we have available to use...
3247 AC_CACHE_CHECK(for _res_ext.nsaddr_list, ac_cv_have_res_ext_nsaddr_list,
3248 AC_TRY_COMPILE([
3249 #if HAVE_SYS_TYPES_H
3250 #include <sys/types.h>
3251 #endif
3252 #if HAVE_NETINET_IN_H
3253 #include <netinet/in.h>
3254 #endif
3255 #if HAVE_ARPA_INET_H
3256 #include <arpa/inet.h>
3257 #endif
3258 #if HAVE_ARPA_NAMESER_H
3259 #include <arpa/nameser.h>
3260 #endif
3261 #if HAVE_RESOLV_H
3262 #include <resolv.h>
3263 #endif
3264 ],
3265 [_res_ext.nsaddr_list[[0]].s_addr;],
3266 ac_cv_have_res_ext_nsaddr_list="yes",
3267 ac_cv_have_res_ext_nsaddr_list="no"))
3268 if test "$ac_cv_have_res_ext_nsaddr_list" = "yes" ; then
3269 AC_DEFINE(_SQUID_RES_NSADDR6_LARRAY,_res_ext.nsaddr_list,[If _res_ext structure has nsaddr_list member])
3270 AC_DEFINE(_SQUID_RES_NSADDR6_COUNT,ns6count,[Nameserver Counter for IPv6 _res_ext])
3271 fi
3272
3273 if test "$_SQUID_RES_NSADDR6_LIST" == ""; then
3274 AC_CACHE_CHECK(for _res._u._ext.nsaddrs, ac_cv_have_res_ext_nsaddrs,
3275 AC_TRY_COMPILE([
3276 #if HAVE_SYS_TYPES_H
3277 #include <sys/types.h>
3278 #endif
3279 #if HAVE_NETINET_IN_H
3280 #include <netinet/in.h>
3281 #endif
3282 #if HAVE_ARPA_INET_H
3283 #include <arpa/inet.h>
3284 #endif
3285 #if HAVE_ARPA_NAMESER_H
3286 #include <arpa/nameser.h>
3287 #endif
3288 #if HAVE_RESOLV_H
3289 #include <resolv.h>
3290 #endif
3291 ],
3292 [_res._u._ext.nsaddrs[[0]]->sin6_addr;],
3293 ac_cv_have_res_ext_nsaddrs="yes",
3294 ac_cv_have_res_ext_nsaddrs="no"))
3295 if test "$ac_cv_have_res_ext_nsaddrs" = "yes" ; then
3296 AC_DEFINE(_SQUID_RES_NSADDR6_LPTR,_res._u._ext.nsaddrs,[If _res structure has _ext.nsaddrs member])
3297 AC_DEFINE(_SQUID_RES_NSADDR6_COUNT,_res._u._ext.nscount6,[Nameserver Counter for IPv6 _res])
3298 fi
3299 fi
3300
3301 AC_CACHE_CHECK(for _res.nsaddr_list, ac_cv_have_res_nsaddr_list,
3302 AC_TRY_COMPILE([
3303 #if HAVE_SYS_TYPES_H
3304 #include <sys/types.h>
3305 #endif
3306 #if HAVE_NETINET_IN_H
3307 #include <netinet/in.h>
3308 #endif
3309 #if HAVE_ARPA_INET_H
3310 #include <arpa/inet.h>
3311 #endif
3312 #if HAVE_ARPA_NAMESER_H
3313 #include <arpa/nameser.h>
3314 #endif
3315 #if HAVE_RESOLV_H
3316 #include <resolv.h>
3317 #endif
3318 ],
3319 [_res.nsaddr_list[[0]];],
3320 ac_cv_have_res_nsaddr_list="yes",
3321 ac_cv_have_res_nsaddr_list="no"))
3322 if test $ac_cv_have_res_nsaddr_list = "yes" ; then
3323 AC_DEFINE(_SQUID_RES_NSADDR_LIST,_res.nsaddr_list,[If _res structure has nsaddr_list member])
3324 AC_DEFINE(_SQUID_RES_NSADDR_COUNT,_res.nscount,[Nameserver counter for IPv4 _res])
3325 fi
3326
3327 if test "$_SQUID_RES_NSADDR_LIST" == ""; then
3328 AC_CACHE_CHECK(for _res.ns_list, ac_cv_have_res_ns_list,
3329 AC_TRY_COMPILE([
3330 #if HAVE_SYS_TYPES_H
3331 #include <sys/types.h>
3332 #endif
3333 #if HAVE_NETINET_IN_H
3334 #include <netinet/in.h>
3335 #endif
3336 #if HAVE_ARPA_INET_H
3337 #include <arpa/inet.h>
3338 #endif
3339 #if HAVE_ARPA_NAMESER_H
3340 #include <arpa/nameser.h>
3341 #endif
3342 #if HAVE_RESOLV_H
3343 #include <resolv.h>
3344 #endif
3345 ],
3346 [_res.ns_list[[0]].addr;],
3347 ac_cv_have_res_ns_list="yes",
3348 ac_cv_have_res_ns_list="no"))
3349 if test $ac_cv_have_res_ns_list = "yes" ; then
3350 AC_DEFINE(_SQUID_RES_NSADDR_LIST,_res.ns_list,[If _res structure has ns_list member])
3351 AC_DEFINE(_SQUID_RES_NSADDR_COUNT,_res.nscount,[Nameserver counter for IPv4 _res])
3352 fi
3353 fi
3354
3355 dnl Need the debugging version of malloc if available
3356 XTRA_OBJS=''
3357 if test "$ac_cv_lib_malloc_main" = "yes" ; then
3358 if test -r /usr/lib/debug/malloc.o ; then
3359 XTRA_OBJS="$XTRA_OBJS /usr/lib/debug/malloc.o"
3360 fi
3361 if test -r /usr/lib/debug/mallocmap.o ; then
3362 XTRA_OBJS="$XTRA_OBJS /usr/lib/debug/mallocmap.o"
3363 fi
3364 fi
3365
3366 AC_SUBST(XTRA_OBJS)
3367
3368 if test -z "$XTRA_LIBS"; then
3369 XTRA_LIBS="$LIBS"
3370 dnl minor cleanup
3371 XTRA_LIBS=`echo $XTRA_LIBS | sed -e "s/ */ /g"`
3372 LIBS=''
3373 fi
3374 AC_SUBST(XTRA_LIBS)
3375
3376 dnl Clean up after OSF/1 core dump bug
3377 rm -f core
3378
3379 AC_CONFIG_FILES([\
3380 Makefile \
3381 lib/Makefile \
3382 scripts/Makefile \
3383 scripts/RunCache \
3384 scripts/RunAccel \
3385 src/Makefile \
3386 src/fs/Makefile \
3387 src/repl/Makefile \
3388 src/auth/Makefile \
3389 contrib/Makefile \
3390 snmplib/Makefile \
3391 icons/Makefile \
3392 errors/Makefile \
3393 test-suite/Makefile \
3394 doc/Makefile \
3395 helpers/Makefile \
3396 helpers/basic_auth/Makefile \
3397 helpers/basic_auth/LDAP/Makefile \
3398 helpers/basic_auth/MSNT/Makefile \
3399 helpers/basic_auth/NCSA/Makefile \
3400 helpers/basic_auth/PAM/Makefile \
3401 helpers/basic_auth/SMB/Makefile \
3402 helpers/basic_auth/mswin_sspi/Makefile \
3403 helpers/basic_auth/YP/Makefile \
3404 helpers/basic_auth/getpwnam/Makefile \
3405 helpers/basic_auth/multi-domain-NTLM/Makefile \
3406 helpers/basic_auth/SASL/Makefile \
3407 helpers/basic_auth/POP3/Makefile \
3408 helpers/basic_auth/DB/Makefile \
3409 helpers/basic_auth/squid_radius_auth/Makefile \
3410 helpers/digest_auth/Makefile \
3411 helpers/digest_auth/password/Makefile \
3412 helpers/digest_auth/ldap/Makefile \
3413 helpers/digest_auth/eDirectory/Makefile \
3414 helpers/ntlm_auth/Makefile \
3415 helpers/ntlm_auth/fakeauth/Makefile \
3416 helpers/ntlm_auth/no_check/Makefile \
3417 helpers/ntlm_auth/SMB/Makefile \
3418 helpers/ntlm_auth/SMB/smbval/Makefile \
3419 helpers/ntlm_auth/mswin_sspi/Makefile \
3420 helpers/negotiate_auth/Makefile \
3421 helpers/negotiate_auth/mswin_sspi/Makefile \
3422 helpers/negotiate_auth/squid_kerb_auth/Makefile \
3423 helpers/external_acl/Makefile \
3424 helpers/external_acl/ip_user/Makefile \
3425 helpers/external_acl/ldap_group/Makefile \
3426 helpers/external_acl/session/Makefile \
3427 helpers/external_acl/unix_group/Makefile \
3428 helpers/external_acl/wbinfo_group/Makefile \
3429 helpers/external_acl/mswin_lm_group/Makefile \
3430 tools/Makefile
3431 ])
3432
3433 AC_CONFIG_SUBDIRS(lib/libTrie)
3434
3435 AC_OUTPUT