dnl dnl Configuration input file for Squid dnl dnl Duane Wessels, wessels@nlanr.net, February 1996 (autoconf v2.9) dnl dnl $Id: configure.in,v 1.83 1997/11/21 00:29:32 wessels Exp $ dnl dnl dnl AC_INIT(src/main.c) AC_CONFIG_HEADER(include/autoconf.h) AC_REVISION($Revision: 1.83 $)dnl AC_PREFIX_DEFAULT(/usr/local/squid) AC_CONFIG_AUX_DIR(aux) AC_CANONICAL_HOST CRYPTLIB='' REGEXLIB='' # -lregex LIBREGEX='' # libregex.a dnl use directory structure of cached as default (hack) if test "$libexecdir" = '${exec_prefix}/libexec'; then libexecdir='${bindir}' localstatedir='${prefix}' fi if test -z "$CACHE_HTTP_PORT"; then CACHE_HTTP_PORT="3128" fi if test -z "$CACHE_ICP_PORT"; then CACHE_ICP_PORT="3130" fi dnl Subsitutions AC_SUBST(CACHE_HTTP_PORT) AC_SUBST(CACHE_ICP_PORT) AC_DEFINE_UNQUOTED(CONFIG_HOST_TYPE, "$host") dnl Set default LDFLAGS if test -z "$LDFLAGS"; then LDFLAGS="-g" fi PRESET_CFLAGS="$CFLAGS" dnl Check for GNU cc AC_PROG_CC dnl Warn if not using GNU cc dnl if test $ac_cv_prog_gcc = no; then dnl echo '**************************************************************'; dnl echo '**************************************************************'; dnl echo '**'; dnl echo '** WARNING: Squid is only guaranteed to compile with GNU cc.'; dnl echo "** Currently, you're using $CC"; dnl echo '**'; dnl echo '**************************************************************'; dnl echo '**************************************************************'; dnl sleep 5 dnl fi dnl Gerben Wierda case "$host" in mab-next-nextstep3) CC="$CC -arch m68k -arch i486 -arch hppa -arch sparc" ;; esac dnl Set Default CFLAGS if test -z "$PRESET_CFLAGS"; then if test "$GCC" = "yes"; then case "$host" in *-sun-sunos*|*m88k*) # sunos has too many warnings for this to be useful # motorola too ;; *) CFLAGS="$CFLAGS -Wall" ;; esac fi fi dnl Set LDFLAGS if test -z "$PRESET_LDFLAGS"; then if test "$GCC" = "yes"; then case "$host" in *) # nothing ;; esac fi fi dnl Check for programs AC_PROG_CPP AC_PROG_INSTALL AC_PROG_RANLIB AC_PROG_LN_S AC_PATH_PROG(SH, sh, /bin/sh) AC_PATH_PROG(FALSE, false, /usr/bin/false) AC_PATH_PROG(TRUE, true, /usr/bin/true) AC_PATH_PROG(RM, rm, $FALSE) AC_PATH_PROG(MV, mv, $FALSE) AC_PATH_PROG(MKDIR, mkdir, $FALSE) AC_PATH_PROG(LN, ln, cp) AC_PATH_PROG(PERL, perl, /usr/local/bin/perl) AC_PATH_PROG(MAKEDEPEND, makedepend, $TRUE) AC_PATH_PROG(AR, ar, $FALSE) case "$host" in *-hp-hpux*) echo "Disabling 'ranlib' for HP-UX..." RANLIB=":" ;; esac dnl set $(AR) AR_R="$AR r" case "$host" in *-next-nextstep3) AR="libtool -o" ;; esac AC_SUBST(AR_R) dnl Check for headers AC_HEADER_DIRENT AC_HEADER_STDC AC_CHECK_HEADERS( \ alloca.h \ arpa/inet.h \ arpa/nameser.h \ assert.h \ bstring.h \ config.h \ crypt.h \ ctype.h \ errno.h \ fcntl.h \ getopt.h \ gnumalloc.h \ grp.h \ libc.h \ limits.h \ malloc.h \ math.h \ memory.h \ netdb.h \ netinet/in.h \ netinet/tcp.h \ poll.h \ pwd.h \ regex.h \ resolv.h \ signal.h \ stdarg.h \ stddef.h \ stdio.h \ stdlib.h \ string.h \ strings.h \ sys/file.h \ sys/param.h \ sys/resource.h \ sys/select.h\ sys/socket.h \ sys/stat.h \ sys/syscall.h \ sys/time.h \ sys/types.h \ sys/un.h \ sys/wait.h \ syslog.h \ time.h \ unistd.h \ varargs.h \ ) AC_C_CONST AC_C_BIGENDIAN AC_MSG_CHECKING(if ANSI prototypes work) AC_TRY_COMPILE([int foo(char *); int foo (char *bar) {return 1;}], [foo("bar")], [AC_DEFINE(HAVE_ANSI_PROTOTYPES) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no)) AC_MSG_CHECKING(for tm->tm_gmtoff) AC_TRY_COMPILE([#include #include ], [struct tm foo; foo.tm_gmtoff = 0;], [AC_DEFINE(HAVE_TM_GMTOFF) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no)) AC_MSG_CHECKING(for extended mallinfo) AC_TRY_COMPILE([#include #include ], [struct mallinfo foo; foo.mxfast = 0;], [AC_DEFINE(HAVE_EXT_MALLINFO) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no)) AC_MSG_CHECKING(for ip->ip_hl) AC_TRY_COMPILE([#include #include #include #include #ifdef __linux__ #define ip_hl ihl #endif #ifndef __linux__ #define iphdr ip #endif], [struct iphdr ip; ip.ip_hl= 0;], [AC_DEFINE(HAVE_IP_HL) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no)) dnl Check for typedefs AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) dnl Check for special functions AC_FUNC_ALLOCA AC_CHECK_TYPE(pid_t, int) AC_CHECK_TYPE(size_t, unsigned int) AC_CHECK_TYPE(ssize_t, int) AC_CHECK_TYPE(off_t, int) AC_CHECK_TYPE(mode_t, u_short) dnl Check for needed libraries AC_CHECK_LIB(nsl, main) AC_CHECK_LIB(socket, main) AC_CHECK_LIB(gnumalloc, main) if test "$ac_cv_lib_gnumalloc_main" = "no"; then case "$host" in *-sun-solaris*) echo "skipping libmalloc check for $host" ;; i386-*-freebsd*) echo "skipping libmalloc check for $host" ;; *) AC_CHECK_LIB(malloc, main) ;; esac fi AC_CHECK_LIB(bsd, main) AC_CHECK_LIB(regex, main, [REGEXLIB="-lregex"]) AC_CHECK_LIB(resolv, inet_aton, AC_CHECK_LIB(44bsd, inet_aton)) AC_CHECK_LIB(resolv, main) AC_CHECK_LIB(m, main) dnl Check for libcrypt dnl We use crypt(3) which may be in libc, or in libcrypt (eg FreeBSD) AC_CHECK_LIB(crypt, crypt, [CRYPTLIB="-lcrypt"]) AC_SUBST(CRYPTLIB) dnl System-specific library modifications dnl case "$host" in i386-*-solaris2.*) if test "$GCC" = "yes"; then echo "Removing -O for gcc on $host" CFLAGS="`echo $CFLAGS | sed -e 's/-O[[0-9]]*//'`" fi ;; *-sgi-irix*) echo "Removing -lsocket for IRIX..." LIBS=`echo $LIBS | sed -e s/-lsocket//` echo "Removing -lnsl for IRIX..." LIBS=`echo $LIBS | sed -e s/-lnsl//` echo "Removing -lbsd for IRIX..." LIBS=`echo $LIBS | sed -e s/-lbsd//` ;; dnl From: c0032033@ws.rz.tu-bs.de (Joerg Schumacher) dnl Date: Thu, 17 Oct 1996 04:09:30 +0200 dnl Please change your configure script. AIX doesn't need -lbsd. *-ibm-aix*) echo "Removing -lbsd for AIX..." LIBS=`echo $LIBS | sed -e s/-lbsd//` ;; *m88k*) CFLAGS="$CFLAGS -D_SQUID_MOTOROLA_" AC_DEFINE(GETTIMEOFDAY_NO_TZP) ;; [*-*-solaris2.[0-4]]) AC_DEFINE(GETTIMEOFDAY_NO_TZP) ;; esac # Recommended by Balint Nagy Endre case "$host" in *-univel-sysv4.2MP) if test `uname -v` = "2.03"; then echo "disabling mallinfo for $host" ac_cv_func_mallinfo=no fi ;; esac dnl Check for library functions AC_CHECK_FUNCS(\ bcopy \ fchmod \ getdtablesize \ getrusage \ getspnam \ lrand48 \ mallinfo \ mallocblksize \ mallopt \ memcpy \ memmove \ mktime \ mstats \ poll \ random \ regcomp \ regexec \ regfree \ res_init \ seteuid \ setpgrp \ setresuid \ setrlimit \ setsid \ sigaction \ snprintf \ srand48 \ srandom \ sysconf \ syslog \ tempnam \ timegm \ vsnprintf \ ) case "$host" in [alpha-dec-osf3.*]) # John Kay (jkay@nlanr.net) 19970818 echo "Disabling poll() for $host..." ac_cv_func_poll="no" ;; esac AC_MSG_CHECKING(if GNUregex needs to be compiled) if test "$ac_cv_func_regcomp" = "no" ; then USE_GNUREGEX="yes" else USE_GNUREGEX="no" fi case "$host" in [*-sun-solaris2.[0-4]]) USE_GNUREGEX="yes" ;; [*-next-nextstep*]) USE_GNUREGEX="yes" ;; esac AC_MSG_RESULT($USE_GNUREGEX) if test "$USE_GNUREGEX" = "yes"; then REGEXLIB="-lregex" LIBREGEX="libregex.a" AC_DEFINE(USE_GNUREGEX) fi AC_SUBST(REGEXLIB) AC_SUBST(LIBREGEX) AC_REPLACE_FUNCS(\ tempnam \ strerror \ ) AC_MSG_CHECKING(Default FD_SETSIZE value) AC_TRY_RUN([ #if HAVE_STDIO_H #include #endif #if HAVE_UNISTD_H #include #endif #if HAVE_SYS_TIME_H #include #endif #if HAVE_SYS_SELECT_H #include #endif #if HAVE_SYS_TYPES_H #include #endif main() { fprintf (fopen("conftestval", "w"), "%d\n", FD_SETSIZE); exit(0); } ], DEFAULT_FD_SETSIZE=`cat conftestval`, DEFAULT_FD_SETSIZE=256, DEFAULT_FD_SETSIZE=256) AC_MSG_RESULT($DEFAULT_FD_SETSIZE) AC_DEFINE_UNQUOTED(DEFAULT_FD_SETSIZE, $DEFAULT_FD_SETSIZE) AC_MSG_CHECKING(Maximum number of filedescriptors we can open) AC_TRY_RUN([ #include #include #include /* needed on FreeBSD */ #include #include main() { int i,j; #if HAVE_SETRLIMIT struct rlimit rl; #if defined(RLIMIT_NOFILE) if (getrlimit(RLIMIT_NOFILE, &rl) < 0) { perror("getrlimit: RLIMIT_NOFILE"); } else { rl.rlim_cur = rl.rlim_max; /* set it to the max */ if (setrlimit(RLIMIT_NOFILE, &rl) < 0) { perror("setrlimit: RLIMIT_NOFILE"); } } #elif defined(RLIMIT_OFILE) if (getrlimit(RLIMIT_OFILE, &rl) < 0) { perror("getrlimit: RLIMIT_OFILE"); } else { rl.rlim_cur = rl.rlim_max; /* set it to the max */ if (setrlimit(RLIMIT_OFILE, &rl) < 0) { perror("setrlimit: RLIMIT_OFILE"); } } #endif /* RLIMIT_NOFILE */ #endif /* HAVE_SETRLIMIT */ #if HAVE_SYSCONF && defined(_SC_OPEN_MAX) i = sysconf(_SC_OPEN_MAX); #elif HAVE_GETDTABLESIZE && !defined(__linux__) i = getdtablesize(); #elif defined(OPEN_MAX) i = OPEN_MAX; #elif defined(NOFILE) i = NOFILE; #elif defined(_NFILE) i = _NFILE; #else while((j=open("/dev/null", 0)) > 0) i=j; close(i); close(i-1); i++; #endif fprintf (fopen("conftestval", "w"), "%d\n", i); exit(0); } ], SQUID_MAXFD=`cat conftestval`, SQUID_MAXFD=256, SQUID_MAXFD=256) AC_MSG_RESULT($SQUID_MAXFD) AC_DEFINE_UNQUOTED(SQUID_MAXFD, $SQUID_MAXFD) AC_MSG_CHECKING(Default UDP send buffer size) AC_TRY_RUN([ #include #include #include #include #include main () { int fd,val=0,len=sizeof(int); if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) exit(1); if (getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &val, &len) < 0) exit(1); if (val<=0) exit(1); fprintf (fopen("conftestval", "w"), "%d\n", val); exit(0); } ], SQUID_UDP_SO_SNDBUF=`cat conftestval`, SQUID_UDP_SO_SNDBUF=16384, SQUID_UDP_SO_SNDBUF=16384) AC_MSG_RESULT($SQUID_UDP_SO_SNDBUF) AC_DEFINE_UNQUOTED(SQUID_UDP_SO_SNDBUF, $SQUID_UDP_SO_SNDBUF) AC_MSG_CHECKING(Default UDP receive buffer size) AC_TRY_RUN([ #include #include #include #include #include main () { int fd,val=0,len=sizeof(int); if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) exit(1); if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &val, &len) < 0) exit(1); if (val <= 0) exit(1); fprintf (fopen("conftestval", "w"), "%d\n", val); exit(0); } ], SQUID_UDP_SO_RCVBUF=`cat conftestval`, SQUID_UDP_SO_RCVBUF=16384, SQUID_UDP_SO_RCVBUF=16384) AC_MSG_RESULT($SQUID_UDP_SO_RCVBUF) AC_DEFINE_UNQUOTED(SQUID_UDP_SO_RCVBUF, $SQUID_UDP_SO_RCVBUF) AC_MSG_CHECKING(Default TCP send buffer size) AC_TRY_RUN([ #include #include #include #include #include main () { int fd,val=0,len=sizeof(int); if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) exit(1); if (getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &val, &len) < 0) exit(1); if (val <= 0) exit(1); fprintf (fopen("conftestval", "w"), "%d\n", val); exit(0); } ], SQUID_TCP_SO_SNDBUF=`cat conftestval`, SQUID_TCP_SO_SNDBUF=16384, SQUID_TCP_SO_SNDBUF=16384) AC_MSG_RESULT($SQUID_TCP_SO_SNDBUF) AC_DEFINE_UNQUOTED(SQUID_TCP_SO_SNDBUF, $SQUID_TCP_SO_SNDBUF) AC_MSG_CHECKING(Default TCP receive buffer size) AC_TRY_RUN([ #include #include #include #include #include main () { int fd,val=0,len=sizeof(int); if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) exit(1); if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &val, &len) < 0) exit(1); if (val <= 0) exit(1); fprintf (fopen("conftestval", "w"), "%d\n", val); exit(0); } ], SQUID_TCP_SO_RCVBUF=`cat conftestval`, SQUID_TCP_SO_RCVBUF=16384, SQUID_TCP_SO_RCVBUF=16384) AC_MSG_RESULT($SQUID_TCP_SO_RCVBUF) AC_DEFINE_UNQUOTED(SQUID_TCP_SO_RCVBUF, $SQUID_TCP_SO_RCVBUF) AC_MSG_CHECKING(if sys_errlist[] is already defined) AC_TRY_COMPILE([#include ], [char *s = sys_errlist[0];], AC_MSG_RESULT(yes), [AC_MSG_RESULT(no) AC_DEFINE(NEED_SYS_ERRLIST)]) AC_MSG_CHECKING(for libresolv _dns_ttl_ hack) AC_TRY_LINK(extern int _dns_ttl_;,return _dns_ttl_;, [AC_MSG_RESULT(yes) AC_DEFINE(LIBRESOLV_DNS_TTL_HACK)], AC_MSG_RESULT(no)) dnl Need the debugging version of malloc if available XTRA_OBJS='' if test "$ac_cv_lib_malloc_main" = "yes" ; then if test -r /usr/lib/debug/malloc.o ; then XTRA_OBJS="$XTRA_OBJS /usr/lib/debug/malloc.o" fi if test -r /usr/lib/debug/mallocmap.o ; then XTRA_OBJS="$XTRA_OBJS /usr/lib/debug/mallocmap.o" fi fi SNMPLIB='libsnmp.a' AC_SUBST(SNMPLIB) AC_SUBST(XTRA_OBJS) if test -z "$XTRA_LIBS"; then XTRA_LIBS="$LIBS" LIBS='' fi AC_SUBST(XTRA_LIBS) dnl Clean up after OSF/1 core dump bug rm -f core AC_OUTPUT(\ ./makefile \ ./lib/Makefile \ ./include/config.h \ ./scripts/Makefile \ ./scripts/RunCache \ ./scripts/RunAccel \ ./src/Makefile \ ./contrib/Makefile \ ./snmplib/Makefile \ ./icons/Makefile \ ./errors/Makefile \ )