configure.in revision d0fbcfeee1c1dbdb079231545de3a0c58248202f
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# Copyright (C) 1998-2002 Internet Software Consortium.
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder#
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# Permission to use, copy, modify, and distribute this software for any
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# purpose with or without fee is hereby granted, provided that the above
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# copyright notice and this permission notice appear in all copies.
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder#
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroederdnl
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von SchroederAC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroederesyscmd([sed "s/^/# /" COPYRIGHT])dnl
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von SchroederAC_DIVERT_POP()dnl
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von SchroederAC_REVISION($Revision: 1.337 $)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von SchroederAC_INIT(lib/dns/name.c)
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von SchroederAC_PREREQ(2.13)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder
880945fae9c3f61341f1cd94439c802b7a0af194Jonathan von SchroederAC_CONFIG_HEADER(config.h)
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von SchroederAC_CONFIG_SUBDIRS(lib/bind)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von SchroederAC_CANONICAL_HOST
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von SchroederAC_PROG_MAKE_SET
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von SchroederAC_PROG_RANLIB
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von SchroederAC_PROG_INSTALL
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von SchroederAC_SUBST(STD_CINCLUDES)
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von SchroederAC_SUBST(STD_CDEFINES)
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von SchroederAC_SUBST(STD_CWARNINGS)
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von SchroederAC_SUBST(CCOPT)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von SchroederAC_PATH_PROG(AR, ar)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von SchroederARFLAGS="cruv"
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von SchroederAC_SUBST(AR)
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von SchroederAC_SUBST(ARFLAGS)
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder# The POSIX ln(1) program. Non-POSIX systems may substitute
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder# "copy" or something.
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von SchroederLN=ln
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von SchroederAC_SUBST(LN)
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroedercase "$AR" in
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder "")
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder AC_MSG_ERROR([
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroederar program not found. Please fix your PATH to include the directory in
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroederwhich ar resides, or set AR in the environment with the full path to ar.
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder])
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder ;;
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroederesac
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder#
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder# Etags.
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder#
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von SchroederAC_PATH_PROGS(ETAGS, etags emacs-etags)
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder#
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder# Some systems, e.g. RH7, have the Exuberant Ctags etags instead of
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder# GNU emacs etags, and it requires the -L flag.
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder#
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroederif test "X$ETAGS" != "X"; then
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder AC_MSG_CHECKING(for Exuberant Ctags etags)
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder if $ETAGS --version 2>&1 | grep 'Exuberant Ctags' >/dev/null 2>&1; then
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder AC_MSG_RESULT(yes)
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder ETAGS="$ETAGS -L"
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder else
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder AC_MSG_RESULT(no)
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder fi
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroederfi
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von SchroederAC_SUBST(ETAGS)
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder#
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder# Perl is optional; it is used only by some of the system test scripts.
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder#
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von SchroederAC_PATH_PROGS(PERL, perl5 perl)
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von SchroederAC_SUBST(PERL)
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder#
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder# Special processing of paths depending on whether --prefix,
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder# --sysconfdir or --localstatedir arguments were given. What's
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder# desired is some compatability with the way previous versions
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder# of BIND built; they defaulted to /usr/local for most parts of
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder# the installation, but named.boot/named.conf was in /etc
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder# and named.pid was in /var/run.
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder#
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder# So ... if none of --prefix, --sysconfdir or --localstatedir are
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder# specified, set things up that way. If --prefix is given, use
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder# it for sysconfdir and localstatedir the way configure normally
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder# would. To change the prefix for everything but leave named.conf
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# in /etc or named.pid in /var/run, then do this the usual configure way:
880945fae9c3f61341f1cd94439c802b7a0af194Jonathan von Schroeder# ./configure --prefix=/somewhere --sysconfdir=/etc
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# ./configure --prefix=/somewhere --localstatedir=/var
880945fae9c3f61341f1cd94439c802b7a0af194Jonathan von Schroeder#
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder# To put named.conf and named.pid in /usr/local with everything else,
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# set the prefix explicitly to /usr/local even though that's the default:
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# ./configure --prefix=/usr/local
880945fae9c3f61341f1cd94439c802b7a0af194Jonathan von Schroeder#
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroedercase "$prefix" in
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder NONE)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder case "$sysconfdir" in
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder '${prefix}/etc')
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder sysconfdir=/etc
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder ;;
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder esac
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder case "$localstatedir" in
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder '${prefix}/var')
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder localstatedir=/var
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder ;;
880945fae9c3f61341f1cd94439c802b7a0af194Jonathan von Schroeder esac
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder ;;
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroederesac
880945fae9c3f61341f1cd94439c802b7a0af194Jonathan von Schroeder
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder#
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder# Make sure INSTALL uses an absolute path, else it will be wrong in all
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder# Makefiles, since they use make/rules.in and INSTALL will be adjusted by
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder# configure based on the location of the file where it is substituted.
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# Since in BIND9 INSTALL is only substituted into make/rules.in, an immediate
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# subdirectory of install-sh, This relative path will be wrong for all
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder# directories more than one level down from install-sh.
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder#
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroedercase "$INSTALL" in
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder /*)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder ;;
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder *)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder #
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder # Not all systems have dirname.
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder #
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder changequote({, })
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder ac_dir="`echo $INSTALL | sed 's%/[^/]*$%%'`"
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder changequote([, ])
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder ac_prog="`echo $INSTALL | sed 's%.*/%%'`"
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder test "$ac_dir" = "$ac_prog" && ac_dir=.
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder test -d "$ac_dir" && ac_dir="`(cd \"$ac_dir\" && pwd)`"
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder INSTALL="$ac_dir/$ac_prog"
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder ;;
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroederesac
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder#
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# On these hosts, we really want to use cc, not gcc, even if it is
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder# found. The gcc that these systems have will not correctly handle
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder# pthreads.
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder#
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder# However, if the user sets $CC to be something, let that override
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# our change.
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder#
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroederif test "X$CC" = "X" ; then
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder case "$host" in
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder *-dec-osf*)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder CC="cc"
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder ;;
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder *-solaris*)
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder # Use Sun's cc if it is available, but watch
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder # out for /usr/ucb/cc; it will never be the right
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder # compiler to use.
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder #
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder # If setting CC here fails, the AC_PROG_CC done
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder # below might still find gcc.
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder for ac_dir in $PATH; do
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder test -z "$ac_dir" && ac_dir=.
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder case "$ac_dir" in
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder /usr/ucb)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder # exclude
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder ;;
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder *)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder if test -f "$ac_dir/cc"; then
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder CC="$ac_dir/cc"
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder break
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder fi
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder ;;
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder esac
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder done
7aa5a243634268f72e64595e7618902a1d079f9fJonathan von Schroeder IFS="$ac_save_ifs"
7aa5a243634268f72e64595e7618902a1d079f9fJonathan von Schroeder ;;
7aa5a243634268f72e64595e7618902a1d079f9fJonathan von Schroeder *-hp-hpux*)
7aa5a243634268f72e64595e7618902a1d079f9fJonathan von Schroeder CC="cc"
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder ;;
7aa5a243634268f72e64595e7618902a1d079f9fJonathan von Schroeder mips-sgi-irix*)
7aa5a243634268f72e64595e7618902a1d079f9fJonathan von Schroeder CC="cc"
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder ;;
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder esac
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroederfi
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von SchroederAC_PROG_CC
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder#
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# gcc's optimiser is broken at -02 for ultrasparc
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder#
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroederif test "$ac_env_CFLAGS_set" != set -a "X$GCC" = "Xyes"; then
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder case "$host" in
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder sparc-*-solaris*)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder CCFLAGS="-g -O1"
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder ;;
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder esac
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroederfi
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder#
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder# OSF 5.0: recv/send are only avaliable with -D_POSIX_PII_SOCKET or
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# -D_XOPEN_SOURCE_EXTENDED.
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder#
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroedercase "$host" in
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder *-dec-osf*)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder STD_CDEFINES="$STD_CDEFINES -D_POSIX_PII_SOCKET"
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder CPPFLAGS="$CPPFLAGS -D_POSIX_PII_SOCKET"
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder ;;
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroederesac
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von SchroederAC_HEADER_STDC
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von SchroederAC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h sys/sockio.h sys/select.h sys/sysctl.h net/if6.h)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von SchroederAC_C_CONST
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von SchroederAC_C_INLINE
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von SchroederAC_CHECK_FUNC(sysctlbyname, AC_DEFINE(HAVE_SYSCTLBYNAME))
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder#
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder# UnixWare 7.1.1 with the feature supplement to the UDK compiler
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# is reported to not support "static inline" (RT #1212).
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder#
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von SchroederAC_MSG_CHECKING(for static inline breakage)
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von SchroederAC_TRY_COMPILE(, [
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder foo1();
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder }
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder static inline int foo1() {
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder return 0;
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder }
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroeder static inline int foo2() {
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder return foo1();
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder ],
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder [AC_MSG_RESULT(no)],
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder [AC_MSG_RESULT(yes)
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder AC_DEFINE(inline, )])
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von SchroederAC_TYPE_SIZE_T
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von SchroederAC_CHECK_TYPE(ssize_t, int)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von SchroederAC_HEADER_TIME
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von SchroederAC_MSG_CHECKING(for long long)
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von SchroederAC_TRY_COMPILE([],[long long i = 0; return (0);],
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder [AC_MSG_RESULT(yes)
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder ISC_PLATFORM_HAVELONGLONG="#define ISC_PLATFORM_HAVELONGLONG 1"],
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder [AC_MSG_RESULT(no)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder ISC_PLATFORM_HAVELONGLONG="#undef ISC_PLATFORM_HAVELONGLONG"])
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von SchroederAC_SUBST(ISC_PLATFORM_HAVELONGLONG)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder#
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder# check if we have lifconf
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder#
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von SchroederAC_MSG_CHECKING(for struct lifconf)
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von SchroederAC_TRY_COMPILE([
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder#include <sys/types.h>
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder#include <sys/socket.h>
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder#include <net/if.h>
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder],
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder[
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroederstruct lifconf lifconf;
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroederlifconf.lifc_len = 0;
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder]
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder,
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder [AC_MSG_RESULT(yes)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder ISC_PLATFORM_HAVELIFCONF="#define ISC_PLATFORM_HAVELIFCONF 1"],
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder [AC_MSG_RESULT(no)
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder ISC_PLATFORM_HAVELIFCONF="#undef ISC_PLATFORM_HAVELIFCONF"])
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von SchroederAC_SUBST(ISC_PLATFORM_HAVELIFCONF)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder#
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder# check if we need to #include sys/select.h explicitly
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder#
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroedercase $ac_cv_header_unistd_h in
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroederyes)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von SchroederAC_MSG_CHECKING(if unistd.h or sys/types.h defines fd_set)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von SchroederAC_TRY_COMPILE([
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder#include <sys/types.h> /* Ultrix */
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder#include <unistd.h>],
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder[fd_set read_set; return (0);],
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder [AC_MSG_RESULT(yes)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder ISC_PLATFORM_NEEDSYSSELECTH="#undef ISC_PLATFORM_NEEDSYSSELECTH"
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder LWRES_PLATFORM_NEEDSYSSELECTH="#undef LWRES_PLATFORM_NEEDSYSSELECTH"],
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder [AC_MSG_RESULT(no)
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder case $ac_cv_header_sys_select_h in
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder yes)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder ISC_PLATFORM_NEEDSYSSELECTH="#define ISC_PLATFORM_NEEDSYSSELECTH 1"
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder LWRES_PLATFORM_NEEDSYSSELECTH="#define LWRES_PLATFORM_NEEDSYSSELECTH 1"
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder ;;
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder no)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder AC_MSG_ERROR([need either working unistd.h or sys/select.h])
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder ;;
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder esac
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder ])
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder ;;
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroederno)
880945fae9c3f61341f1cd94439c802b7a0af194Jonathan von Schroeder case $ac_cv_header_sys_select_h in
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder yes)
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder ISC_PLATFORM_NEEDSYSSELECTH="#define ISC_PLATFORM_NEEDSYSSELECTH 1"
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder LWRES_PLATFORM_NEEDSYSSELECTH="#define LWRES_PLATFORM_NEEDSYSSELECTH 1"
880945fae9c3f61341f1cd94439c802b7a0af194Jonathan von Schroeder ;;
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder no)
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder AC_MSG_ERROR([need either unistd.h or sys/select.h])
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder ;;
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder esac
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder ;;
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroederesac
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von SchroederAC_SUBST(ISC_PLATFORM_NEEDSYSSELECTH)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von SchroederAC_SUBST(LWRES_PLATFORM_NEEDSYSSELECTH)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder#
880945fae9c3f61341f1cd94439c802b7a0af194Jonathan von Schroeder# Find the machine's endian flavor.
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder#
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von SchroederAC_C_BIGENDIAN
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder#
880945fae9c3f61341f1cd94439c802b7a0af194Jonathan von Schroeder# was --with-openssl specified?
880945fae9c3f61341f1cd94439c802b7a0af194Jonathan von Schroeder#
880945fae9c3f61341f1cd94439c802b7a0af194Jonathan von SchroederAC_MSG_CHECKING(for OpenSSL library)
880945fae9c3f61341f1cd94439c802b7a0af194Jonathan von SchroederAC_ARG_WITH(openssl,
880945fae9c3f61341f1cd94439c802b7a0af194Jonathan von Schroeder[ --with-openssl[=PATH] Build with OpenSSL [yes|no|path].
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder (Required for DNSSEC)],
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder use_openssl="$withval", use_openssl="no")
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder
50bd139c03ca7e618eb93731e152cfaff3aab94dJonathan von Schroedercase "$use_openssl" in
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder no)
880945fae9c3f61341f1cd94439c802b7a0af194Jonathan von Schroeder AC_MSG_RESULT(no)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder DST_OPENSSL_INC=""
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder USE_OPENSSL=""
880945fae9c3f61341f1cd94439c802b7a0af194Jonathan von Schroeder ;;
880945fae9c3f61341f1cd94439c802b7a0af194Jonathan von Schroeder *)
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder if test "$use_openssl" = "yes"
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder then
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder # User did not specify a path - guess it
880945fae9c3f61341f1cd94439c802b7a0af194Jonathan von Schroeder openssldirs="/usr /usr/local /usr/local/ssl /usr/pkg"
880945fae9c3f61341f1cd94439c802b7a0af194Jonathan von Schroeder for d in $openssldirs
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder do
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder if test -f $d/include/openssl/opensslv.h
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder then
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder use_openssl=$d
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder break
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder fi
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder done
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder if test "$use_openssl" = "yes"
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder then
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder AC_MSG_RESULT(not found)
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder AC_MSG_ERROR(
0a81f114e958d220a0bebbb90481c0b658f94e8eJonathan von Schroeder[OpenSSL was not found in any of $openssldirs; use --with-openssl=/path])
880945fae9c3f61341f1cd94439c802b7a0af194Jonathan von Schroeder fi
bf453a6867cca0aa530bc8cac9eed9c3f70594b4Jonathan von Schroeder fi
USE_OPENSSL='-DOPENSSL'
DST_OPENSSL_INC="-I$use_openssl/include"
DNS_OPENSSL_LIBS="-L$use_openssl/lib -lcrypto"
AC_MSG_RESULT(using openssl from $use_openssl/lib and $use_openssl/include)
saved_cflags="$CFLAGS"
saved_libs="$LIBS"
CFLAGS="$CFLAGS $DST_OPENSSL_INC"
LIBS="$LIBS $DNS_OPENSSL_LIBS"
AC_MSG_CHECKING(whether linking with OpenSSL works)
AC_TRY_RUN([
#include <openssl/err.h>
int main() {
ERR_clear_error();
return (0);
}
],
[AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)
AC_MSG_ERROR(Could not run test program using OpenSSL from
$use_openssl/lib and $use_openssl/include.
Please check the argument to --with-openssl and your
shared library configuration (e.g., LD_LIBRARY_PATH).)],
[AC_MSG_RESULT(assuming it does work on target platform)])
AC_MSG_CHECKING(whether linking with OpenSSL requires -ldl)
AC_TRY_LINK([
#include <openssl/err.h>],
[ DSO_METHOD_dlfcn(); ],
[AC_MSG_RESULT(no)],
[LIBS="$LIBS -ldl"
AC_TRY_LINK([
#include <openssl/err.h>
],[ DSO_METHOD_dlfcn(); ],
[AC_MSG_RESULT(yes)
DNS_OPENSSL_LIBS="$DNS_OPENSSL_LIBS -ldl"
],
[AC_MSG_RESULT(unknown)
AC_MSG_ERROR(OpenSSL has unsupported dynamic loading)],
[AC_MSG_RESULT(assuming it does work on target platform)])
],
[AC_MSG_RESULT(assuming it does work on target platform)]
)
#
# OpenSSLDie is new with CERT CS-2002-23. If we see it we have may
# have a patched library otherwise check that we are greater than
# the fixed versions
#
AC_CHECK_FUNC(OpenSSLDie,
AC_MSG_CHECKING(OpenSSL library version)
AC_TRY_RUN([
#include <stdio.h>
#include <openssl/opensslv.h>
int main() {
if (OPENSSL_VERSION_NUMBER >= 0x0090581fL)
return (0);
printf("\n\nFound OPENSSL_VERSION_NUMBER %#010x\n",
OPENSSL_VERSION_NUMBER);
printf("Require OPENSSL_VERSION_NUMBER 0x0090581f or greater\n\n");
return (1);
}
],
[AC_MSG_RESULT(ok)],
[AC_MSG_RESULT(not compatible)
AC_MSG_ERROR(you need OpenSSL 0.9.5a or newer)],
[AC_MSG_RESULT(assuming target platform has compatible version)])
,
AC_MSG_RESULT(did not find fixes for CERT CA-2002-23)
AC_MSG_CHECKING(OpenSSL library version)
AC_TRY_RUN([
#include <stdio.h>
#include <openssl/opensslv.h>
int main() {
if ((OPENSSL_VERSION_NUMBER >= 0x0090605fL &&
OPENSSL_VERSION_NUMBER < 0x009070000L) ||
OPENSSL_VERSION_NUMBER >= 0x00907003L)
return (0);
printf("\n\nFound OPENSSL_VERSION_NUMBER %#010x\n",
OPENSSL_VERSION_NUMBER);
printf("Require OPENSSL_VERSION_NUMBER 0x0090605f or greater (0.9.6e)\n"
"Require OPENSSL_VERSION_NUMBER 0x00907003 or greater (0.9.7-beta2)\n\n");
return (1);
}
],
[AC_MSG_RESULT(ok)],
[AC_MSG_RESULT(not compatible)
AC_MSG_ERROR(you need OpenSSL 0.9.6e/0.9.7-beta2 (or newer): CERT CA-2002-23)],
[AC_MSG_RESULT(assuming target platform has compatible version)]))
CFLAGS="$saved_cflags"
LIBS="$saved_libs"
;;
esac
#
# This would include the system openssl path (and linker options to use
# it as needed) if it is found.
#
AC_SUBST(USE_OPENSSL)
AC_SUBST(DST_OPENSSL_INC)
DNS_CRYPTO_LIBS="$DNS_CRYPTO_LIBS $DNS_OPENSSL_LIBS"
#
# was --with-gssapi specified?
#
#AC_MSG_CHECKING(for GSSAPI library)
#AC_ARG_WITH(gssapi,
#[ --with-gssapi=PATH Specify path for system-supplied GSSAPI],
# use_gssapi="$withval", use_gssapi="no")
#
#case "$use_gssapi" in
# no)
# USE_GSSAPI=''
# DST_GSSAPI_INC=''
# DNS_GSSAPI_LIBS=''
# AC_MSG_RESULT(not specified)
# ;;
# yes)
# AC_MSG_ERROR([--with-gssapi must specify a path])
# ;;
# *)
# USE_GSSAPI='-DGSSAPI'
# DST_GSSAPI_INC="-I$use_gssapi/include"
# DNS_GSSAPI_LIBS="-L$use_gssapi/lib -lgssapi_krb5"
# AC_MSG_RESULT(using gssapi from $use_gssapi/lib and $use_gssapi/include)
# ;;
#esac
USE_GSSAPI=''
DST_GSSAPI_INC=''
DNS_GSSAPI_LIBS=''
AC_SUBST(USE_GSSAPI)
AC_SUBST(DST_GSSAPI_INC)
DNS_CRYPTO_LIBS="$DNS_CRYPTO_LIBS $DNS_GSSAPI_LIBS"
#
# Applications linking with libdns also need to link with these libraries.
#
AC_SUBST(DNS_CRYPTO_LIBS)
#
# was --with-randomdev specified?
#
AC_MSG_CHECKING(for random device)
AC_ARG_WITH(randomdev,
[ --with-randomdev=PATH Specify path for random device],
use_randomdev="$withval", use_randomdev="unspec")
case "$use_randomdev" in
unspec)
case "$host" in
*-openbsd*)
devrandom=/dev/arandom
;;
*)
devrandom=/dev/random
;;
esac
AC_MSG_RESULT($devrandom)
AC_CHECK_FILE($devrandom,
AC_DEFINE_UNQUOTED(PATH_RANDOMDEV,
"$devrandom"),)
;;
yes)
AC_MSG_ERROR([--with-randomdev must specify a path])
;;
no)
AC_MSG_RESULT(disabled)
;;
*)
AC_DEFINE_UNQUOTED(PATH_RANDOMDEV, "$use_randomdev")
AC_MSG_RESULT(using "$use_randomdev")
;;
esac
#
# Do we have arc4random() ?
#
AC_CHECK_FUNC(arc4random, AC_DEFINE(HAVE_ARC4RANDOM))
#
# Begin pthreads checking.
#
# First, decide whether to use multithreading or not.
#
# Enable multithreading by default on systems where it is known
# to work well, and where debugging of multithreaded programs
# is supported.
#
AC_MSG_CHECKING(whether to build with thread support)
case $host in
*-dec-osf*)
use_threads=true ;;
[*-solaris2.[0-6]])
# Thread signals are broken on Solaris 2.6; they are sometimes
# delivered to the wrong thread.
use_threads=false ;;
*-solaris*)
use_threads=true ;;
*-ibm-aix*)
use_threads=true ;;
*-hp-hpux10*)
use_threads=false ;;
*-hp-hpux11*)
use_threads=true ;;
*-sgi-irix*)
use_threads=true ;;
*-sco-sysv*uw*|*-*-sysv*UnixWare*)
# UnixWare
use_threads=false ;;
*-*-sysv*OpenUNIX*)
# UnixWare
use_threads=true ;;
*-netbsd*)
# Socket I/O optimizations introduced in 9.2 expose a
# bug in unproven-pthreads; see PR #12650
use_threads=false ;;
*-openbsd*)
# OpenBSD users have reported that named dumps core on
# startup when built with threads.
use_threads=false ;;
*-freebsd*)
use_threads=false ;;
*-bsdi*)
# Thread signals do not appear to work reliably on BSDI.
use_threads=false ;;
*-linux*)
# Threads are disabled on Linux by default because most
# Linux kernels produce unusable core dumps from multithreaded
# programs, and because of limitations in setuid().
use_threads=false ;;
*)
use_threads=false ;;
esac
AC_ARG_ENABLE(threads,
[ --enable-threads enable multithreading])
case "$enable_threads" in
yes)
use_threads=true
;;
no)
use_threads=false
;;
'')
# Use system-dependent default
;;
*)
AC_MSG_ERROR([--enable-threads takes yes or no])
;;
esac
if $use_threads
then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
if $use_threads
then
#
# Search for / configure pthreads in a system-dependent fashion.
#
case "$host" in
*-netbsd*)
# NetBSD has multiple pthreads implementations. The
# recommended one to use is "unproven-pthreads". The
# older "mit-pthreads" may also work on some NetBSD
# versions. The PTL2 thread library does not
# currently work with bind9, but can be chosen with
# the --with-ptl2 option for those who wish to
# experiment with it.
CC="gcc"
AC_MSG_CHECKING(which NetBSD thread library to use)
AC_ARG_WITH(ptl2,
[ --with-ptl2 on NetBSD, use the ptl2 thread library (experimental)],
use_ptl2="$withval", use_ptl2="no")
: ${LOCALBASE:=/usr/pkg}
if test "X$use_ptl2" = "Xyes"
then
AC_MSG_RESULT(PTL2)
AC_MSG_WARN(
[linking with PTL2 is highly experimental and not expected to work])
CC=ptlgcc
else
if test ! -d $LOCALBASE/pthreads
then
AC_MSG_RESULT(none)
AC_MSG_ERROR("could not find thread libraries")
fi
if $use_threads
then
AC_MSG_RESULT(mit-pthreads/unproven-pthreads)
pkg="$LOCALBASE/pthreads"
lib1="-L$pkg/lib -Wl,-R$pkg/lib"
lib2="-lpthread -lm -lgcc -lpthread"
LIBS="$lib1 $lib2 $LIBS"
CPPFLAGS="$CPPFLAGS -I$pkg/include"
STD_CINCLUDES="$STD_CINCLUDES -I$pkg/include"
fi
fi
;;
*)
AC_CHECK_LIB(pthread, pthread_create,,
AC_CHECK_LIB(pthread, __pthread_create,,
AC_CHECK_LIB(pthread, __pthread_create_system,,
AC_CHECK_LIB(c_r, pthread_create,,
AC_CHECK_LIB(c, pthread_create,,
AC_MSG_ERROR("could not find thread libraries"))))))
;;
esac
fi
if $use_threads
then
#
# We'd like to use sigwait() too
#
AC_CHECK_LIB(c, sigwait,
AC_DEFINE(HAVE_SIGWAIT),
AC_CHECK_LIB(pthread, sigwait,
AC_DEFINE(HAVE_SIGWAIT),
AC_CHECK_LIB(pthread, _Psigwait,
AC_DEFINE(HAVE_SIGWAIT),))
)
AC_CHECK_FUNC(pthread_attr_getstacksize,
AC_DEFINE(HAVE_PTHREAD_ATTR_GETSTACKSIZE),)
#
# Additional OS-specific issues related to pthreads and sigwait.
#
case "$host" in
#
# One more place to look for sigwait.
#
*-freebsd*)
AC_CHECK_LIB(c_r, sigwait, AC_DEFINE(HAVE_SIGWAIT),)
;;
#
# BSDI 3.0 through 4.0.1 needs pthread_init() to be
# called before certain pthreads calls. This is deprecated
# in BSD/OS 4.1.
#
*-bsdi3.*|*-bsdi4.0*)
AC_DEFINE(NEED_PTHREAD_INIT)
;;
#
# LinuxThreads requires some changes to the way we
# deal with signals.
#
*-linux*)
AC_DEFINE(HAVE_LINUXTHREADS)
;;
#
# Ensure the right sigwait() semantics on Solaris and make
# sure we call pthread_setconcurrency.
#
*-solaris*)
AC_DEFINE(_POSIX_PTHREAD_SEMANTICS)
AC_CHECK_FUNC(pthread_setconcurrency,
AC_DEFINE(CALL_PTHREAD_SETCONCURRENCY))
;;
#
# UnixWare does things its own way.
#
*-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
AC_DEFINE(HAVE_UNIXWARE_SIGWAIT)
;;
esac
#
# Look for sysconf to allow detection of the number of processors.
#
AC_CHECK_FUNC(sysconf, AC_DEFINE(HAVE_SYSCONF),)
if test "X$GCC" = "Xyes"; then
case "$host" in
*-freebsd*)
CC="$CC -pthread"
CCOPT="$CCOPT -pthread"
STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
;;
*-openbsd*)
CC="$CC -pthread"
CCOPT="$CCOPT -pthread"
;;
*-solaris*)
LIBS="$LIBS -lthread"
;;
*-ibm-aix*)
STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
;;
esac
else
case $host in
*-dec-osf*)
CC="$CC -pthread"
CCOPT="$CCOPT -pthread"
;;
*-solaris*)
CC="$CC -mt"
CCOPT="$CCOPT -mt"
;;
*-ibm-aix*)
STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
;;
*-sco-sysv*uw*|*-*-sysv*UnixWare*)
CC="$CC -Kthread"
CCOPT="$CCOPT -Kthread"
;;
*-*-sysv*OpenUNIX*)
CC="$CC -Kpthread"
CCOPT="$CCOPT -Kpthread"
;;
esac
fi
ALWAYS_DEFINES="-D_REENTRANT"
ISC_PLATFORM_USETHREADS="#define ISC_PLATFORM_USETHREADS 1"
thread_dir=pthreads
else
ISC_PLATFORM_USETHREADS="#undef ISC_PLATFORM_USETHREADS"
thread_dir=nothreads
ALWAYS_DEFINES=""
fi
AC_SUBST(ALWAYS_DEFINES)
AC_SUBST(ISC_PLATFORM_USETHREADS)
ISC_THREAD_DIR=$thread_dir
AC_SUBST(ISC_THREAD_DIR)
#
# flockfile is usually provided by pthreads, but we may want to use it
# even if compiled with --disable-threads. getc_unlocked might also not
# be defined.
#
AC_CHECK_FUNC(flockfile, AC_DEFINE(HAVE_FLOCKFILE),)
AC_CHECK_FUNC(getc_unlocked, AC_DEFINE(HAVE_GETCUNLOCKED),)
#
# Indicate what the final decision was regarding threads.
#
AC_MSG_CHECKING(whether to build with threads)
if $use_threads; then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
#
# End of pthreads stuff.
#
#
# Large File
#
AC_ARG_ENABLE(largefile, [ --enable-largefile 64-bit file support],
want_largefile="yes", want_largefile="no")
case $want_largefile in
yes)
ALWAYS_DEFINES="$ALWAYS_DEFINES -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
;;
*)
;;
esac
#
# Additional compiler settings.
#
MKDEPCC="$CC"
MKDEPCFLAGS="-M"
IRIX_DNSSEC_WARNINGS_HACK=""
if test "X$GCC" = "Xyes"; then
STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat"
else
case $host in
*-dec-osf*)
CC="$CC -std"
CCOPT="$CCOPT -std"
MKDEPCC="$CC"
;;
*-hp-hpux*)
CC="$CC -Ae -z"
# The version of the C compiler that constantly warns about
# 'const' as well as alignment issues is unfortunately not
# able to be discerned via the version of the operating
# system, nor does cc have a version flag.
case "`$CC +W 123 2>&1`" in
*Unknown?option*)
STD_CWARNINGS="+w1"
;;
*)
# Turn off the pointlessly noisy warnings.
STD_CWARNINGS="+w1 +W 474,530"
;;
esac
CCOPT="$CCOPT -Ae -z"
LIBS="-Wl,+vnocompatwarnings $LIBS"
MKDEPPROG='cc -Ae -E -Wp,-M >/dev/null 2>>$TMP'
;;
*-sgi-irix*)
STD_CWARNINGS="-fullwarn -woff 1209"
#
# Silence more than 250 instances of
# "prototyped function redeclared without prototype"
# and 11 instances of
# "variable ... was set but never used"
# from lib/dns/sec/openssl.
#
IRIX_DNSSEC_WARNINGS_HACK="-woff 1692,1552"
;;
*-solaris*)
MKDEPCFLAGS="-xM"
;;
*-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
# UnixWare
CC="$CC -w"
;;
esac
fi
AC_SUBST(MKDEPCC)
AC_SUBST(MKDEPCFLAGS)
AC_SUBST(MKDEPPROG)
AC_SUBST(IRIX_DNSSEC_WARNINGS_HACK)
#
# NLS
#
AC_CHECK_FUNC(catgets, AC_DEFINE(HAVE_CATGETS),)
#
# -lxnet buys us one big porting headache... standards, gotta love 'em.
#
# AC_CHECK_LIB(xnet, socket, ,
# AC_CHECK_LIB(socket, socket)
# AC_CHECK_LIB(nsl, inet_ntoa)
# )
#
# Use this for now, instead:
#
case "$host" in
mips-sgi-irix*)
;;
*)
AC_CHECK_LIB(socket, socket)
AC_CHECK_LIB(nsl, inet_ntoa)
;;
esac
#
# Purify support
#
AC_MSG_CHECKING(whether to use purify)
AC_ARG_WITH(purify,
[ --with-purify[=PATH] use Rational purify],
use_purify="$withval", use_purify="no")
case "$use_purify" in
no)
;;
yes)
AC_PATH_PROG(purify_path, purify, purify)
;;
*)
purify_path="$use_purify"
;;
esac
case "$use_purify" in
no)
AC_MSG_RESULT(no)
PURIFY=""
;;
*)
if test -f $purify_path || test $purify_path = purify; then
AC_MSG_RESULT($purify_path)
PURIFYFLAGS="`echo $PURIFYOPTIONS`"
PURIFY="$purify_path $PURIFYFLAGS"
else
AC_MSG_ERROR([$purify_path not found.
Please choose the proper path with the following command:
configure --with-purify=PATH
])
fi
;;
esac
AC_SUBST(PURIFY)
#
# GNU libtool support
#
AC_ARG_WITH(libtool,
[ --with-libtool use GNU libtool (following indented options supported)],
use_libtool="$withval", use_libtool="no")
case $use_libtool in
yes)
AM_PROG_LIBTOOL
O=lo
A=la
LIBTOOL_MKDEP_SED='s;\.o;\.lo;'
;;
*)
O=o
A=a
LIBTOOL=
AC_SUBST(LIBTOOL)
LIBTOOL_MKDEP_SED=
;;
esac
#
# File name extension for static archive files, for those few places
# where they are treated differently from dynamic ones.
#
SA=a
AC_SUBST(O)
AC_SUBST(A)
AC_SUBST(SA)
AC_SUBST(LIBTOOL_MKDEP_SED)
#
# build libbind?
#
AC_ARG_ENABLE(libbind,
[ --enable-libbind build libbind [default=no]])
case "$enable_libbind" in
yes)
LIBBIND=lib/bind
AC_SUBST(LIBBIND)
;;
no|'')
;;
esac
#
# Here begins a very long section to determine the system's networking
# capabilities. The order of the tests is signficant.
#
#
# IPv6
#
AC_ARG_ENABLE(ipv6,
[ --enable-ipv6 use IPv6 [default=autodetect]])
case "$enable_ipv6" in
yes|''|autodetect)
AC_DEFINE(WANT_IPV6)
;;
no)
;;
esac
#
# We do the IPv6 compilation checking after libtool so that we can put
# the right suffix on the files.
#
AC_MSG_CHECKING(for IPv6 structures)
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>],
[struct sockaddr_in6 sin6; return (0);],
[AC_MSG_RESULT(yes)
found_ipv6=yes],
[AC_MSG_RESULT(no)
found_ipv6=no])
#
# See whether IPv6 support is provided via a Kame add-on.
# This is done before other IPv6 linking tests to LIBS is properly set.
#
AC_MSG_CHECKING(for Kame IPv6 support)
AC_ARG_WITH(kame,
[ --with-kame[=PATH] use Kame IPv6 [default path /usr/local/v6]],
use_kame="$withval", use_kame="no")
case "$use_kame" in
no)
;;
yes)
kame_path=/usr/local/v6
;;
*)
kame_path="$use_kame"
;;
esac
case "$use_kame" in
no)
AC_MSG_RESULT(no)
;;
*)
if test -f $kame_path/lib/libinet6.a; then
AC_MSG_RESULT($kame_path/lib/libinet6.a)
LIBS="-L$kame_path/lib -linet6 $LIBS"
else
AC_MSG_ERROR([$kame_path/lib/libinet6.a not found.
Please choose the proper path with the following command:
configure --with-kame=PATH
])
fi
;;
esac
#
# Whether netinet6/in6.h is needed has to be defined in isc/platform.h.
# Including it on Kame-using platforms is very bad, though, because
# Kame uses #error against direct inclusion. So include it on only
# the platform that is otherwise broken without it -- BSD/OS 4.0 through 4.1.
# This is done before the in6_pktinfo check because that's what
# netinet6/in6.h is needed for.
#
changequote({, })
case "$host" in
*-bsdi4.[01]*)
ISC_PLATFORM_NEEDNETINET6IN6H="#define ISC_PLATFORM_NEEDNETINET6IN6H 1"
LWRES_PLATFORM_NEEDNETINET6IN6H="#define LWRES_PLATFORM_NEEDNETINET6IN6H 1"
isc_netinet6in6_hack="#include <netinet6/in6.h>"
;;
*)
ISC_PLATFORM_NEEDNETINET6IN6H="#undef ISC_PLATFORM_NEEDNETINET6IN6H"
LWRES_PLATFORM_NEEDNETINET6IN6H="#undef LWRES_PLATFORM_NEEDNETINET6IN6H"
isc_netinet6in6_hack=""
;;
esac
changequote([, ])
#
# This is similar to the netinet6/in6.h issue.
#
case "$host" in
*-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
# UnixWare
ISC_PLATFORM_NEEDNETINETIN6H="#define ISC_PLATFORM_NEEDNETINETIN6H 1"
LWRES_PLATFORM_NEEDNETINETIN6H="#define LWRES_PLATFORM_NEEDNETINETIN6H 1"
ISC_PLATFORM_FIXIN6ISADDR="#define ISC_PLATFORM_FIXIN6ISADDR 1"
isc_netinetin6_hack="#include <netinet/in6.h>"
;;
*)
ISC_PLATFORM_NEEDNETINETIN6H="#undef ISC_PLATFORM_NEEDNETINETIN6H"
LWRES_PLATFORM_NEEDNETINETIN6H="#undef LWRES_PLATFORM_NEEDNETINETIN6H"
ISC_PLATFORM_FIXIN6ISADDR="#undef ISC_PLATFORM_FIXIN6ISADDR"
isc_netinetin6_hack=""
;;
esac
#
# Now delve deeper into the suitability of the IPv6 support.
#
case "$found_ipv6" in
yes)
ISC_PLATFORM_HAVEIPV6="#define ISC_PLATFORM_HAVEIPV6 1"
LWRES_PLATFORM_HAVEIPV6="#define LWRES_PLATFORM_HAVEIPV6 1"
AC_MSG_CHECKING(for in6_addr)
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
$isc_netinetin6_hack
$isc_netinet6in6_hack
],
[struct in6_addr in6; return (0);],
[AC_MSG_RESULT(yes)
ISC_PLATFORM_HAVEINADDR6="#undef ISC_PLATFORM_HAVEINADDR6"
LWRES_PLATFORM_HAVEINADDR6="#undef LWRES_PLATFORM_HAVEINADDR6"
isc_in_addr6_hack=""],
[AC_MSG_RESULT(no)
ISC_PLATFORM_HAVEINADDR6="#define ISC_PLATFORM_HAVEINADDR6 1"
LWRES_PLATFORM_HAVEINADDR6="#define LWRES_PLATFORM_HAVEINADDR6 1"
isc_in_addr6_hack="#define in6_addr in_addr6"])
AC_MSG_CHECKING(for in6addr_any)
AC_TRY_LINK([
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
$isc_netinetin6_hack
$isc_netinet6in6_hack
$isc_in_addr6_hack
],
[struct in6_addr in6; in6 = in6addr_any; return (in6.s6_addr[0]);],
[AC_MSG_RESULT(yes)
ISC_PLATFORM_NEEDIN6ADDRANY="#undef ISC_PLATFORM_NEEDIN6ADDRANY"
LWRES_PLATFORM_NEEDIN6ADDRANY="#undef LWRES_PLATFORM_NEEDIN6ADDRANY"],
[AC_MSG_RESULT(no)
ISC_PLATFORM_NEEDIN6ADDRANY="#define ISC_PLATFORM_NEEDIN6ADDRANY 1"
LWRES_PLATFORM_NEEDIN6ADDRANY="#define LWRES_PLATFORM_NEEDIN6ADDRANY 1"])
AC_MSG_CHECKING(for in6addr_loopback)
AC_TRY_LINK([
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
$isc_netinetin6_hack
$isc_netinet6in6_hack
$isc_in_addr6_hack
],
[struct in6_addr in6; in6 = in6addr_loopback; return (in6.s6_addr[0]);],
[AC_MSG_RESULT(yes)
ISC_PLATFORM_NEEDIN6ADDRLOOPBACK="#undef ISC_PLATFORM_NEEDIN6ADDRLOOPBACK"
LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK="#undef LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK"],
[AC_MSG_RESULT(no)
ISC_PLATFORM_NEEDIN6ADDRLOOPBACK="#define ISC_PLATFORM_NEEDIN6ADDRLOOPBACK 1"
LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK="#define LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK 1"])
AC_MSG_CHECKING(for sin6_scope_id in struct sockaddr_in6)
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
$isc_netinetin6_hack
$isc_netinet6in6_hack
],
[struct sockaddr_in6 xyzzy; xyzzy.sin6_scope_id = 0; return (0);],
[AC_MSG_RESULT(yes)
ISC_PLATFORM_HAVESCOPEID="#define ISC_PLATFORM_HAVESCOPEID 1"
result="#define LWRES_HAVE_SIN6_SCOPE_ID 1"],
[AC_MSG_RESULT(no)
ISC_PLATFORM_HAVESCOPEID="#undef ISC_PLATFORM_HAVESCOPEID"
result="#undef LWRES_HAVE_SIN6_SCOPE_ID"])
LWRES_HAVE_SIN6_SCOPE_ID="$result"
AC_MSG_CHECKING(for in6_pktinfo)
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
$isc_netinetin6_hack
$isc_netinet6in6_hack
],
[struct in6_pktinfo xyzzy; return (0);],
[AC_MSG_RESULT(yes)
ISC_PLATFORM_HAVEIN6PKTINFO="#define ISC_PLATFORM_HAVEIN6PKTINFO 1"],
[AC_MSG_RESULT(no -- disabling runtime ipv6 support)
ISC_PLATFORM_HAVEIN6PKTINFO="#undef ISC_PLATFORM_HAVEIN6PKTINFO"])
;;
no)
ISC_PLATFORM_HAVEIPV6="#undef ISC_PLATFORM_HAVEIPV6"
LWRES_PLATFORM_HAVEIPV6="#undef LWRES_PLATFORM_HAVEIPV6"
ISC_PLATFORM_NEEDIN6ADDRANY="#undef ISC_PLATFORM_NEEDIN6ADDRANY"
LWRES_PLATFORM_NEEDIN6ADDRANY="#undef LWRES_PLATFORM_NEEDIN6ADDRANY"
ISC_PLATFORM_HAVEIN6PKTINFO="#undef ISC_PLATFORM_HAVEIN6PKTINFO"
LWRES_HAVE_SIN6_SCOPE_ID="#define LWRES_HAVE_SIN6_SCOPE_ID 1"
ISC_PLATFORM_HAVESCOPEID="#define ISC_PLATFORM_HAVESCOPEID 1"
ISC_IPV6_H="ipv6.h"
ISC_IPV6_O="ipv6.$O"
ISC_ISCIPV6_O="unix/ipv6.$O"
ISC_IPV6_C="ipv6.c"
;;
esac
AC_SUBST(ISC_PLATFORM_HAVEIPV6)
AC_SUBST(LWRES_PLATFORM_HAVEIPV6)
AC_SUBST(ISC_PLATFORM_NEEDNETINETIN6H)
AC_SUBST(LWRES_PLATFORM_NEEDNETINETIN6H)
AC_SUBST(ISC_PLATFORM_NEEDNETINET6IN6H)
AC_SUBST(LWRES_PLATFORM_NEEDNETINET6IN6H)
AC_SUBST(ISC_PLATFORM_HAVEINADDR6)
AC_SUBST(LWRES_PLATFORM_HAVEINADDR6)
AC_SUBST(ISC_PLATFORM_NEEDIN6ADDRANY)
AC_SUBST(LWRES_PLATFORM_NEEDIN6ADDRANY)
AC_SUBST(ISC_PLATFORM_NEEDIN6ADDRLOOPBACK)
AC_SUBST(LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK)
AC_SUBST(ISC_PLATFORM_HAVEIN6PKTINFO)
AC_SUBST(ISC_PLATFORM_FIXIN6ISADDR)
AC_SUBST(ISC_IPV6_H)
AC_SUBST(ISC_IPV6_O)
AC_SUBST(ISC_ISCIPV6_O)
AC_SUBST(ISC_IPV6_C)
AC_SUBST(LWRES_HAVE_SIN6_SCOPE_ID)
AC_SUBST(ISC_PLATFORM_HAVESCOPEID)
AC_MSG_CHECKING([for struct if_laddrreq])
AC_TRY_LINK([
#include <sys/types.h>
#include <net/if6.h>
],[ struct if_laddrreq a; ],
[AC_MSG_RESULT(yes)
ISC_PLATFORM_HAVEIF_LADDRREQ="#define ISC_PLATFORM_HAVEIF_LADDRREQ 1"],
[AC_MSG_RESULT(no)
ISC_PLATFORM_HAVEIF_LADDRREQ="#undef ISC_PLATFORM_HAVEIF_LADDRREQ"])
AC_SUBST(ISC_PLATFORM_HAVEIF_LADDRREQ)
AC_MSG_CHECKING([for struct if_laddrconf])
AC_TRY_LINK([
#include <sys/types.h>
#include <net/if6.h>
],[ struct if_laddrconf a; ],
[AC_MSG_RESULT(yes)
ISC_PLATFORM_HAVEIF_LADDRCONF="#define ISC_PLATFORM_HAVEIF_LADDRCONF 1"],
[AC_MSG_RESULT(no)
ISC_PLATFORM_HAVEIF_LADDRCONF="#undef ISC_PLATFORM_HAVEIF_LADDRCONF"])
AC_SUBST(ISC_PLATFORM_HAVEIF_LADDRCONF)
#
# Check for network functions that are often missing. We do this
# after the libtool checking, so we can put the right suffix on
# the files. It also needs to come after checking for a Kame add-on,
# which provides some (all?) of the desired functions.
#
AC_MSG_CHECKING([for inet_ntop with IPv6 support])
AC_TRY_RUN([
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
main() {
char a[16],b[64]; return(inet_ntop(AF_INET6, a, b, sizeof(b)) == (char*)0);}],
[AC_MSG_RESULT(yes)
ISC_PLATFORM_NEEDNTOP="#undef ISC_PLATFORM_NEEDNTOP"],
[AC_MSG_RESULT(no)
ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_ntop.$O"
ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_ntop.c"
ISC_PLATFORM_NEEDNTOP="#define ISC_PLATFORM_NEEDNTOP 1"])
# On NetBSD 1.4.2 and maybe others, inet_pton() incorrectly accepts
# addresses with less than four octets, like "1.2.3". Also leading
# zeros should also be rejected.
AC_MSG_CHECKING([for working inet_pton with IPv6 support])
AC_TRY_RUN([
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
main() { char a[16]; return (inet_pton(AF_INET, "1.2.3", a) == 1 ? 1 :
inet_pton(AF_INET, "1.2.3.04", a) == 1 ? 1 :
(inet_pton(AF_INET6, "::1.2.3.4", a) != 1)); }],
[AC_MSG_RESULT(yes)
ISC_PLATFORM_NEEDPTON="#undef ISC_PLATFORM_NEEDPTON"],
[AC_MSG_RESULT(no)
ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_pton.$O"
ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_pton.c"
ISC_PLATFORM_NEEDPTON="#define ISC_PLATFORM_NEEDPTON 1"],
[AC_MSG_RESULT(assuming target platform has working inet_pton)
ISC_PLATFORM_NEEDPTON="#undef ISC_PLATFORM_NEEDPTON"])
AC_MSG_CHECKING([for inet_aton])
AC_TRY_LINK([
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>],
[struct in_addr in; inet_aton(0, &in); return (0);],
[AC_MSG_RESULT(yes)
ISC_PLATFORM_NEEDATON="#undef ISC_PLATFORM_NEEDATON"],
[AC_MSG_RESULT(no)
ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_aton.$O"
ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_aton.c"
ISC_PLATFORM_NEEDATON="#define ISC_PLATFORM_NEEDATON 1"])
AC_SUBST(ISC_PLATFORM_NEEDNTOP)
AC_SUBST(ISC_PLATFORM_NEEDPTON)
AC_SUBST(ISC_PLATFORM_NEEDATON)
#
# Look for a 4.4BSD-style sa_len member in struct sockaddr.
#
case "$host" in
*-dec-osf*)
# Turn on 4.4BSD style sa_len support.
AC_DEFINE(_SOCKADDR_LEN)
;;
esac
AC_MSG_CHECKING(for sa_len in struct sockaddr)
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/socket.h>],
[struct sockaddr sa; sa.sa_len = 0; return (0);],
[AC_MSG_RESULT(yes)
ISC_PLATFORM_HAVESALEN="#define ISC_PLATFORM_HAVESALEN 1"
LWRES_PLATFORM_HAVESALEN="#define LWRES_PLATFORM_HAVESALEN 1"],
[AC_MSG_RESULT(no)
ISC_PLATFORM_HAVESALEN="#undef ISC_PLATFORM_HAVESALEN"
LWRES_PLATFORM_HAVESALEN="#undef LWRES_PLATFORM_HAVESALEN"])
AC_SUBST(ISC_PLATFORM_HAVESALEN)
AC_SUBST(LWRES_PLATFORM_HAVESALEN)
#
# Look for a 4.4BSD or 4.3BSD struct msghdr
#
AC_MSG_CHECKING(for struct msghdr flavor)
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/socket.h>],
[struct msghdr msg; msg.msg_flags = 0; return (0);],
[AC_MSG_RESULT(4.4BSD)
ISC_PLATFORM_MSGHDRFLAVOR="#define ISC_NET_BSD44MSGHDR 1"],
[AC_MSG_RESULT(4.3BSD)
ISC_PLATFORM_MSGHDRFLAVOR="#define ISC_NET_BSD43MSGHDR 1"])
AC_SUBST(ISC_PLATFORM_MSGHDRFLAVOR)
#
# Look for in_port_t.
#
AC_MSG_CHECKING(for type in_port_t)
AC_TRY_COMPILE([
#include <sys/types.h>
#include <netinet/in.h>],
[in_port_t port = 25; return (0);],
[AC_MSG_RESULT(yes)
ISC_PLATFORM_NEEDPORTT="#undef ISC_PLATFORM_NEEDPORTT"],
[AC_MSG_RESULT(no)
ISC_PLATFORM_NEEDPORTT="#define ISC_PLATFORM_NEEDPORTT 1"])
AC_SUBST(ISC_PLATFORM_NEEDPORTT)
#
# Check for addrinfo
#
AC_MSG_CHECKING(for struct addrinfo)
AC_TRY_COMPILE([
#include <netdb.h>],
[struct addrinfo a; return (0);],
[AC_MSG_RESULT(yes)
ISC_LWRES_NEEDADDRINFO="#undef ISC_LWRES_NEEDADDRINFO"
AC_DEFINE(HAVE_ADDRINFO)],
[AC_MSG_RESULT(no)
ISC_LWRES_NEEDADDRINFO="#define ISC_LWRES_NEEDADDRINFO 1"])
AC_SUBST(ISC_LWRES_NEEDADDRINFO)
#
# Check for rrsetinfo
#
AC_MSG_CHECKING(for struct rrsetinfo)
AC_TRY_COMPILE([
#include <netdb.h>],
[struct rrsetinfo r; return (0);],
[AC_MSG_RESULT(yes)
ISC_LWRES_NEEDRRSETINFO="#undef ISC_LWRES_NEEDRRSETINFO"],
[AC_MSG_RESULT(no)
ISC_LWRES_NEEDRRSETINFO="#define ISC_LWRES_NEEDRRSETINFO 1"])
AC_SUBST(ISC_LWRES_NEEDRRSETINFO)
AC_MSG_CHECKING(for int sethostent)
AC_TRY_COMPILE([
#include <netdb.h>],
[int i = sethostent(0); return(0);],
[AC_MSG_RESULT(yes)
ISC_LWRES_SETHOSTENTINT="#define ISC_LWRES_SETHOSTENTINT 1"],
[AC_MSG_RESULT(no)
ISC_LWRES_SETHOSTENTINT="#undef ISC_LWRES_SETHOSTENTINT"])
AC_SUBST(ISC_LWRES_SETHOSTENTINT)
AC_MSG_CHECKING(for int endhostent)
AC_TRY_COMPILE([
#include <netdb.h>],
[int i = endhostent(); return(0);],
[AC_MSG_RESULT(yes)
ISC_LWRES_ENDHOSTENTINT="#define ISC_LWRES_ENDHOSTENTINT 1"],
[AC_MSG_RESULT(no)
ISC_LWRES_ENDHOSTENTINT="#undef ISC_LWRES_ENDHOSTENTINT"])
AC_SUBST(ISC_LWRES_ENDHOSTENTINT)
AC_MSG_CHECKING(for getnetbyaddr(in_addr_t, ...))
AC_TRY_COMPILE([
#include <netdb.h>
struct netent *getnetbyaddr(in_addr_t, int);],
[],
[AC_MSG_RESULT(yes)
ISC_LWRES_GETNETBYADDRINADDR="#define ISC_LWRES_GETNETBYADDRINADDR 1"],
[AC_MSG_RESULT(no)
ISC_LWRES_GETNETBYADDRINADDR="#undef ISC_LWRES_GETNETBYADDRINADDR"])
AC_SUBST(ISC_LWRES_GETNETBYADDRINADDR)
AC_MSG_CHECKING(for int setnetent)
AC_TRY_COMPILE([
#include <netdb.h>],
[int i = setnetent(0); return(0);],
[AC_MSG_RESULT(yes)
ISC_LWRES_SETNETENTINT="#define ISC_LWRES_SETNETENTINT 1"],
[AC_MSG_RESULT(no)
ISC_LWRES_SETNETENTINT="#undef ISC_LWRES_SETNETENTINT"])
AC_SUBST(ISC_LWRES_SETNETENTINT)
AC_MSG_CHECKING(for int endnetent)
AC_TRY_COMPILE([
#include <netdb.h>],
[int i = endnetent(); return(0);],
[AC_MSG_RESULT(yes)
ISC_LWRES_ENDNETENTINT="#define ISC_LWRES_ENDNETENTINT 1"],
[AC_MSG_RESULT(no)
ISC_LWRES_ENDNETENTINT="#undef ISC_LWRES_ENDNETENTINT"])
AC_SUBST(ISC_LWRES_ENDNETENTINT)
AC_MSG_CHECKING(for gethostbyaddr(const void *, size_t, ...))
AC_TRY_COMPILE([
#include <netdb.h>
struct hostent *gethostbyaddr(const void *, size_t, int);],
[return(0);],
[AC_MSG_RESULT(yes)
ISC_LWRES_GETHOSTBYADDRVOID="#define ISC_LWRES_GETHOSTBYADDRVOID 1"],
[AC_MSG_RESULT(no)
ISC_LWRES_GETHOSTBYADDRVOID="#undef ISC_LWRES_GETHOSTBYADDRVOID"])
AC_SUBST(ISC_LWRES_GETHOSTBYADDRVOID)
AC_MSG_CHECKING(for h_errno in netdb.h)
AC_TRY_COMPILE([
#include <netdb.h>],
[h_errno = 1; return(0);],
[AC_MSG_RESULT(yes)
ISC_LWRES_NEEDHERRNO="#undef ISC_LWRES_NEEDHERRNO"],
[AC_MSG_RESULT(no)
ISC_LWRES_NEEDHERRNO="#define ISC_LWRES_NEEDHERRNO 1"])
AC_SUBST(ISC_LWRES_NEEDHERRNO)
AC_CHECK_FUNC(getipnodebyname,
[ISC_LWRES_GETIPNODEPROTO="#undef ISC_LWRES_GETIPNODEPROTO"],
[ISC_LWRES_GETIPNODEPROTO="#define ISC_LWRES_GETIPNODEPROTO 1"])
AC_CHECK_FUNC(getnameinfo,
[ISC_LWRES_GETNAMEINFOPROTO="#undef ISC_LWRES_GETNAMEINFOPROTO"],
[ISC_LWRES_GETNAMEINFOPROTO="#define ISC_LWRES_GETNAMEINFOPROTO 1"])
AC_CHECK_FUNC(getaddrinfo,
[ISC_LWRES_GETADDRINFOPROTO="#undef ISC_LWRES_GETADDRINFOPROTO"
AC_DEFINE(HAVE_GETADDRINFO)],
[ISC_LWRES_GETADDRINFOPROTO="#define ISC_LWRES_GETADDRINFOPROTO 1"])
AC_CHECK_FUNC(gai_strerror, AC_DEFINE(HAVE_GAISTRERROR))
AC_SUBST(ISC_LWRES_GETIPNODEPROTO)
AC_SUBST(ISC_LWRES_GETADDRINFOPROTO)
AC_SUBST(ISC_LWRES_GETNAMEINFOPROTO)
#
# Look for a sysctl call to get the list of network interfaces.
#
case $ac_cv_header_sys_sysctl_h in
yes)
AC_MSG_CHECKING(for interface list sysctl)
AC_EGREP_CPP(found_rt_iflist, [
#include <sys/param.h>
#include <sys/sysctl.h>
#include <sys/socket.h>
#ifdef NET_RT_IFLIST
found_rt_iflist
#endif
],
[AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_IFLIST_SYSCTL)],
[AC_MSG_RESULT(no)])
;;
esac
#
# Check for some other useful functions that are not ever-present.
#
# We test for strsep() using AC_TRY_LINK instead of AC_CHECK_FUNC
# because AIX 4.3.3 with patches for bos.adt.include to version 4.3.3.77
# reportedly defines strsep() without declaring it in <string.h> when
# -D_LINUX_SOURCE_COMPAT is not defined [RT #2190], and
# AC_CHECK_FUNC() incorrectly succeeds because it declares
# the function itself.
AC_MSG_CHECKING(for correctly declared strsep())
AC_TRY_LINK([#include <string.h>], [char *sp; char *foo = strsep(&sp, ".");],
[AC_MSG_RESULT(yes); ISC_PLATFORM_NEEDSTRSEP="#undef ISC_PLATFORM_NEEDSTRSEP"],
[AC_MSG_RESULT(no); ISC_PLATFORM_NEEDSTRSEP="#define ISC_PLATFORM_NEEDSTRSEP 1"])
AC_CHECK_FUNC(vsnprintf,
[ISC_PLATFORM_NEEDVSNPRINTF="#undef ISC_PLATFORM_NEEDVSNPRINTF"],
[ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS print.$O"
ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS print.c"
ISC_PLATFORM_NEEDVSNPRINTF="#define ISC_PLATFORM_NEEDVSNPRINTF 1"])
AC_SUBST(ISC_PLATFORM_NEEDSTRSEP)
AC_SUBST(ISC_PLATFORM_NEEDVSNPRINTF)
AC_CHECK_FUNC(strerror, AC_DEFINE(HAVE_STRERROR))
AC_SUBST(ISC_EXTRA_OBJS)
AC_SUBST(ISC_EXTRA_SRCS)
#
# Determine the printf format characters to use when printing
# values of type isc_int64_t. We make the assumption that platforms
# where a "long long" is the same size as a "long" (e.g., Alpha/OSF1)
# want "%ld" and everyone else can use "%lld". Win32 uses "%I64d",
# but that's defined elsewhere since we don't use configure on Win32.
#
AC_MSG_CHECKING(printf format modifier for 64-bit integers)
AC_TRY_RUN([main() { exit(!(sizeof(long long int) == sizeof(long int))); }],
[AC_MSG_RESULT(l)
ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "l"'],
[AC_MSG_RESULT(ll)
ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "ll"'],
[AC_MSG_RESULT(assuming target platform uses ll)
ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "ll"'])
AC_SUBST(ISC_PLATFORM_QUADFORMAT)
#
# Security Stuff
#
AC_CHECK_FUNC(chroot, AC_DEFINE(HAVE_CHROOT))
AC_ARG_ENABLE(linux-caps,
[ --disable-linux-caps disable linux capabilities])
case "$enable_linux_caps" in
yes|'')
AC_CHECK_HEADERS(linux/capability.h)
;;
no)
;;
esac
AC_CHECK_HEADERS(sys/prctl.h)
#
# BSD/OS, and perhaps some others, don't define rlim_t.
#
AC_MSG_CHECKING(for type rlim_t)
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>],
[rlim_t rl = 19671212; return (0);],
[AC_MSG_RESULT(yes)
ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE rlim_t"],
[AC_MSG_RESULT(no)
AC_MSG_CHECKING(type of rlim_cur)
AC_TRY_RUN([
#include <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>
main() { struct rlimit r; exit(!(sizeof(r.rlim_cur) == sizeof(int)));}],
[AC_MSG_RESULT(int)
ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE int"],
[
AC_TRY_RUN([
#include <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>
main() { struct rlimit r; exit(!(sizeof(r.rlim_cur) == sizeof(long int)));}],
[AC_MSG_RESULT(long int)
ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE long int"],
[
AC_TRY_RUN([
#include <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>
main() { struct rlimit r; exit((!sizeof(r.rlim_cur) == sizeof(long long int)));}],
[AC_MSG_RESULT(long long int)
ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE long long int"],
[AC_MSG_ERROR([unable to determine sizeof rlim_cur])
],[AC_MSG_ERROR(this cannot happen)])
],[AC_MSG_ERROR(this cannot happen)])
],[AC_MSG_ERROR(cannot determine type of rlim_cur when cross compiling - define rlim_t)])
])
AC_SUBST(ISC_PLATFORM_RLIMITTYPE)
#
# Compaq TruCluster requires more code for handling cluster IP aliases
#
case "$host" in
*-dec-osf*)
AC_CHECK_LIB(clua, clua_getaliasaddress, LIBS="-lclua $LIBS")
AC_CHECK_FUNC(clua_getaliasaddress,
AC_DEFINE(HAVE_TRUCLUSTER, 1,
[Define if running under Compaq TruCluster]))
;;
*)
;;
esac
#
# Microsoft has their own way of handling shared libraries that requires
# additional qualifiers on extern variables. Unix systems don't need it.
#
AC_SUBST(ISC_PLATFORM_USEDECLSPEC)
ISC_PLATFORM_USEDECLSPEC="#undef ISC_PLATFORM_USEDECLSPEC"
AC_SUBST(LWRES_PLATFORM_USEDECLSPEC)
LWRES_PLATFORM_USEDECLSPEC="#undef LWRES_PLATFORM_USEDECLSPEC"
#
# Random remaining OS-specific issues involving compiler warnings.
# XXXDCL print messages to indicate some compensation is being done?
#
AC_SUBST(ISC_PLATFORM_BRACEPTHREADONCEINIT)
ISC_PLATFORM_BRACEPTHREADONCEINIT="#undef ISC_PLATFORM_BRACEPTHREADONCEINIT"
case "$host" in
*-bsdi3.1*)
hack_shutup_sputaux=yes
;;
*-bsdi4.0*)
hack_shutup_sigwait=yes
hack_shutup_sputaux=yes
;;
[*-bsdi4.[12]*])
hack_shutup_stdargcast=yes
;;
[*-solaris2.[89]])
hack_shutup_pthreadonceinit=yes
;;
esac
case "$hack_shutup_pthreadonceinit" in
yes)
#
# Shut up PTHREAD_ONCE_INIT unbraced initializer warnings.
#
ISC_PLATFORM_BRACEPTHREADONCEINIT="#define ISC_PLATFORM_BRACEPTHREADONCEINIT 1"
;;
esac
case "$hack_shutup_sigwait" in
yes)
#
# Shut up a -Wmissing-prototypes warning for sigwait().
#
AC_DEFINE(SHUTUP_SIGWAIT)
;;
esac
case "$hack_shutup_sputaux" in
yes)
#
# Shut up a -Wmissing-prototypes warning from <stdio.h>.
#
AC_DEFINE(SHUTUP_SPUTAUX)
;;
esac
case "$hack_shutup_stdargcast" in
yes)
#
# Shut up a -Wcast-qual warning from va_start().
#
AC_DEFINE(SHUTUP_STDARG_CAST)
;;
esac
#
# Check for if_nametoindex() for IPv6 scoped addresses support
#
AC_CHECK_FUNC(if_nametoindex, ac_cv_have_if_nametoindex=yes,
ac_cv_have_if_nametoindex=no)
case $ac_cv_have_if_nametoindex in
no)
case "$host" in
*-hp-hpux*)
AC_CHECK_LIB(ipv6, if_nametoindex,
ac_cv_have_if_nametoindex=yes
LIBS="-lipv6 $LIBS",)
;;
esac
esac
case $ac_cv_have_if_nametoindex in
yes)
ISC_PLATFORM_HAVEIFNAMETOINDEX="#define ISC_PLATFORM_HAVEIFNAMETOINDEX 1"
;;
*)
ISC_PLATFORM_HAVEIFNAMETOINDEX="#undef ISC_PLATFORM_HAVEIFNAMETOINDEX"
;;
esac
AC_SUBST(ISC_PLATFORM_HAVEIFNAMETOINDEX)
#
# The following sections deal with tools used for formatting
# the documentation. They are all optional, unless you are
# a developer editing the documentation source.
#
# Directory trees where SGML files are commonly found.
sgmltrees="/usr/pkg/share/sgml /usr/local/share/sgml /usr/share/sgml"
#
# Look for openjade. Plain jade is no longer supported.
#
AC_PATH_PROGS(OPENJADE, openjade, openjade)
AC_SUBST(OPENJADE)
#
# Look for TeX.
#
AC_PATH_PROGS(JADETEX, jadetex, jadetex)
AC_SUBST(JADETEX)
AC_PATH_PROGS(PDFJADETEX, pdfjadetex, pdfjadetex)
AC_SUBST(PDFJADETEX)
#
# Subroutine for searching for an ordinary file (e.g., a stylesheet)
# in a number of directories:
#
# NOM_PATH_FILE(VARIABLE, FILENAME, DIRECTORIES)
#
# If the file FILENAME is found in one of the DIRECTORIES, the shell
# variable VARIABLE is defined to its absolute pathname. Otherwise,
# it is set to FILENAME, with no directory prefix (that's not terribly
# useful, but looks less confusing in substitutions than leaving it
# empty). The variable VARIABLE will be substituted into output files.
#
AC_DEFUN(NOM_PATH_FILE, [
$1=""
AC_MSG_CHECKING(for $2)
for d in $3
do
f=$d/$2
if test -f $f
then
$1=$f
AC_MSG_RESULT($f)
break
fi
done
if test "X[$]$1" = "X"
then
AC_MSG_RESULT("not found");
$1=$2
fi
AC_SUBST($1)
])
#
# Look for the SGML catalog.
# Its location varies, so far we have seen:
#
# NetBSD /usr/pkg/share/sgml/docbook/catalog
# FreeBSD /usr/local/share/sgml/docbook/catalog
# Linux /usr/local/share/dsssl/docbook/catalog
# /usr/share/sgml/docbook/dsssl-stylesheets/catalog
#
catalogpath=""
for d in $sgmltrees
do
catalogpath="$catalogpath $d"
for s in docbook/dsssl-stylesheets
do
catalogpath="$catalogpath $d/$s"
done
done
NOM_PATH_FILE(SGMLCATALOG, catalog, $catalogpath)
#
# Look for the HTML stylesheet html/docbook.dsl, used for
# formatting man pages in HTML. Its location varies,
# so far we have seen:
#
# NetBSD /usr/pkg/share/sgml/docbook/dsssl/modular/
# FreeBSD /usr/local/share/sgml/docbook/dsssl/modular/
# Linux /usr/local/share/dsssl/docbook/
# /usr/share/sgml/docbook/dsssl-stylesheets/
#
# Ditto for the print stylesheet print/docbook.dsl.
#
stylepath=""
for d in $sgmltrees
do
for s in docbook/dsssl/modular dsssl/docbook docbook/dsssl-stylesheets
do
stylepath="$stylepath $d/$s"
done
done
NOM_PATH_FILE(HTMLSTYLE, html/docbook.dsl, $stylepath)
NOM_PATH_FILE(PRINTSTYLE, print/docbook.dsl, $stylepath)
#
# Look for XML declarations.
# Its location varies, so far we have seen:
#
# NetBSD /usr/pkg/share/sgml/docbook/dsssl/modular/dtds/decls/
# FreeBSD /usr/local/share/sgml/docbook/dsssl/modular/dtds/decls/
# Linux /usr/local/share/dsssl/docbook/dtds/decls/
# /usr/share/sgml/docbook/dsssl-stylesheets/dtds/decls/
#
xmlpath=""
for d in $sgmltrees
do
for s in docbook/dsssl/modular dsssl/docbook docbook/dsssl-stylesheets
do
xmlpath="$xmlpath $d/$s"
done
done
NOM_PATH_FILE(XMLDCL, dtds/decls/xml.dcl, $xmlpath)
#
# Look for docbook2man-spec.pl
#
NOM_PATH_FILE(DOCBOOK2MANSPEC, docbook2X/docbook2man-spec.pl, $sgmltrees)
#
# Substitutions
#
AC_SUBST(BIND9_TOP_BUILDDIR)
BIND9_TOP_BUILDDIR=`pwd`
AC_SUBST(BIND9_ISC_BUILDINCLUDE)
AC_SUBST(BIND9_ISCCC_BUILDINCLUDE)
AC_SUBST(BIND9_ISCCFG_BUILDINCLUDE)
AC_SUBST(BIND9_DNS_BUILDINCLUDE)
AC_SUBST(BIND9_LWRES_BUILDINCLUDE)
AC_SUBST(BIND9_BIND9_BUILDINCLUDE)
if test "X$srcdir" != "X"; then
BIND9_ISC_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/isc/include"
BIND9_ISCCC_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/isccc/include"
BIND9_ISCCFG_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/isccfg/include"
BIND9_DNS_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/dns/include"
BIND9_LWRES_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/lwres/include"
BIND9_BIND9_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/bind9/include"
else
BIND9_ISC_BUILDINCLUDE=""
BIND9_ISCCC_BUILDINCLUDE=""
BIND9_ISCCFG_BUILDINCLUDE=""
BIND9_DNS_BUILDINCLUDE=""
BIND9_LWRES_BUILDINCLUDE=""
BIND9_BIND9_BUILDINCLUDE=""
fi
AC_SUBST_FILE(BIND9_MAKE_INCLUDES)
BIND9_MAKE_INCLUDES=$BIND9_TOP_BUILDDIR/make/includes
AC_SUBST_FILE(BIND9_MAKE_RULES)
BIND9_MAKE_RULES=$BIND9_TOP_BUILDDIR/make/rules
. $srcdir/version
BIND9_VERSION="VERSION=${MAJORVER}.${MINORVER}.${PATCHVER}${RELEASETYPE}${RELEASEVER}"
AC_SUBST(BIND9_VERSION)
AC_SUBST_FILE(LIBISC_API)
LIBISC_API=$srcdir/lib/isc/api
AC_SUBST_FILE(LIBISCCC_API)
LIBISCCC_API=$srcdir/lib/isccc/api
AC_SUBST_FILE(LIBISCCFG_API)
LIBISCCFG_API=$srcdir/lib/isccfg/api
AC_SUBST_FILE(LIBDNS_API)
LIBDNS_API=$srcdir/lib/dns/api
AC_SUBST_FILE(LIBBIND9_API)
LIBBIND9_API=$srcdir/lib/bind9/api
AC_SUBST_FILE(LIBLWRES_API)
LIBLWRES_API=$srcdir/lib/lwres/api
AC_OUTPUT(
make/rules
make/includes
Makefile
make/Makefile
make/mkdep
lib/Makefile
lib/isc/Makefile
lib/isc/include/Makefile
lib/isc/include/isc/Makefile
lib/isc/include/isc/platform.h
lib/isc/unix/Makefile
lib/isc/unix/include/Makefile
lib/isc/unix/include/isc/Makefile
lib/isc/nls/Makefile
lib/isc/$thread_dir/Makefile
lib/isc/$thread_dir/include/Makefile
lib/isc/$thread_dir/include/isc/Makefile
lib/isccc/Makefile
lib/isccc/include/Makefile
lib/isccc/include/isccc/Makefile
lib/isccfg/Makefile
lib/isccfg/include/Makefile
lib/isccfg/include/isccfg/Makefile
lib/dns/Makefile
lib/dns/include/Makefile
lib/dns/include/dns/Makefile
lib/dns/sec/Makefile
lib/dns/sec/dst/Makefile
lib/dns/sec/dst/include/Makefile
lib/dns/sec/dst/include/dst/Makefile
lib/bind9/Makefile
lib/bind9/include/Makefile
lib/bind9/include/bind9/Makefile
lib/lwres/Makefile
lib/lwres/include/Makefile
lib/lwres/include/lwres/Makefile
lib/lwres/include/lwres/netdb.h
lib/lwres/include/lwres/platform.h
lib/lwres/man/Makefile
lib/lwres/unix/Makefile
lib/lwres/unix/include/Makefile
lib/lwres/unix/include/lwres/Makefile
lib/tests/Makefile
lib/tests/include/Makefile
lib/tests/include/tests/Makefile
bin/Makefile
bin/check/Makefile
bin/named/Makefile
bin/named/unix/Makefile
bin/rndc/Makefile
bin/rndc/unix/Makefile
bin/dig/Makefile
bin/nsupdate/Makefile
bin/tests/Makefile
bin/tests/names/Makefile
bin/tests/master/Makefile
bin/tests/rbt/Makefile
bin/tests/db/Makefile
bin/tests/tasks/Makefile
bin/tests/timers/Makefile
bin/tests/dst/Makefile
bin/tests/mem/Makefile
bin/tests/net/Makefile
bin/tests/sockaddr/Makefile
bin/tests/system/Makefile
bin/tests/system/conf.sh
bin/tests/system/lwresd/Makefile
bin/tests/system/tkey/Makefile
bin/tests/headerdep_test.sh
bin/dnssec/Makefile
doc/Makefile
doc/arm/Makefile
doc/arm/nominum-docbook-html.dsl
doc/arm/nominum-docbook-print.dsl
doc/arm/validate.sh
doc/misc/Makefile
docutil/docbook2man-wrapper.sh
isc-config.sh
)
chmod a+x isc-config.sh
# Tell Emacs to edit this file in shell mode.
# Local Variables:
# mode: sh
# End: