/contrib/bind9/configure.in
https://bitbucket.org/freebsd/freebsd-head/ · Autoconf · 3615 lines · 2647 code · 287 blank · 681 comment · 155 complexity · 556ae3bcc788f39e8f3ac74535031dae MD5 · raw file
Large files are truncated click here to view the full file
- # Copyright (C) 2004-2011 Internet Systems Consortium, Inc. ("ISC")
- # Copyright (C) 1998-2003 Internet Software Consortium.
- #
- # Permission to use, copy, modify, and/or distribute this software for any
- # purpose with or without fee is hereby granted, provided that the above
- # copyright notice and this permission notice appear in all copies.
- #
- # THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
- # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- # AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
- # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- # PERFORMANCE OF THIS SOFTWARE.
- dnl
- AC_DIVERT_PUSH(1)dnl
- esyscmd([sed "s/^/# /" COPYRIGHT])dnl
- AC_DIVERT_POP()dnl
- AC_REVISION($Revision: 1.512.8.15 $)
- AC_INIT(lib/dns/name.c)
- AC_PREREQ(2.59)
- AC_CONFIG_HEADER(config.h)
- AC_CANONICAL_HOST
- AC_PROG_MAKE_SET
- #
- # GNU libtool support
- #
- case $build_os in
- sunos*)
- # Just set the maximum command line length for sunos as it otherwise
- # takes a exceptionally long time to work it out. Required for libtool.
-
- lt_cv_sys_max_cmd_len=4096;
- ;;
- esac
- AC_PROG_LIBTOOL
- AC_PROG_INSTALL
- AC_PROG_LN_S
- AC_SUBST(STD_CINCLUDES)
- AC_SUBST(STD_CDEFINES)
- AC_SUBST(STD_CWARNINGS)
- AC_SUBST(CCOPT)
- # Warn if the user specified libbind, which is now deprecated
- AC_ARG_ENABLE(libbind, [ --enable-libbind deprecated])
- case "$enable_libbind" in
- yes)
- AC_MSG_ERROR(['libbind' is no longer part of the BIND 9 distribution.
- It is available from http://www.isc.org as a separate download.])
- ;;
- no|'')
- ;;
- esac
- AC_ARG_ENABLE(developer, [ --enable-developer enable developer build settings])
- case "$enable_developer" in
- yes)
- test "${enable_fixed_rrset+set}" = set || enable_fixed_rrset=yes
- test "${with_atf+set}" = set || with_atf=yes
- test "${enable_filter_aaaa+set}" = set || enable_filter_aaaa=yes
- test "${enable_rpz_nsip+set}" = set || enable_rpz_nsip=yes
- test "${enable_rpz_nsdname+set}" = set || enable_rpz_nsdname=yes
- test "${with_dlz_filesystem+set}" = set || with_dlz_filesystem=yes
- case "$host" in
- *-darwin*)
- test "${enable_exportlib+set}" = set || enable_exportlib=yes
- ;;
- *-linux*)
- test "${enable_exportlib+set}" = set || enable_exportlib=yes
- ;;
- esac
- ;;
- esac
- #
- # Make very sure that these are the first files processed by
- # config.status, since we use the processed output as the input for
- # AC_SUBST_FILE() substitutions in other files.
- #
- AC_CONFIG_FILES([make/rules make/includes])
- AC_PATH_PROG(AR, ar)
- ARFLAGS="cruv"
- AC_SUBST(AR)
- AC_SUBST(ARFLAGS)
- # The POSIX ln(1) program. Non-POSIX systems may substitute
- # "copy" or something.
- LN=ln
- AC_SUBST(LN)
- case "$AR" in
- "")
- AC_MSG_ERROR([
- ar program not found. Please fix your PATH to include the directory in
- which ar resides, or set AR in the environment with the full path to ar.
- ])
- ;;
- esac
- #
- # Etags.
- #
- AC_PATH_PROGS(ETAGS, etags emacs-etags)
- #
- # Some systems, e.g. RH7, have the Exuberant Ctags etags instead of
- # GNU emacs etags, and it requires the -L flag.
- #
- if test "X$ETAGS" != "X"; then
- AC_MSG_CHECKING(for Exuberant Ctags etags)
- if $ETAGS --version 2>&1 | grep 'Exuberant Ctags' >/dev/null 2>&1; then
- AC_MSG_RESULT(yes)
- ETAGS="$ETAGS -L"
- else
- AC_MSG_RESULT(no)
- fi
- fi
- AC_SUBST(ETAGS)
- #
- # Perl is optional; it is used only by some of the system test scripts.
- # Note: the backtrace feature (see below) uses perl to build the symbol table,
- # but it still compiles without perl, in which case an empty table will be used.
- #
- AC_PATH_PROGS(PERL, perl5 perl)
- AC_SUBST(PERL)
- #
- # Special processing of paths depending on whether --prefix,
- # --sysconfdir or --localstatedir arguments were given. What's
- # desired is some compatibility with the way previous versions
- # of BIND built; they defaulted to /usr/local for most parts of
- # the installation, but named.boot/named.conf was in /etc
- # and named.pid was in /var/run.
- #
- # So ... if none of --prefix, --sysconfdir or --localstatedir are
- # specified, set things up that way. If --prefix is given, use
- # it for sysconfdir and localstatedir the way configure normally
- # would. To change the prefix for everything but leave named.conf
- # in /etc or named.pid in /var/run, then do this the usual configure way:
- # ./configure --prefix=/somewhere --sysconfdir=/etc
- # ./configure --prefix=/somewhere --localstatedir=/var
- #
- # To put named.conf and named.pid in /usr/local with everything else,
- # set the prefix explicitly to /usr/local even though that's the default:
- # ./configure --prefix=/usr/local
- #
- case "$prefix" in
- NONE)
- case "$sysconfdir" in
- '${prefix}/etc')
- sysconfdir=/etc
- ;;
- esac
- case "$localstatedir" in
- '${prefix}/var')
- localstatedir=/var
- ;;
- esac
- ;;
- esac
- #
- # Make sure INSTALL uses an absolute path, else it will be wrong in all
- # Makefiles, since they use make/rules.in and INSTALL will be adjusted by
- # configure based on the location of the file where it is substituted.
- # Since in BIND9 INSTALL is only substituted into make/rules.in, an immediate
- # subdirectory of install-sh, This relative path will be wrong for all
- # directories more than one level down from install-sh.
- #
- case "$INSTALL" in
- /*)
- ;;
- *)
- #
- # Not all systems have dirname.
- #
- changequote({, })
- ac_dir="`echo $INSTALL | sed 's%/[^/]*$%%'`"
- changequote([, ])
- ac_prog="`echo $INSTALL | sed 's%.*/%%'`"
- test "$ac_dir" = "$ac_prog" && ac_dir=.
- test -d "$ac_dir" && ac_dir="`(cd \"$ac_dir\" && pwd)`"
- INSTALL="$ac_dir/$ac_prog"
- ;;
- esac
- #
- # On these hosts, we really want to use cc, not gcc, even if it is
- # found. The gcc that these systems have will not correctly handle
- # pthreads.
- #
- # However, if the user sets $CC to be something, let that override
- # our change.
- #
- if test "X$CC" = "X" ; then
- case "$host" in
- *-dec-osf*)
- CC="cc"
- ;;
- *-solaris*)
- # Use Sun's cc if it is available, but watch
- # out for /usr/ucb/cc; it will never be the right
- # compiler to use.
- #
- # If setting CC here fails, the AC_PROG_CC done
- # below might still find gcc.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- case "$ac_dir" in
- /usr/ucb)
- # exclude
- ;;
- *)
- if test -f "$ac_dir/cc"; then
- CC="$ac_dir/cc"
- break
- fi
- ;;
- esac
- done
- IFS="$ac_save_ifs"
- ;;
- *-hp-hpux*)
- CC="cc"
- ;;
- mips-sgi-irix*)
- CC="cc"
- ;;
- esac
- fi
- AC_PROG_CC
- #
- # gcc's optimiser is broken at -02 for ultrasparc
- #
- if test "$ac_env_CFLAGS_set" != set -a "X$GCC" = "Xyes"; then
- case "$host" in
- sparc-*)
- CCFLAGS="-g -O1"
- ;;
- esac
- fi
- #
- # OS dependent CC flags
- #
- case "$host" in
- # OSF 5.0: recv/send are only available with -D_POSIX_PII_SOCKET or
- # -D_XOPEN_SOURCE_EXTENDED.
- *-dec-osf*)
- STD_CDEFINES="$STD_CDEFINES -D_POSIX_PII_SOCKET"
- CPPFLAGS="$CPPFLAGS -D_POSIX_PII_SOCKET"
- ;;
- #HP-UX: need -D_XOPEN_SOURCE_EXTENDED and -lxnet for CMSG macros
- *-hp-hpux*)
- STD_CDEFINES="$STD_CDEFINES -D_XOPEN_SOURCE_EXTENDED"
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
- LIBS="-lxnet $LIBS"
- ;;
- # Solaris: need -D_XPG4_2 and -D__EXTENSIONS__ for CMSG macros
- *-solaris*)
- STD_CDEFINES="$STD_CDEFINES -D_XPG4_2 -D__EXTENSIONS__"
- CPPFLAGS="$CPPFLAGS -D_XPG4_2 -D__EXTENSIONS__"
- ;;
- # POSIX doesn't include the IPv6 Advanced Socket API and glibc hides
- # parts of the IPv6 Advanced Socket API as a result. This is stupid
- # as it breaks how the two halves (Basic and Advanced) of the IPv6
- # Socket API were designed to be used but we have to live with it.
- # Define _GNU_SOURCE to pull in the IPv6 Advanced Socket API.
- *-linux* | *-kfreebsd*-gnu)
- STD_CDEFINES="$STD_CDEFINES -D_GNU_SOURCE"
- CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
- ;;
- #
- # Starting with OSX 10.7 (Lion) we must choose which IPv6 API to use.
- # Setting this is sufficient to select the correct behavior for BIND 9.
- #
- *-darwin*)
- STD_CDEFINES="$STD_CDEFINES -D__APPLE_USE_RFC_3542"
- CPPFLAGS="$CPPFLAGS -D__APPLE_USE_RFC_3542"
- ;;
- esac
- AC_HEADER_STDC
- AC_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,,,
- [$ac_includes_default
- #ifdef HAVE_SYS_PARAM_H
- # include <sys/param.h>
- #endif
- ])
- AC_C_CONST
- AC_C_INLINE
- AC_C_VOLATILE
- AC_CHECK_FUNC(sysctlbyname, AC_DEFINE(HAVE_SYSCTLBYNAME))
- AC_C_FLEXIBLE_ARRAY_MEMBER
- #
- # Older versions of HP/UX don't define seteuid() and setegid()
- #
- AC_CHECK_FUNCS(seteuid setresuid)
- AC_CHECK_FUNCS(setegid setresgid)
- #
- # UnixWare 7.1.1 with the feature supplement to the UDK compiler
- # is reported to not support "static inline" (RT #1212).
- #
- AC_MSG_CHECKING(for static inline breakage)
- AC_TRY_COMPILE(, [
- foo1();
- }
- static inline int foo1() {
- return 0;
- }
- static inline int foo2() {
- return foo1();
- ],
- [AC_MSG_RESULT(no)],
- [AC_MSG_RESULT(yes)
- AC_DEFINE(inline, ,[Define to empty if your compiler does not support "static inline".])])
- AC_TYPE_SIZE_T
- AC_CHECK_TYPE(ssize_t, int)
- AC_CHECK_TYPE(uintptr_t,unsigned long)
- AC_CHECK_TYPE(socklen_t,
- [AC_DEFINE(ISC_SOCKADDR_LEN_T, socklen_t)],
- [
- AC_TRY_COMPILE(
- [
- #include <sys/types.h>
- #include <sys/socket.h>
- int getsockname(int, struct sockaddr *, size_t *);
- ],[],
- [AC_DEFINE(ISC_SOCKADDR_LEN_T, size_t)],
- [AC_DEFINE(ISC_SOCKADDR_LEN_T, int)])
- ],
- [
- #include <sys/types.h>
- #include <sys/socket.h>
- ])
- AC_SUBST(ISC_SOCKADDR_LEN_T)
- AC_HEADER_TIME
- AC_MSG_CHECKING(for long long)
- AC_TRY_COMPILE([],[long long i = 0; return (0);],
- [AC_MSG_RESULT(yes)
- ISC_PLATFORM_HAVELONGLONG="#define ISC_PLATFORM_HAVELONGLONG 1"],
- [AC_MSG_RESULT(no)
- ISC_PLATFORM_HAVELONGLONG="#undef ISC_PLATFORM_HAVELONGLONG"])
- AC_SUBST(ISC_PLATFORM_HAVELONGLONG)
- #
- # check for GCC noreturn attribute
- #
- AC_MSG_CHECKING(for GCC noreturn attribute)
- AC_TRY_COMPILE([],[void foo() __attribute__((noreturn));],
- [AC_MSG_RESULT(yes)
- ISC_PLATFORM_NORETURN_PRE="#define ISC_PLATFORM_NORETURN_PRE"
- ISC_PLATFORM_NORETURN_POST="#define ISC_PLATFORM_NORETURN_POST __attribute__((noreturn))"],
- [AC_MSG_RESULT(no)
- ISC_PLATFORM_NORETURN_PRE="#define ISC_PLATFORM_NORETURN_PRE"
- ISC_PLATFORM_NORETURN_POST="#define ISC_PLATFORM_NORETURN_POST"])
- AC_SUBST(ISC_PLATFORM_NORETURN_PRE)
- AC_SUBST(ISC_PLATFORM_NORETURN_POST)
- #
- # check if we have lifconf
- #
- AC_MSG_CHECKING(for struct lifconf)
- AC_TRY_COMPILE([
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <net/if.h>
- ],
- [
- struct lifconf lifconf;
- lifconf.lifc_len = 0;
- ]
- ,
- [AC_MSG_RESULT(yes)
- ISC_PLATFORM_HAVELIFCONF="#define ISC_PLATFORM_HAVELIFCONF 1"],
- [AC_MSG_RESULT(no)
- ISC_PLATFORM_HAVELIFCONF="#undef ISC_PLATFORM_HAVELIFCONF"])
- AC_SUBST(ISC_PLATFORM_HAVELIFCONF)
- #
- # check if we have kqueue
- #
- AC_ARG_ENABLE(kqueue,
- [ --enable-kqueue use BSD kqueue when available [[default=yes]]],
- want_kqueue="$enableval", want_kqueue="yes")
- case $want_kqueue in
- yes)
- AC_CHECK_FUNC(kqueue, ac_cv_have_kqueue=yes, ac_cv_have_kqueue=no)
- case $ac_cv_have_kqueue in
- yes)
- ISC_PLATFORM_HAVEKQUEUE="#define ISC_PLATFORM_HAVEKQUEUE 1"
- ;;
- *)
- ISC_PLATFORM_HAVEKQUEUE="#undef ISC_PLATFORM_HAVEKQUEUE"
- ;;
- esac
- ;;
- *)
- ISC_PLATFORM_HAVEKQUEUE="#undef ISC_PLATFORM_HAVEKQUEUE"
- ;;
- esac
- AC_SUBST(ISC_PLATFORM_HAVEKQUEUE)
- #
- # check if we have epoll. Linux kernel 2.4 has epoll_create() which fails,
- # so we need to try running the code, not just test its existence.
- #
- AC_ARG_ENABLE(epoll,
- [ --enable-epoll use Linux epoll when available [[default=auto]]],
- want_epoll="$enableval", want_epoll="auto")
- case $want_epoll in
- auto)
- AC_MSG_CHECKING(epoll support)
- AC_TRY_RUN([
- #include <sys/epoll.h>
- int main() {
- if (epoll_create(1) < 0)
- return (1);
- return (0);
- }
- ],
- [AC_MSG_RESULT(yes)
- ISC_PLATFORM_HAVEEPOLL="#define ISC_PLATFORM_HAVEEPOLL 1"],
- [AC_MSG_RESULT(no)
- ISC_PLATFORM_HAVEEPOLL="#undef ISC_PLATFORM_HAVEEPOLL"])
- ;;
- yes)
- ISC_PLATFORM_HAVEEPOLL="#define ISC_PLATFORM_HAVEEPOLL 1"
- ;;
- *)
- ISC_PLATFORM_HAVEEPOLL="#undef ISC_PLATFORM_HAVEEPOLL"
- ;;
- esac
- AC_SUBST(ISC_PLATFORM_HAVEEPOLL)
- #
- # check if we support /dev/poll
- #
- AC_ARG_ENABLE(devpoll,
- [ --enable-devpoll use /dev/poll when available [[default=yes]]],
- want_devpoll="$enableval", want_devpoll="yes")
- case $want_devpoll in
- yes)
- AC_CHECK_HEADERS(sys/devpoll.h devpoll.h,
- ISC_PLATFORM_HAVEDEVPOLL="#define ISC_PLATFORM_HAVEDEVPOLL 1"
- ,
- ISC_PLATFORM_HAVEDEVPOLL="#undef ISC_PLATFORM_HAVEDEVPOLL"
- )
- ;;
- *)
- ISC_PLATFORM_HAVEDEVPOLL="#undef ISC_PLATFORM_HAVEDEVPOLL"
- ;;
- esac
- AC_SUBST(ISC_PLATFORM_HAVEDEVPOLL)
- #
- # check if we need to #include sys/select.h explicitly
- #
- case $ac_cv_header_unistd_h in
- yes)
- AC_MSG_CHECKING(if unistd.h or sys/types.h defines fd_set)
- AC_TRY_COMPILE([
- #include <sys/types.h> /* Ultrix */
- #include <unistd.h>],
- [fd_set read_set; return (0);],
- [AC_MSG_RESULT(yes)
- ISC_PLATFORM_NEEDSYSSELECTH="#undef ISC_PLATFORM_NEEDSYSSELECTH"
- LWRES_PLATFORM_NEEDSYSSELECTH="#undef LWRES_PLATFORM_NEEDSYSSELECTH"],
- [AC_MSG_RESULT(no)
- case $ac_cv_header_sys_select_h in
- yes)
- ISC_PLATFORM_NEEDSYSSELECTH="#define ISC_PLATFORM_NEEDSYSSELECTH 1"
- LWRES_PLATFORM_NEEDSYSSELECTH="#define LWRES_PLATFORM_NEEDSYSSELECTH 1"
- ;;
- no)
- AC_MSG_ERROR([need either working unistd.h or sys/select.h])
- ;;
- esac
- ])
- ;;
- no)
- case $ac_cv_header_sys_select_h in
- yes)
- ISC_PLATFORM_NEEDSYSSELECTH="#define ISC_PLATFORM_NEEDSYSSELECTH 1"
- LWRES_PLATFORM_NEEDSYSSELECTH="#define LWRES_PLATFORM_NEEDSYSSELECTH 1"
- ;;
- no)
- AC_MSG_ERROR([need either unistd.h or sys/select.h])
- ;;
- esac
- ;;
- esac
- AC_SUBST(ISC_PLATFORM_NEEDSYSSELECTH)
- AC_SUBST(LWRES_PLATFORM_NEEDSYSSELECTH)
- #
- # Find the machine's endian flavor.
- #
- AC_C_BIGENDIAN
- #
- # was --with-openssl specified?
- #
- OPENSSL_WARNING=
- AC_MSG_CHECKING(for OpenSSL library)
- AC_ARG_WITH(openssl,
- [ --with-openssl[=PATH] Build with OpenSSL [yes|no|path].
- (Required for DNSSEC)],
- use_openssl="$withval", use_openssl="auto")
- openssldirs="/usr /usr/local /usr/local/ssl /usr/pkg /usr/sfw"
- if test "$use_openssl" = "auto"
- then
- for d in $openssldirs
- do
- if test -f $d/include/openssl/opensslv.h
- then
- use_openssl=$d
- break
- fi
- done
- fi
- OPENSSL_GOST=""
- case "$use_openssl" in
- no)
- AC_MSG_RESULT(no)
- DST_OPENSSL_INC=""
- USE_OPENSSL=""
- OPENSSLLINKOBJS=""
- OPENSSLLINKSRCS=""
- ;;
- auto)
- DST_OPENSSL_INC=""
- USE_OPENSSL=""
- OPENSSLLINKOBJS=""
- OPENSSLLINKSRCS=""
- AC_MSG_ERROR(
- [OpenSSL was not found in any of $openssldirs; use --with-openssl=/path
- If you don't want OpenSSL, use --without-openssl])
- ;;
- *)
- if test "$use_openssl" = "yes"
- then
- # User did not specify a path - guess it
- for d in $openssldirs
- do
- if test -f $d/include/openssl/opensslv.h
- then
- use_openssl=$d
- break
- fi
- done
- if test "$use_openssl" = "yes"
- then
- AC_MSG_RESULT(not found)
- AC_MSG_ERROR(
- [OpenSSL was not found in any of $openssldirs; use --with-openssl=/path])
- fi
- elif ! test -f "$use_openssl"/include/openssl/opensslv.h
- then
- AC_MSG_ERROR(["$use_openssl/include/openssl/opensslv.h" not found])
- fi
- USE_OPENSSL='-DOPENSSL'
- if test "$use_openssl" = "/usr"
- then
- DST_OPENSSL_INC=""
- DNS_OPENSSL_LIBS="-lcrypto"
- else
- DST_OPENSSL_INC="-I$use_openssl/include"
- case $host in
- *-solaris*)
- DNS_OPENSSL_LIBS="-L$use_openssl/lib -R$use_openssl/lib -lcrypto"
- ;;
- *-hp-hpux*)
- DNS_OPENSSL_LIBS="-L$use_openssl/lib -Wl,+b: -lcrypto"
- ;;
- *-apple-darwin*)
- #
- # Apple's ld seaches for serially for dynamic
- # then static libraries. This means you can't
- # use -L to override dynamic system libraries
- # with static ones when linking. Instead
- # we specify a absolute path.
- #
- if test -f "$use_openssl/lib/libcrypto.dylib"
- then
- DNS_OPENSSL_LIBS="-L$use_openssl/lib -lcrypto"
- else
- DNS_OPENSSL_LIBS="$use_openssl/lib/libcrypto.a"
- fi
- ;;
- *)
- DNS_OPENSSL_LIBS="-L$use_openssl/lib -lcrypto"
- ;;
- esac
- fi
- AC_MSG_RESULT(using OpenSSL from $use_openssl/lib and $use_openssl/include)
- saved_cflags="$CFLAGS"
- saved_libs="$LIBS"
- CFLAGS="$CFLAGS $DST_OPENSSL_INC"
- LIBS="$LIBS $DNS_OPENSSL_LIBS"
- AC_MSG_CHECKING(whether linking with OpenSSL works)
- AC_TRY_RUN([
- #include <openssl/err.h>
- int main() {
- ERR_clear_error();
- return (0);
- }
- ],
- [AC_MSG_RESULT(yes)],
- [AC_MSG_RESULT(no)
- AC_MSG_ERROR(Could not run test program using OpenSSL from
- $use_openssl/lib and $use_openssl/include.
- Please check the argument to --with-openssl and your
- shared library configuration (e.g., LD_LIBRARY_PATH).)],
- [AC_MSG_RESULT(assuming it does work on target platform)])
- AC_MSG_CHECKING(whether linking with OpenSSL requires -ldl)
- AC_TRY_LINK([
- #include <openssl/err.h>],
- [ DSO_METHOD_dlfcn(); ],
- [AC_MSG_RESULT(no)],
- [LIBS="$LIBS -ldl"
- AC_TRY_LINK([
- #include <openssl/err.h>
- ],[ DSO_METHOD_dlfcn(); ],
- [AC_MSG_RESULT(yes)
- DNS_OPENSSL_LIBS="$DNS_OPENSSL_LIBS -ldl"
- ],
- [AC_MSG_RESULT(unknown)
- AC_MSG_ERROR(OpenSSL has unsupported dynamic loading)],
- [AC_MSG_RESULT(assuming it does work on target platform)])
- ],
- [AC_MSG_RESULT(assuming it does work on target platform)]
- )
-
- AC_ARG_ENABLE(openssl-version-check,
- [AC_HELP_STRING([--enable-openssl-version-check],
- [Check OpenSSL Version @<:@default=yes@:>@])])
- case "$enable_openssl_version_check" in
- yes|'')
- AC_MSG_CHECKING(OpenSSL library version)
- AC_TRY_RUN([
- #include <stdio.h>
- #include <openssl/opensslv.h>
- int main() {
- if ((OPENSSL_VERSION_NUMBER >= 0x009070cfL &&
- OPENSSL_VERSION_NUMBER < 0x00908000L) ||
- OPENSSL_VERSION_NUMBER >= 0x0090804fL)
- return (0);
- printf("\n\nFound OPENSSL_VERSION_NUMBER %#010x\n",
- OPENSSL_VERSION_NUMBER);
- printf("Require OPENSSL_VERSION_NUMBER 0x009070cf or greater (0.9.7l)\n"
- "Require OPENSSL_VERSION_NUMBER 0x0090804f or greater (0.9.8d)\n\n");
- return (1);
- }
- ],
- [AC_MSG_RESULT(ok)],
- [AC_MSG_RESULT(not compatible)
- OPENSSL_WARNING=yes
- ],
- [AC_MSG_RESULT(assuming target platform has compatible version)])
- ;;
- no)
- AC_MSG_RESULT(Skipped OpenSSL version check)
- ;;
- esac
- AC_MSG_CHECKING(for OpenSSL DSA support)
- if test -f $use_openssl/include/openssl/dsa.h
- then
- AC_DEFINE(HAVE_OPENSSL_DSA)
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
- fi
- AC_CHECK_FUNCS(EVP_sha256 EVP_sha512)
- AC_MSG_CHECKING(for OpenSSL GOST support)
- have_gost=""
- AC_TRY_RUN([
- #include <openssl/conf.h>
- #include <openssl/engine.h>
- int main() {
- #if (OPENSSL_VERSION_NUMBER >= 0x10000000L)
- ENGINE *e;
- EC_KEY *ek;
- ek = NULL;
- OPENSSL_config(NULL);
- e = ENGINE_by_id("gost");
- if (e == NULL)
- return (1);
- if (ENGINE_init(e) <= 0)
- return (1);
- return (0);
- #else
- return (1);
- #endif
- }
- ],
- [AC_MSG_RESULT(yes)
- have_gost="yes"],
- [AC_MSG_RESULT(no)
- have_gost="no"],
- [AC_MSG_RESULT(using --with-gost)])
- AC_ARG_WITH(gost, , with_gost="$withval", with_gost="auto")
- case "$with_gost" in
- yes)
- case "$have_gost" in
- no) AC_MSG_ERROR([gost not supported]) ;;
- *) have_gost=yes ;;
- esac
- ;;
- no)
- have_gost=no ;;
- *)
- case "$have_gost" in
- yes|no) ;;
- *) AC_MSG_ERROR([need --with-gost=[[yes or no]]]) ;;
- esac
- ;;
- esac
- case $have_gost in
- yes)
- OPENSSL_GOST="yes"
- AC_DEFINE(HAVE_OPENSSL_GOST, 1,
- [Define if your OpenSSL version supports GOST.])
- ;;
- *)
- ;;
- esac
- CFLAGS="$saved_cflags"
- LIBS="$saved_libs"
- OPENSSLLINKOBJS='${OPENSSLLINKOBJS}'
- OPENSSLLINKSRCS='${OPENSSLLINKSRCS}'
- ;;
- esac
- #
- # This would include the system openssl path (and linker options to use
- # it as needed) if it is found.
- #
- AC_SUBST(USE_OPENSSL)
- AC_SUBST(DST_OPENSSL_INC)
- AC_SUBST(OPENSSLLINKOBJS)
- AC_SUBST(OPENSSLLINKSRCS)
- AC_SUBST(OPENSSL_GOST)
- DNS_CRYPTO_LIBS="$DNS_CRYPTO_LIBS $DNS_OPENSSL_LIBS"
- #
- # Use OpenSSL for hash functions
- #
- AC_ARG_ENABLE(openssl-hash,
- [ --enable-openssl-hash use OpenSSL for hash functions [[default=no]]],
- want_openssl_hash="$enableval", want_openssl_hash="no")
- case $want_openssl_hash in
- yes)
- if test "$USE_OPENSSL" = ""
- then
- AC_MSG_ERROR([No OpenSSL for hash functions])
- fi
- ISC_PLATFORM_OPENSSLHASH="#define ISC_PLATFORM_OPENSSLHASH 1"
- ISC_OPENSSL_INC="$DST_OPENSSL_INC"
- ;;
- no)
- ISC_PLATFORM_OPENSSLHASH="#undef ISC_PLATFORM_OPENSSLHASH"
- ISC_OPENSSL_INC=""
- ;;
- esac
- AC_SUBST(ISC_PLATFORM_OPENSSLHASH)
- AC_SUBST(ISC_OPENSSL_INC)
- #
- # PKCS11 (aka crypto hardware) support
- #
- # This works only with the right OpenSSL with PKCS11 engine!
- #
- AC_MSG_CHECKING(for PKCS11 support)
- AC_ARG_WITH(pkcs11,
- [ --with-pkcs11[=PATH] Build with PKCS11 support [yes|no|path]
- (PATH is for the PKCS11 provider)],
- use_pkcs11="$withval", use_pkcs11="no")
- case "$use_pkcs11" in
- no|'')
- AC_MSG_RESULT(disabled)
- USE_PKCS11=''
- PKCS11_TOOLS=''
- ;;
- yes|*)
- AC_MSG_RESULT(using OpenSSL with PKCS11 support)
- USE_PKCS11='-DUSE_PKCS11'
- PKCS11_TOOLS=pkcs11
- ;;
- esac
- AC_SUBST(USE_PKCS11)
- AC_SUBST(PKCS11_TOOLS)
- AC_MSG_CHECKING(for PKCS11 tools)
- case "$use_pkcs11" in
- no|yes|'')
- AC_MSG_RESULT(disabled)
- PKCS11_PROVIDER="undefined"
- ;;
- *)
- AC_MSG_RESULT(PKCS11 provider is "$use_pkcs11")
- PKCS11_PROVIDER="$use_pkcs11"
- ;;
- esac
- AC_SUBST(PKCS11_PROVIDER)
- AC_MSG_CHECKING(for GSSAPI library)
- AC_ARG_WITH(gssapi,
- [ --with-gssapi=PATH Specify path for system-supplied GSSAPI [[default=yes]]],
- use_gssapi="$withval", use_gssapi="yes")
- # gssapi is just the framework, we really require kerberos v5, so
- # look for those headers (the gssapi headers must be there, too)
- # The problem with this implementation is that it doesn't allow
- # for the specification of gssapi and krb5 headers in different locations,
- # which probably ought to be fixed although fixing might raise the issue of
- # trying to build with incompatible versions of gssapi and krb5.
- if test "$use_gssapi" = "yes"
- then
- # first, deal with the obvious
- if test \( -f /usr/include/kerberosv5/krb5.h -o \
- -f /usr/include/krb5/krb5.h -o \
- -f /usr/include/krb5.h \) -a \
- \( -f /usr/include/gssapi.h -o \
- -f /usr/include/gssapi/gssapi.h \)
- then
- use_gssapi=/usr
- else
- krb5dirs="/usr/local /usr/local/krb5 /usr/local/kerberosv5 /usr/local/kerberos /usr/pkg /usr/krb5 /usr/kerberosv5 /usr/kerberos /usr"
- for d in $krb5dirs
- do
- if test -f $d/include/gssapi/gssapi_krb5.h -o \
- -f $d/include/krb5.h
- then
- if test -f $d/include/gssapi/gssapi.h -o \
- -f $d/include/gssapi.h
- then
- use_gssapi=$d
- break
- fi
- fi
- use_gssapi="no"
- done
- fi
- fi
- case "$use_gssapi" in
- no)
- AC_MSG_RESULT(disabled)
- USE_GSSAPI=''
- ;;
- yes)
- AC_MSG_ERROR([--with-gssapi must specify a path])
- ;;
- *)
- AC_MSG_RESULT(looking in $use_gssapi/lib)
- USE_GSSAPI='-DGSSAPI'
- saved_cppflags="$CPPFLAGS"
- CPPFLAGS="-I$use_gssapi/include $CPPFLAGS"
- AC_CHECK_HEADERS(gssapi.h gssapi/gssapi.h,
- [ISC_PLATFORM_GSSAPIHEADER="#define ISC_PLATFORM_GSSAPIHEADER <$ac_header>"])
- if test "$ISC_PLATFORM_GSSAPIHEADER" = ""; then
- AC_MSG_ERROR([gssapi.h not found])
- fi
- AC_CHECK_HEADERS(gssapi_krb5.h gssapi/gssapi_krb5.h,
- [ISC_PLATFORM_GSSAPI_KRB5_HEADER="#define ISC_PLATFORM_GSSAPI_KRB5_HEADER <$ac_header>"])
- AC_CHECK_HEADERS(krb5.h krb5/krb5.h kerberosv5/krb5.h,
- [ISC_PLATFORM_KRB5HEADER="#define ISC_PLATFORM_KRB5HEADER <$ac_header>"])
- if test "$ISC_PLATFORM_KRB5HEADER" = ""; then
- AC_MSG_ERROR([krb5.h not found])
- fi
- CPPFLAGS="$saved_cppflags"
- #
- # XXXDCL This probably doesn't work right on all systems.
- # It will need to be worked on as problems become evident.
- #
- # Essentially the problems here relate to two different
- # areas. The first area is building with either KTH
- # or MIT Kerberos, particularly when both are present on
- # the machine. The other is static versus dynamic linking.
- #
- # On the KTH vs MIT issue, Both have libkrb5 that can mess
- # up the works if one implementation ends up trying to
- # use the other's krb. This is unfortunately a situation
- # that very easily arises.
- #
- # Dynamic linking when the dependency information is built
- # into MIT's libgssapi_krb5 or KTH's libgssapi magically makes
- # all such problems go away, but when that setup is not
- # present, because either the dynamic libraries lack
- # dependencies or static linking is being done, then the
- # problems start to show up.
- saved_libs="$LIBS"
- for TRY_LIBS in \
- "-lgssapi_krb5" \
- "-lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err" \
- "-lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lresolv" \
- "-lgssapi" \
- "-lgssapi -lkrb5 -ldes -lcrypt -lasn1 -lroken -lcom_err" \
- "-lgssapi -lkrb5 -lcrypto -lcrypt -lasn1 -lroken -lcom_err" \
- "-lgss -lkrb5"
- do
- # Note that this does not include $saved_libs, because
- # on FreeBSD machines this configure script has added
- # -L/usr/local/lib to LIBS, which can make the
- # -lgssapi_krb5 test succeed with shared libraries even
- # when you are trying to build with KTH in /usr/lib.
- if test "$use_gssapi" = "/usr"
- then
- LIBS="$TRY_LIBS"
- else
- LIBS="-L$use_gssapi/lib $TRY_LIBS"
- fi
- AC_MSG_CHECKING(linking as $TRY_LIBS)
- AC_TRY_LINK( , [gss_acquire_cred();krb5_init_context()],
- gssapi_linked=yes, gssapi_linked=no)
- case $gssapi_linked in
- yes) AC_MSG_RESULT(yes); break ;;
- no) AC_MSG_RESULT(no) ;;
- esac
- done
- case $gssapi_linked in
- no) AC_MSG_ERROR(could not determine proper GSSAPI linkage) ;;
- esac
- #
- # XXXDCL Major kludge. Tries to cope with KTH in /usr/lib
- # but MIT in /usr/local/lib and trying to build with KTH.
- # /usr/local/lib can end up earlier on the link lines.
- # Like most kludges, this one is not only inelegant it
- # is also likely to be the wrong thing to do at least as
- # many times as it is the right thing. Something better
- # needs to be done.
- #
- if test "$use_gssapi" = "/usr" -a \
- -f /usr/local/lib/libkrb5.a; then
- FIX_KTH_VS_MIT=yes
- fi
- case "$FIX_KTH_VS_MIT" in
- yes)
- case "$enable_static_linking" in
- yes) gssapi_lib_suffix=".a" ;;
- *) gssapi_lib_suffix=".so" ;;
- esac
- for lib in $LIBS; do
- case $lib in
- -L*)
- ;;
- -l*)
- new_lib=`echo $lib |
- sed -e s%^-l%$use_gssapi/lib/lib% \
- -e s%$%$gssapi_lib_suffix%`
- NEW_LIBS="$NEW_LIBS $new_lib"
- ;;
- *)
- AC_MSG_ERROR([KTH vs MIT Kerberos confusion!])
- ;;
- esac
- done
- LIBS="$NEW_LIBS"
- ;;
- esac
- DST_GSSAPI_INC="-I$use_gssapi/include"
- DNS_GSSAPI_LIBS="$LIBS"
- AC_MSG_RESULT(using GSSAPI from $use_gssapi/lib and $use_gssapi/include)
- LIBS="$saved_libs"
- ;;
- esac
- AC_SUBST(ISC_PLATFORM_HAVEGSSAPI)
- AC_SUBST(ISC_PLATFORM_GSSAPIHEADER)
- AC_SUBST(ISC_PLATFORM_GSSAPI_KRB5_HEADER)
- AC_SUBST(ISC_PLATFORM_KRB5HEADER)
- AC_SUBST(USE_GSSAPI)
- AC_SUBST(DST_GSSAPI_INC)
- AC_SUBST(DNS_GSSAPI_LIBS)
- DNS_CRYPTO_LIBS="$DNS_GSSAPI_LIBS $DNS_CRYPTO_LIBS"
- #
- # Applications linking with libdns also need to link with these libraries.
- #
- AC_SUBST(DNS_CRYPTO_LIBS)
- #
- # was --with-randomdev specified?
- #
- AC_MSG_CHECKING(for random device)
- AC_ARG_WITH(randomdev,
- [ --with-randomdev=PATH Specify path for random device],
- use_randomdev="$withval", use_randomdev="unspec")
- case "$use_randomdev" in
- unspec)
- case "$host" in
- *-openbsd*)
- devrandom=/dev/arandom
- ;;
- *)
- devrandom=/dev/random
- ;;
- esac
- AC_MSG_RESULT($devrandom)
- AC_CHECK_FILE($devrandom,
- AC_DEFINE_UNQUOTED(PATH_RANDOMDEV,
- "$devrandom"),)
- ;;
- yes)
- AC_MSG_ERROR([--with-randomdev must specify a path])
- ;;
- no)
- AC_MSG_RESULT(disabled)
- ;;
- *)
- AC_DEFINE_UNQUOTED(PATH_RANDOMDEV, "$use_randomdev")
- AC_MSG_RESULT(using "$use_randomdev")
- ;;
- esac
- #
- # Do we have arc4random() ?
- #
- AC_CHECK_FUNC(arc4random, AC_DEFINE(HAVE_ARC4RANDOM))
- sinclude(config.threads.in)dnl
- if $use_threads
- then
- if test "X$GCC" = "Xyes"; then
- case "$host" in
- *-freebsd*)
- CC="$CC -pthread"
- CCOPT="$CCOPT -pthread"
- STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
- ;;
- *-openbsd*)
- CC="$CC -pthread"
- CCOPT="$CCOPT -pthread"
- ;;
- *-solaris*)
- LIBS="$LIBS -lthread"
- ;;
- *-ibm-aix*)
- STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
- ;;
- esac
- else
- case $host in
- *-dec-osf*)
- CC="$CC -pthread"
- CCOPT="$CCOPT -pthread"
- ;;
- *-solaris*)
- CC="$CC -mt"
- CCOPT="$CCOPT -mt"
- ;;
- *-ibm-aix*)
- STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
- ;;
- *-sco-sysv*uw*|*-*-sysv*UnixWare*)
- CC="$CC -Kthread"
- CCOPT="$CCOPT -Kthread"
- ;;
- *-*-sysv*OpenUNIX*)
- CC="$CC -Kpthread"
- CCOPT="$CCOPT -Kpthread"
- ;;
- esac
- fi
- ALWAYS_DEFINES="-D_REENTRANT"
- ISC_PLATFORM_USETHREADS="#define ISC_PLATFORM_USETHREADS 1"
- THREADOPTOBJS='${THREADOPTOBJS}'
- THREADOPTSRCS='${THREADOPTSRCS}'
- thread_dir=pthreads
- #
- # We'd like to use sigwait() too
- #
- AC_CHECK_FUNC(sigwait,
- AC_DEFINE(HAVE_SIGWAIT),
- AC_CHECK_LIB(c, sigwait,
- AC_DEFINE(HAVE_SIGWAIT),
- AC_CHECK_LIB(pthread, sigwait,
- AC_DEFINE(HAVE_SIGWAIT),
- AC_CHECK_LIB(pthread, _Psigwait,
- AC_DEFINE(HAVE_SIGWAIT),))))
- AC_CHECK_FUNC(pthread_attr_getstacksize,
- AC_DEFINE(HAVE_PTHREAD_ATTR_GETSTACKSIZE),)
- AC_CHECK_FUNC(pthread_attr_setstacksize,
- AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE),)
- #
- # Additional OS-specific issues related to pthreads and sigwait.
- #
- case "$host" in
- #
- # One more place to look for sigwait.
- #
- *-freebsd*)
- AC_CHECK_LIB(c_r, sigwait, AC_DEFINE(HAVE_SIGWAIT),)
- case $host in
- *-freebsd5.[[012]]|*-freebsd5.[[012]].*);;
- *-freebsd5.[[3456789]]|*-freebsd5.[[3456789]].*)
- AC_DEFINE(NEED_PTHREAD_SCOPE_SYSTEM)
- ;;
- *-freebsd6.*)
- AC_DEFINE(NEED_PTHREAD_SCOPE_SYSTEM)
- ;;
- esac
- ;;
- #
- # BSDI 3.0 through 4.0.1 needs pthread_init() to be
- # called before certain pthreads calls. This is deprecated
- # in BSD/OS 4.1.
- #
- *-bsdi3.*|*-bsdi4.0*)
- AC_DEFINE(NEED_PTHREAD_INIT)
- ;;
- #
- # LinuxThreads requires some changes to the way we
- # deal with signals.
- #
- *-linux*)
- AC_DEFINE(HAVE_LINUXTHREADS)
- ;;
- #
- # Ensure the right sigwait() semantics on Solaris and make
- # sure we call pthread_setconcurrency.
- #
- *-solaris*)
- AC_DEFINE(_POSIX_PTHREAD_SEMANTICS)
- AC_CHECK_FUNC(pthread_setconcurrency,
- AC_DEFINE(CALL_PTHREAD_SETCONCURRENCY))
- ;;
- #
- # UnixWare does things its own way.
- #
- *-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
- AC_DEFINE(HAVE_UNIXWARE_SIGWAIT)
- ;;
- esac
- #
- # Look for sysconf to allow detection of the number of processors.
- #
- AC_CHECK_FUNC(sysconf, AC_DEFINE(HAVE_SYSCONF),)
- else
- ISC_PLATFORM_USETHREADS="#undef ISC_PLATFORM_USETHREADS"
- thread_dir=nothreads
- THREADOPTOBJS=""
- THREADOPTSRCS=""
- ALWAYS_DEFINES=""
- fi
- AC_SUBST(ALWAYS_DEFINES)
- AC_SUBST(ISC_PLATFORM_USETHREADS)
- AC_SUBST(THREADOPTOBJS)
- AC_SUBST(THREADOPTSRCS)
- ISC_THREAD_DIR=$thread_dir
- AC_SUBST(ISC_THREAD_DIR)
- #
- # was --with-libxml2 specified?
- #
- AC_MSG_CHECKING(for libxml2 library)
- AC_ARG_WITH(libxml2,
- [ --with-libxml2[=PATH] Build with libxml2 library [yes|no|path]],
- use_libxml2="$withval", use_libxml2="auto")
- case "$use_libxml2" in
- no)
- DST_LIBXML2_INC=""
- ;;
- auto|yes)
- case X`(xml2-config --version) 2>/dev/null` in
- X2.[[67]].*)
- libxml2_libs=`xml2-config --libs`
- libxml2_cflags=`xml2-config --cflags`
- ;;
- *)
- libxml2_libs=
- libxml2_cflags=
- ;;
- esac
- ;;
- *)
- if test -f "$use_libxml2/bin/xml2-config" ; then
- libxml2_libs=`$use_libxml2/bin/xml2-config --libs`
- libxml2_cflags=`$use_libxml2/bin/xml2-config --cflags`
- fi
- ;;
- esac
- if test "X$libxml2_libs" != "X"
- then
- AC_MSG_RESULT(yes)
- CFLAGS="$CFLAGS $libxml2_cflags"
- LIBS="$LIBS $libxml2_libs"
- AC_DEFINE(HAVE_LIBXML2, 1, [Define if libxml2 was found])
- else
- AC_MSG_RESULT(no)
- fi
- #
- # In solaris 10, SMF can manage named service
- #
- AC_CHECK_LIB(scf, smf_enable_instance)
- #
- # flockfile is usually provided by pthreads, but we may want to use it
- # even if compiled with --disable-threads. getc_unlocked might also not
- # be defined.
- #
- AC_CHECK_FUNC(flockfile, AC_DEFINE(HAVE_FLOCKFILE),)
- AC_CHECK_FUNC(getc_unlocked, AC_DEFINE(HAVE_GETCUNLOCKED),)
- #
- # Indicate what the final decision was regarding threads.
- #
- AC_MSG_CHECKING(whether to build with threads)
- if $use_threads; then
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
- fi
- #
- # End of pthreads stuff.
- #
- #
- # Large File
- #
- AC_ARG_ENABLE(largefile, [ --enable-largefile 64-bit file support],
- want_largefile="yes", want_largefile="no")
- case $want_largefile in
- yes)
- ALWAYS_DEFINES="$ALWAYS_DEFINES -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
- ;;
- *)
- ;;
- esac
- #
- # Additional compiler settings.
- #
- MKDEPCC="$CC"
- MKDEPCFLAGS="-M"
- IRIX_DNSSEC_WARNINGS_HACK=""
- if test "X$GCC" = "Xyes"; then
- AC_MSG_CHECKING(if "$CC" supports -fno-strict-aliasing)
- SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS -fno-strict-aliasing"
- AC_TRY_COMPILE(,, [FNOSTRICTALIASING=yes],[FNOSTRICTALIASING=no])
- CFLAGS=$SAVE_CFLAGS
- if test "$FNOSTRICTALIASING" = "yes"; then
- AC_MSG_RESULT(yes)
- STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith -fno-strict-aliasing"
- else
- AC_MSG_RESULT(no)
- STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith"
- fi
- case "$host" in
- *-hp-hpux*)
- LDFLAGS="-Wl,+vnocompatwarnings $LDFLAGS"
- ;;
- esac
- else
- case $host in
- *-dec-osf*)
- CC="$CC -std"
- CCOPT="$CCOPT -std"
- MKDEPCC="$CC"
- ;;
- *-hp-hpux*)
- CC="$CC -Ae -z"
- # The version of the C compiler that constantly warns about
- # 'const' as well as alignment issues is unfortunately not
- # able to be discerned via the version of the operating
- # system, nor does cc have a version flag.
- case "`$CC +W 123 2>&1`" in
- *Unknown?option*)
- STD_CWARNINGS="+w1"
- ;;
- *)
- # Turn off the pointlessly noisy warnings.
- STD_CWARNINGS="+w1 +W 474,530,2193,2236"
- ;;
- esac
- CCOPT="$CCOPT -Ae -z"
- LDFLAGS="-Wl,+vnocompatwarnings $LDFLAGS"
- MKDEPPROG='cc -Ae -E -Wp,-M >/dev/null 2>>$TMP'
- ;;
- *-sgi-irix*)
- STD_CWARNINGS="-fullwarn -woff 1209"
- #
- # Silence more than 250 instances of
- # "prototyped function redeclared without prototype"
- # and 11 instances of
- # "variable ... was set but never used"
- # from lib/dns/sec/openssl.
- #
- IRIX_DNSSEC_WARNINGS_HACK="-woff 1692,1552"
- ;;
- *-solaris*)
- MKDEPCFLAGS="-xM"
- ;;
- *-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
- # UnixWare
- CC="$CC -w"
- ;;
- esac
- fi
- AC_SUBST(MKDEPCC)
- AC_SUBST(MKDEPCFLAGS)
- AC_SUBST(MKDEPPROG)
- AC_SUBST(IRIX_DNSSEC_WARNINGS_HACK)
- #
- # NLS
- #
- AC_CHECK_FUNC(catgets, AC_DEFINE(HAVE_CATGETS),)
- #
- # -lxnet buys us one big porting headache... standards, gotta love 'em.
- #
- # AC_CHECK_LIB(xnet, socket, ,
- # AC_CHECK_LIB(socket, socket)
- # )
- #
- # Use this for now, instead:
- #
- case "$host" in
- mips-sgi-irix*)
- ;;
- *-linux*)
- ;;
- *)
- AC_CHECK_LIB(socket, socket)
- AC_CHECK_LIB(nsl, inet_addr)
- ;;
- esac
- #
- # Work around Solaris's select() limitations.
- #
- case "$host" in
- *-solaris2.[[89]]|*-solaris2.1?)
- AC_DEFINE(FD_SETSIZE, 65536,
- [Solaris hack to get select_large_fdset.])
- ;;
- esac
- #
- # Purify support
- #
- AC_MSG_CHECKING(whether to use purify)
- AC_ARG_WITH(purify,
- [ --with-purify[=PATH] use Rational purify],
- use_purify="$withval", use_purify="no")
- case "$use_purify" in
- no)
- ;;
- yes)
- AC_PATH_PROG(purify_path, purify, purify)
- ;;
- *)
- purify_path="$use_purify"
- ;;
- esac
- case "$use_purify" in
- no)
- AC_MSG_RESULT(no)
- PURIFY=""
- ;;
- *)
- if test -f $purify_path || test $purify_path = purify; then
- AC_MSG_RESULT($purify_path)
- PURIFYFLAGS="`echo $PURIFYOPTIONS`"
- PURIFY="$purify_path $PURIFYFLAGS"
- else
- AC_MSG_ERROR([$purify_path not found.
- Please choose the proper path with the following command:
- configure --with-purify=PATH
- ])
- fi
- ;;
- esac
- AC_SUBST(PURIFY)
- 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 --tag=CC'
- LIBTOOL_MODE_INSTALL='--mode=install --tag=CC'
- LIBTOOL_MODE_LINK='--mode=link --tag=CC'
- 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 not needed)
- ISC_PLATFORM_NEEDNTOP="#undef ISC_PLATFORM_NEEDNTOP"])
- # 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 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_PLATFOR…