2 dnl Configuration input file for Squid
4 dnl Duane Wessels, wessels@nlanr.net, February 1996 (autoconf v2.9)
6 dnl $Id: configure.in,v 1.60 1996/12/05 21:24:56 wessels Exp $
11 AC_CONFIG_HEADER(include/autoconf.h)
12 AC_REVISION($Revision: 1.60 $)dnl
13 AC_PREFIX_DEFAULT(/usr/local/squid)
14 AC_CONFIG_AUX_DIR(aux)
20 LIBREGEX='' # libregex.a
22 dnl use directory structure of cached as default (hack)
23 if test "$libexecdir" = '${exec_prefix}/libexec'; then
24 libexecdir='${bindir}'
25 localstatedir='${prefix}'
29 if test -z "$CACHE_HTTP_PORT"; then
30 CACHE_HTTP_PORT="3128"
32 if test -z "$CACHE_ICP_PORT"; then
37 AC_SUBST(CACHE_HTTP_PORT)
38 AC_SUBST(CACHE_ICP_PORT)
40 AC_DEFINE_UNQUOTED(CONFIG_HOST_TYPE, "$host")
42 dnl Set default LDFLAGS
43 if test -z "$LDFLAGS"; then
47 PRESET_CFLAGS="$CFLAGS"
52 dnl Warn if not using GNU cc
53 if test $ac_cv_prog_gcc = no; then
54 echo '**************************************************************';
55 echo '**************************************************************';
57 echo '** WARNING: Squid is only guaranteed to compile with GNU cc.';
58 echo "** Currently, you're using $CC";
60 echo '**************************************************************';
61 echo '**************************************************************';
65 dnl Set Default CFLAGS
66 if test -z "$PRESET_CFLAGS"; then
67 if test "$GCC" = "yes"; then
70 # sunos has too many warnings for this to be useful
74 CFLAGS="$CFLAGS -Wall"
81 echo "Disabling 'ranlib' for HP-UX..."
88 if test -z "$PRESET_LDFLAGS"; then
89 if test "$GCC" = "yes"; then
98 dnl Check for programs
103 AC_PATH_PROG(FALSE, false, /usr/bin/false)
104 AC_PATH_PROG(TRUE, true, /usr/bin/true)
105 AC_PATH_PROG(RM, rm, $FALSE)
106 AC_PATH_PROG(MV, mv, $FALSE)
107 AC_PATH_PROG(MKDIR, mkdir, $FALSE)
108 AC_PATH_PROG(LN, ln, cp)
109 AC_PATH_PROG(PERL, perl, /usr/local/bin/perl)
110 AC_PATH_PROG(MAKEDEPEND, makedepend, $TRUE)
113 dnl Check for headers
167 AC_MSG_CHECKING(if ANSI prototypes work)
168 AC_TRY_COMPILE([int foo(char *); int foo (char *bar) {return 1;}],
170 [AC_DEFINE(HAVE_ANSI_PROTOTYPES)
174 AC_MSG_CHECKING(for tm->tm_gmtoff)
175 AC_TRY_COMPILE([#include <time.h>
176 #include <sys/time.h>],
179 [AC_DEFINE(HAVE_TM_GMTOFF)
183 AC_MSG_CHECKING(for extended mallinfo)
184 AC_TRY_COMPILE([#include <sys/types.h>
185 #include <malloc.h>],
186 [struct mallinfo foo;
188 [AC_DEFINE(HAVE_EXT_MALLINFO)
192 AC_MSG_CHECKING(for ip->ip_hl)
193 AC_TRY_COMPILE([#include <sys/types.h>
194 #include <netinet/in.h>
195 #include <netinet/in_systm.h>
196 #include <netinet/ip.h>],
199 [AC_DEFINE(HAVE_IP_HL)
203 dnl Check for typedefs
205 AC_CHECK_SIZEOF(long)
207 dnl Check for special functions
210 AC_CHECK_TYPE(pid_t, int)
211 AC_CHECK_TYPE(size_t, int)
212 AC_CHECK_TYPE(off_t, int)
214 dnl Check for needed libraries
215 AC_CHECK_LIB(nsl, main)
216 AC_CHECK_LIB(socket, main)
217 AC_CHECK_LIB(gnumalloc, main)
218 if test "$ac_cv_lib_gnumalloc_main" = "no"; then
221 echo "skipping libmalloc check for $host"
224 echo "skipping libmalloc check for $host"
227 AC_CHECK_LIB(malloc, main)
231 AC_CHECK_LIB(bsd, main)
232 AC_CHECK_LIB(regex, main, [REGEXLIB="-lregex"])
233 AC_CHECK_LIB(resolv, inet_aton, AC_CHECK_LIB(44bsd, inet_aton))
234 AC_CHECK_LIB(resolv, main)
236 dnl Check for libcrypt
237 dnl We use crypt(3) which may be in libc, or in libcrypt (eg FreeBSD)
238 AC_CHECK_LIB(crypt, crypt, [CRYPTLIB="-lcrypt"])
241 dnl Check for libshadow which is needed by the shadow password suite
242 AC_CHECK_LIB(shadow, main)
244 dnl System-specific library modifications
248 if test "$GCC" = "yes"; then
249 echo "Removing -O for gcc on $host"
250 CFLAGS="`echo $CFLAGS | sed -e s/-O//`"
254 echo "Removing -lsocket for IRIX..."
255 LIBS=`echo $LIBS | sed -e s/-lsocket//`
256 echo "Removing -lnsl for IRIX..."
257 LIBS=`echo $LIBS | sed -e s/-lnsl//`
258 echo "Removing -lbsd for IRIX..."
259 LIBS=`echo $LIBS | sed -e s/-lbsd//`
261 dnl From: c0032033@ws.rz.tu-bs.de (Joerg Schumacher)
262 dnl Date: Thu, 17 Oct 1996 04:09:30 +0200
263 dnl Please change your configure script. AIX doesn't need -lbsd.
265 echo "Removing -lbsd for AIX..."
266 LIBS=`echo $LIBS | sed -e s/-lbsd//`
269 CFLAGS="$CFLAGS -D_SQUID_MOTOROLA_"
270 AC_DEFINE(GETTIMEOFDAY_NO_TZP)
272 [*-*-solaris2.[0-4]])
273 AC_DEFINE(GETTIMEOFDAY_NO_TZP)
277 dnl Check for library functions
310 AC_MSG_CHECKING(if GNUregex needs to be compiled)
311 if test "$ac_cv_func_regcomp" = "no" ; then
312 COMPILE_GNUREGEX="yes"
314 COMPILE_GNUREGEX="no"
317 [*-sun-solaris2.[0-4]])
318 COMPILE_GNUREGEX="yes"
321 AC_MSG_RESULT($COMPILE_GNUREGEX)
322 if test "$COMPILE_GNUREGEX" = "yes"; then
324 LIBREGEX="libregex.a"
333 AC_MSG_CHECKING(Maximum number of filedescriptors we can open)
337 #include <sys/time.h> /* needed on FreeBSD */
338 #include <sys/param.h>
339 #include <sys/resource.h>
344 #if defined(RLIMIT_NOFILE)
345 if (getrlimit(RLIMIT_NOFILE, &rl) < 0) {
346 perror("getrlimit: RLIMIT_NOFILE");
348 rl.rlim_cur = rl.rlim_max; /* set it to the max */
349 if (setrlimit(RLIMIT_NOFILE, &rl) < 0) {
350 perror("setrlimit: RLIMIT_NOFILE");
353 #elif defined(RLIMIT_OFILE)
354 if (getrlimit(RLIMIT_OFILE, &rl) < 0) {
355 perror("getrlimit: RLIMIT_OFILE");
357 rl.rlim_cur = rl.rlim_max; /* set it to the max */
358 if (setrlimit(RLIMIT_OFILE, &rl) < 0) {
359 perror("setrlimit: RLIMIT_OFILE");
362 #endif /* RLIMIT_NOFILE */
363 #endif /* HAVE_SETRLIMIT */
364 #if HAVE_SYSCONF && defined(_SC_OPEN_MAX)
365 i = sysconf(_SC_OPEN_MAX);
366 #elif HAVE_GETDTABLESIZE && !defined(__linux__)
368 #elif defined(OPEN_MAX)
370 #elif defined(NOFILE)
372 #elif defined(_NFILE)
375 while((j=open("/dev/null", 0)) > 0) i=j;
376 close(i); close(i-1);
379 fprintf (fopen("conftestval", "w"), "%d\n", i);
383 SQUID_MAXFD=`cat conftestval`,
386 AC_MSG_RESULT($SQUID_MAXFD)
387 AC_DEFINE_UNQUOTED(SQUID_MAXFD, $SQUID_MAXFD)
389 AC_MSG_CHECKING(Default UDP send buffer size)
393 #include <sys/types.h>
394 #include <sys/socket.h>
395 #include <netinet/in.h>
398 int fd,val=0,len=sizeof(int);
399 if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) exit(1);
400 if (getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &val, &len) < 0) exit(1);
402 fprintf (fopen("conftestval", "w"), "%d\n", val);
406 SQUID_UDP_SO_SNDBUF=`cat conftestval`,
407 SQUID_UDP_SO_SNDBUF=16384,
408 SQUID_UDP_SO_SNDBUF=16384)
409 AC_MSG_RESULT($SQUID_UDP_SO_SNDBUF)
410 AC_DEFINE_UNQUOTED(SQUID_UDP_SO_SNDBUF, $SQUID_UDP_SO_SNDBUF)
412 AC_MSG_CHECKING(Default UDP receive buffer size)
416 #include <sys/types.h>
417 #include <sys/socket.h>
418 #include <netinet/in.h>
421 int fd,val=0,len=sizeof(int);
422 if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) exit(1);
423 if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &val, &len) < 0) exit(1);
424 if (val <= 0) exit(1);
425 fprintf (fopen("conftestval", "w"), "%d\n", val);
429 SQUID_UDP_SO_RCVBUF=`cat conftestval`,
430 SQUID_UDP_SO_RCVBUF=16384,
431 SQUID_UDP_SO_RCVBUF=16384)
432 AC_MSG_RESULT($SQUID_UDP_SO_RCVBUF)
433 AC_DEFINE_UNQUOTED(SQUID_UDP_SO_RCVBUF, $SQUID_UDP_SO_RCVBUF)
435 AC_MSG_CHECKING(Default TCP send buffer size)
439 #include <sys/types.h>
440 #include <sys/socket.h>
441 #include <netinet/in.h>
444 int fd,val=0,len=sizeof(int);
445 if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) exit(1);
446 if (getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &val, &len) < 0) exit(1);
447 if (val <= 0) exit(1);
448 fprintf (fopen("conftestval", "w"), "%d\n", val);
452 SQUID_TCP_SO_SNDBUF=`cat conftestval`,
453 SQUID_TCP_SO_SNDBUF=16384,
454 SQUID_TCP_SO_SNDBUF=16384)
455 AC_MSG_RESULT($SQUID_TCP_SO_SNDBUF)
456 AC_DEFINE_UNQUOTED(SQUID_TCP_SO_SNDBUF, $SQUID_TCP_SO_SNDBUF)
458 AC_MSG_CHECKING(Default TCP receive buffer size)
462 #include <sys/types.h>
463 #include <sys/socket.h>
464 #include <netinet/in.h>
467 int fd,val=0,len=sizeof(int);
468 if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) exit(1);
469 if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &val, &len) < 0) exit(1);
470 if (val <= 0) exit(1);
471 fprintf (fopen("conftestval", "w"), "%d\n", val);
475 SQUID_TCP_SO_RCVBUF=`cat conftestval`,
476 SQUID_TCP_SO_RCVBUF=16384,
477 SQUID_TCP_SO_RCVBUF=16384)
478 AC_MSG_RESULT($SQUID_TCP_SO_RCVBUF)
479 AC_DEFINE_UNQUOTED(SQUID_TCP_SO_RCVBUF, $SQUID_TCP_SO_RCVBUF)
481 AC_MSG_CHECKING(if sys_errlist[] is already defined)
482 AC_TRY_COMPILE([#include <stdio.h>],
483 [char *s = sys_errlist[0];],
486 AC_DEFINE(NEED_SYS_ERRLIST)])
488 AC_MSG_CHECKING(for libresolv _dns_ttl_ hack)
489 AC_TRY_LINK(extern int _dns_ttl_;,return _dns_ttl_;,
491 AC_DEFINE(LIBRESOLV_DNS_TTL_HACK)],
494 dnl Need the debugging version of malloc if available
496 if test "$ac_cv_lib_malloc_main" = "yes" ; then
497 if test -r /usr/lib/debug/malloc.o ; then
498 XTRA_OBJS="$XTRA_OBJS /usr/lib/debug/malloc.o"
500 if test -r /usr/lib/debug/mallocmap.o ; then
501 XTRA_OBJS="$XTRA_OBJS /usr/lib/debug/mallocmap.o"
506 if test -z "$XTRA_LIBS"; then
512 dnl Clean up after OSF/1 core dump bug
523 ./src/squid.conf.pre \