configure.in
上传用户:liugui
上传日期:2007-01-04
资源大小:822k
文件大小:33k
源码类别:

代理服务器

开发平台:

Unix_Linux

  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.167.2.4 1999/02/14 08:25:35 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.167.2.4 $)dnl
  13. AC_PREFIX_DEFAULT(/usr/local/squid)
  14. AC_CONFIG_AUX_DIR(cfgaux)
  15. AC_CANONICAL_HOST
  16. CRYPTLIB=''
  17. REGEXLIB='' # -lregex
  18. LIBREGEX='' # libregex.a
  19. dnl use directory structure of cached as default (hack)
  20. if test "$libexecdir" = '${exec_prefix}/libexec'; then
  21. libexecdir='${bindir}'
  22. localstatedir='${prefix}'
  23. fi
  24. dnl use .exe suffix for executables on cygwin32 platform
  25. case "$host_os" in
  26. cygwin32|os2)
  27. exec_suffix=".exe"
  28. cgi_suffix=".exe"
  29. ;;
  30. *)
  31. exec_suffix=""
  32. cgi_suffix=".cgi"
  33. ;;
  34. esac
  35. AC_SUBST(exec_suffix)
  36. AC_SUBST(cgi_suffix)
  37. if test -z "$CACHE_HTTP_PORT"; then
  38. CACHE_HTTP_PORT="3128"
  39. fi
  40. if test -z "$CACHE_ICP_PORT"; then
  41. CACHE_ICP_PORT="3130"
  42. fi
  43. dnl Subsitutions
  44. AC_SUBST(CACHE_HTTP_PORT)
  45. AC_SUBST(CACHE_ICP_PORT)
  46. AC_DEFINE_UNQUOTED(CONFIG_HOST_TYPE, "$host")
  47. dnl Set default LDFLAGS
  48. if test -z "$LDFLAGS"; then
  49. LDFLAGS="-g"
  50. fi
  51. PRESET_CFLAGS="$CFLAGS"
  52. dnl Check for GNU cc
  53. AC_PROG_CC
  54. dnl Gerben Wierda <Gerben_Wierda@RnA.nl>
  55. case "$host" in
  56.     mab-next-nextstep3)
  57. CC="$CC -arch m68k -arch i486 -arch hppa -arch sparc"
  58. ;;
  59. esac
  60. dnl Set Default CFLAGS
  61. if test -z "$PRESET_CFLAGS"; then
  62.     if test "$GCC" = "yes"; then
  63.         case "$host" in
  64. *-sun-sunos*)
  65.          # sunos has too many warnings for this to be useful
  66.     # motorola too
  67.          ;;
  68. *m88k*)
  69.     # Motorola cc/ld does not like -02 but is ok on -O
  70.     CFLAGS=`echo $CFLAGS | sed -e 's/-O[0-9]/-O/'`
  71.     ;;
  72.         *)
  73.          CFLAGS="$CFLAGS -Wall"
  74.          ;;
  75.         esac
  76.     else
  77. case "$host" in
  78. *mips-sgi-irix6.4*)
  79.     # suggested by Rafael Seidl <rafaels@cthulhu.engr.sgi.com>
  80.     CFLAGS="$CFLAGS -n32 -mips4 -O3 -OPT:Olimit=0:space=OFF 
  81. -woff 1009,1014,1048,1110,1116,1185,1188,1204,1230,1233 
  82. -Wl,-woff,85,-woff,84,-woff,134 
  83. -nostdinc -I/usr/include -D_BSD_SIGNALS"
  84.     ;;
  85. alpha-dec-osf4.*)
  86.     # Mogul says DEC compilers take both -g and -O2
  87.     CFLAGS=`echo $CFLAGS | sed -e 's/-g/-g3/'`
  88.     CFLAGS="$CFLAGS -O2"
  89.     ;;
  90. *)
  91.     ;;
  92. esac
  93.     fi
  94. fi
  95. dnl Set LDFLAGS
  96. if test -z "$PRESET_LDFLAGS"; then
  97.     if test "$GCC" = "yes"; then
  98.         case "$host" in
  99.         *)
  100.          # nothing
  101.     ;;
  102.         esac
  103.     else
  104. case "$host" in
  105. *mips-sgi-irix6.4*)
  106.     # suggested by Rafael Seidl <rafaels@cthulhu.engr.sgi.com>
  107.     LDFLAGS="-n32 -mips4 -nostdlib -L/usr/lib32"
  108.     ;;
  109. esac
  110.     fi
  111. fi
  112. dnl Enable optional modules
  113. AC_ARG_ENABLE(dlmalloc,
  114. [  --enable-dlmalloc[=LIB] Compile & use the malloc package by Doug Lea],
  115. [
  116.  if test "x$ac_cv_enabled_dlmalloc" = "xyes"; then
  117.    # Ok. dlmalloc was enabled before, but state may be changed.
  118.    # we have to test these again
  119.    unset ac_cv_func_mallinfo
  120.    unset ac_cv_func_mallocblksize
  121.    unset ac_cv_func_free
  122.    unset ac_cv_func_realloc
  123.    unset ac_cv_func_memalign
  124.    unset ac_cv_func_valloc
  125.    unset ac_cv_func_pvalloc
  126.    unset ac_cv_func_calloc
  127.    unset ac_cv_func_cfree
  128.    unset ac_cv_func_malloc_trim
  129.    unset ac_cv_func_malloc_usable_size
  130.    unset ac_cv_func_malloc_stats
  131.    unset ac_cv_func_mallinfo
  132.    unset ac_cv_func_mallopt
  133.    unset ac_cv_lib_gnumalloc
  134.    unset ac_cv_header_gnumalloc_h
  135.    unset ac_cv_lib_malloc
  136.    unset ac_cv_enabled_dlmalloc
  137.  fi
  138.  case "$enableval" in
  139.  'yes')
  140.     LIBDLMALLOC="libdlmalloc.a"
  141.     LIB_MALLOC="-L../lib -ldlmalloc"
  142.     ac_cv_func_mallinfo="yes"
  143.     ac_cv_func_mallocblksize="no"
  144.     ac_cv_func_free="yes"
  145.     ac_cv_func_realloc="yes"
  146.     ac_cv_func_memalign="yes"
  147.     ac_cv_func_valloc="yes"
  148.     ac_cv_func_pvalloc="yes"
  149.     ac_cv_func_calloc="yes"
  150.     ac_cv_func_cfree="yes"
  151.     ac_cv_func_malloc_trim="yes"
  152.     ac_cv_func_malloc_usable_size="yes"
  153.     ac_cv_func_malloc_stats="yes"
  154.     ac_cv_func_mallinfo="yes"
  155.     ac_cv_func_mallopt="yes"
  156.     ac_cv_lib_gnumalloc="no"
  157.     ac_cv_header_gnumalloc_h="no"
  158.     ac_cv_lib_malloc="no"
  159.     ac_cv_enabled_dlmalloc="yes"
  160.     echo "dlmalloc build enabled"
  161.     ;;
  162.  'no')
  163.     # Disabled explicitly.
  164.     echo "dlmalloc disabled."
  165.     ;;
  166.  *)
  167.     # Use already installed dlmalloc library.
  168.     LIB_MALLOC="${enableval}"
  169.     ac_cv_func_mallinfo="yes"
  170.     ac_cv_func_mallocblksize="no"
  171.     ac_cv_func_free="yes"
  172.     ac_cv_func_realloc="yes"
  173.     ac_cv_func_memalign="yes"
  174.     ac_cv_func_valloc="yes"
  175.     ac_cv_func_pvalloc="yes"
  176.     ac_cv_func_calloc="yes"
  177.     ac_cv_func_cfree="yes"
  178.     ac_cv_func_malloc_trim="yes"
  179.     ac_cv_func_malloc_usable_size="yes"
  180.     ac_cv_func_malloc_stats="yes"
  181.     ac_cv_func_mallinfo="yes"
  182.     ac_cv_func_mallopt="yes"
  183.     ac_cv_lib_gnumalloc="no"
  184.     ac_cv_header_gnumalloc_h="no"
  185.     ac_cv_lib_malloc="no"
  186.     ac_cv_enabled_dlmalloc="yes"
  187.     echo "Use installed dlmalloc."
  188.     ;;
  189.  esac
  190.  ],[
  191.  if test "x$ac_cv_enabled_dlmalloc" = "xyes"; then
  192.    # Ok. dlmalloc was enabled before, but now disabled.
  193.    # we have to test these again
  194.    unset ac_cv_func_mallinfo
  195.    unset ac_cv_func_mallocblksize
  196.    unset ac_cv_func_free
  197.    unset ac_cv_func_realloc
  198.    unset ac_cv_func_memalign
  199.    unset ac_cv_func_valloc
  200.    unset ac_cv_func_pvalloc
  201.    unset ac_cv_func_calloc
  202.    unset ac_cv_func_cfree
  203.    unset ac_cv_func_malloc_trim
  204.    unset ac_cv_func_malloc_usable_size
  205.    unset ac_cv_func_malloc_stats
  206.    unset ac_cv_func_mallinfo
  207.    unset ac_cv_func_mallopt
  208.    unset ac_cv_lib_gnumalloc
  209.    unset ac_cv_header_gnumalloc_h
  210.    unset ac_cv_lib_malloc
  211.    unset ac_cv_enabled_dlmalloc
  212.  fi
  213.  ])
  214. AC_SUBST(LIBDLMALLOC)
  215. AC_SUBST(LIB_MALLOC)
  216. AC_ARG_ENABLE(gnuregex,
  217. [  --enable-gnuregex       Compile GNUregex],
  218. [USE_GNUREGEX=$enableval])
  219. AC_ARG_ENABLE(xmalloc_debug,
  220. [  --enable-xmalloc-debug  Do some simple malloc debugging],
  221. [ if test "$enableval" = "yes" ; then
  222.     echo "Malloc debugging enabled"
  223.     AC_DEFINE(XMALLOC_DEBUG)
  224.   fi
  225. ])
  226. AC_ARG_ENABLE(xmalloc_debug_trace,
  227. [  --enable-xmalloc-debug-trace
  228.                           Detailed trace of memory allocations],
  229. [ if test "$enableval" = "yes" ; then
  230.     echo "Malloc debug trace enabled"
  231.     AC_DEFINE(XMALLOC_TRACE)
  232.     AC_DEFINE(XMALLOC_DEBUG)
  233.   fi
  234. ])
  235. AC_ARG_ENABLE(xmalloc_statistics,
  236. [  --enable-xmalloc-statistics
  237.                           Show malloc statistics in status page],
  238. [ if test "$enableval" = "yes" ; then
  239.     echo "Malloc statistics enabled"
  240.     AC_DEFINE(XMALLOC_STATISTICS)
  241.   fi
  242. ])
  243. AC_ARG_ENABLE(carp,
  244. [  --enable-carp           Enable CARP support],
  245. [ if test "$enableval" = "yes" ; then
  246.     echo "CARP support enabled"
  247.     AC_DEFINE(USE_CARP)
  248.   fi
  249. ])
  250. AC_ARG_ENABLE(async_io,
  251. [  --enable-async-io       Do ASYNC disk I/O using threads],
  252. [ if test "$enableval" = "yes" ; then
  253.     echo "Async I/O enabled"
  254.     async_io=yes
  255.     AC_DEFINE(USE_ASYNC_IO)
  256.     ASYNC_OBJS='$(ASYNC_OBJS)'
  257.     SQUID_PTHREAD_LIB='$(PTHREADLIB)'
  258.     CFLAGS="$CFLAGS -D_REENTRANT"
  259.     case "$host" in
  260.     i386-unknown-freebsd*)
  261.      if test "$GCC" = "yes" ; then
  262.     if test -z "$PRESET_LDFLAGS"; then
  263. LDFLAGS="$LDFLAGS -pthread"
  264.     fi
  265. fi
  266. ;;
  267.     esac
  268.   fi
  269. ])
  270. AC_SUBST(ASYNC_OBJS)
  271. AC_SUBST(SQUID_PTHREAD_LIB)
  272. AC_ARG_ENABLE(icmp,
  273. [  --enable-icmp           Enable ICMP pinging],
  274. [ if test "$enableval" = "yes" ; then
  275.     echo "ICMP enabled"
  276.     AC_DEFINE(USE_ICMP)
  277.   fi
  278. ])
  279. AC_ARG_ENABLE(delay_pools,
  280. [  --enable-delay-pools    Enable delay pools to limit bandwith usage],
  281. [ if test "$enableval" = "yes" ; then
  282.     echo "Delay pools enabled"
  283.     DELAY_OBJS='$(DELAY_OBJS)'
  284.     AC_DEFINE(DELAY_POOLS)
  285.   fi
  286. ])
  287. AC_SUBST(DELAY_OBJS)
  288. AC_ARG_ENABLE(mem-gen-trace,
  289. [  --enable-mem-gen-trace  Do trace of memory stuff],
  290. [ if test "$enableval" = "yes" ; then
  291.     echo "Memory trace (to file) enabled"
  292.     AC_DEFINE(MEM_GEN_TRACE)
  293.   fi    
  294. ])     
  295. AC_ARG_ENABLE(useragent_log,
  296. [  --enable-useragent-log  Enable logging of User-Agent header],
  297. [ if test "$enableval" = "yes" ; then
  298.     echo "User-Agent logging enabled"
  299.     AC_DEFINE(USE_USERAGENT_LOG)
  300.   fi
  301. ])
  302. AC_ARG_ENABLE(kill_parent_hack,
  303. [  --enable-kill-parent-hack
  304.                           Kill parent on shutdown],
  305. [ if test "$enableval" = "yes" ; then
  306.     echo "Kill parent on shutdown"
  307.     AC_DEFINE(KILL_PARENT_OPT)
  308.   fi
  309. ])
  310. AC_ARG_ENABLE(snmp,
  311. [  --enable-snmp           Enable SNMP monitoring],
  312. [ if test "$enableval" = "yes" ; then
  313.     echo "SNMP monitoring enabled"
  314.     AC_DEFINE(SQUID_SNMP)
  315.     SNMPLIB='-L../snmplib -lsnmp'
  316.     SNMP_OBJS='$(SNMP_OBJS)'
  317.     SNMP_MAKEFILE=./snmplib/Makefile
  318.     makesnmplib=snmplib
  319.   fi
  320. ])
  321. AC_SUBST(SNMPLIB)
  322. AC_SUBST(SNMP_OBJS)
  323. AC_SUBST(makesnmplib)
  324. AC_ARG_ENABLE(time_hack,
  325. [  --enable-time-hack      Update internal timestamp only once per second],
  326. [ if test "$enableval" = "yes" ; then
  327.     echo "Update internal timestamp only once per second"
  328.     AC_DEFINE(ALARM_UPDATES_TIME)
  329.   fi
  330. ])
  331. AC_ARG_ENABLE(cachemgr_hostname,
  332. [  --enable-cachemgr-hostname[=hostname]
  333.                           Make cachemgr.cgi default to this host],
  334. [  case $enableval in
  335.    yes)
  336.        AC_DEFINE(CACHEMGR_HOSTNAME,[getfullhostname()])
  337.        echo "Cachemgr default hostname == host where cachemgr runs"
  338.        ;;
  339.    no)
  340.        : # Nothing to do..
  341.        ;;
  342.    *)
  343.        AC_DEFINE_UNQUOTED(CACHEMGR_HOSTNAME,"${enableval}")
  344.        echo "Cachemgr default hostname set to ${enableval}"
  345.        ;;
  346.    esac
  347. ])
  348. AC_ARG_ENABLE(arp_acl,
  349. [  --enable-arp-acl        Enable use of ARP ACL lists (ether address)],
  350. [  if test "$enableval" = "yes" ; then
  351.      echo "ARP ACL lists enabled (ether address)"
  352.      case "$host" in
  353. *-pc-linux-*)
  354.     ;;
  355. *)
  356.     echo "WARNING: ARP ACL support is only currently supported on Linux"
  357.     echo "         ethernet interfaces, probably won't work on $host."
  358.     sleep 10
  359.     ;;
  360.      esac
  361.      AC_DEFINE(USE_ARP_ACL)
  362.    fi
  363. ])
  364. AC_ARG_ENABLE(htcp,
  365. [  --enable-htcp           Enable HTCP protocol],
  366. [ if test "$enableval" = "yes" ; then
  367.     echo "HTCP enabled"
  368.     HTCP_OBJS='$(HTCP_OBJS)'
  369.     AC_DEFINE(USE_HTCP)
  370.   fi
  371. ])
  372. AC_SUBST(HTCP_OBJS)
  373. AC_ARG_ENABLE(forw-via-db,
  374. [  --enable-forw-via-db    Enable Forw/Via database],
  375. [ if test "$enableval" = "yes" ; then
  376.     echo "FORW-VIA enabled"
  377.     AC_DEFINE(FORW_VIA_DB)
  378.   fi
  379. ])
  380. AC_ARG_ENABLE(cache-digests,
  381. [  --enable-cache-digests  Use Cache Digests
  382.                           see http://squid.nlanr.net/Squid/FAQ/FAQ-16.html],
  383. [ if test "$enableval" = "yes" ; then
  384.     echo "USE_CACHE_DIGESTS enabled"
  385.     AC_DEFINE(USE_CACHE_DIGESTS)
  386.   fi
  387. ])
  388. dnl Select Error language
  389. AC_ARG_ENABLE(err-language,
  390. [  --enable-err-language=lang
  391.                           Select language for Error pages (see errors dir) ],
  392. [
  393.     if test -d errors/$enableval; then
  394. ERR_LANGUAGE=$enableval
  395.     else
  396. echo "ERROR! Unknown language $enableval, see errors/"
  397. exit 1
  398.     fi
  399. ],[ERR_LANGUAGE="English"])
  400. AC_SUBST(ERR_LANGUAGE)
  401. dnl Enable poll()
  402. AC_ARG_ENABLE(poll,
  403. [  --enable-poll           Enable poll() instead of select().  Normally poll
  404.                           is preferred over select, but configure knows poll
  405.                           is broken on some platforms.  If you think you are
  406.                           smarter than the configure script, you may enable
  407.                           poll with this option.
  408.   --disable-poll          Disable the use of poll().],
  409.   case "$enableval" in
  410.   yes)
  411.     echo "Forcing poll() to be enabled"
  412.     ac_cv_func_poll='yes'
  413.     ;;
  414.   no)
  415.     echo "Forcing poll() to be disabled"
  416.     ac_cv_func_poll='no'
  417.     ;;
  418.   esac
  419. ])
  420. dnl Disable HTTP violations
  421. AC_ARG_ENABLE(http-violations,
  422. [  --disable-http-violations
  423.                           This allows you to remove code which is known to
  424.                           violate the HTTP protocol specification.],
  425. [ if test "$enableval" = "no" ; then
  426.     echo "Disabling HTTP Violations"
  427.     AC_DEFINE(HTTP_VIOLATIONS, 0)
  428.   else
  429.     AC_DEFINE(HTTP_VIOLATIONS, 1)
  430.   fi
  431. ])
  432. dnl Enable IP-Filter Transparent Proxy
  433. AC_ARG_ENABLE(ipf-transparent,
  434. [  --enable-ipf-transparent
  435.                           Enable Transparent Proxy support for systems
  436.                           using IP-Filter network address redirection.],
  437. [ if test "$enableval" = "yes" ; then
  438. echo "IP-Filter Transparent Proxy enabled"
  439. AC_DEFINE(IPF_TRANSPARENT)
  440. IPF_TRANSPARENT="yes"
  441.   fi
  442. ])
  443. dnl Enable Leak Finding Functions
  444. AC_ARG_ENABLE(leakfinder,
  445. [  --enable-leakfinder
  446.                           Enable Leak Finding code.  Enabling this alone
  447.                           does nothing; you also have to modify the source
  448.   code to use the leak finding functions.  Probably
  449.   Useful for hackers only.],
  450. [ if test "$enableval" = "yes" ; then
  451. echo "Leak-Finding enabled"
  452. AC_DEFINE(USE_LEAKFINDER)
  453.         LEAKFINDER_OBJS='$(LEAKFINDER_OBJS)'
  454. USE_LEAKFINDER="yes"
  455.   fi
  456. ])
  457. AC_SUBST(LEAKFINDER_OBJS)
  458. dnl Disable HTTP violations
  459. AC_ARG_ENABLE(ident-lookups,
  460. [  --disable-ident-lookups
  461.                           This allows you to remove code that performs
  462.                           Ident (RFC 931) lookups.],
  463. [ if test "$enableval" = "no" ; then
  464.     echo "Disabling Ident Lookups"
  465.     AC_DEFINE(USE_IDENT, 0)
  466.   else
  467.     AC_DEFINE(USE_IDENT, 1)
  468.   fi
  469. ])
  470. # Force some compilers to use ANSI features
  471. #
  472. case "$host" in
  473.     alpha-dec-osf*)
  474. if test "$ac_cv_prog_CC" = "cc" ; then
  475. echo "adding '-std1' to cc args for $host"
  476. CC="cc -std1";
  477. ac_cv_prog_CC="$CC"
  478. fi
  479. ;;
  480.     *-hp-hpux*)
  481. if test "$ac_cv_prog_CC" = "cc" ; then
  482. echo "adding '-Ae' to cc args for $host"
  483. CC="cc -Ae";
  484. ac_cv_prog_CC="$CC"
  485. fi
  486. ;;
  487. esac
  488. dnl Check for programs
  489. AC_PROG_CPP
  490. AC_PROG_INSTALL
  491. AC_PROG_RANLIB
  492. AC_PROG_LN_S
  493. AC_PATH_PROG(SH, sh, /bin/sh)
  494. AC_PATH_PROG(FALSE, false, /usr/bin/false)
  495. AC_PATH_PROG(TRUE, true, /usr/bin/true)
  496. AC_PATH_PROG(RM, rm, $FALSE)
  497. AC_PATH_PROG(MV, mv, $FALSE)
  498. AC_PATH_PROG(MKDIR, mkdir, $FALSE)
  499. AC_PATH_PROG(LN, ln, cp)
  500. AC_PATH_PROG(PERL, perl, /usr/local/bin/perl)
  501. AC_PATH_PROG(MAKEDEPEND, makedepend, $TRUE)
  502. AC_PATH_PROG(AR, ar, $FALSE)
  503. case "$host" in
  504.     *-hp-hpux*)
  505. echo "Disabling 'ranlib' for HP-UX..."
  506. RANLIB=":"
  507. ;;
  508. esac
  509. dnl set $(AR)
  510. AR_R="$AR r"
  511. case "$host" in
  512. *-next-nextstep3)
  513. AR="libtool -o"
  514. ;;
  515. esac
  516. AC_SUBST(AR_R)
  517. dnl Check for headers
  518. AC_HEADER_DIRENT
  519. AC_HEADER_STDC
  520. AC_CHECK_HEADERS( 
  521. arpa/inet.h 
  522. arpa/nameser.h 
  523. assert.h 
  524. bstring.h 
  525. config.h 
  526. crypt.h 
  527. ctype.h 
  528. errno.h 
  529. fcntl.h 
  530. getopt.h 
  531. gnumalloc.h 
  532. grp.h 
  533. ip_compat.h 
  534. ip_fil.h 
  535. ip_nat.h 
  536. libc.h 
  537. limits.h 
  538. malloc.h 
  539. math.h 
  540. memory.h 
  541. mount.h 
  542. net/if.h 
  543. netdb.h 
  544. netinet/in.h 
  545. netinet/tcp.h 
  546. poll.h 
  547. pwd.h 
  548. regex.h 
  549. resolv.h 
  550. sched.h 
  551. signal.h 
  552. stdarg.h 
  553. stddef.h 
  554. stdio.h 
  555. stdlib.h 
  556. string.h 
  557. strings.h 
  558. sys/file.h 
  559. sys/ioctl.h 
  560. sys/param.h 
  561. sys/resource.h 
  562. sys/select.h
  563. sys/socket.h 
  564. sys/stat.h 
  565. sys/statvfs.h 
  566. sys/syscall.h 
  567. sys/time.h 
  568. sys/types.h 
  569. sys/un.h 
  570. sys/vfs.h 
  571. sys/wait.h 
  572. syslog.h 
  573. time.h 
  574. unistd.h 
  575. varargs.h 
  576. )
  577. AC_C_CONST
  578. AC_C_BIGENDIAN
  579. AC_CACHE_CHECK(if ANSI prototypes work,ac_cv_have_ansi_prototypes, [
  580.   AC_TRY_COMPILE([int foo(char *); int foo (char *bar) {return 1;}],
  581.     [foo("bar")],
  582.     ac_cv_have_ansi_prototypes="yes",
  583.     ac_cv_have_ansi_prototypes="no")
  584. ])
  585. if test $ac_cv_have_ansi_prototypes = "yes" ; then
  586.   AC_DEFINE(HAVE_ANSI_PROTOTYPES)
  587. fi
  588. AC_CACHE_CHECK(for tm->tm_gmtoff,ac_cv_have_tm_gmoff, [
  589.   AC_TRY_COMPILE([#include <time.h>
  590. #include <sys/time.h>],
  591.     [struct tm foo;
  592.       foo.tm_gmtoff = 0;],
  593.     ac_cv_have_tm_gmoff="yes",
  594.     ac_cv_have_tm_gmoff="no")
  595. ])
  596. if test $ac_cv_have_tm_gmoff = "yes" ; then
  597.   AC_DEFINE(HAVE_TM_GMTOFF)
  598. fi
  599. AC_CACHE_CHECK(for extended mallinfo,ac_cv_have_ext_mallinfo, [
  600.   AC_TRY_COMPILE([#include <sys/types.h>
  601. #include <malloc.h>],
  602.     [struct mallinfo foo;
  603.       foo.mxfast = 0;],
  604.     ac_cv_have_ext_mallinfo="yes",
  605.     ac_cv_have_ext_mallinfo="no")
  606. ])
  607. if test $ac_cv_have_ext_mallinfo = "yes" ; then
  608.   AC_DEFINE(HAVE_EXT_MALLINFO)
  609. fi
  610. AC_CACHE_CHECK(for struct rusage,ac_cv_have_struct_rusage, [
  611.   AC_TRY_COMPILE([
  612. #if HAVE_SYS_TIME_H
  613. #include <sys/time.h>
  614. #endif
  615. #if HAVE_SYS_RESOURCE_H
  616. #include <sys/resource.h>
  617. #endif],
  618.     [struct rusage R;],
  619.     ac_cv_have_struct_rusage="yes",
  620.     ac_cv_have_struct_rusage="no")
  621. ])
  622. if test $ac_cv_have_struct_rusage = "yes" ; then
  623.   AC_DEFINE(HAVE_STRUCT_RUSAGE)
  624. fi
  625. AC_CACHE_CHECK(for ip->ip_hl, ac_cv_have_ip_hl, [
  626.   AC_TRY_COMPILE([#include <sys/types.h>
  627. #include <netinet/in.h>
  628. #include <netinet/in_systm.h>
  629. #include <netinet/ip.h>
  630. #ifdef __linux__
  631. #define ip_hl ihl
  632. #endif
  633. #ifndef __linux__
  634. #define iphdr ip
  635. #endif],
  636.     [struct iphdr ip;
  637.       ip.ip_hl= 0;],
  638.     ac_cv_have_ip_hl="yes",
  639.     ac_cv_have_ip_hl="no")
  640. ])
  641. if test $ac_cv_have_ip_hl = "yes" ; then
  642.   AC_DEFINE(HAVE_IP_HL)
  643. fi
  644. dnl Check for typedefs
  645. AC_CHECK_SIZEOF(int)
  646. AC_CHECK_SIZEOF(long)
  647. dnl Check for special functions
  648. AC_FUNC_ALLOCA
  649. AC_CHECK_TYPE(pid_t, int)
  650. AC_CHECK_TYPE(size_t, unsigned int)
  651. AC_CHECK_TYPE(ssize_t, int)
  652. AC_CHECK_TYPE(off_t, int)
  653. AC_CHECK_TYPE(mode_t, u_short)
  654. AC_CHECK_TYPE(fd_mask, int)
  655. dnl Check for type in sys/socket.h
  656. AC_CACHE_CHECK(for socklen_t, ac_cv_type_socklen_t, [
  657.   AC_EGREP_CPP([socklen_t[^a-zA-Z_0-9]], [#include <sys/types.h>
  658. #include <sys/socket.h>
  659. #if STDC_HEADERS
  660. #include <stdlib.h>
  661. #include <stddef.h>
  662. #endif],
  663.     ac_cv_type_socklen_t=yes,
  664.     ac_cv_type_socklen_t=no)
  665. ])
  666. if test $ac_cv_type_socklen_t = no; then
  667.   AC_DEFINE(socklen_t, int)
  668. fi
  669. dnl Check for needed libraries
  670. AC_CHECK_LIB(nsl, main)
  671. AC_CHECK_LIB(socket, main)
  672. if test "x$ac_cv_enabled_dlmalloc" = "xyes" ; then
  673.   echo "skipping libmalloc check (--enable-dlmalloc specified)"
  674. else
  675.   AC_CHECK_LIB(gnumalloc, main)
  676.   if test "$ac_cv_lib_gnumalloc_main" = "yes"; then
  677. echo "Disabling extended malloc functions when using gnumalloc"
  678. ac_cv_func_mallinfo=no
  679. ac_cv_func_mallocblksize=no
  680. ac_cv_func_mallopt=no
  681.   else
  682. case "$host" in
  683. *-sun-solaris*)
  684.   echo "skipping libmalloc check for $host"
  685. ;;
  686. i386-*-freebsd*)
  687.   echo "skipping libmalloc check for $host"
  688. ;;
  689. *)
  690.   
  691. AC_CHECK_LIB(malloc, main)
  692. ;;
  693. esac
  694.   fi
  695. fi
  696. AC_CHECK_LIB(bsd, main)
  697. AC_CHECK_LIB(regex, main, [REGEXLIB="-lregex"])
  698. AC_CHECK_LIB(bind, gethostbyname)
  699. if test $ac_cv_lib_bind_gethostbyname = "no" ; then
  700.     case "$host" in
  701. i386-*-freebsd*)
  702. echo "skipping libresolv checks for $host"
  703. ;;
  704. *)
  705. AC_CHECK_LIB(resolv, inet_aton, AC_CHECK_LIB(44bsd, inet_aton))
  706. AC_CHECK_LIB(resolv, main)
  707. ;;
  708.     esac
  709. fi
  710. AC_CHECK_LIB(m, main)
  711. dnl Check for libcrypt
  712. dnl We use crypt(3) which may be in libc, or in libcrypt (eg FreeBSD)
  713. AC_CHECK_LIB(crypt, crypt)
  714. if test $ac_cv_lib_crypt_crypt = "yes"; then
  715.   CRYPTLIB="-lcrypt"
  716. fi
  717. AC_SUBST(CRYPTLIB)
  718. dnl Check for pthreads
  719. dnl We use pthreads when doing ASYNC I/O
  720. AC_CHECK_LIB(pthread, main)
  721. if test $ac_cv_lib_pthread_main = "yes"; then
  722.   PTHREADLIB="-lpthread"
  723. fi
  724. AC_SUBST(PTHREADLIB)
  725. dnl -lintl is needed on SCO version 3.2v4.2 for strftime()
  726. dnl Robert Side <rside@aiinc.bc.ca>
  727. dnl Mon, 18 Jan 1999 17:48:00 GMT
  728. case "$host" in
  729. *-pc-sco3.2*)
  730. AC_CHECK_LIB(intl, strftime)
  731. ;;
  732. esac
  733. dnl System-specific library modifications
  734. dnl
  735. case "$host" in
  736. i386-*-solaris2.*)
  737.      if test "$GCC" = "yes"; then
  738. echo "Removing -O for gcc on $host"
  739. CFLAGS="`echo $CFLAGS | sed -e 's/-O[[0-9]]*//'`"
  740. fi
  741. ;;
  742. *-sgi-irix*)
  743.          echo "Removing -lsocket for IRIX..."
  744.          LIBS=`echo $LIBS | sed -e s/-lsocket//`
  745.          echo "Removing -lnsl for IRIX..."
  746.          LIBS=`echo $LIBS | sed -e s/-lnsl//`
  747. echo "Removing -lbsd for IRIX..."
  748. LIBS=`echo $LIBS | sed -e s/-lbsd//`
  749. ;;
  750. dnl From: c0032033@ws.rz.tu-bs.de (Joerg Schumacher)
  751. dnl Date: Thu, 17 Oct 1996 04:09:30 +0200
  752. dnl Please change your configure script.  AIX doesn't need -lbsd.
  753. *-ibm-aix*)
  754. echo "Removing -lbsd for AIX..."
  755. LIBS=`echo $LIBS | sed -e s/-lbsd//`
  756. dnl From: mlaster@metavillage.com (Mike Laster)
  757. dnl AIX 4.1.4.x does not have header files for snprintf/vsnprintf
  758. dnl So using the internal versions generates a load of warnings
  759. dnl during compile.
  760. echo "disabling snprintf/vsnprintf for $host"
  761. ac_cv_func_snprintf=no
  762. ac_cv_func_vsnprintf=no
  763. ;;
  764. *m88k*)
  765. CFLAGS="$CFLAGS -D_SQUID_MOTOROLA_"
  766. AC_DEFINE(GETTIMEOFDAY_NO_TZP)
  767. ;;
  768. [*-*-solaris2.[0-4]])
  769. AC_DEFINE(GETTIMEOFDAY_NO_TZP)
  770. ;;
  771. [*-sony-newsos[56]*])
  772. AC_DEFINE(GETTIMEOFDAY_NO_TZP)
  773. ;;
  774. esac
  775. # Recommended by Balint Nagy Endre <bne@CareNet.hu>
  776. case "$host" in
  777. *-univel-sysv4.2MP)
  778. if test `uname -v` = "2.03"; then
  779. echo "disabling mallinfo for $host"
  780. ac_cv_func_mallinfo=no
  781. fi
  782. ;;
  783. esac
  784. dnl This has to be before AC_CHECK_FUNCS
  785. # Disable poll() on certain platforms. Override by setting ac_cv_func_poll
  786. # when running configure.
  787. if test -z "$ac_cv_func_poll"; then
  788. case "$host" in
  789. [alpha-dec-osf3.*])
  790. # John Kay (jkay@nlanr.net) 19970818
  791. echo "disabling poll for $host..."
  792. ac_cv_func_poll='no'
  793. ;;
  794. [*-hp-hpux*.*])
  795. # Duane Wessels
  796. echo "disabling poll for $host..."
  797. ac_cv_func_poll='no'
  798. ;;
  799. [*-linux-*])
  800. # Henrik Nordstrom (hno@hem.passagen.se) 19980817
  801. # poll is problematic on Linux.  We disable it
  802. # by default until Linux gets it right.
  803. echo "disabling poll for $host..."
  804. ac_cv_func_poll='no'
  805. ;;
  806. [powerpc-ibm-aix4.1.*])
  807. # Mike Laster (mlaster@metavillage.com) 19981021
  808. echo "disabling poll for $host..."
  809. ac_cv_func_poll='no'
  810. ;;
  811. [*-pc-sco3.2*])
  812. # Robert Side <rside@aiinc.bc.ca>
  813. # Mon, 18 Jan 1999 17:48:00 GMT
  814. echo "disabling poll for $host..."
  815. ac_cv_func_poll='no'
  816. ;;
  817. esac
  818. fi
  819. dnl Check for library functions
  820. AC_CHECK_FUNCS(
  821. bcopy 
  822. crypt 
  823. drand48 
  824. fchmod 
  825. getdtablesize 
  826. getpagesize 
  827. getrusage 
  828. getspnam 
  829. lrand48 
  830. mallinfo 
  831. mallocblksize 
  832. mallopt 
  833. memcpy 
  834. memmove 
  835. memset 
  836. mktime 
  837. mstats 
  838. poll 
  839. putenv 
  840. random 
  841. regcomp 
  842. regexec 
  843. regfree 
  844. res_init 
  845. rint 
  846. seteuid 
  847. setpgrp 
  848. setrlimit 
  849. setsid 
  850. sigaction 
  851. snprintf 
  852. srand48 
  853. srandom 
  854. statvfs 
  855. sysconf 
  856. syslog 
  857. tempnam 
  858. timegm 
  859. vsnprintf 
  860. )
  861. if test "$async_io" = "yes" ; then
  862. AC_CHECK_FUNCS(
  863. pthread_attr_setscope 
  864. pthread_setschedparam 
  865. pthread_attr_setschedparam 
  866. )
  867. fi
  868. dnl Yay!  Another Linux brokenness.  Its not good enough
  869. dnl to know that setresuid() exists, because RedHat 5.0 declares
  870. dnl setresuid() but doesn't implement it.
  871. dnl
  872. AC_CACHE_CHECK(if setresuid is implemented, ac_cv_func_setresuid,
  873.   AC_TRY_RUN([
  874. #include <stdlib.h>
  875.   int main() {
  876.     if(setresuid(-1,-1,-1)) {
  877.       perror("setresuid:");
  878.       exit(1);
  879.     }
  880.     exit(0);
  881.   }
  882.   ],ac_cv_func_setresuid="yes",ac_cv_func_setresuid="no")
  883. )
  884. if test "$ac_cv_func_setresuid" = "yes" ; then
  885.   AC_DEFINE(HAVE_SETRESUID)
  886. fi
  887. dnl IP-Filter support requires ipf header files. These aren't
  888. dnl installed by default, so we need to check for them
  889. if test "$IPF_TRANSPARENT" ; then
  890.     AC_MSG_CHECKING(if IP-Filter header files are installed)
  891.     if test "$ac_cv_header_ip_compat_h" = "no" ||
  892.        test "$ac_cv_header_ip_fil_h" = "no" ||
  893.        test "$ac_cv_header_ip_nat_h" = "no" ; then
  894.         IPF_TRANSPARENT="no"
  895.         AC_DEFINE(IPF_TRANSPARENT, 0)
  896.     else
  897.         IPF_TRANSPARENT="yes"
  898.         AC_DEFINE(IPF_TRANSPARENT)
  899.     fi
  900.     AC_MSG_RESULT($IPF_TRANSPARENT)
  901. fi 
  902. if test "$IPF_TRANSPARENT" = "no" ; then
  903.     echo "WARNING: Cannot find necessary IP-Filter header files"
  904.     echo "         Transparent Proxy support WILL NOT be enabled"
  905.     sleep 10
  906. fi
  907. if test -z "$USE_GNUREGEX" ; then
  908.     case "$host" in
  909.     *-sun-solaris2.[[0-4]])
  910.   USE_GNUREGEX="yes"
  911.   ;;
  912.     *-next-nextstep*)
  913.   USE_GNUREGEX="yes"
  914.   ;;
  915.     esac
  916. fi
  917. AC_MSG_CHECKING(if GNUregex needs to be compiled)
  918. if test -z "$USE_GNUREGEX"; then
  919. if test "$ac_cv_func_regcomp" = "no" || test "$USE_GNUREGEX" = "yes" ; then
  920. USE_GNUREGEX="yes"
  921. else
  922. AC_TRY_COMPILE([#include <sys/types.h>
  923. #include <regex.h>],[regex_t t; regcomp(&t,"",0);],
  924. USE_GNUREGEX="no",
  925. USE_GNUREGEX="yes")
  926. fi
  927. fi
  928. AC_MSG_RESULT($USE_GNUREGEX)
  929. if test "$USE_GNUREGEX" = "yes"; then
  930. REGEXLIB="-lregex"
  931. LIBREGEX="libregex.a"
  932. AC_DEFINE(USE_GNUREGEX)
  933. fi
  934. AC_SUBST(REGEXLIB)
  935. AC_SUBST(LIBREGEX)
  936. AC_REPLACE_FUNCS(
  937. drand48 
  938. tempnam 
  939. strerror 
  940. )
  941. dnl Not cached since people are likely to tune this
  942. AC_MSG_CHECKING(Default FD_SETSIZE value)
  943. AC_TRY_RUN([
  944. #if HAVE_STDIO_H
  945. #include <stdio.h>
  946. #endif
  947. #if HAVE_UNISTD_H
  948. #include <unistd.h>
  949. #endif
  950. #if HAVE_SYS_TIME_H
  951. #include <sys/time.h>
  952. #endif
  953. #if HAVE_SYS_SELECT_H
  954. #include <sys/select.h>
  955. #endif
  956. #if HAVE_SYS_TYPES_H
  957. #include <sys/types.h>
  958. #endif
  959. main() {
  960. FILE *fp = fopen("conftestval", "w");
  961. fprintf (fp, "%dn", FD_SETSIZE);
  962. exit(0);
  963. }
  964. ],
  965. DEFAULT_FD_SETSIZE=`cat conftestval`,
  966. DEFAULT_FD_SETSIZE=256,
  967. DEFAULT_FD_SETSIZE=256)
  968. AC_MSG_RESULT($DEFAULT_FD_SETSIZE)
  969. AC_DEFINE_UNQUOTED(DEFAULT_FD_SETSIZE, $DEFAULT_FD_SETSIZE)
  970. dnl Not cached since people are likely to tune this
  971. AC_MSG_CHECKING(Maximum number of filedescriptors we can open)
  972. AC_TRY_RUN([
  973. #include <stdio.h>
  974. #include <unistd.h>
  975. #include <sys/time.h> /* needed on FreeBSD */
  976. #include <sys/param.h>
  977. #include <sys/resource.h>
  978. main() {
  979. FILE *fp;
  980. int i,j;
  981. #if __CYGWIN32__
  982.     /* getrlimit and sysconf returns bogous values on cygwin32.
  983.      * Number of fds is virtually unlimited in cygwin (sys/param.h)
  984.      */
  985.     i = NOFILE;
  986. #else
  987. #if HAVE_SETRLIMIT
  988.     struct rlimit rl;
  989. #if defined(RLIMIT_NOFILE)
  990.     if (getrlimit(RLIMIT_NOFILE, &rl) < 0) {
  991.         perror("getrlimit: RLIMIT_NOFILE");
  992.     } else {
  993.         rl.rlim_cur = rl.rlim_max;      /* set it to the max */
  994.         if (setrlimit(RLIMIT_NOFILE, &rl) < 0) {
  995.             perror("setrlimit: RLIMIT_NOFILE");
  996.         }
  997.     }
  998. #elif defined(RLIMIT_OFILE)
  999.     if (getrlimit(RLIMIT_OFILE, &rl) < 0) {
  1000.         perror("getrlimit: RLIMIT_OFILE");
  1001.     } else {
  1002.         rl.rlim_cur = rl.rlim_max;      /* set it to the max */
  1003.         if (setrlimit(RLIMIT_OFILE, &rl) < 0) {
  1004.             perror("setrlimit: RLIMIT_OFILE");
  1005.         }
  1006.     }
  1007. #endif /* RLIMIT_NOFILE */
  1008. #endif /* HAVE_SETRLIMIT */
  1009. #if HAVE_GETRLIMIT && defined(RLIMIT_NOFILE)
  1010. if (getrlimit(RLIMIT_NOFILE, &rl) < 0) {
  1011. perror("getrlimit: RLIMIT_NOFILE");
  1012. }
  1013. i = rl.rlim_cur;
  1014. #elif HAVE_SYSCONF && defined(_SC_OPEN_MAX)
  1015.         i = sysconf(_SC_OPEN_MAX);
  1016. #elif HAVE_GETDTABLESIZE && !defined(__linux__)
  1017.         i = getdtablesize();
  1018. #elif defined(OPEN_MAX)
  1019.         i = OPEN_MAX;
  1020. #elif defined(NOFILE)
  1021.         i = NOFILE;
  1022. #elif defined(_NFILE)
  1023.         i = _NFILE;
  1024. #else
  1025. while((j=open("/dev/null", 0)) > 0) i=j;
  1026.         close(i); close(i-1);
  1027. i++;
  1028. #endif
  1029. #endif /* __CYGWIN32__ */
  1030. fp = fopen("conftestval", "w");
  1031. fprintf (fp, "%dn", i);
  1032. exit(0);
  1033. }
  1034. ],
  1035. SQUID_MAXFD=`cat conftestval`,
  1036. SQUID_MAXFD=256,
  1037. SQUID_MAXFD=256)
  1038. AC_MSG_RESULT($SQUID_MAXFD)
  1039. AC_DEFINE_UNQUOTED(SQUID_MAXFD, $SQUID_MAXFD)
  1040. if test "$SQUID_MAXFD" -lt 512 ; then
  1041.     echo "WARNING: $SQUID_MAXFD may not be enough filedescriptors if your"
  1042.     echo "         cache will be very busy.  Please see the FAQ page"
  1043.     echo "         http://squid.nlanr.net/Squid/FAQ/FAQ-11.html#filedescriptors"
  1044.     echo "         on how to increase your filedescriptor limit"
  1045.     sleep 10
  1046. fi
  1047. dnl Not cached since people are likely to tune this
  1048. AC_MSG_CHECKING(Default UDP send buffer size)
  1049. AC_TRY_RUN([
  1050. #include <stdlib.h>
  1051. #include <stdio.h>
  1052. #include <sys/types.h>
  1053. #include <sys/socket.h>
  1054. #include <netinet/in.h>
  1055. main ()
  1056. {
  1057. FILE *fp;
  1058.         int fd,val=0,len=sizeof(int);
  1059. if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) exit(1);
  1060.         if (getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &val, &len) < 0) exit(1);
  1061. if (val<=0) exit(1);
  1062.         fp = fopen("conftestval", "w");
  1063.         fprintf (fp, "%dn", val);
  1064. exit(0);
  1065. }
  1066. ],
  1067. SQUID_UDP_SO_SNDBUF=`cat conftestval`,
  1068. SQUID_UDP_SO_SNDBUF=16384,
  1069. SQUID_UDP_SO_SNDBUF=16384)
  1070. AC_MSG_RESULT($SQUID_UDP_SO_SNDBUF)
  1071. AC_DEFINE_UNQUOTED(SQUID_UDP_SO_SNDBUF, $SQUID_UDP_SO_SNDBUF)
  1072. dnl Not cached since people are likely to tune this
  1073. AC_MSG_CHECKING(Default UDP receive buffer size)
  1074. AC_TRY_RUN([
  1075. #include <stdlib.h>
  1076. #include <stdio.h>
  1077. #include <sys/types.h>
  1078. #include <sys/socket.h>
  1079. #include <netinet/in.h>
  1080. main ()
  1081. {
  1082. FILE *fp;
  1083.         int fd,val=0,len=sizeof(int);
  1084. if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) exit(1);
  1085.         if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &val, &len) < 0) exit(1);
  1086. if (val <= 0) exit(1);
  1087. fp = fopen("conftestval", "w"); 
  1088. fprintf (fp, "%dn", val);
  1089. exit(0);
  1090. }
  1091. ],
  1092. SQUID_UDP_SO_RCVBUF=`cat conftestval`,
  1093. SQUID_UDP_SO_RCVBUF=16384,
  1094. SQUID_UDP_SO_RCVBUF=16384)
  1095. AC_MSG_RESULT($SQUID_UDP_SO_RCVBUF)
  1096. AC_DEFINE_UNQUOTED(SQUID_UDP_SO_RCVBUF, $SQUID_UDP_SO_RCVBUF)
  1097. dnl Not cached since people are likely to tune this
  1098. AC_MSG_CHECKING(Default TCP send buffer size)
  1099. AC_TRY_RUN([
  1100. #include <stdlib.h>
  1101. #include <stdio.h>
  1102. #include <sys/types.h>
  1103. #include <sys/socket.h>
  1104. #include <netinet/in.h>
  1105. main ()
  1106. {
  1107. FILE *fp;
  1108.         int fd,val=0,len=sizeof(int);
  1109. FILE *fp;
  1110. if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) exit(1);
  1111.         if (getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &val, &len) < 0) exit(1);
  1112. if (val <= 0) exit(1);
  1113. fp = fopen("conftestval", "w"); 
  1114. fprintf (fp, "%dn", val);
  1115. exit(0);
  1116. }
  1117. ],
  1118. SQUID_TCP_SO_SNDBUF=`cat conftestval`,
  1119. SQUID_TCP_SO_SNDBUF=16384,
  1120. SQUID_TCP_SO_SNDBUF=16384)
  1121. AC_MSG_RESULT($SQUID_TCP_SO_SNDBUF)
  1122. AC_DEFINE_UNQUOTED(SQUID_TCP_SO_SNDBUF, $SQUID_TCP_SO_SNDBUF)
  1123. dnl Not cached since people are likely to tune this
  1124. AC_MSG_CHECKING(Default TCP receive buffer size)
  1125. AC_TRY_RUN([
  1126. #include <stdlib.h>
  1127. #include <stdio.h>
  1128. #include <sys/types.h>
  1129. #include <sys/socket.h>
  1130. #include <netinet/in.h>
  1131. main ()
  1132. {
  1133. FILE *fp;
  1134.         int fd,val=0,len=sizeof(int);
  1135. FILE *fp;
  1136. if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) exit(1);
  1137.         if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &val, &len) < 0) exit(1);
  1138. if (val <= 0) exit(1);
  1139. fp = fopen("conftestval", "w"); 
  1140. fprintf (fp, "%dn", val);
  1141. exit(0);
  1142. }
  1143. ],
  1144. SQUID_TCP_SO_RCVBUF=`cat conftestval`,
  1145. SQUID_TCP_SO_RCVBUF=16384,
  1146. SQUID_TCP_SO_RCVBUF=16384)
  1147. AC_MSG_RESULT($SQUID_TCP_SO_RCVBUF)
  1148. AC_DEFINE_UNQUOTED(SQUID_TCP_SO_RCVBUF, $SQUID_TCP_SO_RCVBUF)
  1149. AC_CACHE_CHECK(if sys_errlist is already defined, ac_cv_needs_sys_errlist,
  1150.   AC_TRY_COMPILE([#include <stdio.h>],[char *s = sys_errlist[0];],
  1151.     ac_cv_needs_sys_errlist="no",
  1152.     ac_cv_needs_sys_errlist="yes")
  1153. )
  1154. if test "$ac_cv_needs_sys_errlist" = "yes" ; then
  1155.   AC_DEFINE(NEED_SYS_ERRLIST)
  1156. fi
  1157. dnl Not cached since people are likely to change this
  1158. AC_MSG_CHECKING(for libresolv _dns_ttl_ hack)
  1159. AC_TRY_LINK(extern int _dns_ttl_;,return _dns_ttl_;,
  1160. [AC_MSG_RESULT(yes)
  1161. AC_DEFINE(LIBRESOLV_DNS_TTL_HACK)],
  1162. AC_MSG_RESULT(no))
  1163. AC_MSG_CHECKING(if inet_ntoa() actually works)
  1164. AC_TRY_RUN([
  1165. #include <stdlib.h>
  1166. #include <stdio.h>
  1167. #include <sys/types.h>
  1168. #include <netinet/in.h>
  1169. #include <arpa/inet.h>
  1170. main ()
  1171. {
  1172. FILE *fp;
  1173. struct in_addr in;
  1174. in.s_addr = inet_addr("1.2.3.4");
  1175. fp = fopen("conftestval", "w"); 
  1176. fprintf (fp, "%sn", inet_ntoa(in));
  1177. exit(0);
  1178. }
  1179. ],
  1180. INET_NTOA_RESULT=`cat conftestval`,
  1181. INET_NTOA_RESULT="broken",
  1182. INET_NTOA_RESULT="broken")
  1183. if test "$INET_NTOA_RESULT" = "1.2.3.4" ; then
  1184. AC_MSG_RESULT("yes")
  1185. else
  1186. AC_MSG_RESULT("no")
  1187. echo "Will use our own inet_ntoa()."
  1188. LIBOBJS="$LIBOBJS inet_ntoa.o"
  1189. # echo "WARNING: This looks bad, and probably prevents Squid from working."
  1190. # echo "         If you're on IRIX and using GCC 2.8, you probably need"
  1191. # echo "         to use the IRIX C compiler instead."
  1192. # sleep 10
  1193. fi
  1194. if test "$ac_cv_func_statvfs" = "yes" ; then
  1195. AC_MSG_CHECKING(for working statvfs() interface)
  1196. AC_TRY_COMPILE([
  1197. #include <stdlib.h>
  1198. #include <stdio.h>
  1199. #include <sys/types.h>
  1200. #include <sys/statvfs.h>
  1201. ],
  1202. [
  1203. struct statvfs sfs;
  1204. sfs.f_blocks = sfs.f_bfree = sfs.f_frsize = 
  1205. sfs.f_files = sfs.f_ffree = 0;
  1206. statvfs("/tmp", &sfs);
  1207. ],
  1208.   ac_cv_func_statvfs=yes,
  1209.   ac_cv_func_statvfs=no)
  1210. AC_MSG_RESULT($ac_cv_func_statvfs)
  1211. fi
  1212. AC_CACHE_CHECK(for _res.nsaddr_list, ac_cv_have_res_nsaddr_list,
  1213. AC_TRY_COMPILE([
  1214. #if HAVE_SYS_TYPES_H
  1215. #include <sys/types.h>
  1216. #endif
  1217. #if HAVE_NETINET_IN_H
  1218. #include <netinet/in.h>
  1219. #endif
  1220. #if HAVE_ARPA_INET_H
  1221. #include <arpa/inet.h>
  1222. #endif
  1223. #if HAVE_ARPA_NAMESER_H
  1224. #include <arpa/nameser.h>
  1225. #endif
  1226. #if HAVE_RESOLV_H
  1227. #include <resolv.h>
  1228. #endif
  1229. ],
  1230. [_res.nsaddr_list[[0]];],
  1231. ac_cv_have_res_nsaddr_list="yes",
  1232. ac_cv_have_res_nsaddr_list="no"))
  1233. if test $ac_cv_have_res_nsaddr_list = "yes" ; then
  1234.   AC_DEFINE(HAVE_RES_NSADDR_LIST)
  1235. fi
  1236. if test $ac_cv_have_res_nsaddr_list = "no" ; then
  1237. AC_CACHE_CHECK(for _res.ns_list, ac_cv_have_res_ns_list,
  1238. AC_TRY_COMPILE([
  1239. #if HAVE_SYS_TYPES_H
  1240. #include <sys/types.h>
  1241. #endif
  1242. #if HAVE_NETINET_IN_H
  1243. #include <netinet/in.h>
  1244. #endif
  1245. #if HAVE_ARPA_INET_H
  1246. #include <arpa/inet.h>
  1247. #endif
  1248. #if HAVE_ARPA_NAMESER_H
  1249. #include <arpa/nameser.h>
  1250. #endif
  1251. #if HAVE_RESOLV_H
  1252. #include <resolv.h>
  1253. #endif
  1254. ],
  1255. [_res.ns_list[[0]].addr;],
  1256. ac_cv_have_res_ns_list="yes",
  1257. ac_cv_have_res_ns_list="no"))
  1258. if test $ac_cv_have_res_ns_list = "yes" ; then
  1259.   AC_DEFINE(HAVE_RES_NS_LIST)
  1260. fi
  1261. fi
  1262. dnl Need the debugging version of malloc if available
  1263. XTRA_OBJS=''
  1264. if test "$ac_cv_lib_malloc_main" = "yes" ; then
  1265. if test -r /usr/lib/debug/malloc.o ; then
  1266. XTRA_OBJS="$XTRA_OBJS /usr/lib/debug/malloc.o"
  1267. fi
  1268. if test -r /usr/lib/debug/mallocmap.o ; then
  1269. XTRA_OBJS="$XTRA_OBJS /usr/lib/debug/mallocmap.o"
  1270. fi
  1271. fi
  1272. AC_SUBST(XTRA_OBJS)
  1273. if test -z "$XTRA_LIBS"; then
  1274. XTRA_LIBS="$LIBS"
  1275. dnl -lcrypt is set in CRYPTLIB
  1276. XTRA_LIBS=`echo $XTRA_LIBS | sed -e "s/-lcrypt//"`
  1277. dnl -lpthread is set in PTHREADLIB
  1278. XTRA_LIBS=`echo $XTRA_LIBS | sed -e "s/-lpthread//"`
  1279. dnl minor cleanup
  1280. XTRA_LIBS=`echo $XTRA_LIBS | sed -e "s/  */ /g"`
  1281. LIBS=''
  1282. fi
  1283. AC_SUBST(XTRA_LIBS)
  1284. dnl Clean up after OSF/1 core dump bug
  1285. rm -f core 
  1286. AC_OUTPUT(
  1287. ./makefile 
  1288. ./lib/Makefile 
  1289. ./include/config.h 
  1290. ./scripts/Makefile 
  1291. ./scripts/RunCache 
  1292. ./scripts/RunAccel 
  1293. ./src/Makefile 
  1294. ./contrib/Makefile 
  1295. $SNMP_MAKEFILE 
  1296. ./icons/Makefile 
  1297. ./errors/Makefile 
  1298. ./auth_modules/dummy 
  1299. ./auth_modules/NCSA/Makefile 
  1300. )