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