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.167.2.13 1999/04/21 03:36:01 wessels Exp $ dnl dnl dnl AC_INIT(src/main.c) AC_CONFIG_HEADER(include/autoconf.h) AC_REVISION($Revision: 1.167.2.13 $)dnl AC_PREFIX_DEFAULT(/usr/local/squid) AC_CONFIG_AUX_DIR(cfgaux) 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 dnl use .exe suffix for executables on cygwin32 platform case "$host_os" in cygwin32|os2) exec_suffix=".exe" cgi_suffix=".exe" ;; *) exec_suffix="" cgi_suffix=".cgi" ;; esac AC_SUBST(exec_suffix) AC_SUBST(cgi_suffix) 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 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*) # sunos has too many warnings for this to be useful # motorola too ;; *m88k*) # Motorola cc/ld does not like -02 but is ok on -O CFLAGS=`echo $CFLAGS | sed -e 's/-O[0-9]/-O/'` ;; *) CFLAGS="$CFLAGS -Wall" ;; esac else case "$host" in *mips-sgi-irix6.4*) # suggested by Rafael Seidl CFLAGS="$CFLAGS -n32 -mips4 -O3 -OPT:Olimit=0:space=OFF \ -woff 1009,1014,1048,1110,1116,1185,1188,1204,1230,1233 \ -Wl,-woff,85,-woff,84,-woff,134 \ -nostdinc -I/usr/include -D_BSD_SIGNALS" ;; alpha-dec-osf4.*) # Mogul says DEC compilers take both -g and -O2 CFLAGS=`echo $CFLAGS | sed -e 's/-g/-g3/'` CFLAGS="$CFLAGS -O2" ;; *) ;; esac fi fi dnl Set LDFLAGS if test -z "$PRESET_LDFLAGS"; then if test "$GCC" = "yes"; then case "$host" in *) # nothing ;; esac else case "$host" in *mips-sgi-irix6.4*) # suggested by Rafael Seidl LDFLAGS="-n32 -mips4 -nostdlib -L/usr/lib32" ;; esac fi fi if test "x$ac_cv_enabled_dlmalloc" = "x"; then case "$host" in i386-*-solaris2.*) echo "Enabling dlmalloc for $host" ac_cv_enabled_dlmalloc="yes" ;; esac fi dnl Enable optional modules AC_ARG_ENABLE(dlmalloc, [ --enable-dlmalloc[=LIB] Compile & use the malloc package by Doug Lea], [ if test "x$ac_cv_enabled_dlmalloc" = "xyes"; then # Ok. dlmalloc was enabled before, but state may be changed. # we have to test these again unset ac_cv_func_mallinfo unset ac_cv_func_mallocblksize unset ac_cv_func_free unset ac_cv_func_realloc unset ac_cv_func_memalign unset ac_cv_func_valloc unset ac_cv_func_pvalloc unset ac_cv_func_calloc unset ac_cv_func_cfree unset ac_cv_func_malloc_trim unset ac_cv_func_malloc_usable_size unset ac_cv_func_malloc_stats unset ac_cv_func_mallinfo unset ac_cv_func_mallopt unset ac_cv_lib_gnumalloc unset ac_cv_header_gnumalloc_h unset ac_cv_lib_malloc unset ac_cv_enabled_dlmalloc fi case "$enableval" in 'yes') LIBDLMALLOC="libdlmalloc.a" LIB_MALLOC="-L../lib -ldlmalloc" ac_cv_func_mallinfo="yes" ac_cv_func_mallocblksize="no" ac_cv_func_free="yes" ac_cv_func_realloc="yes" ac_cv_func_memalign="yes" ac_cv_func_valloc="yes" ac_cv_func_pvalloc="yes" ac_cv_func_calloc="yes" ac_cv_func_cfree="yes" ac_cv_func_malloc_trim="yes" ac_cv_func_malloc_usable_size="yes" ac_cv_func_malloc_stats="yes" ac_cv_func_mallinfo="yes" ac_cv_func_mallopt="yes" ac_cv_lib_gnumalloc="no" ac_cv_header_gnumalloc_h="no" ac_cv_lib_malloc="no" ac_cv_enabled_dlmalloc="yes" echo "dlmalloc build enabled" ;; 'no') # Disabled explicitly. echo "dlmalloc disabled." ;; *) # Use already installed dlmalloc library. LIB_MALLOC="${enableval}" ac_cv_func_mallinfo="yes" ac_cv_func_mallocblksize="no" ac_cv_func_free="yes" ac_cv_func_realloc="yes" ac_cv_func_memalign="yes" ac_cv_func_valloc="yes" ac_cv_func_pvalloc="yes" ac_cv_func_calloc="yes" ac_cv_func_cfree="yes" ac_cv_func_malloc_trim="yes" ac_cv_func_malloc_usable_size="yes" ac_cv_func_malloc_stats="yes" ac_cv_func_mallinfo="yes" ac_cv_func_mallopt="yes" ac_cv_lib_gnumalloc="no" ac_cv_header_gnumalloc_h="no" ac_cv_lib_malloc="no" ac_cv_enabled_dlmalloc="yes" echo "Use installed dlmalloc." ;; esac ],[ if test "x$ac_cv_enabled_dlmalloc" = "xyes"; then # Ok. dlmalloc was enabled before, but now disabled. # we have to test these again unset ac_cv_func_mallinfo unset ac_cv_func_mallocblksize unset ac_cv_func_free unset ac_cv_func_realloc unset ac_cv_func_memalign unset ac_cv_func_valloc unset ac_cv_func_pvalloc unset ac_cv_func_calloc unset ac_cv_func_cfree unset ac_cv_func_malloc_trim unset ac_cv_func_malloc_usable_size unset ac_cv_func_malloc_stats unset ac_cv_func_mallinfo unset ac_cv_func_mallopt unset ac_cv_lib_gnumalloc unset ac_cv_header_gnumalloc_h unset ac_cv_lib_malloc unset ac_cv_enabled_dlmalloc fi ]) AC_SUBST(LIBDLMALLOC) AC_SUBST(LIB_MALLOC) AC_ARG_ENABLE(gnuregex, [ --enable-gnuregex Compile GNUregex], [USE_GNUREGEX=$enableval]) AC_ARG_ENABLE(xmalloc_debug, [ --enable-xmalloc-debug Do some simple malloc debugging], [ if test "$enableval" = "yes" ; then echo "Malloc debugging enabled" AC_DEFINE(XMALLOC_DEBUG) fi ]) AC_ARG_ENABLE(xmalloc_debug_trace, [ --enable-xmalloc-debug-trace Detailed trace of memory allocations], [ if test "$enableval" = "yes" ; then echo "Malloc debug trace enabled" AC_DEFINE(XMALLOC_TRACE) AC_DEFINE(XMALLOC_DEBUG) fi ]) AC_ARG_ENABLE(xmalloc_statistics, [ --enable-xmalloc-statistics Show malloc statistics in status page], [ if test "$enableval" = "yes" ; then echo "Malloc statistics enabled" AC_DEFINE(XMALLOC_STATISTICS) fi ]) AC_ARG_ENABLE(carp, [ --enable-carp Enable CARP support], [ if test "$enableval" = "yes" ; then echo "CARP support enabled" AC_DEFINE(USE_CARP) fi ]) AC_ARG_ENABLE(async_io, [ --enable-async-io Do ASYNC disk I/O using threads], [ if test "$enableval" = "yes" ; then echo "Async I/O enabled" async_io=yes AC_DEFINE(USE_ASYNC_IO) ASYNC_OBJS='$(ASYNC_OBJS)' SQUID_PTHREAD_LIB='$(PTHREADLIB)' CFLAGS="$CFLAGS -D_REENTRANT" case "$host" in i386-unknown-freebsd*) if test "$GCC" = "yes" ; then if test -z "$PRESET_LDFLAGS"; then LDFLAGS="$LDFLAGS -pthread" fi fi ;; esac fi ]) AC_SUBST(ASYNC_OBJS) AC_SUBST(SQUID_PTHREAD_LIB) AC_ARG_ENABLE(icmp, [ --enable-icmp Enable ICMP pinging], [ if test "$enableval" = "yes" ; then echo "ICMP enabled" AC_DEFINE(USE_ICMP) fi ]) AC_ARG_ENABLE(delay_pools, [ --enable-delay-pools Enable delay pools to limit bandwith usage], [ if test "$enableval" = "yes" ; then echo "Delay pools enabled" DELAY_OBJS='$(DELAY_OBJS)' AC_DEFINE(DELAY_POOLS) fi ]) AC_SUBST(DELAY_OBJS) AC_ARG_ENABLE(mem-gen-trace, [ --enable-mem-gen-trace Do trace of memory stuff], [ if test "$enableval" = "yes" ; then echo "Memory trace (to file) enabled" AC_DEFINE(MEM_GEN_TRACE) fi ]) AC_ARG_ENABLE(useragent_log, [ --enable-useragent-log Enable logging of User-Agent header], [ if test "$enableval" = "yes" ; then echo "User-Agent logging enabled" AC_DEFINE(USE_USERAGENT_LOG) fi ]) AC_ARG_ENABLE(kill_parent_hack, [ --enable-kill-parent-hack Kill parent on shutdown], [ if test "$enableval" = "yes" ; then echo "Kill parent on shutdown" AC_DEFINE(KILL_PARENT_OPT) fi ]) AC_ARG_ENABLE(snmp, [ --enable-snmp Enable SNMP monitoring], [ if test "$enableval" = "yes" ; then echo "SNMP monitoring enabled" AC_DEFINE(SQUID_SNMP) SNMPLIB='-L../snmplib -lsnmp' SNMP_OBJS='$(SNMP_OBJS)' SNMP_MAKEFILE=./snmplib/Makefile makesnmplib=snmplib fi ]) AC_SUBST(SNMPLIB) AC_SUBST(SNMP_OBJS) AC_SUBST(makesnmplib) AC_ARG_ENABLE(time_hack, [ --enable-time-hack Update internal timestamp only once per second], [ if test "$enableval" = "yes" ; then echo "Update internal timestamp only once per second" AC_DEFINE(ALARM_UPDATES_TIME) fi ]) AC_ARG_ENABLE(cachemgr_hostname, [ --enable-cachemgr-hostname[=hostname] Make cachemgr.cgi default to this host], [ case $enableval in yes) AC_DEFINE(CACHEMGR_HOSTNAME,[getfullhostname()]) echo "Cachemgr default hostname == host where cachemgr runs" ;; no) : # Nothing to do.. ;; *) AC_DEFINE_UNQUOTED(CACHEMGR_HOSTNAME,"${enableval}") echo "Cachemgr default hostname set to ${enableval}" ;; esac ]) AC_ARG_ENABLE(arp_acl, [ --enable-arp-acl Enable use of ARP ACL lists (ether address)], [ if test "$enableval" = "yes" ; then echo "ARP ACL lists enabled (ether address)" case "$host" in *-pc-linux-*) ;; *) echo "WARNING: ARP ACL support is only currently supported on Linux" echo " ethernet interfaces, probably won't work on $host." sleep 10 ;; esac AC_DEFINE(USE_ARP_ACL) fi ]) AC_ARG_ENABLE(htcp, [ --enable-htcp Enable HTCP protocol], [ if test "$enableval" = "yes" ; then echo "HTCP enabled" HTCP_OBJS='$(HTCP_OBJS)' AC_DEFINE(USE_HTCP) fi ]) AC_SUBST(HTCP_OBJS) AC_ARG_ENABLE(forw-via-db, [ --enable-forw-via-db Enable Forw/Via database], [ if test "$enableval" = "yes" ; then echo "FORW-VIA enabled" AC_DEFINE(FORW_VIA_DB) fi ]) AC_ARG_ENABLE(cache-digests, [ --enable-cache-digests Use Cache Digests see http://squid.nlanr.net/Squid/FAQ/FAQ-16.html], [ if test "$enableval" = "yes" ; then echo "USE_CACHE_DIGESTS enabled" AC_DEFINE(USE_CACHE_DIGESTS) fi ]) dnl Select Error language AC_ARG_ENABLE(err-language, [ --enable-err-language=lang Select language for Error pages (see errors dir) ], [ if test -d errors/$enableval; then ERR_LANGUAGE=$enableval else echo "ERROR! Unknown language $enableval, see errors/" exit 1 fi ],[ERR_LANGUAGE="English"]) AC_SUBST(ERR_LANGUAGE) dnl Enable poll() AC_ARG_ENABLE(poll, [ --enable-poll Enable poll() instead of select(). Normally poll is preferred over select, but configure knows poll is broken on some platforms. If you think you are smarter than the configure script, you may enable poll with this option. --disable-poll Disable the use of poll().], [ case "$enableval" in yes) echo "Forcing poll() to be enabled" ac_cv_func_poll='yes' ;; no) echo "Forcing poll() to be disabled" ac_cv_func_poll='no' ;; esac ]) dnl Disable HTTP violations AC_ARG_ENABLE(http-violations, [ --disable-http-violations This allows you to remove code which is known to violate the HTTP protocol specification.], [ if test "$enableval" = "no" ; then echo "Disabling HTTP Violations" AC_DEFINE(HTTP_VIOLATIONS, 0) else AC_DEFINE(HTTP_VIOLATIONS, 1) fi ]) dnl Enable IP-Filter Transparent Proxy AC_ARG_ENABLE(ipf-transparent, [ --enable-ipf-transparent Enable Transparent Proxy support for systems using IP-Filter network address redirection.], [ if test "$enableval" = "yes" ; then echo "IP-Filter Transparent Proxy enabled" AC_DEFINE(IPF_TRANSPARENT) IPF_TRANSPARENT="yes" fi ]) dnl Enable Leak Finding Functions AC_ARG_ENABLE(leakfinder, [ --enable-leakfinder Enable Leak Finding code. Enabling this alone does nothing; you also have to modify the source code to use the leak finding functions. Probably Useful for hackers only.], [ if test "$enableval" = "yes" ; then echo "Leak-Finding enabled" AC_DEFINE(USE_LEAKFINDER) LEAKFINDER_OBJS='$(LEAKFINDER_OBJS)' USE_LEAKFINDER="yes" fi ]) AC_SUBST(LEAKFINDER_OBJS) dnl Disable HTTP violations AC_ARG_ENABLE(ident-lookups, [ --disable-ident-lookups This allows you to remove code that performs Ident (RFC 931) lookups.], [ if test "$enableval" = "no" ; then echo "Disabling Ident Lookups" AC_DEFINE(USE_IDENT, 0) else AC_DEFINE(USE_IDENT, 1) fi ]) # Force some compilers to use ANSI features # case "$host" in alpha-dec-osf*) if test "$ac_cv_prog_CC" = "cc" ; then echo "adding '-std1' to cc args for $host" CC="cc -std1"; ac_cv_prog_CC="$CC" fi ;; *-hp-hpux*) if test "$ac_cv_prog_CC" = "cc" ; then echo "adding '-Ae' to cc args for $host" CC="cc -Ae"; ac_cv_prog_CC="$CC" fi ;; esac 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( \ 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 \ ip_compat.h \ ip_fil.h \ ip_nat.h \ libc.h \ limits.h \ malloc.h \ math.h \ memory.h \ mount.h \ net/if.h \ netdb.h \ netinet/in.h \ netinet/tcp.h \ poll.h \ pwd.h \ regex.h \ resolv.h \ sched.h \ signal.h \ stdarg.h \ stddef.h \ stdio.h \ stdlib.h \ string.h \ strings.h \ sys/file.h \ sys/ioctl.h \ sys/param.h \ sys/resource.h \ sys/select.h\ sys/socket.h \ sys/stat.h \ sys/statvfs.h \ sys/syscall.h \ sys/time.h \ sys/types.h \ sys/un.h \ sys/vfs.h \ sys/wait.h \ syslog.h \ time.h \ unistd.h \ varargs.h \ ) AC_C_CONST AC_C_BIGENDIAN AC_CACHE_CHECK(if ANSI prototypes work,ac_cv_have_ansi_prototypes, [ AC_TRY_COMPILE([int foo(char *); int foo (char *bar) {return 1;}], [foo("bar")], ac_cv_have_ansi_prototypes="yes", ac_cv_have_ansi_prototypes="no") ]) if test $ac_cv_have_ansi_prototypes = "yes" ; then AC_DEFINE(HAVE_ANSI_PROTOTYPES) fi AC_CACHE_CHECK(for tm->tm_gmtoff,ac_cv_have_tm_gmoff, [ AC_TRY_COMPILE([#include #include ], [struct tm foo; foo.tm_gmtoff = 0;], ac_cv_have_tm_gmoff="yes", ac_cv_have_tm_gmoff="no") ]) if test $ac_cv_have_tm_gmoff = "yes" ; then AC_DEFINE(HAVE_TM_GMTOFF) fi AC_CACHE_CHECK(for extended mallinfo,ac_cv_have_ext_mallinfo, [ AC_TRY_COMPILE([#include #include ], [struct mallinfo foo; foo.mxfast = 0;], ac_cv_have_ext_mallinfo="yes", ac_cv_have_ext_mallinfo="no") ]) if test $ac_cv_have_ext_mallinfo = "yes" ; then AC_DEFINE(HAVE_EXT_MALLINFO) fi AC_CACHE_CHECK(for struct rusage,ac_cv_have_struct_rusage, [ AC_TRY_COMPILE([ #if HAVE_SYS_TIME_H #include #endif #if HAVE_SYS_RESOURCE_H #include #endif], [struct rusage R;], ac_cv_have_struct_rusage="yes", ac_cv_have_struct_rusage="no") ]) if test $ac_cv_have_struct_rusage = "yes" ; then AC_DEFINE(HAVE_STRUCT_RUSAGE) fi AC_CACHE_CHECK(for ip->ip_hl, ac_cv_have_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_cv_have_ip_hl="yes", ac_cv_have_ip_hl="no") ]) if test $ac_cv_have_ip_hl = "yes" ; then AC_DEFINE(HAVE_IP_HL) fi dnl Check for typedefs AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(void *) 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) AC_CHECK_TYPE(fd_mask, int) dnl Check for type in sys/socket.h AC_CACHE_CHECK(for socklen_t, ac_cv_type_socklen_t, [ AC_EGREP_CPP([socklen_t[^a-zA-Z_0-9]], [#include #include #if STDC_HEADERS #include #include #endif], ac_cv_type_socklen_t=yes, ac_cv_type_socklen_t=no) ]) if test $ac_cv_type_socklen_t = no; then AC_DEFINE(socklen_t, int) fi dnl Check for needed libraries AC_CHECK_LIB(nsl, main) AC_CHECK_LIB(socket, main) if test "x$ac_cv_enabled_dlmalloc" = "xyes" ; then echo "skipping libmalloc check (--enable-dlmalloc specified)" else AC_CHECK_LIB(gnumalloc, main) if test "$ac_cv_lib_gnumalloc_main" = "yes"; then echo "Disabling extended malloc functions when using gnumalloc" ac_cv_func_mallinfo=no ac_cv_func_mallocblksize=no ac_cv_func_mallopt=no else 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 fi AC_CHECK_LIB(bsd, main) AC_CHECK_LIB(regex, main, [REGEXLIB="-lregex"]) AC_CHECK_LIB(bind, gethostbyname) if test $ac_cv_lib_bind_gethostbyname = "no" ; then case "$host" in i386-*-freebsd*) echo "skipping libresolv checks for $host" ;; *) AC_CHECK_LIB(resolv, inet_aton, AC_CHECK_LIB(44bsd, inet_aton)) AC_CHECK_LIB(resolv, main) ;; esac fi 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) if test $ac_cv_lib_crypt_crypt = "yes"; then CRYPTLIB="-lcrypt" fi AC_SUBST(CRYPTLIB) dnl Check for pthreads dnl We use pthreads when doing ASYNC I/O AC_CHECK_LIB(pthread, main) if test $ac_cv_lib_pthread_main = "yes"; then PTHREADLIB="-lpthread" fi AC_SUBST(PTHREADLIB) dnl -lintl is needed on SCO version 3.2v4.2 for strftime() dnl Robert Side dnl Mon, 18 Jan 1999 17:48:00 GMT case "$host" in *-pc-sco3.2*) AC_CHECK_LIB(intl, strftime) ;; esac 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//` dnl From: mlaster@metavillage.com (Mike Laster) dnl AIX 4.1.4.x does not have header files for snprintf/vsnprintf dnl So using the internal versions generates a load of warnings dnl during compile. echo "disabling snprintf/vsnprintf for $host" ac_cv_func_snprintf=no ac_cv_func_vsnprintf=no ;; *m88k*) CFLAGS="$CFLAGS -D_SQUID_MOTOROLA_" AC_DEFINE(GETTIMEOFDAY_NO_TZP) ;; [*-*-solaris2.[0-4]]) AC_DEFINE(GETTIMEOFDAY_NO_TZP) ;; [*-sony-newsos[56]*]) 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 This has to be before AC_CHECK_FUNCS # Disable poll() on certain platforms. Override by setting ac_cv_func_poll # when running configure. if test -z "$ac_cv_func_poll"; then case "$host" in [alpha-dec-osf3.*]) # John Kay (jkay@nlanr.net) 19970818 echo "disabling poll for $host..." ac_cv_func_poll='no' ;; [*-hp-hpux*.*]) # Duane Wessels echo "disabling poll for $host..." ac_cv_func_poll='no' ;; [*-linux-*]) # Henrik Nordstrom (hno@hem.passagen.se) 19980817 # poll is problematic on Linux. We disable it # by default until Linux gets it right. rev=`uname -r | awk -F. '{printf "%03d%03d",$1,$2}'` if test $rev -lt 002002; then echo "disabling poll for $host < 2.2..." ac_cv_func_poll='no' fi ;; [powerpc-ibm-aix4.1.*]) # Mike Laster (mlaster@metavillage.com) 19981021 echo "disabling poll for $host..." ac_cv_func_poll='no' ;; [*-pc-sco3.2*]) # Robert Side # Mon, 18 Jan 1999 17:48:00 GMT echo "disabling poll for $host..." ac_cv_func_poll='no' ;; esac fi dnl Check for library functions AC_CHECK_FUNCS(\ bcopy \ crypt \ drand48 \ fchmod \ getdtablesize \ getpagesize \ getrusage \ getspnam \ lrand48 \ mallinfo \ mallocblksize \ mallopt \ memcpy \ memmove \ memset \ mktime \ mstats \ poll \ putenv \ random \ regcomp \ regexec \ regfree \ res_init \ rint \ seteuid \ setpgrp \ setrlimit \ getrlimit \ setsid \ sigaction \ snprintf \ srand48 \ srandom \ sysconf \ syslog \ tempnam \ timegm \ vsnprintf \ ) if test "$async_io" = "yes" ; then AC_CHECK_FUNCS(\ pthread_attr_setscope \ pthread_setschedparam \ pthread_attr_setschedparam \ ) fi dnl Yay! Another Linux brokenness. Its not good enough dnl to know that setresuid() exists, because RedHat 5.0 declares dnl setresuid() but doesn't implement it. dnl AC_CACHE_CHECK(if setresuid is implemented, ac_cv_func_setresuid, AC_TRY_RUN([ #include int main() { if(setresuid(-1,-1,-1)) { perror("setresuid:"); exit(1); } exit(0); } ],ac_cv_func_setresuid="yes",ac_cv_func_setresuid="no") ) if test "$ac_cv_func_setresuid" = "yes" ; then AC_DEFINE(HAVE_SETRESUID) fi dnl IP-Filter support requires ipf header files. These aren't dnl installed by default, so we need to check for them if test "$IPF_TRANSPARENT" ; then AC_MSG_CHECKING(if IP-Filter header files are installed) if test "$ac_cv_header_ip_compat_h" = "no" || test "$ac_cv_header_ip_fil_h" = "no" || test "$ac_cv_header_ip_nat_h" = "no" ; then IPF_TRANSPARENT="no" AC_DEFINE(IPF_TRANSPARENT, 0) else IPF_TRANSPARENT="yes" AC_DEFINE(IPF_TRANSPARENT) fi AC_MSG_RESULT($IPF_TRANSPARENT) fi if test "$IPF_TRANSPARENT" = "no" ; then echo "WARNING: Cannot find necessary IP-Filter header files" echo " Transparent Proxy support WILL NOT be enabled" sleep 10 fi if test -z "$USE_GNUREGEX" ; then case "$host" in *-sun-solaris2.[[0-4]]) USE_GNUREGEX="yes" ;; *-next-nextstep*) USE_GNUREGEX="yes" ;; esac fi AC_MSG_CHECKING(if GNUregex needs to be compiled) if test -z "$USE_GNUREGEX"; then if test "$ac_cv_func_regcomp" = "no" || test "$USE_GNUREGEX" = "yes" ; then USE_GNUREGEX="yes" else AC_TRY_COMPILE([#include #include ],[regex_t t; regcomp(&t,"",0);], USE_GNUREGEX="no", USE_GNUREGEX="yes") fi fi 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(\ drand48 \ tempnam \ strerror \ ) dnl Not cached since people are likely to tune this 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() { FILE *fp = fopen("conftestval", "w"); fprintf (fp, "%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) dnl Not cached since people are likely to tune this AC_MSG_CHECKING(Maximum number of filedescriptors we can open) AC_TRY_RUN([ #include #include #include /* needed on FreeBSD */ #include #include main() { FILE *fp; int i,j; #if __CYGWIN32__ /* getrlimit and sysconf returns bogous values on cygwin32. * Number of fds is virtually unlimited in cygwin (sys/param.h) */ i = NOFILE; #else #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 defined(__linux__) && HAVE_GETRLIMIT && defined(RLIMIT_NOFILE) if (getrlimit(RLIMIT_NOFILE, &rl) < 0) { perror("getrlimit: RLIMIT_NOFILE"); } i = rl.rlim_cur; #elif 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 #endif /* __CYGWIN32__ */ fp = fopen("conftestval", "w"); fprintf (fp, "%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) if test "$SQUID_MAXFD" -lt 512 ; then echo "WARNING: $SQUID_MAXFD may not be enough filedescriptors if your" echo " cache will be very busy. Please see the FAQ page" echo " http://squid.nlanr.net/Squid/FAQ/FAQ-11.html#filedescriptors" echo " on how to increase your filedescriptor limit" sleep 10 fi dnl Not cached since people are likely to tune this AC_MSG_CHECKING(Default UDP send buffer size) AC_TRY_RUN([ #include #include #include #include #include main () { FILE *fp; 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); fp = fopen("conftestval", "w"); fprintf (fp, "%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) dnl Not cached since people are likely to tune this AC_MSG_CHECKING(Default UDP receive buffer size) AC_TRY_RUN([ #include #include #include #include #include main () { FILE *fp; 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); fp = fopen("conftestval", "w"); fprintf (fp, "%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) dnl Not cached since people are likely to tune this AC_MSG_CHECKING(Default TCP send buffer size) AC_TRY_RUN([ #include #include #include #include #include main () { FILE *fp; 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); fp = fopen("conftestval", "w"); fprintf (fp, "%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) dnl Not cached since people are likely to tune this AC_MSG_CHECKING(Default TCP receive buffer size) AC_TRY_RUN([ #include #include #include #include #include main () { FILE *fp; 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); fp = fopen("conftestval", "w"); fprintf (fp, "%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_CACHE_CHECK(if sys_errlist is already defined, ac_cv_needs_sys_errlist, AC_TRY_COMPILE([#include ],[char *s = sys_errlist[0];], ac_cv_needs_sys_errlist="no", ac_cv_needs_sys_errlist="yes") ) if test "$ac_cv_needs_sys_errlist" = "yes" ; then AC_DEFINE(NEED_SYS_ERRLIST) fi dnl Not cached since people are likely to change this 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)) AC_MSG_CHECKING(if inet_ntoa() actually works) AC_TRY_RUN([ #include #include #include #include #include main () { FILE *fp; struct in_addr in; in.s_addr = inet_addr("1.2.3.4"); fp = fopen("conftestval", "w"); fprintf (fp, "%s\n", inet_ntoa(in)); exit(0); } ], INET_NTOA_RESULT=`cat conftestval`, INET_NTOA_RESULT="broken", INET_NTOA_RESULT="broken") if test "$INET_NTOA_RESULT" = "1.2.3.4" ; then AC_MSG_RESULT("yes") else AC_MSG_RESULT("no") echo "Will use our own inet_ntoa()." LIBOBJS="$LIBOBJS inet_ntoa.o" # echo "WARNING: This looks bad, and probably prevents Squid from working." # echo " If you're on IRIX and using GCC 2.8, you probably need" # echo " to use the IRIX C compiler instead." # sleep 10 fi if test "$ac_cv_header_sys_statvfs_h" = "yes" ; then AC_MSG_CHECKING(for working statvfs() interface) AC_TRY_COMPILE([ #include #include #include #include ], [ struct statvfs sfs; sfs.f_blocks = sfs.f_bfree = sfs.f_frsize = sfs.f_files = sfs.f_ffree = 0; statvfs("/tmp", &sfs); ], ac_cv_func_statvfs=yes, ac_cv_func_statvfs=no) AC_MSG_RESULT($ac_cv_func_statvfs) if test "$ac_cv_func_statvfs" = "yes" ; then AC_DEFINE(HAVE_STATVFS) fi fi AC_CACHE_CHECK(for _res.nsaddr_list, ac_cv_have_res_nsaddr_list, AC_TRY_COMPILE([ #if HAVE_SYS_TYPES_H #include #endif #if HAVE_NETINET_IN_H #include #endif #if HAVE_ARPA_INET_H #include #endif #if HAVE_ARPA_NAMESER_H #include #endif #if HAVE_RESOLV_H #include #endif ], [_res.nsaddr_list[[0]];], ac_cv_have_res_nsaddr_list="yes", ac_cv_have_res_nsaddr_list="no")) if test $ac_cv_have_res_nsaddr_list = "yes" ; then AC_DEFINE(HAVE_RES_NSADDR_LIST) fi if test $ac_cv_have_res_nsaddr_list = "no" ; then AC_CACHE_CHECK(for _res.ns_list, ac_cv_have_res_ns_list, AC_TRY_COMPILE([ #if HAVE_SYS_TYPES_H #include #endif #if HAVE_NETINET_IN_H #include #endif #if HAVE_ARPA_INET_H #include #endif #if HAVE_ARPA_NAMESER_H #include #endif #if HAVE_RESOLV_H #include #endif ], [_res.ns_list[[0]].addr;], ac_cv_have_res_ns_list="yes", ac_cv_have_res_ns_list="no")) if test $ac_cv_have_res_ns_list = "yes" ; then AC_DEFINE(HAVE_RES_NS_LIST) fi fi 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 AC_SUBST(XTRA_OBJS) if test -z "$XTRA_LIBS"; then XTRA_LIBS="$LIBS" dnl -lcrypt is set in CRYPTLIB XTRA_LIBS=`echo $XTRA_LIBS | sed -e "s/-lcrypt//"` dnl -lpthread is set in PTHREADLIB XTRA_LIBS=`echo $XTRA_LIBS | sed -e "s/-lpthread//"` dnl minor cleanup XTRA_LIBS=`echo $XTRA_LIBS | sed -e "s/ */ /g"` 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 \ $SNMP_MAKEFILE \ ./icons/Makefile \ ./errors/Makefile \ ./auth_modules/dummy \ ./auth_modules/NCSA/Makefile \ ./auth_modules/getpwnam/Makefile \ )