configure.in revision ad9107efaaae2407cf11bf0c55407d8daed2e2d4
1633838b8255282d10af15c5c84cee5a51466712Bob Halley# Copyright (C) 2004-2010 Internet Systems Consortium, Inc. ("ISC")
1633838b8255282d10af15c5c84cee5a51466712Bob Halley# Copyright (C) 1998-2003 Internet Software Consortium.
1633838b8255282d10af15c5c84cee5a51466712Bob Halley#
1633838b8255282d10af15c5c84cee5a51466712Bob Halley# Permission to use, copy, modify, and/or distribute this software for any
1633838b8255282d10af15c5c84cee5a51466712Bob Halley# purpose with or without fee is hereby granted, provided that the above
1633838b8255282d10af15c5c84cee5a51466712Bob Halley# copyright notice and this permission notice appear in all copies.
1633838b8255282d10af15c5c84cee5a51466712Bob Halley#
1633838b8255282d10af15c5c84cee5a51466712Bob Halley# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
1633838b8255282d10af15c5c84cee5a51466712Bob Halley# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
1633838b8255282d10af15c5c84cee5a51466712Bob Halley# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
1633838b8255282d10af15c5c84cee5a51466712Bob Halley# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
1633838b8255282d10af15c5c84cee5a51466712Bob Halley# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
1633838b8255282d10af15c5c84cee5a51466712Bob Halley# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
1633838b8255282d10af15c5c84cee5a51466712Bob Halley# PERFORMANCE OF THIS SOFTWARE.
1633838b8255282d10af15c5c84cee5a51466712Bob Halley
1633838b8255282d10af15c5c84cee5a51466712Bob Halleydnl
d25afd60ee2286cb171c4960a790f3d7041b6f85Bob HalleyAC_DIVERT_PUSH(1)dnl
d25afd60ee2286cb171c4960a790f3d7041b6f85Bob Halleyesyscmd([sed "s/^/# /" COPYRIGHT])dnl
d25afd60ee2286cb171c4960a790f3d7041b6f85Bob HalleyAC_DIVERT_POP()dnl
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_REVISION($Revision: 1.502 $)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_INIT(lib/dns/name.c)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_PREREQ(2.59)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_CONFIG_HEADER(config.h)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_CANONICAL_HOST
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_PROG_MAKE_SET
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# GNU libtool support
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleycase $build_os in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleysunos*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # Just set the maximum command line length for sunos as it otherwise
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # takes a exceptionally long time to work it out. Required for libtool.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley lt_cv_sys_max_cmd_len=4096;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyesac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_PROG_LIBTOOL
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_PROG_INSTALL
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_PROG_LN_S
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(STD_CINCLUDES)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(STD_CDEFINES)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(STD_CWARNINGS)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(CCOPT)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# Warn if the user specified libbind, which is now deprecated
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_ARG_ENABLE(libbind, [ --enable-libbind deprecated])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleycase "$enable_libbind" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_ERROR(['libbind' is no longer part of the BIND 9 distribution.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyIt is available from http://www.isc.org as a separate download.])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley no|'')
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyesac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# Make very sure that these are the first files processed by
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# config.status, since we use the processed output as the input for
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# AC_SUBST_FILE() substitutions in other files.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_CONFIG_FILES([make/rules make/includes])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_PATH_PROG(AR, ar)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyARFLAGS="cruv"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(AR)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(ARFLAGS)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# The POSIX ln(1) program. Non-POSIX systems may substitute
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# "copy" or something.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyLN=ln
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(LN)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleycase "$AR" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley "")
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_ERROR([
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyar program not found. Please fix your PATH to include the directory in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleywhich ar resides, or set AR in the environment with the full path to ar.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyesac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# Etags.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_PATH_PROGS(ETAGS, etags emacs-etags)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# Some systems, e.g. RH7, have the Exuberant Ctags etags instead of
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# GNU emacs etags, and it requires the -L flag.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyif test "X$ETAGS" != "X"; then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_CHECKING(for Exuberant Ctags etags)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley if $ETAGS --version 2>&1 | grep 'Exuberant Ctags' >/dev/null 2>&1; then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ETAGS="$ETAGS -L"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley else
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(no)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley fi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyfi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(ETAGS)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley# Perl is optional; it is used only by some of the system test scripts.
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley# Note: the backtrace feature (see below) uses perl to build the symbol table,
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley# but it still compiles without perl, in which case an empty table will be used.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_PATH_PROGS(PERL, perl5 perl)
3740b569ae76295b941d57a724a43beb75b533baBob HalleyAC_SUBST(PERL)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
3740b569ae76295b941d57a724a43beb75b533baBob Halley#
3740b569ae76295b941d57a724a43beb75b533baBob Halley# Special processing of paths depending on whether --prefix,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# --sysconfdir or --localstatedir arguments were given. What's
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley# desired is some compatibility with the way previous versions
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley# of BIND built; they defaulted to /usr/local for most parts of
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley# the installation, but named.boot/named.conf was in /etc
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley# and named.pid was in /var/run.
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley#
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley# So ... if none of --prefix, --sysconfdir or --localstatedir are
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley# specified, set things up that way. If --prefix is given, use
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley# it for sysconfdir and localstatedir the way configure normally
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley# would. To change the prefix for everything but leave named.conf
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley# in /etc or named.pid in /var/run, then do this the usual configure way:
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley# ./configure --prefix=/somewhere --sysconfdir=/etc
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley# ./configure --prefix=/somewhere --localstatedir=/var
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley#
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley# To put named.conf and named.pid in /usr/local with everything else,
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley# set the prefix explicitly to /usr/local even though that's the default:
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley# ./configure --prefix=/usr/local
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley#
577179503f2eb7695ec668d8eeb41889a150e28fBob Halleycase "$prefix" in
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley NONE)
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley case "$sysconfdir" in
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley '${prefix}/etc')
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley sysconfdir=/etc
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley ;;
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley esac
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley case "$localstatedir" in
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley '${prefix}/var')
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley localstatedir=/var
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
3740b569ae76295b941d57a724a43beb75b533baBob Halleyesac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# Make sure INSTALL uses an absolute path, else it will be wrong in all
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# Makefiles, since they use make/rules.in and INSTALL will be adjusted by
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# configure based on the location of the file where it is substituted.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# Since in BIND9 INSTALL is only substituted into make/rules.in, an immediate
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# subdirectory of install-sh, This relative path will be wrong for all
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# directories more than one level down from install-sh.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleycase "$INSTALL" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley /*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # Not all systems have dirname.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
3740b569ae76295b941d57a724a43beb75b533baBob Halley changequote({, })
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ac_dir="`echo $INSTALL | sed 's%/[^/]*$%%'`"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley changequote([, ])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ac_prog="`echo $INSTALL | sed 's%.*/%%'`"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley test "$ac_dir" = "$ac_prog" && ac_dir=.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley test -d "$ac_dir" && ac_dir="`(cd \"$ac_dir\" && pwd)`"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley INSTALL="$ac_dir/$ac_prog"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyesac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# On these hosts, we really want to use cc, not gcc, even if it is
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# found. The gcc that these systems have will not correctly handle
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# pthreads.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# However, if the user sets $CC to be something, let that override
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# our change.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
3740b569ae76295b941d57a724a43beb75b533baBob Halleyif test "X$CC" = "X" ; then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley case "$host" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-dec-osf*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CC="cc"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-solaris*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # Use Sun's cc if it is available, but watch
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # out for /usr/ucb/cc; it will never be the right
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # compiler to use.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # If setting CC here fails, the AC_PROG_CC done
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # below might still find gcc.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley for ac_dir in $PATH; do
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley test -z "$ac_dir" && ac_dir=.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley case "$ac_dir" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley /usr/ucb)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # exclude
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley if test -f "$ac_dir/cc"; then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CC="$ac_dir/cc"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley break
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley fi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley done
3740b569ae76295b941d57a724a43beb75b533baBob Halley IFS="$ac_save_ifs"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-hp-hpux*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CC="cc"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley mips-sgi-irix*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CC="cc"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyfi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
3740b569ae76295b941d57a724a43beb75b533baBob HalleyAC_PROG_CC
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# gcc's optimiser is broken at -02 for ultrasparc
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyif test "$ac_env_CFLAGS_set" != set -a "X$GCC" = "Xyes"; then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley case "$host" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley sparc-*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CCFLAGS="-g -O1"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyfi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
3740b569ae76295b941d57a724a43beb75b533baBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# OS dependent CC flags
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleycase "$host" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # OSF 5.0: recv/send are only available with -D_POSIX_PII_SOCKET or
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # -D_XOPEN_SOURCE_EXTENDED.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-dec-osf*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley STD_CDEFINES="$STD_CDEFINES -D_POSIX_PII_SOCKET"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CPPFLAGS="$CPPFLAGS -D_POSIX_PII_SOCKET"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #HP-UX: need -D_XOPEN_SOURCE_EXTENDED and -lxnet for CMSG macros
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-hp-hpux*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley STD_CDEFINES="$STD_CDEFINES -D_XOPEN_SOURCE_EXTENDED"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley LIBS="-lxnet $LIBS"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # Solaris: need -D_XPG4_2 and -D__EXTENSIONS__ for CMSG macros
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-solaris*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley STD_CDEFINES="$STD_CDEFINES -D_XPG4_2 -D__EXTENSIONS__"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CPPFLAGS="$CPPFLAGS -D_XPG4_2 -D__EXTENSIONS__"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # POSIX doesn't include the IPv6 Advanced Socket API and glibc hides
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # parts of the IPv6 Advanced Socket API as a result. This is stupid
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # as it breaks how the two halves (Basic and Advanced) of the IPv6
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # Socket API were designed to be used but we have to live with it.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # Define _GNU_SOURCE to pull in the IPv6 Advanced Socket API.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-linux*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley STD_CDEFINES="$STD_CDEFINES -D_GNU_SOURCE"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyesac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_HEADER_STDC
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_CHECK_HEADERS(fcntl.h regex.h sys/time.h unistd.h sys/sockio.h sys/select.h sys/param.h sys/sysctl.h net/if6.h,,,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley[$ac_includes_default
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#ifdef HAVE_SYS_PARAM_H
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# include <sys/param.h>
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#endif
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_C_CONST
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_C_INLINE
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_C_VOLATILE
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_CHECK_FUNC(sysctlbyname, AC_DEFINE(HAVE_SYSCTLBYNAME))
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_C_FLEXIBLE_ARRAY_MEMBER
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# Older versions of HP/UX don't define seteuid() and setegid()
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_CHECK_FUNCS(seteuid setresuid)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_CHECK_FUNCS(setegid setresgid)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# UnixWare 7.1.1 with the feature supplement to the UDK compiler
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# is reported to not support "static inline" (RT #1212).
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_MSG_CHECKING(for static inline breakage)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_TRY_COMPILE(, [
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley foo1();
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley }
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley static inline int foo1() {
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley return 0;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley }
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley static inline int foo2() {
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley return foo1();
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(no)],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_DEFINE(inline, )])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_TYPE_SIZE_T
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_CHECK_TYPE(ssize_t, int)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_CHECK_TYPE(uintptr_t,unsigned long)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_CHECK_TYPE(socklen_t,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley[AC_DEFINE(ISC_SOCKADDR_LEN_T, socklen_t)],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley[
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_TRY_COMPILE(
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley[
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#include <sys/types.h>
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#include <sys/socket.h>
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyint getsockname(int, struct sockaddr *, size_t *);
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley],[],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley[AC_DEFINE(ISC_SOCKADDR_LEN_T, size_t)],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley[AC_DEFINE(ISC_SOCKADDR_LEN_T, int)])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley[
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#include <sys/types.h>
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#include <sys/socket.h>
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(ISC_SOCKADDR_LEN_T)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_HEADER_TIME
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_MSG_CHECKING(for long long)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_TRY_COMPILE([],[long long i = 0; return (0);],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_HAVELONGLONG="#define ISC_PLATFORM_HAVELONGLONG 1"],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(no)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_HAVELONGLONG="#undef ISC_PLATFORM_HAVELONGLONG"])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(ISC_PLATFORM_HAVELONGLONG)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# check for GCC noreturn attribute
3740b569ae76295b941d57a724a43beb75b533baBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_MSG_CHECKING(for GCC noreturn attribute)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_TRY_COMPILE([],[void foo() __attribute__((noreturn));],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_NORETURN_PRE="#define ISC_PLATFORM_NORETURN_PRE"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_NORETURN_POST="#define ISC_PLATFORM_NORETURN_POST __attribute__((noreturn))"],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(no)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_NORETURN_PRE="#define ISC_PLATFORM_NORETURN_PRE"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_NORETURN_POST="#define ISC_PLATFORM_NORETURN_POST"])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(ISC_PLATFORM_NORETURN_PRE)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(ISC_PLATFORM_NORETURN_POST)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# check if we have lifconf
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_MSG_CHECKING(for struct lifconf)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_TRY_COMPILE([
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#include <sys/types.h>
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#include <sys/socket.h>
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#include <net/if.h>
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley[
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleystruct lifconf lifconf;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleylifconf.lifc_len = 0;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley]
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_HAVELIFCONF="#define ISC_PLATFORM_HAVELIFCONF 1"],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(no)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_HAVELIFCONF="#undef ISC_PLATFORM_HAVELIFCONF"])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(ISC_PLATFORM_HAVELIFCONF)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# check if we have kqueue
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_ARG_ENABLE(kqueue,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [ --enable-kqueue use BSD kqueue when available [[default=yes]]],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley want_kqueue="$enableval", want_kqueue="yes")
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleycase $want_kqueue in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyyes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_CHECK_FUNC(kqueue, ac_cv_have_kqueue=yes, ac_cv_have_kqueue=no)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley case $ac_cv_have_kqueue in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_HAVEKQUEUE="#define ISC_PLATFORM_HAVEKQUEUE 1"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_HAVEKQUEUE="#undef ISC_PLATFORM_HAVEKQUEUE"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_HAVEKQUEUE="#undef ISC_PLATFORM_HAVEKQUEUE"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyesac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(ISC_PLATFORM_HAVEKQUEUE)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# check if we have epoll. Linux kernel 2.4 has epoll_create() which fails,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# so we need to try running the code, not just test its existence.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_ARG_ENABLE(epoll,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley[ --enable-epoll use Linux epoll when available [[default=auto]]],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley want_epoll="$enableval", want_epoll="auto")
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleycase $want_epoll in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyauto)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_CHECKING(epoll support)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_TRY_RUN([
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#include <sys/epoll.h>
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyint main() {
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley if (epoll_create(1) < 0)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley return (1);
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley return (0);
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley}
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_HAVEEPOLL="#define ISC_PLATFORM_HAVEEPOLL 1"],
3740b569ae76295b941d57a724a43beb75b533baBob Halley [AC_MSG_RESULT(no)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_HAVEEPOLL="#undef ISC_PLATFORM_HAVEEPOLL"])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyyes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_HAVEEPOLL="#define ISC_PLATFORM_HAVEEPOLL 1"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_HAVEEPOLL="#undef ISC_PLATFORM_HAVEEPOLL"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyesac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(ISC_PLATFORM_HAVEEPOLL)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
3740b569ae76295b941d57a724a43beb75b533baBob Halley# check if we support /dev/poll
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_ARG_ENABLE(devpoll,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [ --enable-devpoll use /dev/poll when available [[default=yes]]],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley want_devpoll="$enableval", want_devpoll="yes")
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleycase $want_devpoll in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyyes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_CHECK_HEADERS(sys/devpoll.h,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_HAVEDEVPOLL="#define ISC_PLATFORM_HAVEDEVPOLL 1"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_HAVEDEVPOLL="#undef ISC_PLATFORM_HAVEDEVPOLL"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley )
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_HAVEDEVPOLL="#undef ISC_PLATFORM_HAVEDEVPOLL"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyesac
3740b569ae76295b941d57a724a43beb75b533baBob HalleyAC_SUBST(ISC_PLATFORM_HAVEDEVPOLL)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
3740b569ae76295b941d57a724a43beb75b533baBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# check if we need to #include sys/select.h explicitly
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleycase $ac_cv_header_unistd_h in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyyes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_MSG_CHECKING(if unistd.h or sys/types.h defines fd_set)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_TRY_COMPILE([
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#include <sys/types.h> /* Ultrix */
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#include <unistd.h>],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley[fd_set read_set; return (0);],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_NEEDSYSSELECTH="#undef ISC_PLATFORM_NEEDSYSSELECTH"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley LWRES_PLATFORM_NEEDSYSSELECTH="#undef LWRES_PLATFORM_NEEDSYSSELECTH"],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(no)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley case $ac_cv_header_sys_select_h in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_NEEDSYSSELECTH="#define ISC_PLATFORM_NEEDSYSSELECTH 1"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley LWRES_PLATFORM_NEEDSYSSELECTH="#define LWRES_PLATFORM_NEEDSYSSELECTH 1"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley no)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_ERROR([need either working unistd.h or sys/select.h])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ])
3740b569ae76295b941d57a724a43beb75b533baBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyno)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley case $ac_cv_header_sys_select_h in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_NEEDSYSSELECTH="#define ISC_PLATFORM_NEEDSYSSELECTH 1"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley LWRES_PLATFORM_NEEDSYSSELECTH="#define LWRES_PLATFORM_NEEDSYSSELECTH 1"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley no)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_ERROR([need either unistd.h or sys/select.h])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyesac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(ISC_PLATFORM_NEEDSYSSELECTH)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(LWRES_PLATFORM_NEEDSYSSELECTH)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# Find the machine's endian flavor.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
3740b569ae76295b941d57a724a43beb75b533baBob HalleyAC_C_BIGENDIAN
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# was --with-openssl specified?
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyOPENSSL_WARNING=
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_MSG_CHECKING(for OpenSSL library)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_ARG_WITH(openssl,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley[ --with-openssl[=PATH] Build with OpenSSL [yes|no|path].
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley (Required for DNSSEC)],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley use_openssl="$withval", use_openssl="auto")
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyopenssldirs="/usr /usr/local /usr/local/ssl /usr/pkg /usr/sfw"
3740b569ae76295b941d57a724a43beb75b533baBob Halleyif test "$use_openssl" = "auto"
3740b569ae76295b941d57a724a43beb75b533baBob Halleythen
3740b569ae76295b941d57a724a43beb75b533baBob Halley for d in $openssldirs
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley do
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley if test -f $d/include/openssl/opensslv.h
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley use_openssl=$d
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley break
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley fi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley done
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyfi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleycase "$use_openssl" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley no)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(no)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley DST_OPENSSL_INC=""
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley USE_OPENSSL=""
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley OPENSSLLINKOBJS=""
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley OPENSSLLINKSRCS=""
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley auto)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley DST_OPENSSL_INC=""
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley USE_OPENSSL=""
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley OPENSSLLINKOBJS=""
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley OPENSSLLINKSRCS=""
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_ERROR(
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley[OpenSSL was not found in any of $openssldirs; use --with-openssl=/path
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyIf you don't want OpenSSL, use --without-openssl])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley if test "$use_openssl" = "yes"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # User did not specify a path - guess it
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley for d in $openssldirs
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley do
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley if test -f $d/include/openssl/opensslv.h
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley use_openssl=$d
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley break
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley fi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley done
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley if test "$use_openssl" = "yes"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(not found)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_ERROR(
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley[OpenSSL was not found in any of $openssldirs; use --with-openssl=/path])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley fi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley elif ! test -f "$use_openssl"/include/openssl/opensslv.h
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_ERROR(["$use_openssl/include/openssl/opensslv.h" not found])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley fi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley USE_OPENSSL='-DOPENSSL'
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley if test "$use_openssl" = "/usr"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley DST_OPENSSL_INC=""
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley DNS_OPENSSL_LIBS="-lcrypto"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley else
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley DST_OPENSSL_INC="-I$use_openssl/include"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley case $host in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-solaris*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley DNS_OPENSSL_LIBS="-L$use_openssl/lib -R$use_openssl/lib -lcrypto"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-hp-hpux*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley DNS_OPENSSL_LIBS="-L$use_openssl/lib -Wl,+b: -lcrypto"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-apple-darwin*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # Apple's ld seaches for serially for dynamic
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # then static libraries. This means you can't
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # use -L to override dynamic system libraries
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # with static ones when linking. Instead
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # we specify a absolute path.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley if test -f "$use_openssl/lib/libcrypto.dylib"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley DNS_OPENSSL_LIBS="-L$use_openssl/lib -lcrypto"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley else
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley DNS_OPENSSL_LIBS="$use_openssl/lib/libcrypto.a"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley fi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley DNS_OPENSSL_LIBS="-L$use_openssl/lib -lcrypto"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley fi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(using OpenSSL from $use_openssl/lib and $use_openssl/include)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley saved_cflags="$CFLAGS"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley saved_libs="$LIBS"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CFLAGS="$CFLAGS $DST_OPENSSL_INC"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley LIBS="$LIBS $DNS_OPENSSL_LIBS"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_CHECKING(whether linking with OpenSSL works)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_TRY_RUN([
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#include <openssl/err.h>
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyint main() {
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ERR_clear_error();
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley return (0);
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley}
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(yes)],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(no)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_ERROR(Could not run test program using OpenSSL from
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley$use_openssl/lib and $use_openssl/include.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyPlease check the argument to --with-openssl and your
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyshared library configuration (e.g., LD_LIBRARY_PATH).)],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(assuming it does work on target platform)])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_CHECKING(whether linking with OpenSSL requires -ldl)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_TRY_LINK([
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#include <openssl/err.h>],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley[ DSO_METHOD_dlfcn(); ],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(no)],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [LIBS="$LIBS -ldl"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_TRY_LINK([
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley#include <openssl/err.h>
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley],[ DSO_METHOD_dlfcn(); ],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley DNS_OPENSSL_LIBS="$DNS_OPENSSL_LIBS -ldl"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(unknown)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_ERROR(OpenSSL has unsupported dynamic loading)],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(assuming it does work on target platform)])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(assuming it does work on target platform)]
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley )
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_ARG_ENABLE(openssl-version-check,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley[AC_HELP_STRING([--enable-openssl-version-check],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [Check OpenSSL Version @<:@default=yes@:>@])])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleycase "$enable_openssl_version_check" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyyes|'')
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_CHECKING(OpenSSL library version)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_TRY_RUN([
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#include <stdio.h>
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#include <openssl/opensslv.h>
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyint main() {
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley if ((OPENSSL_VERSION_NUMBER >= 0x009070cfL &&
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley OPENSSL_VERSION_NUMBER < 0x00908000L) ||
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley OPENSSL_VERSION_NUMBER >= 0x0090804fL)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley return (0);
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley printf("\n\nFound OPENSSL_VERSION_NUMBER %#010x\n",
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley OPENSSL_VERSION_NUMBER);
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley printf("Require OPENSSL_VERSION_NUMBER 0x009070cf or greater (0.9.7l)\n"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley "Require OPENSSL_VERSION_NUMBER 0x0090804f or greater (0.9.8d)\n\n");
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley return (1);
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley}
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(ok)],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(not compatible)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley OPENSSL_WARNING=yes
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [AC_MSG_RESULT(assuming target platform has compatible version)])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyno)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(Skipped OpenSSL version check)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyesac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_CHECKING(for OpenSSL DSA support)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley if test -f $use_openssl/include/openssl/dsa.h
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_DEFINE(HAVE_OPENSSL_DSA)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley else
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(no)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley fi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_CHECK_FUNCS(EVP_sha256 EVP_sha512)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CFLAGS="$saved_cflags"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley LIBS="$saved_libs"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley OPENSSLLINKOBJS='${OPENSSLLINKOBJS}'
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley OPENSSLLINKSRCS='${OPENSSLLINKSRCS}'
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyesac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# This would include the system openssl path (and linker options to use
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# it as needed) if it is found.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(USE_OPENSSL)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(DST_OPENSSL_INC)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(OPENSSLLINKOBJS)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(OPENSSLLINKSRCS)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyDNS_CRYPTO_LIBS="$DNS_CRYPTO_LIBS $DNS_OPENSSL_LIBS"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# Use OpenSSL for hash functions
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_ARG_ENABLE(openssl-hash,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [ --enable-openssl-hash use OpenSSL for hash functions [[default=no]]],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley want_openssl_hash="$enableval", want_openssl_hash="no")
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleycase $want_openssl_hash in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley if test "$USE_OPENSSL" = ""
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_ERROR([No OpenSSL for hash functions])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley fi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_OPENSSLHASH="#define ISC_PLATFORM_OPENSSLHASH 1"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_OPENSSL_INC="$DST_OPENSSL_INC"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley no)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_OPENSSLHASH="#undef ISC_PLATFORM_OPENSSLHASH"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_OPENSSL_INC=""
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyesac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(ISC_PLATFORM_OPENSSLHASH)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(ISC_OPENSSL_INC)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# PKCS11 (aka crypto hardware) support
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# This works only with the right OpenSSL with PKCS11 engine!
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_MSG_CHECKING(for PKCS11 support)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_ARG_WITH(pkcs11,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley[ --with-pkcs11[=PATH] Build with PKCS11 support [yes|no|path]
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley (PATH is for the PKCS11 provider)],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley use_pkcs11="$withval", use_pkcs11="no")
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleycase "$use_pkcs11" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley no|'')
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(disabled)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley USE_PKCS11=''
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley PKCS11_TOOLS=''
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley yes|*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(using OpenSSL with PKCS11 support)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley USE_PKCS11='-DUSE_PKCS11'
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley PKCS11_TOOLS=pkcs11
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyesac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(USE_PKCS11)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(PKCS11_TOOLS)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_MSG_CHECKING(for PKCS11 tools)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleycase "$use_pkcs11" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley no|yes|'')
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(disabled)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley PKCS11_PROVIDER="undefined"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(PKCS11 provider is "$use_pkcs11")
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley PKCS11_PROVIDER="$use_pkcs11"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyesac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(PKCS11_PROVIDER)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_MSG_CHECKING(for GSSAPI library)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_ARG_WITH(gssapi,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley[ --with-gssapi=PATH Specify path for system-supplied GSSAPI],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley use_gssapi="$withval", use_gssapi="no")
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleygssapidirs="/usr/local /usr/pkg /usr/kerberos /usr"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyif test "$use_gssapi" = "yes"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleythen
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley for d in $gssapidirs
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley do
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley if test -f $d/include/gssapi/gssapi.h -o -f $d/include/gssapi.h
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley use_gssapi=$d
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley break
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley fi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley done
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyfi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleycase "$use_gssapi" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley no)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(disabled)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley USE_GSSAPI=''
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_ERROR([--with-gssapi must specify a path])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(looking in $use_gssapi/lib)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley USE_GSSAPI='-DGSSAPI'
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley saved_cppflags="$CPPFLAGS"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CPPFLAGS="-I$use_gssapi/include $CPPFLAGS"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_CHECK_HEADERS(gssapi.h gssapi/gssapi.h,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [ISC_PLATFORM_GSSAPIHEADER="#define ISC_PLATFORM_GSSAPIHEADER <$ac_header>"])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley if test "$ISC_PLATFORM_GSSAPIHEADER" = ""; then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_ERROR([gssapi.h not found])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley fi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_CHECK_HEADERS(krb5.h krb5/krb5.h kerberosv5/krb5.h,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [ISC_PLATFORM_KRB5HEADER="#define ISC_PLATFORM_KRB5HEADER <$ac_header>"])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley if test "$ISC_PLATFORM_KRB5HEADER" = ""; then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_ERROR([krb5.h not found])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley fi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CPPFLAGS="$saved_cppflags"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # XXXDCL This probably doesn't work right on all systems.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # It will need to be worked on as problems become evident.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # Essentially the problems here relate to two different
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # areas. The first area is building with either KTH
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # or MIT Kerberos, particularly when both are present on
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # the machine. The other is static versus dynamic linking.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # On the KTH vs MIT issue, Both have libkrb5 that can mess
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # up the works if one implementation ends up trying to
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # use the other's krb. This is unfortunately a situation
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # that very easily arises.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # Dynamic linking when the dependency information is built
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # into MIT's libgssapi_krb5 or KTH's libgssapi magically makes
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # all such problems go away, but when that setup is not
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # present, because either the dynamic libraries lack
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # dependencies or static linking is being done, then the
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # problems start to show up.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley saved_libs="$LIBS"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley for TRY_LIBS in \
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley "-lgssapi_krb5" \
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley "-lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err" \
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley "-lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lresolv" \
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley "-lgssapi" \
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley "-lgssapi -lkrb5 -ldes -lcrypt -lasn1 -lroken -lcom_err" \
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley "-lgssapi -lkrb5 -lcrypto -lcrypt -lasn1 -lroken -lcom_err" \
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley "-lgss -lkrb5"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley do
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # Note that this does not include $saved_libs, because
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # on FreeBSD machines this configure script has added
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # -L/usr/local/lib to LIBS, which can make the
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # -lgssapi_krb5 test succeed with shared libraries even
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # when you are trying to build with KTH in /usr/lib.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley LIBS="-L$use_gssapi/lib $TRY_LIBS"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_CHECKING(linking as $TRY_LIBS)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_TRY_LINK( , [gss_acquire_cred();krb5_init_context()],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley gssapi_linked=yes, gssapi_linked=no)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley case $gssapi_linked in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley yes) AC_MSG_RESULT(yes); break ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley no) AC_MSG_RESULT(no) ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley done
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley case $gssapi_linked in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley no) AC_MSG_ERROR(could not determine proper GSSAPI linkage) ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # XXXDCL Major kludge. Tries to cope with KTH in /usr/lib
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # but MIT in /usr/local/lib and trying to build with KTH.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # /usr/local/lib can end up earlier on the link lines.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # Like most kludges, this one is not only inelegant it
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # is also likely to be the wrong thing to do at least as
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # many times as it is the right thing. Something better
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # needs to be done.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley if test "$use_gssapi" = "/usr" -a \
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley -f /usr/local/lib/libkrb5.a; then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley FIX_KTH_VS_MIT=yes
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley fi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley case "$FIX_KTH_VS_MIT" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley case "$enable_static_linking" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley yes) gssapi_lib_suffix=".a" ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *) gssapi_lib_suffix=".so" ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley for lib in $LIBS; do
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley case $lib in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley -L*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley -l*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley new_lib=`echo $lib |
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley sed -e s%^-l%$use_gssapi/lib/lib% \
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley -e s%$%$gssapi_lib_suffix%`
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley NEW_LIBS="$NEW_LIBS $new_lib"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_ERROR([KTH vs MIT Kerberos confusion!])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley done
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley LIBS="$NEW_LIBS"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley DST_GSSAPI_INC="-I$use_gssapi/include"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley DNS_GSSAPI_LIBS="$LIBS"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(using GSSAPI from $use_gssapi/lib and $use_gssapi/include)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley LIBS="$saved_libs"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyesac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(ISC_PLATFORM_HAVEGSSAPI)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(ISC_PLATFORM_GSSAPIHEADER)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(ISC_PLATFORM_KRB5HEADER)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(USE_GSSAPI)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(DST_GSSAPI_INC)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(DNS_GSSAPI_LIBS)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyDNS_CRYPTO_LIBS="$DNS_GSSAPI_LIBS $DNS_CRYPTO_LIBS"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# Applications linking with libdns also need to link with these libraries.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(DNS_CRYPTO_LIBS)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# was --with-randomdev specified?
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_MSG_CHECKING(for random device)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_ARG_WITH(randomdev,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley[ --with-randomdev=PATH Specify path for random device],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley use_randomdev="$withval", use_randomdev="unspec")
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleycase "$use_randomdev" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley unspec)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley case "$host" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-openbsd*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley devrandom=/dev/arandom
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley devrandom=/dev/random
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
577179503f2eb7695ec668d8eeb41889a150e28fBob Halley AC_MSG_RESULT($devrandom)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_CHECK_FILE($devrandom,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_DEFINE_UNQUOTED(PATH_RANDOMDEV,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley "$devrandom"),)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_ERROR([--with-randomdev must specify a path])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley no)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(disabled)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_DEFINE_UNQUOTED(PATH_RANDOMDEV, "$use_randomdev")
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(using "$use_randomdev")
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyesac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# Do we have arc4random() ?
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_CHECK_FUNC(arc4random, AC_DEFINE(HAVE_ARC4RANDOM))
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleysinclude(config.threads.in)dnl
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyif $use_threads
3740b569ae76295b941d57a724a43beb75b533baBob Halleythen
3740b569ae76295b941d57a724a43beb75b533baBob Halley if test "X$GCC" = "Xyes"; then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley case "$host" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-freebsd*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CC="$CC -pthread"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CCOPT="$CCOPT -pthread"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-openbsd*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CC="$CC -pthread"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CCOPT="$CCOPT -pthread"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-solaris*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley LIBS="$LIBS -lthread"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-ibm-aix*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley else
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley case $host in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-dec-osf*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CC="$CC -pthread"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CCOPT="$CCOPT -pthread"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-solaris*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CC="$CC -mt"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CCOPT="$CCOPT -mt"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-ibm-aix*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-sco-sysv*uw*|*-*-sysv*UnixWare*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CC="$CC -Kthread"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CCOPT="$CCOPT -Kthread"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-*-sysv*OpenUNIX*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CC="$CC -Kpthread"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CCOPT="$CCOPT -Kpthread"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley fi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ALWAYS_DEFINES="-D_REENTRANT"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_USETHREADS="#define ISC_PLATFORM_USETHREADS 1"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley THREADOPTOBJS='${THREADOPTOBJS}'
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley THREADOPTSRCS='${THREADOPTSRCS}'
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley thread_dir=pthreads
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # We'd like to use sigwait() too
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_CHECK_FUNC(sigwait,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_DEFINE(HAVE_SIGWAIT),
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_CHECK_LIB(c, sigwait,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_DEFINE(HAVE_SIGWAIT),
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_CHECK_LIB(pthread, sigwait,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_DEFINE(HAVE_SIGWAIT),
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_CHECK_LIB(pthread, _Psigwait,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_DEFINE(HAVE_SIGWAIT),))))
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_CHECK_FUNC(pthread_attr_getstacksize,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_DEFINE(HAVE_PTHREAD_ATTR_GETSTACKSIZE),)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_CHECK_FUNC(pthread_attr_setstacksize,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE),)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # Additional OS-specific issues related to pthreads and sigwait.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley case "$host" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # One more place to look for sigwait.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-freebsd*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_CHECK_LIB(c_r, sigwait, AC_DEFINE(HAVE_SIGWAIT),)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley case $host in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-freebsd5.[[012]]|*-freebsd5.[[012]].*);;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-freebsd5.[[3456789]]|*-freebsd5.[[3456789]].*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_DEFINE(NEED_PTHREAD_SCOPE_SYSTEM)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-freebsd6.*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_DEFINE(NEED_PTHREAD_SCOPE_SYSTEM)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # BSDI 3.0 through 4.0.1 needs pthread_init() to be
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # called before certain pthreads calls. This is deprecated
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # in BSD/OS 4.1.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-bsdi3.*|*-bsdi4.0*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_DEFINE(NEED_PTHREAD_INIT)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # LinuxThreads requires some changes to the way we
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # deal with signals.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-linux*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_DEFINE(HAVE_LINUXTHREADS)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # Ensure the right sigwait() semantics on Solaris and make
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # sure we call pthread_setconcurrency.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-solaris*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_DEFINE(_POSIX_PTHREAD_SEMANTICS)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_CHECK_FUNC(pthread_setconcurrency,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_DEFINE(CALL_PTHREAD_SETCONCURRENCY))
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # UnixWare does things its own way.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_DEFINE(HAVE_UNIXWARE_SIGWAIT)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # Look for sysconf to allow detection of the number of processors.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_CHECK_FUNC(sysconf, AC_DEFINE(HAVE_SYSCONF),)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyelse
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ISC_PLATFORM_USETHREADS="#undef ISC_PLATFORM_USETHREADS"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley thread_dir=nothreads
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley THREADOPTOBJS=""
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley THREADOPTSRCS=""
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ALWAYS_DEFINES=""
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyfi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(ALWAYS_DEFINES)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(ISC_PLATFORM_USETHREADS)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(THREADOPTOBJS)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(THREADOPTSRCS)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyISC_THREAD_DIR=$thread_dir
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(ISC_THREAD_DIR)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# was --with-libxml2 specified?
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_MSG_CHECKING(for libxml2 library)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_ARG_WITH(libxml2,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley[ --with-libxml2[=PATH] Build with libxml2 library [yes|no|path]],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley use_libxml2="$withval", use_libxml2="auto")
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleycase "$use_libxml2" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley no)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley DST_LIBXML2_INC=""
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley auto|yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley case X`(xml2-config --version) 2>/dev/null` in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley X2.[[67]].*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley libxml2_libs=`xml2-config --libs`
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley libxml2_cflags=`xml2-config --cflags`
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley libxml2_libs=
3740b569ae76295b941d57a724a43beb75b533baBob Halley libxml2_cflags=
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley if test -f "$use_libxml2/bin/xml2-config" ; then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley libxml2_libs=`$use_libxml2/bin/xml2-config --libs`
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley libxml2_cflags=`$use_libxml2/bin/xml2-config --cflags`
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley fi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyesac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyif test "X$libxml2_libs" != "X"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleythen
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CFLAGS="$CFLAGS $libxml2_cflags"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley LIBS="$LIBS $libxml2_libs"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_DEFINE(HAVE_LIBXML2, 1, [Define if libxml2 was found])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyelse
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(no)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyfi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# In solaris 10, SMF can manage named service
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_CHECK_LIB(scf, smf_enable_instance)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# flockfile is usually provided by pthreads, but we may want to use it
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# even if compiled with --disable-threads. getc_unlocked might also not
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# be defined.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_CHECK_FUNC(flockfile, AC_DEFINE(HAVE_FLOCKFILE),)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_CHECK_FUNC(getc_unlocked, AC_DEFINE(HAVE_GETCUNLOCKED),)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# Indicate what the final decision was regarding threads.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
3740b569ae76295b941d57a724a43beb75b533baBob HalleyAC_MSG_CHECKING(whether to build with threads)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyif $use_threads; then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyelse
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(no)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyfi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# End of pthreads stuff.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# Large File
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_ARG_ENABLE(largefile, [ --enable-largefile 64-bit file support],
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley want_largefile="yes", want_largefile="no")
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleycase $want_largefile in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ALWAYS_DEFINES="$ALWAYS_DEFINES -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyesac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# Additional compiler settings.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyMKDEPCC="$CC"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyMKDEPCFLAGS="-M"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyIRIX_DNSSEC_WARNINGS_HACK=""
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyif test "X$GCC" = "Xyes"; then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_CHECKING(if "$CC" supports -fno-strict-aliasing)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley SAVE_CFLAGS=$CFLAGS
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CFLAGS="$CFLAGS -fno-strict-aliasing"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_TRY_COMPILE(,, [FNOSTRICTALIASING=yes],[FNOSTRICTALIASING=no])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CFLAGS=$SAVE_CFLAGS
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley if test "$FNOSTRICTALIASING" = "yes"; then
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(yes)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith -fno-strict-aliasing"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley else
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_MSG_RESULT(no)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley fi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley case "$host" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-hp-hpux*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley LDFLAGS="-Wl,+vnocompatwarnings $LDFLAGS"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyelse
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley case $host in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-dec-osf*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CC="$CC -std"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CCOPT="$CCOPT -std"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley MKDEPCC="$CC"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-hp-hpux*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CC="$CC -Ae -z"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # The version of the C compiler that constantly warns about
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # 'const' as well as alignment issues is unfortunately not
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # able to be discerned via the version of the operating
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # system, nor does cc have a version flag.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley case "`$CC +W 123 2>&1`" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *Unknown?option*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley STD_CWARNINGS="+w1"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # Turn off the pointlessly noisy warnings.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley STD_CWARNINGS="+w1 +W 474,530,2193,2236"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CCOPT="$CCOPT -Ae -z"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley LDFLAGS="-Wl,+vnocompatwarnings $LDFLAGS"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley MKDEPPROG='cc -Ae -E -Wp,-M >/dev/null 2>>$TMP'
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-sgi-irix*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley STD_CWARNINGS="-fullwarn -woff 1209"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # Silence more than 250 instances of
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # "prototyped function redeclared without prototype"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # and 11 instances of
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # "variable ... was set but never used"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # from lib/dns/sec/openssl.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley #
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley IRIX_DNSSEC_WARNINGS_HACK="-woff 1692,1552"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-solaris*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley MKDEPCFLAGS="-xM"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # UnixWare
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley CC="$CC -w"
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley esac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyfi
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(MKDEPCC)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(MKDEPCFLAGS)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(MKDEPPROG)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_SUBST(IRIX_DNSSEC_WARNINGS_HACK)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# NLS
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyAC_CHECK_FUNC(catgets, AC_DEFINE(HAVE_CATGETS),)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# -lxnet buys us one big porting headache... standards, gotta love 'em.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# AC_CHECK_LIB(xnet, socket, ,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# AC_CHECK_LIB(socket, socket)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# )
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# Use this for now, instead:
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleycase "$host" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley mips-sgi-irix*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-linux*)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_CHECK_LIB(socket, socket)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_CHECK_LIB(nsl, inet_addr)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyesac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# Work around Solaris's select() limitations.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleycase "$host" in
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley *-solaris2.[[89]]|*-solaris2.1?)
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley AC_DEFINE(FD_SETSIZE, 65536,
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley [Solaris hack to get select_large_fdset.])
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley ;;
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halleyesac
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley#
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley# 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)
AC_ARG_WITH(libtool,
[ --with-libtool use GNU libtool],
use_libtool="$withval", use_libtool="no")
case $use_libtool in
yes)
AM_PROG_LIBTOOL
O=lo
A=la
LIBTOOL_MKDEP_SED='s;\.o;\.lo;'
LIBTOOL_MODE_COMPILE='--mode=compile'
LIBTOOL_MODE_INSTALL='--mode=install'
LIBTOOL_MODE_LINK='--mode=link'
case "$host" in
*) LIBTOOL_ALLOW_UNDEFINED= ;;
esac
case "$host" in
*-ibm-aix*) LIBTOOL_IN_MAIN="-Wl,-bI:T_testlist.imp" ;;
*) LIBTOOL_IN_MAIN= ;;
esac;
;;
*)
O=o
A=a
LIBTOOL=
AC_SUBST(LIBTOOL)
LIBTOOL_MKDEP_SED=
LIBTOOL_MODE_COMPILE=
LIBTOOL_MODE_INSTALL=
LIBTOOL_MODE_LINK=
LIBTOOL_ALLOW_UNDEFINED=
LIBTOOL_IN_MAIN=
;;
esac
#
# enable/disable dumping stack backtrace. Also check if the system supports
# glibc-compatible backtrace() function.
#
AC_ARG_ENABLE(backtrace,
[ --enable-backtrace log stack backtrace on abort [[default=yes]]],
want_backtrace="$enableval", want_backtrace="yes")
case $want_backtrace in
yes)
ISC_PLATFORM_USEBACKTRACE="#define ISC_PLATFORM_USEBACKTRACE 1"
AC_TRY_LINK([#include <execinfo.h>],
[return (backtrace((void **)0, 0));],
[AC_DEFINE([HAVE_LIBCTRACE], [], [if system have backtrace function])],)
;;
*)
ISC_PLATFORM_USEBACKTRACE="#undef ISC_PLATFORM_USEBACKTRACE"
;;
esac
AC_SUBST(ISC_PLATFORM_USEBACKTRACE)
AC_ARG_ENABLE(symtable,
[ --enable-symtable use internal symbol table for backtrace
[[all|minimal(default)|none]]],
want_symtable="$enableval", want_symtable="minimal")
case $want_symtable in
yes|all|minimal) # "yes" is a hidden value equivalent to "minimal"
if test "$PERL" = ""
then
AC_MSG_ERROR([Internal symbol table requires perl but no perl is found.
Install perl or explicitly disable the feature by --disable-symtable.])
fi
if test "$use_libtool" = "yes"; then
AC_MSG_WARN([Internal symbol table does not work with libtool. Disabling symbol table.])
else
# we generate the internal symbol table only for those systems
# known to work to avoid unexpected build failure. Also, warn
# about unsupported systems when the feature is enabled
# manually.
case $host_os in
freebsd*|netbsd*|openbsd*|linux*|solaris*|darwin*)
MKSYMTBL_PROGRAM="$PERL"
if test $want_symtable = all; then
ALWAYS_MAKE_SYMTABLE="yes"
fi
;;
*)
if test $want_symtable = yes -o $want_symtable = all
then
AC_MSG_WARN([this system is not known to generate internal symbol table safely; disabling it])
fi
esac
fi
;;
*)
;;
esac
AC_SUBST(MKSYMTBL_PROGRAM)
AC_SUBST(ALWAYS_MAKE_SYMTABLE)
#
# 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)
AC_SUBST(LIBTOOL_MODE_COMPILE)
AC_SUBST(LIBTOOL_MODE_INSTALL)
AC_SUBST(LIBTOOL_MODE_LINK)
AC_SUBST(LIBTOOL_ALLOW_UNDEFINED)
AC_SUBST(LIBTOOL_IN_MAIN)
#
# build exportable DNS library?
#
AC_ARG_ENABLE(exportlib,
[ --enable-exportlib build exportable library (GNU make required)
[[default=no]]])
case "$enable_exportlib" in
yes)
gmake=
for x in gmake gnumake make; do
if $x --version 2>/dev/null | grep GNU > /dev/null; then
gmake=$x
break;
fi
done
if test -z "$gmake"; then
AC_MSG_ERROR([exportlib requires GNU make. Install it or disable the feature.])
fi
LIBEXPORT=lib/export
AC_SUBST(LIBEXPORT)
BIND9_CO_RULE="%.$O: \${srcdir}/%.c"
;;
no|*)
BIND9_CO_RULE=".c.$O:"
;;
esac
AC_SUBST(BIND9_CO_RULE)
AC_ARG_WITH(export-libdir,
[ --with-export-libdir[=PATH]
installation directory for the export library
[[EPREFIX/lib/bind9]]],
export_libdir="$withval",)
if test -z "$export_libdir"; then
export_libdir="\${exec_prefix}/lib/bind9/"
fi
AC_SUBST(export_libdir)
AC_ARG_WITH(export-includedir,
[ --with-export-includedir[=PATH]
installation directory for the header files of the
export library [[PREFIX/include/bind9]]],
export_includedir="$withval",)
if test -z "$export_includedir"; then
export_includedir="\${prefix}/include/bind9/"
fi
AC_SUBST(export_includedir)
#
# Here begins a very long section to determine the system's networking
# capabilities. The order of the tests is significant.
#
#
# 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"],
[AC_MSG_RESULT(assuming inet_ntop needed)
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_RESULT(assuming inet_pton needed)
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_SUBST(ISC_PLATFORM_NEEDNTOP)
AC_SUBST(ISC_PLATFORM_NEEDPTON)
#
# 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"
ISC_IRS_NEEDADDRINFO="#undef ISC_IRS_NEEDADDRINFO"
AC_DEFINE(HAVE_ADDRINFO)],
[AC_MSG_RESULT(no)
ISC_LWRES_NEEDADDRINFO="#define ISC_LWRES_NEEDADDRINFO 1"
ISC_IRS_NEEDADDRINFO="#define ISC_IRS_NEEDADDRINFO 1"])
AC_SUBST(ISC_LWRES_NEEDADDRINFO)
AC_SUBST(ISC_IRS_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)
#
# Sadly, the definitions of system-supplied getnameinfo(3) vary. Try to catch
# known variations here:
#
AC_MSG_CHECKING(for getnameinfo prototype definitions)
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int getnameinfo(const struct sockaddr *, socklen_t, char *,
socklen_t, char *, socklen_t, unsigned int);],
[ return (0);],
[AC_MSG_RESULT(socklen_t for buflen; u_int for flags)
AC_DEFINE(IRS_GETNAMEINFO_BUFLEN_T, socklen_t,
[Define to the buffer length type used by getnameinfo(3).])
AC_DEFINE(IRS_GETNAMEINFO_FLAGS_T, unsigned int,
[Define to the flags type used by getnameinfo(3).])],
[AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int getnameinfo(const struct sockaddr *, socklen_t, char *,
size_t, char *, size_t, int);],
[ return (0);],
[AC_MSG_RESULT(size_t for buflen; int for flags)
AC_DEFINE(IRS_GETNAMEINFO_BUFLEN_T, size_t)
AC_DEFINE(IRS_GETNAMEINFO_FLAGS_T, int)],
[AC_MSG_RESULT(not match any subspecies; assume standard definition)
AC_DEFINE(IRS_GETNAMEINFO_BUFLEN_T, socklen_t)
AC_DEFINE(IRS_GETNAMEINFO_FLAGS_T, int)])])
#
# ...and same for gai_strerror().
#
AC_MSG_CHECKING(for gai_strerror prototype definitions)
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
char *gai_strerror(int ecode);],
[ return (0); ],
[AC_MSG_RESULT(returning char *)
AC_DEFINE([IRS_GAISTRERROR_RETURN_T], [char *],
[return type of gai_strerror])],
[AC_MSG_RESULT(not match any subspecies; assume standard definition)
AC_DEFINE([IRS_GAISTRERROR_RETURN_T], [const char *])])
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)
AC_SUBST(ISC_IRS_GETNAMEINFOSOCKLEN)
AC_ARG_ENABLE(getifaddrs,
[ --enable-getifaddrs Enable the use of getifaddrs() [[yes|no]].],
want_getifaddrs="$enableval", want_getifaddrs="yes")
#
# This interface iteration code for getifaddrs() will fall back to using
# /proc/net/if_inet6 if getifaddrs() in glibc doesn't return any IPv6
# addresses.
#
case $want_getifaddrs in
glibc)
AC_MSG_WARN("--enable-getifaddrs=glibc is no longer required")
AC_CHECK_FUNC(getifaddrs, AC_DEFINE(HAVE_GETIFADDRS))
;;
yes)
AC_CHECK_FUNC(getifaddrs, AC_DEFINE(HAVE_GETIFADDRS))
;;
no)
;;
esac
#
# 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_SUBST(ISC_PLATFORM_NEEDSTRSEP)
AC_CHECK_FUNC(memmove,
[ISC_PLATFORM_NEEDMEMMOVE="#undef ISC_PLATFORM_NEEDMEMMOVE"],
[ISC_PLATFORM_NEEDMEMMOVE="#define ISC_PLATFORM_NEEDMEMMOVE 1"])
AC_SUBST(ISC_PLATFORM_NEEDMEMMOVE)
AC_CHECK_FUNC(strtoul,
[ISC_PLATFORM_NEEDSTRTOUL="#undef ISC_PLATFORM_NEEDSTRTOUL"
LWRES_PLATFORM_NEEDSTRTOUL="#undef LWRES_PLATFORM_NEEDSTRTOUL"
GENRANDOMLIB=""],
[ISC_PLATFORM_NEEDSTRTOUL="#define ISC_PLATFORM_NEEDSTRTOUL 1"
LWRES_PLATFORM_NEEDSTRTOUL="#define LWRES_PLATFORM_NEEDSTRTOUL 1"
GENRANDOMLIB='${ISCLIBS}'])
AC_SUBST(ISC_PLATFORM_NEEDSTRTOUL)
AC_SUBST(LWRES_PLATFORM_NEEDSTRTOUL)
AC_SUBST(GENRANDOMLIB)
AC_CHECK_FUNC(strlcpy,
[ISC_PLATFORM_NEEDSTRLCPY="#undef ISC_PLATFORM_NEEDSTRLCPY"],
[ISC_PLATFORM_NEEDSTRLCPY="#define ISC_PLATFORM_NEEDSTRLCPY 1"])
AC_SUBST(ISC_PLATFORM_NEEDSTRLCPY)
AC_CHECK_FUNC(strlcat,
[ISC_PLATFORM_NEEDSTRLCAT="#undef ISC_PLATFORM_NEEDSTRLCAT"],
[ISC_PLATFORM_NEEDSTRLCAT="#define ISC_PLATFORM_NEEDSTRLCAT 1"])
AC_SUBST(ISC_PLATFORM_NEEDSTRLCAT)
ISC_PRINT_OBJS=
ISC_PRINT_SRCS=
AC_MSG_CHECKING(sprintf)
AC_TRY_COMPILE([
#include <stdio.h>
],
[ char buf[2]; return(*sprintf(buf,"x"));],
[
ISC_PRINT_OBJS="print.$O"
ISC_PRINT_SRCS="print.c"
ISC_PLATFORM_NEEDSPRINTF="#define ISC_PLATFORM_NEEDSPRINTF"
LWRES_PLATFORM_NEEDSPRINTF="#define LWRES_PLATFORM_NEEDSPRINTF"
],
[ISC_PLATFORM_NEEDSPRINTF="#undef ISC_PLATFORM_NEEDSPRINTF"
LWRES_PLATFORM_NEEDSPRINTF="#undef LWRES_PLATFORM_NEEDSPRINTF"]
)
AC_SUBST(ISC_PLATFORM_NEEDSPRINTF)
AC_SUBST(LWRES_PLATFORM_NEEDSPRINTF)
AC_CHECK_FUNC(vsnprintf,
[ISC_PLATFORM_NEEDVSNPRINTF="#undef ISC_PLATFORM_NEEDVSNPRINTF"
LWRES_PLATFORM_NEEDVSNPRINTF="#undef LWRES_PLATFORM_NEEDVSNPRINTF"],
[ISC_PRINT_OBJS="print.$O"
ISC_PRINT_SRCS="print.c"
ISC_PLATFORM_NEEDVSNPRINTF="#define ISC_PLATFORM_NEEDVSNPRINTF 1"
LWRES_PLATFORM_NEEDVSNPRINTF="#define LWRES_PLATFORM_NEEDVSNPRINTF 1"])
AC_SUBST(ISC_PLATFORM_NEEDVSNPRINTF)
AC_SUBST(LWRES_PLATFORM_NEEDVSNPRINTF)
ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS $ISC_PRINT_OBJS"
ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS $ISC_PRINT_SRCS"
AC_CHECK_FUNC(strerror, AC_DEFINE(HAVE_STRERROR))
AC_SUBST(ISC_EXTRA_OBJS)
AC_SUBST(ISC_EXTRA_SRCS)
#
# Use our own SPNEGO implementation?
#
AC_ARG_ENABLE(isc-spnego,
[ --disable-isc-spnego use SPNEGO from GSSAPI library])
if test -n "$USE_GSSAPI"
then
case "$enable_isc_spnego" in
yes|'')
USE_ISC_SPNEGO='-DUSE_ISC_SPNEGO'
DST_EXTRA_OBJS="$DST_EXTRA_OBJS spnego.$O"
DST_EXTRA_SRCS="$DST_EXTRA_SRCS spnego.c"
AC_MSG_RESULT(using SPNEGO from lib/dns)
;;
no)
AC_MSG_RESULT(using SPNEGO from GSSAPI library)
;;
esac
fi
AC_SUBST(USE_ISC_SPNEGO)
AC_SUBST(DST_EXTRA_OBJS)
AC_SUBST(DST_EXTRA_SRCS)
# Determine the printf format characters to use when printing
# values of type isc_int64_t. This will normally be "ll", but where
# the compiler treats "long long" as a alias for "long" and printf
# doesn't know about "long long" use "l". Hopefully the sprintf
# will produce a inconsistent result in the later case. If the compiler
# fails due to seeing "%lld" we fall back to "l".
#
# Digital Unix 4.0 (gcc?) (long long) is 64 bits as is its long. It uses
# %ld even for (long long)/
#
# 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([
#include <stdio.h>
main() {
long long int j = 0;
char buf[100];
buf[0] = 0;
sprintf(buf, "%lld", j);
exit((sizeof(long long int) != sizeof(long int))? 0 :
(strcmp(buf, "0") != 0));
}
],
[AC_MSG_RESULT(ll)
ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "ll"'
LWRES_PLATFORM_QUADFORMAT='#define LWRES_PLATFORM_QUADFORMAT "ll"'],
[AC_MSG_RESULT(l)
ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "l"'
LWRES_PLATFORM_QUADFORMAT='#define LWRES_PLATFORM_QUADFORMAT "l"'],
[AC_MSG_RESULT(assuming target platform uses ll)
ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "ll"'
LWRES_PLATFORM_QUADFORMAT='#define LWRES_PLATFORM_QUADFORMAT "ll"'])
AC_SUBST(ISC_PLATFORM_QUADFORMAT)
AC_SUBST(LWRES_PLATFORM_QUADFORMAT)
#
# Security Stuff
#
# Note it is very recommended to *not* disable chroot(),
# this is only because chroot() was made obsolete by Posix.
AC_ARG_ENABLE(chroot,
[ --disable-chroot disable chroot])
case "$enable_chroot" in
yes|'')
AC_CHECK_FUNCS(chroot)
;;
no)
;;
esac
AC_ARG_ENABLE(linux-caps,
[ --disable-linux-caps disable linux capabilities])
case "$enable_linux_caps" in
yes|'')
AC_CHECK_HEADERS(linux/capability.h sys/capability.h)
AC_CHECK_LIB(cap, cap_set_proc)
;;
no)
;;
esac
AC_CHECK_HEADERS(sys/prctl.h)
AC_CHECK_HEADERS(sys/un.h,
ISC_PLATFORM_HAVESYSUNH="#define ISC_PLATFORM_HAVESYSUNH 1"
,
ISC_PLATFORM_HAVESYSUNH="#undef ISC_PLATFORM_HAVESYSUNH"
)
AC_SUBST(ISC_PLATFORM_HAVESYSUNH)
case "$host" in
*-solaris*)
AC_DEFINE(NEED_SECURE_DIRECTORY, 1,
[Define if connect does not honour the permission on the UNIX domain socket.])
;;
*-sunos*)
AC_DEFINE(NEED_SECURE_DIRECTORY, 1,
[Define if connect does not honour the permission on the UNIX domain socket.])
;;
esac
#
# Time Zone Stuff
#
AC_CHECK_FUNC(tzset, AC_DEFINE(HAVE_TZSET))
AC_MSG_CHECKING(for optarg declaration)
AC_TRY_COMPILE([
#include <unistd.h>
],
[optarg = 0;],
[AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)
GEN_NEED_OPTARG="-DNEED_OPTARG=1"
AC_DEFINE(NEED_OPTARG, 1, [Defined if extern char *optarg is not declared.])])
#
# 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)])
],[
ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE long long int"
AC_MSG_RESULT(cannot determine type of rlim_cur when cross compiling - assuming long long int)])
])
AC_SUBST(ISC_PLATFORM_RLIMITTYPE)
#
# Older HP-UX doesn't have gettune
#
case "$host" in
*-hp-hpux*)
AC_CHECK_HEADERS(sys/dyntune.h)
;;
*)
;;
esac
#
# 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
#
# Some hosts need msg_namelen to match the size of the socket structure.
# Some hosts don't set msg_namelen appropriately on return from recvmsg().
#
case $host in
*os2*|*hp-mpeix*)
AC_DEFINE(BROKEN_RECVMSG, 1,
[Define if recvmsg() does not meet all of the BSD socket API specifications.])
;;
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"
AC_SUBST(IRS_PLATFORM_USEDECLSPEC)
IRS_PLATFORM_USEDECLSPEC="#undef IRS_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
*-aix5.[[123]].*)
hack_shutup_pthreadonceinit=yes
;;
*-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
;;
*-solaris2.1[[0-9]])
AC_TRY_COMPILE([ #include <pthread.h> ], [ static pthread_once_t once_test = { PTHREAD_ONCE_INIT }; ], [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
AC_CHECK_HEADERS(strings.h,
ISC_PLATFORM_HAVESTRINGSH="#define ISC_PLATFORM_HAVESTRINGSH 1"
,
ISC_PLATFORM_HAVESTRINGSH="#undef ISC_PLATFORM_HAVESTRINGSH"
)
AC_SUBST(ISC_PLATFORM_HAVESTRINGSH)
#
# 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)
AC_CHECK_FUNCS(nanosleep)
#
# Machine architecture dependent features
#
AC_ARG_ENABLE(atomic,
[ --enable-atomic enable machine specific atomic operations
[[default=autodetect]]],
enable_atomic="$enableval",
enable_atomic="autodetect")
case "$enable_atomic" in
yes|''|autodetect)
case "$host" in
powerpc-ibm-aix*)
if test "X$GCC" = "Xyes"; then
AC_MSG_CHECKING([if asm("isc"); works])
AC_TRY_COMPILE(,[
main() { asm("ics"); exit(0); }
],
[AC_MSG_RESULT(yes)
use_atomic=yes],
[
saved_cflags="$CFLAGS"
CFLAGS="$CFLAGS -Wa,-many"
AC_TRY_RUN([
main() { asm("ics"); exit(0); }
],
[AC_MSG_RESULT([yes, required -Wa,-many])
use_atomic=yes],
[AC_MSG_RESULT([no, use_atomic disabled])
CFLAGS="$saved_cflags"
use_atomic=no],
[AC_MSG_RESULT([cross compile, assume yes])
CFLAGS="$saved_cflags"
use_atomic=yes])
]
)
else
use_atomic=yes
fi
;;
*)
use_atomic=yes
;;
esac
;;
no)
use_atomic=no
arch=noatomic
;;
esac
ISC_PLATFORM_USEOSFASM="#undef ISC_PLATFORM_USEOSFASM"
if test "$use_atomic" = "yes"; then
AC_MSG_CHECKING([architecture type for atomic operations])
have_atomic=yes # set default
case "$host" in
[i[3456]86-*])
# XXX: some old x86 architectures actually do not support
# (some of) these operations. Do we need stricter checks?
AC_TRY_RUN([
main() {
exit((sizeof(void *) == 8) ? 0 : 1);
}
],
[arch=x86_64
have_xaddq=yes],
[arch=x86_32],
[arch=x86_32])
;;
x86_64-*|amd64-*)
AC_TRY_RUN([
main() {
exit((sizeof(void *) == 8) ? 0 : 1);
}
],
[arch=x86_64
have_xaddq=yes],
[arch=x86_32],
[arch=x86_64
have_xaddq=yes])
;;
alpha*-*)
arch=alpha
;;
powerpc-*|powerpc64-*)
arch=powerpc
;;
mips-*|mipsel-*|mips64-*|mips64el-*)
arch=mips
;;
ia64-*)
arch=ia64
;;
*)
have_atomic=no
arch=noatomic
;;
esac
AC_MSG_RESULT($arch)
fi
if test "$have_atomic" = "yes"; then
AC_MSG_CHECKING([compiler support for inline assembly code])
compiler=generic
# Check whether the compiler supports the assembly syntax we provide.
if test "X$GCC" = "Xyes"; then
# GCC's ASM extension always works
compiler=gcc
if test $arch = "x86_64"; then
# We can share the same code for gcc with x86_32
arch=x86_32
fi
if test $arch = "powerpc"; then
#
# The MacOS (and maybe others) uses "r0" for register
# zero. Under linux/ibm it is "0" for register 0.
# Probe to see if we have a MacOS style assembler.
#
AC_MSG_CHECKING([Checking for MacOS style assembler syntax])
AC_TRY_COMPILE(, [
__asm__ volatile ("li r0, 0x0\n"::);
], [
AC_MSG_RESULT(yes)
compiler="mac"
ISC_PLATFORM_USEMACASM="#define ISC_PLATFORM_USEMACASM 1"
], [AC_MSG_RESULT(no)])
fi
else
case "$host" in
alpha*-dec-osf*)
# Tru64 compiler has its own syntax for inline
# assembly.
AC_TRY_COMPILE(, [
#ifndef __DECC
#error "unexpected compiler"
#endif
return (0);],
[compiler=osf],)
;;
powerpc-ibm-aix*)
compiler=aix
;;
esac
fi
case "$compiler" in
gcc)
ISC_PLATFORM_USEGCCASM="#define ISC_PLATFORM_USEGCCASM 1"
;;
osf)
ISC_PLATFORM_USEOSFASM="#define ISC_PLATFORM_USEOSFASM 1"
;;
aix)
;;
mac)
;;
*)
# See if the generic __asm function works. If not,
# we need to disable the atomic operations.
AC_TRY_LINK(, [
__asm("nop")
],
[compiler="standard"
ISC_PLATFORM_USESTDASM="#define ISC_PLATFORM_USESTDASM 1"],
[compiler="not supported (atomic operations disabled)"
have_atomic=no
arch=noatomic ]);
;;
esac
AC_MSG_RESULT($compiler)
fi
if test "$have_atomic" = "yes"; then
ISC_PLATFORM_HAVEXADD="#define ISC_PLATFORM_HAVEXADD 1"
ISC_PLATFORM_HAVECMPXCHG="#define ISC_PLATFORM_HAVECMPXCHG 1"
ISC_PLATFORM_HAVEATOMICSTORE="#define ISC_PLATFORM_HAVEATOMICSTORE 1"
else
ISC_PLATFORM_HAVEXADD="#undef ISC_PLATFORM_HAVEXADD"
ISC_PLATFORM_HAVECMPXCHG="#undef ISC_PLATFORM_HAVECMPXCHG"
ISC_PLATFORM_HAVEATOMICSTORE="#undef ISC_PLATFORM_HAVEATOMICSTORE"
fi
if test "$have_xaddq" = "yes"; then
ISC_PLATFORM_HAVEXADDQ="#define ISC_PLATFORM_HAVEXADDQ 1"
else
ISC_PLATFORM_HAVEXADDQ="#undef ISC_PLATFORM_HAVEXADDQ"
fi
AC_SUBST(ISC_PLATFORM_HAVEXADD)
AC_SUBST(ISC_PLATFORM_HAVEXADDQ)
AC_SUBST(ISC_PLATFORM_HAVECMPXCHG)
AC_SUBST(ISC_PLATFORM_HAVEATOMICSTORE)
AC_SUBST(ISC_PLATFORM_USEGCCASM)
AC_SUBST(ISC_PLATFORM_USEOSFASM)
AC_SUBST(ISC_PLATFORM_USESTDASM)
AC_SUBST(ISC_PLATFORM_USEMACASM)
ISC_ARCH_DIR=$arch
AC_SUBST(ISC_ARCH_DIR)
#
# Activate "rrset-order fixed" or not?
#
AC_ARG_ENABLE(fixed-rrset,
[ --enable-fixed-rrset enable fixed rrset ordering
[[default=no]]],
enable_fixed="$enableval",
enable_fixed="no")
case "$enable_fixed" in
yes)
AC_DEFINE(DNS_RDATASET_FIXED, 1,
[Define to enable "rrset-order fixed" syntax.])
;;
no)
;;
*)
;;
esac
#
# Activate "filter-aaaa-on-v4" or not?
#
AC_ARG_ENABLE(filter-aaaa,
[ --enable-filter-aaaa enable filtering of AAAA records over IPv4
[[default=no]]],
enable_filter="$enableval",
enable_filter="no")
case "$enable_filter" in
yes)
AC_DEFINE(ALLOW_FILTER_AAAA_ON_V4, 1,
[Define to enable the "filter-aaaa-on-v4" option.])
;;
no)
;;
*)
;;
esac
#
# The following sets up how non-blocking i/o is established.
# Sunos, cygwin and solaris 2.x (x<5) require special handling.
#
case "$host" in
*-sunos*) AC_DEFINE(PORT_NONBLOCK, O_NDELAY);;
*-cygwin*) AC_DEFINE(PORT_NONBLOCK, O_NDELAY);;
*-solaris2.[[01234]])
AC_DEFINE(PORT_NONBLOCK, O_NONBLOCK)
AC_DEFINE(USE_FIONBIO_IOCTL, 1,
[Defined if you need to use ioctl(FIONBIO) instead a fcntl call to make non-blocking.])
;;
*) AC_DEFINE(PORT_NONBLOCK, O_NONBLOCK,
[Sets which flag to pass to open/fcntl to make non-blocking (O_NDELAY/O_NONBLOCK).])
;;
esac
#
# Solaris 2.5.1 and earlier cannot bind() then connect() a TCP socket.
# This prevents the source address being set.
#
case "$host" in
*-solaris2.[[012345]]|*-solaris2.5.1)
AC_DEFINE(BROKEN_TCP_BIND_BEFORE_CONNECT, 1,
[Define if you cannot bind() before connect() for TCP sockets.])
;;
esac
#
# The following sections deal with tools used for formatting
# the documentation. They are all optional, unless you are
# a developer editing the documentation source.
#
#
# Look for TeX.
#
AC_PATH_PROGS(LATEX, latex, latex)
AC_SUBST(LATEX)
AC_PATH_PROGS(PDFLATEX, pdflatex, pdflatex)
AC_SUBST(PDFLATEX)
#
# Look for w3m
#
AC_PATH_PROGS(W3M, w3m, w3m)
AC_SUBST(W3M)
#
# Look for xsltproc (libxslt)
#
AC_PATH_PROG(XSLTPROC, xsltproc, xsltproc)
AC_SUBST(XSLTPROC)
#
# Look for xmllint (libxml2)
#
AC_PATH_PROG(XMLLINT, xmllint, xmllint)
AC_SUBST(XMLLINT)
#
# Look for Doxygen
#
AC_PATH_PROG(DOXYGEN, doxygen, doxygen)
AC_SUBST(DOXYGEN)
#
# 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 Docbook-XSL stylesheets. Location probably varies by system.
# If it's not explicitly specified, guess where it might be found, based on
# where SGML stuff lives on some systems (FreeBSD is the only one we're sure
# of at the moment).
#
AC_MSG_CHECKING(for Docbook-XSL path)
AC_ARG_WITH(docbook-xsl,
[ --with-docbook-xsl=PATH Specify path for Docbook-XSL stylesheets],
docbook_path="$withval", docbook_path="auto")
case "$docbook_path" in
auto)
AC_MSG_RESULT(auto)
docbook_xsl_trees="/usr/pkg/share/xsl/docbook /usr/local/share/xsl/docbook /usr/share/xsl/docbook"
;;
*)
docbook_xsl_trees="$withval"
AC_MSG_RESULT($docbook_xsl_trees)
;;
esac
#
# Look for stylesheets we need.
#
NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_HTML, html/docbook.xsl, $docbook_xsl_trees)
NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_XHTML, xhtml/docbook.xsl, $docbook_xsl_trees)
NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_MAN, manpages/docbook.xsl, $docbook_xsl_trees)
NOM_PATH_FILE(XSLT_DOCBOOK_CHUNK_HTML, html/chunk.xsl, $docbook_xsl_trees)
NOM_PATH_FILE(XSLT_DOCBOOK_CHUNK_XHTML, xhtml/chunk.xsl, $docbook_xsl_trees)
NOM_PATH_FILE(XSLT_DOCBOOK_CHUNKTOC_HTML, html/chunktoc.xsl, $docbook_xsl_trees)
NOM_PATH_FILE(XSLT_DOCBOOK_CHUNKTOC_XHTML, xhtml/chunktoc.xsl, $docbook_xsl_trees)
NOM_PATH_FILE(XSLT_DOCBOOK_MAKETOC_HTML, html/maketoc.xsl, $docbook_xsl_trees)
NOM_PATH_FILE(XSLT_DOCBOOK_MAKETOC_XHTML, xhtml/maketoc.xsl, $docbook_xsl_trees)
#
# Same dance for db2latex
#
# No idea where this lives except on FreeBSD.
#
db2latex_xsl_trees="/usr/local/share"
#
# Look for stylesheets we need.
#
NOM_PATH_FILE(XSLT_DB2LATEX_STYLE, db2latex/xsl/docbook.xsl, $db2latex_xsl_trees)
#
# Look for "admonition" image directory. Can't use NOM_PATH_FILE()
# because it's a directory, so just do the same things, inline.
#
AC_MSG_CHECKING(for db2latex/xsl/figures)
for d in $db2latex_xsl_trees
do
dd=$d/db2latex/xsl/figures
if test -d $dd
then
XSLT_DB2LATEX_ADMONITIONS=$dd
AC_MSG_RESULT($dd)
break
fi
done
if test "X$XSLT_DB2LATEX_ADMONITIONS" = "X"
then
AC_MSG_RESULT(not found)
XSLT_DB2LATEX_ADMONITIONS=db2latex/xsl/figures
fi
AC_SUBST(XSLT_DB2LATEX_ADMONITIONS)
#
# IDN support
#
AC_ARG_WITH(idn,
[ --with-idn[=MPREFIX] enable IDN support using idnkit [default PREFIX]],
use_idn="$withval", use_idn="no")
case "$use_idn" in
yes)
if test X$prefix = XNONE ; then
idn_path=/usr/local
else
idn_path=$prefix
fi
;;
no)
;;
*)
idn_path="$use_idn"
;;
esac
iconvinc=
iconvlib=
AC_ARG_WITH(libiconv,
[ --with-libiconv[=IPREFIX] GNU libiconv are in IPREFIX [default PREFIX]],
use_libiconv="$withval", use_libiconv="no")
case "$use_libiconv" in
yes)
if test X$prefix = XNONE ; then
iconvlib="-L/usr/local/lib -R/usr/local/lib -liconv"
else
iconvlib="-L$prefix/lib -R$prefix/lib -liconv"
fi
;;
no)
iconvlib=
;;
*)
iconvlib="-L$use_libiconv/lib -R$use_libiconv/lib -liconv"
;;
esac
AC_ARG_WITH(iconv,
[ --with-iconv[=LIBSPEC] specify iconv library [default -liconv]],
iconvlib="$withval")
case "$iconvlib" in
no)
iconvlib=
;;
yes)
iconvlib=-liconv
;;
esac
AC_ARG_WITH(idnlib,
[ --with-idnlib=ARG specify libidnkit],
idnlib="$withval", idnlib="no")
if test "$idnlib" = yes; then
AC_MSG_ERROR([You must specify ARG for --with-idnlib.])
fi
IDNLIBS=
if test "$use_idn" != no; then
AC_DEFINE(WITH_IDN, 1, [define if idnkit support is to be included.])
STD_CINCLUDES="$STD_CINCLUDES -I$idn_path/include"
if test "$idnlib" != no; then
IDNLIBS="$idnlib $iconvlib"
else
IDNLIBS="-L$idn_path/lib -lidnkit $iconvlib"
fi
fi
AC_SUBST(IDNLIBS)
AC_CHECK_HEADERS(locale.h)
AC_CHECK_FUNCS(setlocale)
#
# 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:+.}${PATCHVER}${RELEASETYPE}${RELEASEVER}"
AC_SUBST(BIND9_VERSION)
if test -z "$ac_configure_args"; then
BIND9_CONFIGARGS="defaults"
else
for a in $ac_configure_args
do
BIND9_CONFIGARGS="$BIND9_CONFIGARGS $a"
done
fi
BIND9_CONFIGARGS="`echo $BIND9_CONFIGARGS | sed 's/^ //'`"
BIND9_CONFIGARGS="CONFIGARGS=${BIND9_CONFIGARGS}"
AC_SUBST(BIND9_CONFIGARGS)
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_SUBST_FILE(LIBIRS_API)
LIBIRS_API=$srcdir/lib/irs/api
#
# Configure any DLZ drivers.
#
# If config.dlz.in selects one or more DLZ drivers, it will set
# USE_DLZ to a non-empty value, which will be our clue to
# enable the DLZ core functions.
#
# This section has to come after the libtool stuff because it needs to
# know how to name the driver object files.
#
USE_DLZ=""
DLZ_DRIVER_INCLUDES=""
DLZ_DRIVER_LIBS=""
DLZ_DRIVER_SRCS=""
DLZ_DRIVER_OBJS=""
DLZ_SYSTEM_TEST=""
sinclude(contrib/dlz/config.dlz.in)
AC_MSG_CHECKING(for DLZ)
if test -n "$USE_DLZ"
then
AC_MSG_RESULT(yes)
USE_DLZ="-DDLZ $USE_DLZ"
DLZ_DRIVER_RULES=contrib/dlz/drivers/rules
AC_CONFIG_FILES([$DLZ_DRIVER_RULES])
else
AC_MSG_RESULT(no)
DLZ_DRIVER_RULES=/dev/null
fi
AC_SUBST(USE_DLZ)
AC_SUBST(DLZ_DRIVER_INCLUDES)
AC_SUBST(DLZ_DRIVER_LIBS)
AC_SUBST(DLZ_DRIVER_SRCS)
AC_SUBST(DLZ_DRIVER_OBJS)
AC_SUBST(DLZ_SYSTEM_TEST)
AC_SUBST_FILE(DLZ_DRIVER_RULES)
if test "$cross_compiling" = "yes"; then
if test -z "$BUILD_CC"; then
AC_ERROR([BUILD_CC not set])
fi
BUILD_CFLAGS="$BUILD_CFLAGS"
BUILD_CPPFLAGS="$BUILD_CPPFLAGS"
BUILD_LDFLAGS="$BUILD_LDFLAGS"
BUILD_LIBS="$BUILD_LIBS"
else
BUILD_CC="$CC"
BUILD_CFLAGS="$CFLAGS"
BUILD_CPPFLAGS="$CPPFLAGS $GEN_NEED_OPTARG"
BUILD_LDFLAGS="$LDFLAGS"
BUILD_LIBS="$LIBS"
fi
NEWFLAGS=""
for e in $BUILD_LDFLAGS ; do
case $e in
-L*)
case $host_os in
netbsd*)
ee=`echo $e | sed -e 's%^-L%-Wl,-rpath,%'`
NEWFLAGS="$NEWFLAGS $e $ee"
;;
freebsd*)
ee=`echo $e | sed -e 's%^-L%-Wl,-rpath,%'`
NEWFLAGS="$NEWFLAGS $e $ee"
;;
solaris*)
ee=`echo $e | sed -e 's%^-L%-R%'`
NEWFLAGS="$NEWFLAGS $e $ee"
;;
*)
NEWFLAGS="$NEWFLAGS $e"
;;
esac
;;
*)
NEWFLAGS="$NEWFLAGS $e"
;;
esac
done
BUILD_LDFLAGS="$NEWFLAGS"
NEWFLAGS=""
for e in $DNS_GSSAPI_LIBS ; do
case $e in
-L*)
case $host_os in
netbsd*)
ee=`echo $e | sed -e 's%^-L%-Wl,-rpath,%'`
NEWFLAGS="$NEWFLAGS $e $ee"
;;
freebsd*)
ee=`echo $e | sed -e 's%^-L%-Wl,-rpath,%'`
NEWFLAGS="$NEWFLAGS $e $ee"
;;
solaris*)
ee=`echo $e | sed -e 's%^-L%-R%'`
NEWFLAGS="$NEWFLAGS $e $ee"
;;
*)
NEWFLAGS="$NEWFLAGS $e"
;;
esac
;;
*)
NEWFLAGS="$NEWFLAGS $e"
;;
esac
done
DNS_GSSAPI_LIBS="$NEWFLAGS"
NEWFLAGS=""
for e in $DNS_CRYPTO_LIBS ; do
case $e in
-L*)
case $host_os in
netbsd*)
ee=`echo $e | sed -e 's%^-L%-Wl,-rpath,%'`
NEWFLAGS="$NEWFLAGS $e $ee"
;;
freebsd*)
ee=`echo $e | sed -e 's%^-L%-Wl,-rpath,%'`
NEWFLAGS="$NEWFLAGS $e $ee"
;;
solaris*)
ee=`echo $e | sed -e 's%^-L%-R%'`
NEWFLAGS="$NEWFLAGS $e $ee"
;;
*)
NEWFLAGS="$NEWFLAGS $e"
;;
esac
;;
*)
NEWFLAGS="$NEWFLAGS $e"
;;
esac
done
DNS_CRYPTO_LIBS="$NEWFLAGS"
AC_SUBST(BUILD_CC)
AC_SUBST(BUILD_CFLAGS)
AC_SUBST(BUILD_CPPFLAGS)
AC_SUBST(BUILD_LDFLAGS)
AC_SUBST(BUILD_LIBS)
#
# Commands to run at the end of config.status.
# Don't just put these into configure, it won't work right if somebody
# runs config.status directly (which autoconf allows).
#
AC_CONFIG_COMMANDS(
[chmod],
[chmod a+x isc-config.sh doc/doxygen/doxygen-input-filter])
#
# Files to configure. These are listed here because we used to
# specify them as arguments to AC_OUTPUT. It's (now) ok to move these
# elsewhere if there's a good reason for doing so.
#
AC_CONFIG_FILES([
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/isc/$arch/Makefile
lib/isc/$arch/include/Makefile
lib/isc/$arch/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/irs/Makefile
lib/irs/include/Makefile
lib/irs/include/irs/Makefile
lib/irs/include/irs/netdb.h
lib/irs/include/irs/platform.h
lib/dns/Makefile
lib/dns/include/Makefile
lib/dns/include/dns/Makefile
lib/dns/include/dst/Makefile
lib/export/Makefile
lib/export/isc/Makefile
lib/export/isc/include/Makefile
lib/export/isc/include/isc/Makefile
lib/export/isc/unix/Makefile
lib/export/isc/unix/include/Makefile
lib/export/isc/unix/include/isc/Makefile
lib/export/isc/nls/Makefile
lib/export/isc/$thread_dir/Makefile
lib/export/isc/$thread_dir/include/Makefile
lib/export/isc/$thread_dir/include/isc/Makefile
lib/export/dns/Makefile
lib/export/dns/include/Makefile
lib/export/dns/include/dns/Makefile
lib/export/dns/include/dst/Makefile
lib/export/irs/Makefile
lib/export/irs/include/Makefile
lib/export/irs/include/irs/Makefile
lib/export/isccfg/Makefile
lib/export/isccfg/include/Makefile
lib/export/isccfg/include/isccfg/Makefile
lib/export/samples/Makefile
lib/export/samples/Makefile-postinstall
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/confgen/Makefile
bin/confgen/unix/Makefile
bin/named/Makefile
bin/named/unix/Makefile
bin/rndc/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/filter-aaaa/Makefile
bin/tests/system/lwresd/Makefile
bin/tests/system/tkey/Makefile
bin/tests/headerdep_test.sh
bin/tests/virtual-time/Makefile
bin/tests/virtual-time/conf.sh
bin/tools/Makefile
bin/dnssec/Makefile
bin/pkcs11/Makefile
doc/Makefile
doc/arm/Makefile
doc/misc/Makefile
isc-config.sh
doc/xsl/Makefile
doc/xsl/isc-docbook-chunk.xsl
doc/xsl/isc-docbook-html.xsl
doc/xsl/isc-docbook-latex.xsl
doc/xsl/isc-manpage.xsl
doc/doxygen/Doxyfile
doc/doxygen/Makefile
doc/doxygen/doxygen-input-filter
])
#
# Do it
#
AC_OUTPUT
#
# Now that the Makefiles exist we can ensure that everything is rebuilt.
#
AC_ARG_WITH(make-clean,
[ --with-make-clean Run "make clean" at end of configure [[yes|no]].],
make_clean="$withval", make_clean="yes")
case "$make_clean" in
yes)
make clean
;;
esac
if test "X$USE_OPENSSL" = "X"; then
cat << \EOF
BIND is being built without OpenSSL. This means it will not have DNSSEC support.
EOF
fi
if test "X$OPENSSL_WARNING" != "X"; then
cat << \EOF
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
WARNING WARNING
WARNING Your OpenSSL crypto library may be vulnerable to WARNING
WARNING one or more of the the following known security WARNING
WARNING flaws: WARNING
WARNING WARNING
WARNING CAN-2002-0659, CAN-2006-4339, CVE-2006-2937 and WARNING
WARNING CVE-2006-2940. WARNING
WARNING WARNING
WARNING It is recommended that you upgrade to OpenSSL WARNING
WARNING version 0.9.8d/0.9.7l (or greater). WARNING
WARNING WARNING
WARNING You can disable this warning by specifying: WARNING
WARNING WARNING
WARNING --disable-openssl-version-check WARNING
WARNING WARNING
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
EOF
fi
# Tell Emacs to edit this file in shell mode.
# Local Variables:
# mode: sh
# End: