]> git.ipfire.org Git - thirdparty/squid.git/blob - configure.in
Added anonymizer patch from Lutz Donnerhacke <lutz@iks-jena.de>
[thirdparty/squid.git] / configure.in
1 dnl
2 dnl Configuration input file for Squid
3 dnl
4 dnl Duane Wessels, wessels@nlanr.net, February 1996 (autoconf v2.9)
5 dnl
6 dnl $Id: configure.in,v 1.60 1996/12/05 21:24:56 wessels Exp $
7 dnl
8 dnl
9 dnl
10 AC_INIT(src/main.c)
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)
15
16 AC_CANONICAL_HOST
17
18 CRYPTLIB=''
19 REGEXLIB='' # -lregex
20 LIBREGEX='' # libregex.a
21
22 dnl use directory structure of cached as default (hack)
23 if test "$libexecdir" = '${exec_prefix}/libexec'; then
24 libexecdir='${bindir}'
25 localstatedir='${prefix}'
26
27 fi
28
29 if test -z "$CACHE_HTTP_PORT"; then
30 CACHE_HTTP_PORT="3128"
31 fi
32 if test -z "$CACHE_ICP_PORT"; then
33 CACHE_ICP_PORT="3130"
34 fi
35
36 dnl Subsitutions
37 AC_SUBST(CACHE_HTTP_PORT)
38 AC_SUBST(CACHE_ICP_PORT)
39
40 AC_DEFINE_UNQUOTED(CONFIG_HOST_TYPE, "$host")
41
42 dnl Set default LDFLAGS
43 if test -z "$LDFLAGS"; then
44 LDFLAGS="-g"
45 fi
46
47 PRESET_CFLAGS="$CFLAGS"
48
49 dnl Check for GNU cc
50 AC_PROG_CC
51
52 dnl Warn if not using GNU cc
53 if test $ac_cv_prog_gcc = no; then
54 echo '**************************************************************';
55 echo '**************************************************************';
56 echo '**';
57 echo '** WARNING: Squid is only guaranteed to compile with GNU cc.';
58 echo "** Currently, you're using $CC";
59 echo '**';
60 echo '**************************************************************';
61 echo '**************************************************************';
62 sleep 5
63 fi
64
65 dnl Set Default CFLAGS
66 if 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
79 case "$host" in
80 *-hp-hpux*)
81 echo "Disabling 'ranlib' for HP-UX..."
82 RANLIB=":"
83 ;;
84 esac
85 fi
86
87 dnl Set LDFLAGS
88 if test -z "$PRESET_LDFLAGS"; then
89 if test "$GCC" = "yes"; then
90 case "$host" in
91 *)
92 # nothing
93 ;;
94 esac
95 fi
96 fi
97
98 dnl Check for programs
99 AC_PROG_CPP
100 AC_PROG_INSTALL
101 AC_PROG_RANLIB
102 AC_PROG_LN_S
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)
111
112
113 dnl Check for headers
114 AC_HEADER_DIRENT
115 AC_HEADER_STDC
116
117
118 AC_CHECK_HEADERS( \
119 alloca.h \
120 arpa/inet.h \
121 arpa/nameser.h \
122 bstring.h \
123 config.h \
124 crypt.h \
125 ctype.h \
126 errno.h \
127 fcntl.h \
128 getopt.h \
129 grp.h \
130 libc.h \
131 malloc.h \
132 memory.h \
133 netdb.h \
134 netinet/in.h \
135 netinet/tcp.h \
136 poll.h \
137 pwd.h \
138 regex.h \
139 resolv.h \
140 shadow.h \
141 signal.h \
142 stdarg.h \
143 stddef.h \
144 stdio.h \
145 stdlib.h \
146 string.h \
147 strings.h \
148 sys/file.h \
149 sys/param.h \
150 sys/resource.h \
151 sys/select.h\
152 sys/socket.h \
153 sys/stat.h \
154 sys/syscall.h \
155 sys/time.h \
156 sys/types.h \
157 sys/un.h \
158 sys/wait.h \
159 syslog.h \
160 time.h \
161 unistd.h \
162 varargs.h \
163 )
164
165 AC_C_CONST
166
167 AC_MSG_CHECKING(if ANSI prototypes work)
168 AC_TRY_COMPILE([int foo(char *); int foo (char *bar) {return 1;}],
169 [foo("bar")],
170 [AC_DEFINE(HAVE_ANSI_PROTOTYPES)
171 AC_MSG_RESULT(yes)],
172 AC_MSG_RESULT(no))
173
174 AC_MSG_CHECKING(for tm->tm_gmtoff)
175 AC_TRY_COMPILE([#include <time.h>
176 #include <sys/time.h>],
177 [struct tm foo;
178 foo.tm_gmtoff = 0;],
179 [AC_DEFINE(HAVE_TM_GMTOFF)
180 AC_MSG_RESULT(yes)],
181 AC_MSG_RESULT(no))
182
183 AC_MSG_CHECKING(for extended mallinfo)
184 AC_TRY_COMPILE([#include <sys/types.h>
185 #include <malloc.h>],
186 [struct mallinfo foo;
187 foo.mxfast = 0;],
188 [AC_DEFINE(HAVE_EXT_MALLINFO)
189 AC_MSG_RESULT(yes)],
190 AC_MSG_RESULT(no))
191
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>],
197 [struct ip ip;
198 ip.ip_hl= 0;],
199 [AC_DEFINE(HAVE_IP_HL)
200 AC_MSG_RESULT(yes)],
201 AC_MSG_RESULT(no))
202
203 dnl Check for typedefs
204 AC_CHECK_SIZEOF(int)
205 AC_CHECK_SIZEOF(long)
206
207 dnl Check for special functions
208 AC_FUNC_ALLOCA
209
210 AC_CHECK_TYPE(pid_t, int)
211 AC_CHECK_TYPE(size_t, int)
212 AC_CHECK_TYPE(off_t, int)
213
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
219 case "$host" in
220 *-sun-solaris*)
221 echo "skipping libmalloc check for $host"
222 ;;
223 i386-*-freebsd*)
224 echo "skipping libmalloc check for $host"
225 ;;
226 *)
227 AC_CHECK_LIB(malloc, main)
228 ;;
229 esac
230 fi
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)
235
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"])
239 AC_SUBST(CRYPTLIB)
240
241 dnl Check for libshadow which is needed by the shadow password suite
242 AC_CHECK_LIB(shadow, main)
243
244 dnl System-specific library modifications
245 dnl
246 case "$host" in
247 i386-*-solaris2.?)
248 if test "$GCC" = "yes"; then
249 echo "Removing -O for gcc on $host"
250 CFLAGS="`echo $CFLAGS | sed -e s/-O//`"
251 fi
252 ;;
253 *-sgi-irix*)
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//`
260 ;;
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.
264 *-ibm-aix*)
265 echo "Removing -lbsd for AIX..."
266 LIBS=`echo $LIBS | sed -e s/-lbsd//`
267 ;;
268 *m88k*)
269 CFLAGS="$CFLAGS -D_SQUID_MOTOROLA_"
270 AC_DEFINE(GETTIMEOFDAY_NO_TZP)
271 ;;
272 [*-*-solaris2.[0-4]])
273 AC_DEFINE(GETTIMEOFDAY_NO_TZP)
274 ;;
275 esac
276
277 dnl Check for library functions
278 AC_CHECK_FUNCS(\
279 bcopy \
280 getdtablesize \
281 getrusage \
282 getspnam \
283 lrand48 \
284 mallinfo \
285 mallocblksize \
286 mallopt \
287 memcpy \
288 memmove \
289 mktime \
290 poll \
291 pw_encrypt \
292 regcomp \
293 regexec \
294 regfree \
295 res_init \
296 seteuid \
297 setpgrp \
298 setresuid \
299 setrlimit \
300 setsid \
301 sigaction \
302 srand48 \
303 strerror \
304 sysconf \
305 syslog \
306 tempnam \
307 timegm \
308 )
309
310 AC_MSG_CHECKING(if GNUregex needs to be compiled)
311 if test "$ac_cv_func_regcomp" = "no" ; then
312 COMPILE_GNUREGEX="yes"
313 else
314 COMPILE_GNUREGEX="no"
315 fi
316 case "$host" in
317 [*-sun-solaris2.[0-4]])
318 COMPILE_GNUREGEX="yes"
319 ;;
320 esac
321 AC_MSG_RESULT($COMPILE_GNUREGEX)
322 if test "$COMPILE_GNUREGEX" = "yes"; then
323 REGEXLIB="-lregex"
324 LIBREGEX="libregex.a"
325 fi
326 AC_SUBST(REGEXLIB)
327 AC_SUBST(LIBREGEX)
328
329 AC_REPLACE_FUNCS(\
330 tempnam \
331 )
332
333 AC_MSG_CHECKING(Maximum number of filedescriptors we can open)
334 AC_TRY_RUN([
335 #include <stdio.h>
336 #include <unistd.h>
337 #include <sys/time.h> /* needed on FreeBSD */
338 #include <sys/param.h>
339 #include <sys/resource.h>
340 main() {
341 int i,j;
342 #if HAVE_SETRLIMIT
343 struct rlimit rl;
344 #if defined(RLIMIT_NOFILE)
345 if (getrlimit(RLIMIT_NOFILE, &rl) < 0) {
346 perror("getrlimit: RLIMIT_NOFILE");
347 } else {
348 rl.rlim_cur = rl.rlim_max; /* set it to the max */
349 if (setrlimit(RLIMIT_NOFILE, &rl) < 0) {
350 perror("setrlimit: RLIMIT_NOFILE");
351 }
352 }
353 #elif defined(RLIMIT_OFILE)
354 if (getrlimit(RLIMIT_OFILE, &rl) < 0) {
355 perror("getrlimit: RLIMIT_OFILE");
356 } else {
357 rl.rlim_cur = rl.rlim_max; /* set it to the max */
358 if (setrlimit(RLIMIT_OFILE, &rl) < 0) {
359 perror("setrlimit: RLIMIT_OFILE");
360 }
361 }
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__)
367 i = getdtablesize();
368 #elif defined(OPEN_MAX)
369 i = OPEN_MAX;
370 #elif defined(NOFILE)
371 i = NOFILE;
372 #elif defined(_NFILE)
373 i = _NFILE;
374 #else
375 while((j=open("/dev/null", 0)) > 0) i=j;
376 close(i); close(i-1);
377 i++;
378 #endif
379 fprintf (fopen("conftestval", "w"), "%d\n", i);
380 exit(0);
381 }
382 ],
383 SQUID_MAXFD=`cat conftestval`,
384 SQUID_MAXFD=256,
385 SQUID_MAXFD=256)
386 AC_MSG_RESULT($SQUID_MAXFD)
387 AC_DEFINE_UNQUOTED(SQUID_MAXFD, $SQUID_MAXFD)
388
389 AC_MSG_CHECKING(Default UDP send buffer size)
390 AC_TRY_RUN([
391 #include <stdlib.h>
392 #include <stdio.h>
393 #include <sys/types.h>
394 #include <sys/socket.h>
395 #include <netinet/in.h>
396 main ()
397 {
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);
401 if (val<=0) exit(1);
402 fprintf (fopen("conftestval", "w"), "%d\n", val);
403 exit(0);
404 }
405 ],
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)
411
412 AC_MSG_CHECKING(Default UDP receive buffer size)
413 AC_TRY_RUN([
414 #include <stdlib.h>
415 #include <stdio.h>
416 #include <sys/types.h>
417 #include <sys/socket.h>
418 #include <netinet/in.h>
419 main ()
420 {
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);
426 exit(0);
427 }
428 ],
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)
434
435 AC_MSG_CHECKING(Default TCP send buffer size)
436 AC_TRY_RUN([
437 #include <stdlib.h>
438 #include <stdio.h>
439 #include <sys/types.h>
440 #include <sys/socket.h>
441 #include <netinet/in.h>
442 main ()
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 ],
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)
457
458 AC_MSG_CHECKING(Default TCP receive buffer size)
459 AC_TRY_RUN([
460 #include <stdlib.h>
461 #include <stdio.h>
462 #include <sys/types.h>
463 #include <sys/socket.h>
464 #include <netinet/in.h>
465 main ()
466 {
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);
472 exit(0);
473 }
474 ],
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)
480
481 AC_MSG_CHECKING(if sys_errlist[] is already defined)
482 AC_TRY_COMPILE([#include <stdio.h>],
483 [char *s = sys_errlist[0];],
484 AC_MSG_RESULT(yes),
485 [AC_MSG_RESULT(no)
486 AC_DEFINE(NEED_SYS_ERRLIST)])
487
488 AC_MSG_CHECKING(for libresolv _dns_ttl_ hack)
489 AC_TRY_LINK(extern int _dns_ttl_;,return _dns_ttl_;,
490 [AC_MSG_RESULT(yes)
491 AC_DEFINE(LIBRESOLV_DNS_TTL_HACK)],
492 AC_MSG_RESULT(no))
493
494 dnl Need the debugging version of malloc if available
495 XTRA_OBJS=''
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"
499 fi
500 if test -r /usr/lib/debug/mallocmap.o ; then
501 XTRA_OBJS="$XTRA_OBJS /usr/lib/debug/mallocmap.o"
502 fi
503 fi
504 AC_SUBST(XTRA_OBJS)
505
506 if test -z "$XTRA_LIBS"; then
507 XTRA_LIBS="$LIBS"
508 LIBS=''
509 fi
510 AC_SUBST(XTRA_LIBS)
511
512 dnl Clean up after OSF/1 core dump bug
513 rm -f core
514
515 AC_OUTPUT(\
516 ./makefile \
517 ./lib/Makefile \
518 ./include/config.h \
519 ./scripts/Makefile \
520 ./scripts/RunCache \
521 ./scripts/RunAccel \
522 ./src/Makefile \
523 ./src/squid.conf.pre \
524 ./contrib/Makefile \
525 )