]> git.ipfire.org Git - thirdparty/squid.git/blame - configure.in
cleanup; avoid compiler warning
[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
4ba0bd0e 6dnl $Id: configure.in,v 1.39 1996/10/17 04:13:30 wessels Exp $
090089c4 7dnl
8dnl
090089c4 9dnl
a26bdc75 10AC_INIT(src/main.c)
090089c4 11AC_CONFIG_HEADER(include/autoconf.h)
4ba0bd0e 12AC_REVISION($Revision: 1.39 $)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
45PREST_CFLAGS="$CFLAGS"
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
110AC_PATH_PROG(RM, rm, /bin/false)
111AC_PATH_PROG(MV, mv, /bin/false)
112AC_PATH_PROG(MKDIR, mkdir, /bin/false)
113AC_PATH_PROG(LN, ln, cp)
983061ed 114AC_PATH_PROG(PERL, perl, /usr/local/bin/perl)
090089c4 115
090089c4 116
117dnl Check for headers
118AC_HEADER_DIRENT
119AC_HEADER_STDC
db40ae20 120
2060fa9a 121
db40ae20 122AC_CHECK_HEADERS( \
123 alloca.h \
898f5d1d 124 aio.h \
db40ae20 125 arpa/inet.h \
30a4f2a8 126 arpa/nameser.h \
db40ae20 127 bstring.h \
128 config.h \
129 crypt.h \
30a4f2a8 130 ctype.h \
131 errno.h \
db40ae20 132 fcntl.h \
30a4f2a8 133 grp.h \
134 libc.h \
135 malloc.h \
db40ae20 136 memory.h \
30a4f2a8 137 netdb.h \
db40ae20 138 netinet/in.h \
30a4f2a8 139 netinet/tcp.h \
140 pwd.h \
141 regex.h \
142 resolv.h \
46aea673 143 shadow.h \
30a4f2a8 144 signal.h \
145 stdarg.h \
146 stddef.h \
147 stdio.h \
db40ae20 148 stdlib.h \
149 string.h \
150 strings.h \
151 sys/file.h \
30a4f2a8 152 sys/param.h \
153 sys/resource.h \
db40ae20 154 sys/select.h\
30a4f2a8 155 sys/socket.h \
156 sys/stat.h \
157 sys/syscall.h \
db40ae20 158 sys/time.h \
159 sys/types.h \
30a4f2a8 160 sys/un.h \
161 sys/wait.h \
db40ae20 162 syslog.h \
30a4f2a8 163 time.h \
164 unistd.h \
165 varargs.h \
db40ae20 166)
167
46c883ed 168AC_MSG_CHECKING(for tm->tm_gmtoff)
169AC_TRY_COMPILE([#include <time.h>
170#include <sys/time.h>],
171[struct tm foo;
172foo.tm_gmtoff = 0;],
173[AC_DEFINE(HAVE_TM_GMTOFF)
174AC_MSG_RESULT(yes)],
175AC_MSG_RESULT(no))
176
177AC_MSG_CHECKING(for extended mallinfo)
178AC_TRY_COMPILE([#include <sys/types.h>
179#include <malloc.h>],
180[struct mallinfo foo;
181foo.mxfast = 0;],
182[AC_DEFINE(HAVE_EXT_MALLINFO)
183AC_MSG_RESULT(yes)],
184AC_MSG_RESULT(no))
090089c4 185
a025a745 186AC_MSG_CHECKING(for ip->ip_hl)
187AC_TRY_COMPILE([#include <sys/types.h>
188#include <netinet/in.h>
189#include <netinet/in_systm.h>
190#include <netinet/ip.h>],
191[struct ip ip;
192ip.ip_hl= 0;],
193[AC_DEFINE(HAVE_IP_HL)
194AC_MSG_RESULT(yes)],
195AC_MSG_RESULT(no))
196
090089c4 197dnl Check for typedefs
198AC_CHECK_SIZEOF(int)
199AC_CHECK_SIZEOF(long)
200
256cf05b 201dnl Check for special functions
202AC_FUNC_ALLOCA
090089c4 203
3f6fcd8a 204AC_CHECK_TYPE(pid_t, int)
205AC_CHECK_TYPE(size_t, int)
206AC_CHECK_TYPE(off_t, int)
207
090089c4 208dnl Check for needed libraries
30a4f2a8 209AC_CHECK_LIB(nsl, main)
6716b242 210AC_CHECK_LIB(socket, main)
211AC_CHECK_LIB(malloc, main, [HAVE_LIBMALLOC="yes"; LIBS="$LIBS -lmalloc"])
6716b242 212AC_CHECK_LIB(resolv, main)
213AC_CHECK_LIB(bsd, main)
090089c4 214
215dnl We found a version of libresolv on SunOS 4.x which requires -l44bsd
216dnl We have to first check to see if -l44bsd is present and has the
217dnl function inet_aton
77f675ad 218AC_CHECK_LIB(44bsd, inet_aton, [HAVE_LIB44BSD="yes"])
6716b242 219AC_CHECK_LIB(resolv, inet_aton, [if test "$HAVE_LIB44BSD" = "yes"; then LIBS="$LIBS -l44bsd"; fi])
090089c4 220
221dnl Check for libcrypt
b8de7ebe 222dnl We use crypt(3) which may be in libc, or in libcrypt (eg FreeBSD)
090089c4 223AC_CHECK_LIB(crypt, crypt, [CRYPT_LIB="-lcrypt"])
77f675ad 224AC_SUBST(CRYPT_LIB)
225
46aea673 226dnl Check for libshadow which is needed by the shadow password suite
227AC_CHECK_LIB(shadow, main)
228
13e18812 229dnl Check for libs needed for aio_read()/aio_write()
230AIO_LIBS=""
231AC_CHECK_LIB(abi, main, [HAVE_LIBABI="yes"])
232AC_CHECK_LIB(posix4, main, [HAVE_LIBPOSIX4="yes"])
233case "$host" in
234 *-sgi-irix*)
235 if test "$HAVE_LIBABI" = "yes"; then
236 AIO_LIBS="-labi"
237 fi
238 ;;
239 *-*-solaris*)
240 if test "$HAVE_LIBPOSIX4" = "yes"; then
241 AIO_LIBS="-lposix4"
242 fi
243 ;;
244esac
245AC_SUBST(AIO_LIBS)
246
77f675ad 247dnl System-specific library modifications
248dnl
249case "$host" in
250 *-sun-solaris*)
251 echo "Removing -lmalloc for Solaris..."
6716b242 252 LIBS=`echo $LIBS | sed -e s/-lmalloc//`
77f675ad 253 HAVE_LIBMALLOC="no"
254 ;;
7149a49f 255 i386-*-solaris2.?)
256 if test "$GCC" = "yes"; then
257 echo "Removing -O for gcc on $host"
258 CFLAGS="`echo $CFLAGS | sed -e s/-O//`"
259 fi
260 ;;
a8f7d3ee 261 i386-*-freebsd*)
262 echo "Removing -lmalloc for FreeBSD..."
263 LIBS=`echo $LIBS | sed -e s/-lmalloc//`
264 HAVE_LIBMALLOC="no"
265 ;;
77f675ad 266 *-sgi-irix*)
267 echo "Removing -lsocket for IRIX..."
6716b242 268 LIBS=`echo $LIBS | sed -e s/-lsocket//`
77f675ad 269 echo "Removing -lnsl for IRIX..."
6716b242 270 LIBS=`echo $LIBS | sed -e s/-lnsl//`
b44c0fb4 271 echo "Removing -lbsd for IRIX..."
272 LIBS=`echo $LIBS | sed -e s/-lbsd//`
77f675ad 273 ;;
4ba0bd0e 274dnl From: c0032033@ws.rz.tu-bs.de (Joerg Schumacher)
275dnl Date: Thu, 17 Oct 1996 04:09:30 +0200
276dnl Please change your configure script. AIX doesn't need -lbsd.
277 *-ibm-aix*)
278 echo "Removing -lbsd for AIX..."
279 LIBS=`echo $LIBS | sed -e s/-lbsd//`
280 ;;
30a4f2a8 281 *m88k*)
282 CFLAGS="$CFLAGS -D_SQUID_MOTOROLA_"
7149a49f 283 AC_DEFINE(GETTIMEOFDAY_NO_TZP)
284 ;;
285 *-*-solaris2.[0-4])
286 AC_DEFINE(GETTIMEOFDAY_NO_TZP)
30a4f2a8 287 ;;
77f675ad 288esac
090089c4 289
6716b242 290dnl Check for library functions
291AC_CHECK_FUNCS(\
13e18812 292 aio_init \
30a4f2a8 293 bcopy \
6716b242 294 getdtablesize \
30a4f2a8 295 getrusage \
296 lrand48 \
6716b242 297 mallinfo \
0f5efab0 298 mallocblksize \
6716b242 299 mallopt \
30a4f2a8 300 memmove \
1812b6c7 301 mktime \
6716b242 302 regcomp \
303 regexec \
304 regfree \
30a4f2a8 305 res_init \
234967c9 306 seteuid \
30a4f2a8 307 setpgrp \
234967c9 308 setresuid \
6716b242 309 setrlimit \
30a4f2a8 310 setsid \
311 sigaction \
30a4f2a8 312 srand48 \
0f5efab0 313 strerror \
6716b242 314 sysconf \
315 syslog \
234967c9 316 timegm \
6716b242 317)
318
3f6fcd8a 319AC_REPLACE_FUNCS(\
320 tempnam \
321)
322
234967c9 323AC_MSG_CHECKING(Maximum number of filedescriptors we can open)
324AC_TRY_RUN([
325#include <unistd.h>
30a4f2a8 326#include <sys/time.h> /* needed on FreeBSD */
234967c9 327#include <sys/param.h>
328#include <sys/resource.h>
329main() {
330 int i,j;
331#if HAVE_SETRLIMIT
332 struct rlimit rl;
333#if defined(RLIMIT_NOFILE)
334 if (getrlimit(RLIMIT_NOFILE, &rl) < 0) {
335 perror("getrlimit: RLIMIT_NOFILE");
336 } else {
337 rl.rlim_cur = rl.rlim_max; /* set it to the max */
338 if (setrlimit(RLIMIT_NOFILE, &rl) < 0) {
339 perror("setrlimit: RLIMIT_NOFILE");
340 }
341 }
342#elif defined(RLIMIT_OFILE)
343 if (getrlimit(RLIMIT_OFILE, &rl) < 0) {
344 perror("getrlimit: RLIMIT_OFILE");
345 } else {
346 rl.rlim_cur = rl.rlim_max; /* set it to the max */
347 if (setrlimit(RLIMIT_OFILE, &rl) < 0) {
348 perror("setrlimit: RLIMIT_OFILE");
349 }
350 }
351#endif /* RLIMIT_NOFILE */
352#endif /* HAVE_SETRLIMIT */
353#if HAVE_SYSCONF && defined(_SC_OPEN_MAX)
354 i = sysconf(_SC_OPEN_MAX);
3f6fcd8a 355#elif HAVE_GETDTABLESIZE && !defined(__linux__)
234967c9 356 i = getdtablesize();
357#elif defined(OPEN_MAX)
358 i = OPEN_MAX;
359#elif defined(NOFILE)
360 i = NOFILE;
361#elif defined(_NFILE)
362 i = _NFILE;
363#else
364 while((j=open("/dev/null", 0)) > 0) i=j;
0a5b9b32 365 close(i); close(i-1);
366 i++;
234967c9 367#endif
368 fprintf (fopen("conftestval", "w"), "%d\n", i);
369 exit(0);
370}
371],
372SQUID_FD_SETSIZE=`cat conftestval`,
373SQUID_FD_SETSIZE=256,
374SQUID_FD_SETSIZE=256)
375AC_MSG_RESULT($SQUID_FD_SETSIZE)
376AC_DEFINE_UNQUOTED(SQUID_FD_SETSIZE, $SQUID_FD_SETSIZE)
377
30a4f2a8 378AC_MSG_CHECKING(Default UDP send buffer size)
379AC_TRY_RUN([
380#include <sys/types.h>
381#include <sys/socket.h>
382#include <netinet/in.h>
383main ()
384{
385 int fd,val=0,len=sizeof(int);
386 if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) exit(1);
387 if (getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &val, &len) < 0) exit(1);
388 if (val<=0) exit(1);
389 fprintf (fopen("conftestval", "w"), "%d\n", val);
390 exit(0);
391}
392],
393SQUID_UDP_SO_SNDBUF=`cat conftestval`,
1c481e00 394SQUID_UDP_SO_SNDBUF=16384,
395SQUID_UDP_SO_SNDBUF=16384)
30a4f2a8 396AC_MSG_RESULT($SQUID_UDP_SO_SNDBUF)
397AC_DEFINE_UNQUOTED(SQUID_UDP_SO_SNDBUF, $SQUID_UDP_SO_SNDBUF)
398
399AC_MSG_CHECKING(Default UDP receive buffer size)
400AC_TRY_RUN([
401#include <sys/types.h>
402#include <sys/socket.h>
403#include <netinet/in.h>
404main ()
405{
406 int fd,val=0,len=sizeof(int);
407 if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) exit(1);
408 if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &val, &len) < 0) exit(1);
409 if (val <= 0) exit(1);
410 fprintf (fopen("conftestval", "w"), "%d\n", val);
411 exit(0);
412}
413],
414SQUID_UDP_SO_RCVBUF=`cat conftestval`,
1c481e00 415SQUID_UDP_SO_RCVBUF=16384,
416SQUID_UDP_SO_RCVBUF=16384)
30a4f2a8 417AC_MSG_RESULT($SQUID_UDP_SO_RCVBUF)
418AC_DEFINE_UNQUOTED(SQUID_UDP_SO_RCVBUF, $SQUID_UDP_SO_RCVBUF)
419
420AC_MSG_CHECKING(Default TCP send buffer size)
421AC_TRY_RUN([
422#include <sys/types.h>
423#include <sys/socket.h>
424#include <netinet/in.h>
425main ()
426{
427 int fd,val=0,len=sizeof(int);
428 if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) exit(1);
429 if (getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &val, &len) < 0) exit(1);
430 if (val <= 0) exit(1);
431 fprintf (fopen("conftestval", "w"), "%d\n", val);
432 exit(0);
433}
434],
435SQUID_TCP_SO_SNDBUF=`cat conftestval`,
1c481e00 436SQUID_TCP_SO_SNDBUF=16384,
437SQUID_TCP_SO_SNDBUF=16384)
30a4f2a8 438AC_MSG_RESULT($SQUID_TCP_SO_SNDBUF)
439AC_DEFINE_UNQUOTED(SQUID_TCP_SO_SNDBUF, $SQUID_TCP_SO_SNDBUF)
440
441AC_MSG_CHECKING(Default TCP receive buffer size)
442AC_TRY_RUN([
443#include <sys/types.h>
444#include <sys/socket.h>
445#include <netinet/in.h>
446main ()
447{
448 int fd,val=0,len=sizeof(int);
449 if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) exit(1);
450 if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &val, &len) < 0) exit(1);
451 if (val <= 0) exit(1);
452 fprintf (fopen("conftestval", "w"), "%d\n", val);
453 exit(0);
454}
455],
456SQUID_TCP_SO_RCVBUF=`cat conftestval`,
1c481e00 457SQUID_TCP_SO_RCVBUF=16384,
458SQUID_TCP_SO_RCVBUF=16384)
30a4f2a8 459AC_MSG_RESULT($SQUID_TCP_SO_RCVBUF)
460AC_DEFINE_UNQUOTED(SQUID_TCP_SO_RCVBUF, $SQUID_TCP_SO_RCVBUF)
461
462AC_MSG_CHECKING(if sys_errlist[] is already defined)
463AC_TRY_COMPILE([#include <stdio.h>],
464[char *s = sys_errlist[0];],
465AC_MSG_RESULT(yes),
466[AC_MSG_RESULT(no)
467AC_DEFINE(NEED_SYS_ERRLIST)])
468
6bf65235 469AC_MSG_CHECKING(for libresolv _dns_ttl_ hack)
470AC_TRY_LINK(extern int _dns_ttl_;,return _dns_ttl_;,
471[AC_MSG_RESULT(yes)
472AC_DEFINE(LIBRESOLV_DNS_TTL_HACK)],
473AC_MSG_RESULT(no))
474
090089c4 475dnl Need the debugging version of malloc if available
476XTRA_OBJS=''
77f675ad 477if test "$HAVE_LIBMALLOC" = "yes" ; then
090089c4 478 if test -r /usr/lib/debug/malloc.o ; then
479 XTRA_OBJS="$XTRA_OBJS /usr/lib/debug/malloc.o"
480 fi
481 if test -r /usr/lib/debug/mallocmap.o ; then
482 XTRA_OBJS="$XTRA_OBJS /usr/lib/debug/mallocmap.o"
483 fi
484fi
485AC_SUBST(XTRA_OBJS)
486
6716b242 487XTRA_LIBS="$LIBS"
488LIBS=''
090089c4 489AC_SUBST(XTRA_LIBS)
490
090089c4 491
492dnl Clean up after OSF/1 core dump bug
493rm -f core
494
495AC_OUTPUT(\
0992a350 496 ./makefile \
090089c4 497 ./lib/Makefile \
a26bdc75 498 ./include/config.h \
090089c4 499 ./scripts/Makefile \
500 ./scripts/RunCache \
501 ./scripts/RunAccel \
a26bdc75 502 ./src/Makefile \
983061ed 503 ./src/squid.conf.pre \
e550e8b6 504 ./contrib/Makefile \
090089c4 505)