]> git.ipfire.org Git - thirdparty/squid.git/blame - configure.in
fix STORE_IN_MEM_BUCKETS non-prime
[thirdparty/squid.git] / configure.in
CommitLineData
090089c4 1dnl
2877b8a9 2dnl Configuration input file for Squid
090089c4 3dnl
983061ed 4dnl Duane Wessels, wessels@nlanr.net, February 1996 (autoconf v2.9)
090089c4 5dnl
20a50bb9 6dnl $Id: configure.in,v 1.48 1996/11/15 07:50:22 wessels Exp $
090089c4 7dnl
8dnl
090089c4 9dnl
a26bdc75 10AC_INIT(src/main.c)
090089c4 11AC_CONFIG_HEADER(include/autoconf.h)
20a50bb9 12AC_REVISION($Revision: 1.48 $)dnl
2877b8a9 13AC_PREFIX_DEFAULT(/usr/local/squid)
da22ac20 14AC_CONFIG_AUX_DIR(aux)
090089c4 15
88d50a22 16AC_CANONICAL_HOST
17
090089c4 18CRYPT_LIB=''
19
983061ed 20dnl use directory structure of cached as default (hack)
21if test "$libexecdir" = '${exec_prefix}/libexec'; then
22 libexecdir='${bindir}'
23 localstatedir='${prefix}'
24
25fi
26
a26bdc75 27if test -z "$CACHE_HTTP_PORT"; then
28 CACHE_HTTP_PORT="3128"
29fi
30if test -z "$CACHE_ICP_PORT"; then
31 CACHE_ICP_PORT="3130"
32fi
a26bdc75 33
090089c4 34dnl Subsitutions
a26bdc75 35AC_SUBST(CACHE_HTTP_PORT)
36AC_SUBST(CACHE_ICP_PORT)
090089c4 37
30a4f2a8 38AC_DEFINE_UNQUOTED(CONFIG_HOST_TYPE, "$host")
39
40dnl Set default LDFLAGS
41if test -z "$LDFLAGS"; then
42 LDFLAGS="-g"
43fi
44
38fea766 45PRESET_CFLAGS="$CFLAGS"
30a4f2a8 46
090089c4 47dnl Check for GNU cc
48AC_PROG_CC
49
50dnl Warn if not using GNU cc
51XXXCC=`echo $CC | awk '{print $1}'`
e973b94a 52if test "`basename $XXXCC`" = "gcc"; then
53 :
54elif test "`basename $XXXCC`" = "shlicc"; then
55 :
56elif test "`basename $XXXCC`" = "shlicc2"; then
57 :
58else
090089c4 59 echo '**************************************************************';
60 echo '**************************************************************';
61 echo '**';
2877b8a9 62 echo '** WARNING: Squid is only guaranteed to compile with GNU cc.';
090089c4 63 echo "** Currently, you're using $CC";
e973b94a 64 echo '**';
090089c4 65 echo '**************************************************************';
66 echo '**************************************************************';
67 sleep 5
68fi
69
30a4f2a8 70dnl Set Default CFLAGS
71if test -z "$PRESET_CFLAGS"; then
72 if test "$GCC" = "yes"; then
73 case "$host" in
74 *-sun-sunos*|*m88k*)
75 # sunos has too many warnings for this to be useful
76 # motorola too
77 ;;
78 *)
79 CFLAGS="$CFLAGS -Wall"
80 ;;
81 esac
82 fi
83
84 dnl Check if ANSI compile options are needed
85 dnl
86 case "$host" in
30a4f2a8 87 *-hp-hpux*)
88 echo "Disabling 'ranlib' for HP-UX..."
89 RANLIB=":"
90 ;;
91 esac
92fi
93
94dnl Set LDFLAGS
95if test -z "$PRESET_LDFLAGS"; then
96 if test "$GCC" = "yes"; then
97 case "$host" in
98 *)
99 # nothing
100 ;;
101 esac
102 fi
103fi
2060fa9a 104
090089c4 105dnl Check for programs
106AC_PROG_CPP
107AC_PROG_INSTALL
108AC_PROG_RANLIB
109AC_PROG_LN_S
d9f67e6f 110AC_PATH_PROG(FALSE, false, /usr/bin/false)
111AC_PATH_PROG(TRUE, true, /usr/bin/true)
112AC_PATH_PROG(RM, rm, $FALSE)
113AC_PATH_PROG(MV, mv, $FALSE)
114AC_PATH_PROG(MKDIR, mkdir, $FALSE)
090089c4 115AC_PATH_PROG(LN, ln, cp)
983061ed 116AC_PATH_PROG(PERL, perl, /usr/local/bin/perl)
d9f67e6f 117AC_PATH_PROG(MAKEDEPEND, makedepend, $TRUE)
090089c4 118
090089c4 119
120dnl Check for headers
121AC_HEADER_DIRENT
122AC_HEADER_STDC
db40ae20 123
2060fa9a 124
db40ae20 125AC_CHECK_HEADERS( \
126 alloca.h \
898f5d1d 127 aio.h \
db40ae20 128 arpa/inet.h \
30a4f2a8 129 arpa/nameser.h \
db40ae20 130 bstring.h \
131 config.h \
132 crypt.h \
30a4f2a8 133 ctype.h \
134 errno.h \
db40ae20 135 fcntl.h \
9c1d8929 136 getopt.h \
30a4f2a8 137 grp.h \
138 libc.h \
139 malloc.h \
db40ae20 140 memory.h \
30a4f2a8 141 netdb.h \
db40ae20 142 netinet/in.h \
30a4f2a8 143 netinet/tcp.h \
144 pwd.h \
145 regex.h \
146 resolv.h \
46aea673 147 shadow.h \
30a4f2a8 148 signal.h \
149 stdarg.h \
150 stddef.h \
151 stdio.h \
db40ae20 152 stdlib.h \
153 string.h \
154 strings.h \
155 sys/file.h \
30a4f2a8 156 sys/param.h \
157 sys/resource.h \
db40ae20 158 sys/select.h\
30a4f2a8 159 sys/socket.h \
160 sys/stat.h \
161 sys/syscall.h \
db40ae20 162 sys/time.h \
163 sys/types.h \
30a4f2a8 164 sys/un.h \
165 sys/wait.h \
db40ae20 166 syslog.h \
30a4f2a8 167 time.h \
168 unistd.h \
169 varargs.h \
db40ae20 170)
171
aee0606f 172AC_C_CONST
173
20a50bb9 174AC_MSG_CHECKING(if ANSI prototypes work)
175AC_TRY_COMPILE([int foo(char *); int foo (char *bar) { }],
176[return 1;],
177[AC_DEFINE(HAVE_ANSI_PROTOTYPES)
178AC_MSG_RESULT(yes)],
179AC_MSG_RESULT(no))
180
46c883ed 181AC_MSG_CHECKING(for tm->tm_gmtoff)
182AC_TRY_COMPILE([#include <time.h>
183#include <sys/time.h>],
184[struct tm foo;
185foo.tm_gmtoff = 0;],
186[AC_DEFINE(HAVE_TM_GMTOFF)
187AC_MSG_RESULT(yes)],
188AC_MSG_RESULT(no))
189
190AC_MSG_CHECKING(for extended mallinfo)
191AC_TRY_COMPILE([#include <sys/types.h>
192#include <malloc.h>],
193[struct mallinfo foo;
194foo.mxfast = 0;],
195[AC_DEFINE(HAVE_EXT_MALLINFO)
196AC_MSG_RESULT(yes)],
197AC_MSG_RESULT(no))
090089c4 198
a025a745 199AC_MSG_CHECKING(for ip->ip_hl)
200AC_TRY_COMPILE([#include <sys/types.h>
201#include <netinet/in.h>
202#include <netinet/in_systm.h>
203#include <netinet/ip.h>],
204[struct ip ip;
205ip.ip_hl= 0;],
206[AC_DEFINE(HAVE_IP_HL)
207AC_MSG_RESULT(yes)],
208AC_MSG_RESULT(no))
209
090089c4 210dnl Check for typedefs
211AC_CHECK_SIZEOF(int)
212AC_CHECK_SIZEOF(long)
213
256cf05b 214dnl Check for special functions
215AC_FUNC_ALLOCA
090089c4 216
3f6fcd8a 217AC_CHECK_TYPE(pid_t, int)
218AC_CHECK_TYPE(size_t, int)
219AC_CHECK_TYPE(off_t, int)
220
090089c4 221dnl Check for needed libraries
30a4f2a8 222AC_CHECK_LIB(nsl, main)
6716b242 223AC_CHECK_LIB(socket, main)
224AC_CHECK_LIB(malloc, main, [HAVE_LIBMALLOC="yes"; LIBS="$LIBS -lmalloc"])
6716b242 225AC_CHECK_LIB(resolv, main)
226AC_CHECK_LIB(bsd, main)
090089c4 227
228dnl We found a version of libresolv on SunOS 4.x which requires -l44bsd
229dnl We have to first check to see if -l44bsd is present and has the
230dnl function inet_aton
77f675ad 231AC_CHECK_LIB(44bsd, inet_aton, [HAVE_LIB44BSD="yes"])
6716b242 232AC_CHECK_LIB(resolv, inet_aton, [if test "$HAVE_LIB44BSD" = "yes"; then LIBS="$LIBS -l44bsd"; fi])
090089c4 233
234dnl Check for libcrypt
b8de7ebe 235dnl We use crypt(3) which may be in libc, or in libcrypt (eg FreeBSD)
090089c4 236AC_CHECK_LIB(crypt, crypt, [CRYPT_LIB="-lcrypt"])
77f675ad 237AC_SUBST(CRYPT_LIB)
238
46aea673 239dnl Check for libshadow which is needed by the shadow password suite
240AC_CHECK_LIB(shadow, main)
241
13e18812 242dnl Check for libs needed for aio_read()/aio_write()
243AIO_LIBS=""
244AC_CHECK_LIB(abi, main, [HAVE_LIBABI="yes"])
245AC_CHECK_LIB(posix4, main, [HAVE_LIBPOSIX4="yes"])
246case "$host" in
247 *-sgi-irix*)
248 if test "$HAVE_LIBABI" = "yes"; then
249 AIO_LIBS="-labi"
250 fi
251 ;;
252 *-*-solaris*)
253 if test "$HAVE_LIBPOSIX4" = "yes"; then
254 AIO_LIBS="-lposix4"
255 fi
256 ;;
257esac
258AC_SUBST(AIO_LIBS)
259
77f675ad 260dnl System-specific library modifications
261dnl
262case "$host" in
263 *-sun-solaris*)
264 echo "Removing -lmalloc for Solaris..."
6716b242 265 LIBS=`echo $LIBS | sed -e s/-lmalloc//`
77f675ad 266 HAVE_LIBMALLOC="no"
267 ;;
7149a49f 268 i386-*-solaris2.?)
269 if test "$GCC" = "yes"; then
270 echo "Removing -O for gcc on $host"
271 CFLAGS="`echo $CFLAGS | sed -e s/-O//`"
272 fi
273 ;;
a8f7d3ee 274 i386-*-freebsd*)
275 echo "Removing -lmalloc for FreeBSD..."
276 LIBS=`echo $LIBS | sed -e s/-lmalloc//`
277 HAVE_LIBMALLOC="no"
278 ;;
77f675ad 279 *-sgi-irix*)
280 echo "Removing -lsocket for IRIX..."
6716b242 281 LIBS=`echo $LIBS | sed -e s/-lsocket//`
77f675ad 282 echo "Removing -lnsl for IRIX..."
6716b242 283 LIBS=`echo $LIBS | sed -e s/-lnsl//`
b44c0fb4 284 echo "Removing -lbsd for IRIX..."
285 LIBS=`echo $LIBS | sed -e s/-lbsd//`
77f675ad 286 ;;
4ba0bd0e 287dnl From: c0032033@ws.rz.tu-bs.de (Joerg Schumacher)
288dnl Date: Thu, 17 Oct 1996 04:09:30 +0200
289dnl Please change your configure script. AIX doesn't need -lbsd.
290 *-ibm-aix*)
291 echo "Removing -lbsd for AIX..."
292 LIBS=`echo $LIBS | sed -e s/-lbsd//`
293 ;;
30a4f2a8 294 *m88k*)
295 CFLAGS="$CFLAGS -D_SQUID_MOTOROLA_"
7149a49f 296 AC_DEFINE(GETTIMEOFDAY_NO_TZP)
297 ;;
298 *-*-solaris2.[0-4])
299 AC_DEFINE(GETTIMEOFDAY_NO_TZP)
30a4f2a8 300 ;;
77f675ad 301esac
090089c4 302
6716b242 303dnl Check for library functions
304AC_CHECK_FUNCS(\
13e18812 305 aio_init \
30a4f2a8 306 bcopy \
6716b242 307 getdtablesize \
30a4f2a8 308 getrusage \
9c1d8929 309 getspnam \
30a4f2a8 310 lrand48 \
6716b242 311 mallinfo \
0f5efab0 312 mallocblksize \
6716b242 313 mallopt \
2ae6b9b0 314 memcpy \
30a4f2a8 315 memmove \
1812b6c7 316 mktime \
b7c1b13c 317 pw_encrypt \
6716b242 318 regcomp \
319 regexec \
320 regfree \
30a4f2a8 321 res_init \
234967c9 322 seteuid \
30a4f2a8 323 setpgrp \
234967c9 324 setresuid \
6716b242 325 setrlimit \
30a4f2a8 326 setsid \
327 sigaction \
30a4f2a8 328 srand48 \
0f5efab0 329 strerror \
6716b242 330 sysconf \
331 syslog \
0a3efad5 332 tempnam \
234967c9 333 timegm \
6716b242 334)
335
3f6fcd8a 336AC_REPLACE_FUNCS(\
337 tempnam \
338)
339
234967c9 340AC_MSG_CHECKING(Maximum number of filedescriptors we can open)
341AC_TRY_RUN([
342#include <unistd.h>
30a4f2a8 343#include <sys/time.h> /* needed on FreeBSD */
234967c9 344#include <sys/param.h>
345#include <sys/resource.h>
346main() {
347 int i,j;
348#if HAVE_SETRLIMIT
349 struct rlimit rl;
350#if defined(RLIMIT_NOFILE)
351 if (getrlimit(RLIMIT_NOFILE, &rl) < 0) {
352 perror("getrlimit: RLIMIT_NOFILE");
353 } else {
354 rl.rlim_cur = rl.rlim_max; /* set it to the max */
355 if (setrlimit(RLIMIT_NOFILE, &rl) < 0) {
356 perror("setrlimit: RLIMIT_NOFILE");
357 }
358 }
359#elif defined(RLIMIT_OFILE)
360 if (getrlimit(RLIMIT_OFILE, &rl) < 0) {
361 perror("getrlimit: RLIMIT_OFILE");
362 } else {
363 rl.rlim_cur = rl.rlim_max; /* set it to the max */
364 if (setrlimit(RLIMIT_OFILE, &rl) < 0) {
365 perror("setrlimit: RLIMIT_OFILE");
366 }
367 }
368#endif /* RLIMIT_NOFILE */
369#endif /* HAVE_SETRLIMIT */
370#if HAVE_SYSCONF && defined(_SC_OPEN_MAX)
371 i = sysconf(_SC_OPEN_MAX);
3f6fcd8a 372#elif HAVE_GETDTABLESIZE && !defined(__linux__)
234967c9 373 i = getdtablesize();
374#elif defined(OPEN_MAX)
375 i = OPEN_MAX;
376#elif defined(NOFILE)
377 i = NOFILE;
378#elif defined(_NFILE)
379 i = _NFILE;
380#else
381 while((j=open("/dev/null", 0)) > 0) i=j;
0a5b9b32 382 close(i); close(i-1);
383 i++;
234967c9 384#endif
385 fprintf (fopen("conftestval", "w"), "%d\n", i);
386 exit(0);
387}
388],
389SQUID_FD_SETSIZE=`cat conftestval`,
390SQUID_FD_SETSIZE=256,
391SQUID_FD_SETSIZE=256)
392AC_MSG_RESULT($SQUID_FD_SETSIZE)
393AC_DEFINE_UNQUOTED(SQUID_FD_SETSIZE, $SQUID_FD_SETSIZE)
394
30a4f2a8 395AC_MSG_CHECKING(Default UDP send buffer size)
396AC_TRY_RUN([
397#include <sys/types.h>
398#include <sys/socket.h>
399#include <netinet/in.h>
400main ()
401{
402 int fd,val=0,len=sizeof(int);
403 if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) exit(1);
404 if (getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &val, &len) < 0) exit(1);
405 if (val<=0) exit(1);
406 fprintf (fopen("conftestval", "w"), "%d\n", val);
407 exit(0);
408}
409],
410SQUID_UDP_SO_SNDBUF=`cat conftestval`,
1c481e00 411SQUID_UDP_SO_SNDBUF=16384,
412SQUID_UDP_SO_SNDBUF=16384)
30a4f2a8 413AC_MSG_RESULT($SQUID_UDP_SO_SNDBUF)
414AC_DEFINE_UNQUOTED(SQUID_UDP_SO_SNDBUF, $SQUID_UDP_SO_SNDBUF)
415
416AC_MSG_CHECKING(Default UDP receive buffer size)
417AC_TRY_RUN([
418#include <sys/types.h>
419#include <sys/socket.h>
420#include <netinet/in.h>
421main ()
422{
423 int fd,val=0,len=sizeof(int);
424 if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) exit(1);
425 if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &val, &len) < 0) exit(1);
426 if (val <= 0) exit(1);
427 fprintf (fopen("conftestval", "w"), "%d\n", val);
428 exit(0);
429}
430],
431SQUID_UDP_SO_RCVBUF=`cat conftestval`,
1c481e00 432SQUID_UDP_SO_RCVBUF=16384,
433SQUID_UDP_SO_RCVBUF=16384)
30a4f2a8 434AC_MSG_RESULT($SQUID_UDP_SO_RCVBUF)
435AC_DEFINE_UNQUOTED(SQUID_UDP_SO_RCVBUF, $SQUID_UDP_SO_RCVBUF)
436
437AC_MSG_CHECKING(Default TCP send buffer size)
438AC_TRY_RUN([
439#include <sys/types.h>
440#include <sys/socket.h>
441#include <netinet/in.h>
442main ()
443{
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);
449 exit(0);
450}
451],
452SQUID_TCP_SO_SNDBUF=`cat conftestval`,
1c481e00 453SQUID_TCP_SO_SNDBUF=16384,
454SQUID_TCP_SO_SNDBUF=16384)
30a4f2a8 455AC_MSG_RESULT($SQUID_TCP_SO_SNDBUF)
456AC_DEFINE_UNQUOTED(SQUID_TCP_SO_SNDBUF, $SQUID_TCP_SO_SNDBUF)
457
458AC_MSG_CHECKING(Default TCP receive buffer size)
459AC_TRY_RUN([
460#include <sys/types.h>
461#include <sys/socket.h>
462#include <netinet/in.h>
463main ()
464{
465 int fd,val=0,len=sizeof(int);
466 if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) exit(1);
467 if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &val, &len) < 0) exit(1);
468 if (val <= 0) exit(1);
469 fprintf (fopen("conftestval", "w"), "%d\n", val);
470 exit(0);
471}
472],
473SQUID_TCP_SO_RCVBUF=`cat conftestval`,
1c481e00 474SQUID_TCP_SO_RCVBUF=16384,
475SQUID_TCP_SO_RCVBUF=16384)
30a4f2a8 476AC_MSG_RESULT($SQUID_TCP_SO_RCVBUF)
477AC_DEFINE_UNQUOTED(SQUID_TCP_SO_RCVBUF, $SQUID_TCP_SO_RCVBUF)
478
479AC_MSG_CHECKING(if sys_errlist[] is already defined)
480AC_TRY_COMPILE([#include <stdio.h>],
481[char *s = sys_errlist[0];],
482AC_MSG_RESULT(yes),
483[AC_MSG_RESULT(no)
484AC_DEFINE(NEED_SYS_ERRLIST)])
485
6bf65235 486AC_MSG_CHECKING(for libresolv _dns_ttl_ hack)
487AC_TRY_LINK(extern int _dns_ttl_;,return _dns_ttl_;,
488[AC_MSG_RESULT(yes)
489AC_DEFINE(LIBRESOLV_DNS_TTL_HACK)],
490AC_MSG_RESULT(no))
491
090089c4 492dnl Need the debugging version of malloc if available
493XTRA_OBJS=''
77f675ad 494if test "$HAVE_LIBMALLOC" = "yes" ; then
090089c4 495 if test -r /usr/lib/debug/malloc.o ; then
496 XTRA_OBJS="$XTRA_OBJS /usr/lib/debug/malloc.o"
497 fi
498 if test -r /usr/lib/debug/mallocmap.o ; then
499 XTRA_OBJS="$XTRA_OBJS /usr/lib/debug/mallocmap.o"
500 fi
501fi
502AC_SUBST(XTRA_OBJS)
503
38fea766 504if test -z "$XTRA_LIBS"; then
505 XTRA_LIBS="$LIBS"
506 LIBS=''
507fi
090089c4 508AC_SUBST(XTRA_LIBS)
509
090089c4 510dnl Clean up after OSF/1 core dump bug
511rm -f core
512
513AC_OUTPUT(\
0992a350 514 ./makefile \
090089c4 515 ./lib/Makefile \
a26bdc75 516 ./include/config.h \
090089c4 517 ./scripts/Makefile \
518 ./scripts/RunCache \
519 ./scripts/RunAccel \
a26bdc75 520 ./src/Makefile \
983061ed 521 ./src/squid.conf.pre \
e550e8b6 522 ./contrib/Makefile \
090089c4 523)