1 # Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
2 # Copyright (C) 1998-2003 Internet Software Consortium.
4 # Permission to use, copy, modify, and/or distribute this software for any
5 # purpose with or without fee is hereby granted, provided that the above
6 # copyright notice and this permission notice appear in all copies.
8 # THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
9 # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10 # AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
11 # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12 # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
13 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14 # PERFORMANCE OF THIS SOFTWARE.
18 esyscmd([sed -e 's/^/# /' -e '/Portions of this code/,$d' COPYRIGHT])dnl
21 AC_REVISION($Revision: 1.512.8.15 $)
23 AC_INIT(lib/dns/name.c)
26 AC_CONFIG_HEADER(config.h)
27 AC_CONFIG_MACRO_DIR([libtool.m4])
38 # Just set the maximum command line length for sunos as it otherwise
39 # takes a exceptionally long time to work it out. Required for libtool.
41 lt_cv_sys_max_cmd_len=4096;
49 AC_SUBST(STD_CINCLUDES)
50 AC_SUBST(STD_CDEFINES)
51 AC_SUBST(STD_CWARNINGS)
55 # Warn if the user specified libbind, which is now deprecated
56 AC_ARG_ENABLE(libbind, [ --enable-libbind deprecated])
58 case "$enable_libbind" in
60 AC_MSG_ERROR(['libbind' is no longer part of the BIND 9 distribution.
61 It is available from http://www.isc.org as a separate download.])
67 AC_ARG_ENABLE(developer, [ --enable-developer enable developer build settings])
68 case "$enable_developer" in
70 STD_CDEFINES="$STD_CDEFINES -DISC_LIST_CHECKINIT=1"
71 test "${enable_fixed_rrset+set}" = set || enable_fixed_rrset=yes
72 test "${with_atf+set}" = set || with_atf=yes
73 test "${enable_filter_aaaa+set}" = set || enable_filter_aaaa=yes
74 test "${with_dlz_filesystem+set}" = set || with_dlz_filesystem=yes
77 test "${enable_exportlib+set}" = set || enable_exportlib=yes
80 test "${enable_exportlib+set}" = set || enable_exportlib=yes
83 test "${enable_symtable+set}" = set || enable_symtable=all
87 # Make very sure that these are the first files processed by
88 # config.status, since we use the processed output as the input for
89 # AC_SUBST_FILE() substitutions in other files.
91 AC_CONFIG_FILES([make/rules make/includes])
98 # The POSIX ln(1) program. Non-POSIX systems may substitute
99 # "copy" or something.
106 ar program not found. Please fix your PATH to include the directory in
107 which ar resides, or set AR in the environment with the full path to ar.
116 AC_PATH_PROGS(ETAGS, etags emacs-etags)
119 # Some systems, e.g. RH7, have the Exuberant Ctags etags instead of
120 # GNU emacs etags, and it requires the -L flag.
122 if test "X$ETAGS" != "X"; then
123 AC_MSG_CHECKING(for Exuberant Ctags etags)
124 if $ETAGS --version 2>&1 | grep 'Exuberant Ctags' >/dev/null 2>&1; then
134 # Perl is optional; it is used only by some of the system test scripts.
135 # Note: the backtrace feature (see below) uses perl to build the symbol table,
136 # but it still compiles without perl, in which case an empty table will be used.
138 AC_PATH_PROGS(PERL, perl5 perl)
142 # Special processing of paths depending on whether --prefix,
143 # --sysconfdir or --localstatedir arguments were given. What's
144 # desired is some compatibility with the way previous versions
145 # of BIND built; they defaulted to /usr/local for most parts of
146 # the installation, but named.boot/named.conf was in /etc
147 # and named.pid was in /var/run.
149 # So ... if none of --prefix, --sysconfdir or --localstatedir are
150 # specified, set things up that way. If --prefix is given, use
151 # it for sysconfdir and localstatedir the way configure normally
152 # would. To change the prefix for everything but leave named.conf
153 # in /etc or named.pid in /var/run, then do this the usual configure way:
154 # ./configure --prefix=/somewhere --sysconfdir=/etc
155 # ./configure --prefix=/somewhere --localstatedir=/var
157 # To put named.conf and named.pid in /usr/local with everything else,
158 # set the prefix explicitly to /usr/local even though that's the default:
159 # ./configure --prefix=/usr/local
163 case "$sysconfdir" in
168 case "$localstatedir" in
177 # Make sure INSTALL uses an absolute path, else it will be wrong in all
178 # Makefiles, since they use make/rules.in and INSTALL will be adjusted by
179 # configure based on the location of the file where it is substituted.
180 # Since in BIND9 INSTALL is only substituted into make/rules.in, an immediate
181 # subdirectory of install-sh, This relative path will be wrong for all
182 # directories more than one level down from install-sh.
189 # Not all systems have dirname.
192 ac_dir="`echo $INSTALL | sed 's%/[^/]*$%%'`"
195 ac_prog="`echo $INSTALL | sed 's%.*/%%'`"
196 test "$ac_dir" = "$ac_prog" && ac_dir=.
197 test -d "$ac_dir" && ac_dir="`(cd \"$ac_dir\" && pwd)`"
198 INSTALL="$ac_dir/$ac_prog"
203 # On these hosts, we really want to use cc, not gcc, even if it is
204 # found. The gcc that these systems have will not correctly handle
207 # However, if the user sets $CC to be something, let that override
210 if test "X$CC" = "X" ; then
216 # Use Sun's cc if it is available, but watch
217 # out for /usr/ucb/cc; it will never be the right
220 # If setting CC here fails, the AC_PROG_CC done
221 # below might still find gcc.
222 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
223 for ac_dir in $PATH; do
224 test -z "$ac_dir" && ac_dir=.
230 if test -f "$ac_dir/cc"; then
251 # gcc's optimiser is broken at -02 for ultrasparc
253 if test "$ac_env_CFLAGS_set" != set -a "X$GCC" = "Xyes"; then
262 # OS dependent CC flags
265 # OSF 5.0: recv/send are only available with -D_POSIX_PII_SOCKET or
266 # -D_XOPEN_SOURCE_EXTENDED.
268 STD_CDEFINES="$STD_CDEFINES -D_POSIX_PII_SOCKET"
269 CPPFLAGS="$CPPFLAGS -D_POSIX_PII_SOCKET"
271 #HP-UX: need -D_XOPEN_SOURCE_EXTENDED and -lxnet for CMSG macros
273 STD_CDEFINES="$STD_CDEFINES -D_XOPEN_SOURCE_EXTENDED"
274 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
277 # Solaris: need -D_XPG4_2 and -D__EXTENSIONS__ for CMSG macros
279 STD_CDEFINES="$STD_CDEFINES -D_XPG4_2 -D__EXTENSIONS__"
280 CPPFLAGS="$CPPFLAGS -D_XPG4_2 -D__EXTENSIONS__"
282 # POSIX doesn't include the IPv6 Advanced Socket API and glibc hides
283 # parts of the IPv6 Advanced Socket API as a result. This is stupid
284 # as it breaks how the two halves (Basic and Advanced) of the IPv6
285 # Socket API were designed to be used but we have to live with it.
286 # Define _GNU_SOURCE to pull in the IPv6 Advanced Socket API.
287 *-linux* | *-kfreebsd*-gnu)
288 STD_CDEFINES="$STD_CDEFINES -D_GNU_SOURCE"
289 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
292 # Starting with OSX 10.7 (Lion) we must choose which IPv6 API to use.
293 # Setting this is sufficient to select the correct behavior for BIND 9.
296 STD_CDEFINES="$STD_CDEFINES -D__APPLE_USE_RFC_3542"
297 CPPFLAGS="$CPPFLAGS -D__APPLE_USE_RFC_3542"
302 # CCNOOPT defaults to -O0 on gcc and disables optimization when is last
304 if test "X$CCNOOPT" = "X" -a "X$GCC" = "Xyes"; then
310 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,,,
311 [$ac_includes_default
312 #ifdef HAVE_SYS_PARAM_H
313 # include <sys/param.h>
320 AC_CHECK_FUNC(sysctlbyname, AC_DEFINE(HAVE_SYSCTLBYNAME))
321 AC_C_FLEXIBLE_ARRAY_MEMBER
324 # Older versions of HP/UX don't define seteuid() and setegid()
326 AC_CHECK_FUNCS(seteuid setresuid)
327 AC_CHECK_FUNCS(setegid setresgid)
330 # UnixWare 7.1.1 with the feature supplement to the UDK compiler
331 # is reported to not support "static inline" (RT #1212).
333 AC_MSG_CHECKING(for static inline breakage)
335 static inline int foo1() {
339 static inline int foo2() {
345 AC_DEFINE(inline, ,[Define to empty if your compiler does not support "static inline".])])
348 AC_CHECK_TYPE(ssize_t, int)
349 AC_CHECK_TYPE(uintptr_t,unsigned long)
350 AC_CHECK_TYPE(socklen_t,
351 [AC_DEFINE(ISC_SOCKADDR_LEN_T, socklen_t)],
355 #include <sys/types.h>
356 #include <sys/socket.h>
357 int getsockname(int, struct sockaddr *, size_t *);
359 [AC_DEFINE(ISC_SOCKADDR_LEN_T, size_t)],
360 [AC_DEFINE(ISC_SOCKADDR_LEN_T, int)])
363 #include <sys/types.h>
364 #include <sys/socket.h>
366 AC_SUBST(ISC_SOCKADDR_LEN_T)
368 AC_MSG_CHECKING(for long long)
369 AC_TRY_COMPILE([],[long long i = 0; return (0);],
371 ISC_PLATFORM_HAVELONGLONG="#define ISC_PLATFORM_HAVELONGLONG 1"],
373 ISC_PLATFORM_HAVELONGLONG="#undef ISC_PLATFORM_HAVELONGLONG"])
374 AC_SUBST(ISC_PLATFORM_HAVELONGLONG)
377 # check for GCC noreturn attribute
379 AC_MSG_CHECKING(for GCC noreturn attribute)
380 AC_TRY_COMPILE([],[void foo() __attribute__((noreturn));],
382 ISC_PLATFORM_NORETURN_PRE="#define ISC_PLATFORM_NORETURN_PRE"
383 ISC_PLATFORM_NORETURN_POST="#define ISC_PLATFORM_NORETURN_POST __attribute__((noreturn))"],
385 ISC_PLATFORM_NORETURN_PRE="#define ISC_PLATFORM_NORETURN_PRE"
386 ISC_PLATFORM_NORETURN_POST="#define ISC_PLATFORM_NORETURN_POST"])
387 AC_SUBST(ISC_PLATFORM_NORETURN_PRE)
388 AC_SUBST(ISC_PLATFORM_NORETURN_POST)
391 # check if we have lifconf
393 AC_MSG_CHECKING(for struct lifconf)
395 #include <sys/types.h>
396 #include <sys/socket.h>
400 struct lifconf lifconf;
401 lifconf.lifc_len = 0;
405 ISC_PLATFORM_HAVELIFCONF="#define ISC_PLATFORM_HAVELIFCONF 1"],
407 ISC_PLATFORM_HAVELIFCONF="#undef ISC_PLATFORM_HAVELIFCONF"])
408 AC_SUBST(ISC_PLATFORM_HAVELIFCONF)
411 # check if we have kqueue
413 AC_ARG_ENABLE(kqueue,
414 [ --enable-kqueue use BSD kqueue when available [[default=yes]]],
415 want_kqueue="$enableval", want_kqueue="yes")
418 AC_CHECK_FUNC(kqueue, ac_cv_have_kqueue=yes, ac_cv_have_kqueue=no)
419 case $ac_cv_have_kqueue in
421 ISC_PLATFORM_HAVEKQUEUE="#define ISC_PLATFORM_HAVEKQUEUE 1"
424 ISC_PLATFORM_HAVEKQUEUE="#undef ISC_PLATFORM_HAVEKQUEUE"
429 ISC_PLATFORM_HAVEKQUEUE="#undef ISC_PLATFORM_HAVEKQUEUE"
432 AC_SUBST(ISC_PLATFORM_HAVEKQUEUE)
435 # check if we have epoll. Linux kernel 2.4 has epoll_create() which fails,
436 # so we need to try running the code, not just test its existence.
439 [ --enable-epoll use Linux epoll when available [[default=auto]]],
440 want_epoll="$enableval", want_epoll="auto")
443 AC_MSG_CHECKING(epoll support)
445 #include <sys/epoll.h>
447 if (epoll_create(1) < 0)
453 ISC_PLATFORM_HAVEEPOLL="#define ISC_PLATFORM_HAVEEPOLL 1"],
455 ISC_PLATFORM_HAVEEPOLL="#undef ISC_PLATFORM_HAVEEPOLL"],
457 ISC_PLATFORM_HAVEEPOLL="#undef ISC_PLATFORM_HAVEEPOLL"])
460 ISC_PLATFORM_HAVEEPOLL="#define ISC_PLATFORM_HAVEEPOLL 1"
463 ISC_PLATFORM_HAVEEPOLL="#undef ISC_PLATFORM_HAVEEPOLL"
466 AC_SUBST(ISC_PLATFORM_HAVEEPOLL)
469 # check if we support /dev/poll
471 AC_ARG_ENABLE(devpoll,
472 [ --enable-devpoll use /dev/poll when available [[default=yes]]],
473 want_devpoll="$enableval", want_devpoll="yes")
474 case $want_devpoll in
476 AC_CHECK_HEADERS(sys/devpoll.h devpoll.h,
477 ISC_PLATFORM_HAVEDEVPOLL="#define ISC_PLATFORM_HAVEDEVPOLL 1"
479 ISC_PLATFORM_HAVEDEVPOLL="#undef ISC_PLATFORM_HAVEDEVPOLL"
483 ISC_PLATFORM_HAVEDEVPOLL="#undef ISC_PLATFORM_HAVEDEVPOLL"
486 AC_SUBST(ISC_PLATFORM_HAVEDEVPOLL)
489 # check if we need to #include sys/select.h explicitly
491 case $ac_cv_header_unistd_h in
493 AC_MSG_CHECKING(if unistd.h or sys/types.h defines fd_set)
495 #include <sys/types.h> /* Ultrix */
496 #include <unistd.h>],
497 [fd_set read_set; return (0);],
499 ISC_PLATFORM_NEEDSYSSELECTH="#undef ISC_PLATFORM_NEEDSYSSELECTH"
500 LWRES_PLATFORM_NEEDSYSSELECTH="#undef LWRES_PLATFORM_NEEDSYSSELECTH"],
502 case $ac_cv_header_sys_select_h in
504 ISC_PLATFORM_NEEDSYSSELECTH="#define ISC_PLATFORM_NEEDSYSSELECTH 1"
505 LWRES_PLATFORM_NEEDSYSSELECTH="#define LWRES_PLATFORM_NEEDSYSSELECTH 1"
508 AC_MSG_ERROR([need either working unistd.h or sys/select.h])
514 case $ac_cv_header_sys_select_h in
516 ISC_PLATFORM_NEEDSYSSELECTH="#define ISC_PLATFORM_NEEDSYSSELECTH 1"
517 LWRES_PLATFORM_NEEDSYSSELECTH="#define LWRES_PLATFORM_NEEDSYSSELECTH 1"
520 AC_MSG_ERROR([need either unistd.h or sys/select.h])
525 AC_SUBST(ISC_PLATFORM_NEEDSYSSELECTH)
526 AC_SUBST(LWRES_PLATFORM_NEEDSYSSELECTH)
529 # Find the machine's endian flavor.
534 # was --with-openssl specified?
537 AC_MSG_CHECKING(for OpenSSL library)
539 [ --with-openssl[=PATH] Build with OpenSSL [yes|no|path].
540 (Required for DNSSEC)],
541 use_openssl="$withval", use_openssl="auto")
543 openssldirs="/usr /usr/local /usr/local/ssl /usr/pkg /usr/sfw"
544 if test "$use_openssl" = "auto"
546 for d in $openssldirs
548 if test -f $d/include/openssl/opensslv.h
557 case "$use_openssl" in
562 OPENSSLGOSTLINKOBJS=""
563 OPENSSLGOSTLINKSRS=""
570 OPENSSLGOSTLINKOBJS=""
571 OPENSSLGOSTLINKSRS=""
575 [OpenSSL was not found in any of $openssldirs; use --with-openssl=/path
576 If you don't want OpenSSL, use --without-openssl])
579 if test "$use_openssl" = "yes"
581 # User did not specify a path - guess it
582 for d in $openssldirs
584 if test -f $d/include/openssl/opensslv.h
590 if test "$use_openssl" = "yes"
592 AC_MSG_RESULT(not found)
594 [OpenSSL was not found in any of $openssldirs; use --with-openssl=/path])
596 elif ! test -f "$use_openssl"/include/openssl/opensslv.h
598 AC_MSG_ERROR(["$use_openssl/include/openssl/opensslv.h" not found])
600 USE_OPENSSL='-DOPENSSL'
601 if test "$use_openssl" = "/usr"
604 DNS_OPENSSL_LIBS="-lcrypto"
606 DST_OPENSSL_INC="-I$use_openssl/include"
609 DNS_OPENSSL_LIBS="-L$use_openssl/lib -R$use_openssl/lib -lcrypto"
612 DNS_OPENSSL_LIBS="-L$use_openssl/lib -Wl,+b: -lcrypto"
616 # Apple's ld seaches for serially for dynamic
617 # then static libraries. This means you can't
618 # use -L to override dynamic system libraries
619 # with static ones when linking. Instead
620 # we specify a absolute path.
622 if test -f "$use_openssl/lib/libcrypto.dylib"
624 DNS_OPENSSL_LIBS="-L$use_openssl/lib -lcrypto"
626 DNS_OPENSSL_LIBS="$use_openssl/lib/libcrypto.a"
630 DNS_OPENSSL_LIBS="-L$use_openssl/lib -lcrypto"
634 AC_MSG_RESULT(using OpenSSL from $use_openssl/lib and $use_openssl/include)
636 saved_cflags="$CFLAGS"
638 CFLAGS="$CFLAGS $DST_OPENSSL_INC"
639 LIBS="$LIBS $DNS_OPENSSL_LIBS"
640 AC_MSG_CHECKING(whether linking with OpenSSL works)
642 #include <openssl/err.h>
648 [AC_MSG_RESULT(yes)],
650 AC_MSG_ERROR(Could not run test program using OpenSSL from
651 $use_openssl/lib and $use_openssl/include.
652 Please check the argument to --with-openssl and your
653 shared library configuration (e.g., LD_LIBRARY_PATH).)],
654 [AC_MSG_RESULT(assuming it does work on target platform)])
656 AC_MSG_CHECKING(whether linking with OpenSSL requires -ldl)
658 #include <openssl/err.h>],
659 [ DSO_METHOD_dlfcn(); ],
663 #include <openssl/err.h>
664 ],[ DSO_METHOD_dlfcn(); ],
666 DNS_OPENSSL_LIBS="$DNS_OPENSSL_LIBS -ldl"
668 [AC_MSG_RESULT(unknown)
669 AC_MSG_ERROR(OpenSSL has unsupported dynamic loading)],
670 [AC_MSG_RESULT(assuming it does work on target platform)])
672 [AC_MSG_RESULT(assuming it does work on target platform)]
675 AC_ARG_ENABLE(openssl-version-check,
676 [AC_HELP_STRING([--enable-openssl-version-check],
677 [Check OpenSSL Version @<:@default=yes@:>@])])
678 case "$enable_openssl_version_check" in
680 AC_MSG_CHECKING(OpenSSL library version)
683 #include <openssl/opensslv.h>
685 if ((OPENSSL_VERSION_NUMBER >= 0x009070cfL &&
686 OPENSSL_VERSION_NUMBER < 0x00908000L) ||
687 OPENSSL_VERSION_NUMBER >= 0x0090804fL)
689 printf("\n\nFound OPENSSL_VERSION_NUMBER %#010x\n",
690 OPENSSL_VERSION_NUMBER);
691 printf("Require OPENSSL_VERSION_NUMBER 0x009070cf or greater (0.9.7l)\n"
692 "Require OPENSSL_VERSION_NUMBER 0x0090804f or greater (0.9.8d)\n\n");
697 [AC_MSG_RESULT(not compatible)
700 [AC_MSG_RESULT(assuming target platform has compatible version)])
703 AC_MSG_RESULT(Skipped OpenSSL version check)
707 AC_MSG_CHECKING(for OpenSSL DSA support)
708 if test -f $use_openssl/include/openssl/dsa.h
710 AC_DEFINE(HAVE_OPENSSL_DSA)
716 AC_CHECK_FUNCS(EVP_sha256 EVP_sha384 EVP_sha512)
718 AC_MSG_CHECKING(for OpenSSL ECDSA support)
722 #include <openssl/ecdsa.h>
723 #include <openssl/objects.h>
725 EC_KEY *ec256, *ec384;
727 #if !defined(HAVE_EVP_SHA256) || !defined(HAVE_EVP_SHA384)
730 ec256 = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
731 ec384 = EC_KEY_new_by_curve_name(NID_secp384r1);
732 if (ec256 == NULL || ec384 == NULL)
741 [AC_MSG_RESULT(using --with-ecdsa)])
742 AC_ARG_WITH(ecdsa, [ --with-ecdsa OpenSSL ECDSA],
743 with_ecdsa="$withval", with_ecdsa="auto")
744 case "$with_ecdsa" in
746 case "$have_ecdsa" in
747 no) AC_MSG_ERROR([ecdsa not supported]) ;;
754 case "$have_ecdsa" in
756 *) AC_MSG_ERROR([need --with-ecdsa=[[yes or no]]]) ;;
763 AC_DEFINE(HAVE_OPENSSL_ECDSA, 1,
764 [Define if your OpenSSL version supports ECDSA.])
770 AC_MSG_CHECKING(for OpenSSL GOST support)
773 #include <openssl/conf.h>
774 #include <openssl/engine.h>
776 #if (OPENSSL_VERSION_NUMBER >= 0x10000000L)
781 OPENSSL_config(NULL);
783 e = ENGINE_by_id("gost");
786 if (ENGINE_init(e) <= 0)
798 [AC_MSG_RESULT(using --with-gost)])
799 AC_ARG_WITH(gost, [ --with-gost OpenSSL GOST],
800 with_gost="$withval", with_gost="auto")
804 no) AC_MSG_ERROR([gost not supported]) ;;
813 *) AC_MSG_ERROR([need --with-gost=[[yes or no]]]) ;;
820 OPENSSLGOSTLINKOBJS='${OPENSSLGOSTLINKOBJS}'
821 OPENSSLGOSTLINKSRCS='${OPENSSLGOSTLINKSRCS}'
822 AC_DEFINE(HAVE_OPENSSL_GOST, 1,
823 [Define if your OpenSSL version supports GOST.])
828 CFLAGS="$saved_cflags"
830 OPENSSLLINKOBJS='${OPENSSLLINKOBJS}'
831 OPENSSLLINKSRCS='${OPENSSLLINKSRCS}'
837 # This would include the system openssl path (and linker options to use
838 # it as needed) if it is found.
841 AC_SUBST(USE_OPENSSL)
842 AC_SUBST(DST_OPENSSL_INC)
843 AC_SUBST(OPENSSLGOSTLINKOBJS)
844 AC_SUBST(OPENSSLGOSTLINKSRCS)
845 AC_SUBST(OPENSSLLINKOBJS)
846 AC_SUBST(OPENSSLLINKSRCS)
847 AC_SUBST(OPENSSL_ECDSA)
848 AC_SUBST(OPENSSL_GOST)
850 DNS_CRYPTO_LIBS="$DNS_CRYPTO_LIBS $DNS_OPENSSL_LIBS"
853 # Use OpenSSL for hash functions
856 AC_ARG_ENABLE(openssl-hash,
857 [ --enable-openssl-hash use OpenSSL for hash functions [[default=no]]],
858 want_openssl_hash="$enableval", want_openssl_hash="no")
859 case $want_openssl_hash in
861 if test "$USE_OPENSSL" = ""
863 AC_MSG_ERROR([No OpenSSL for hash functions])
865 ISC_PLATFORM_OPENSSLHASH="#define ISC_PLATFORM_OPENSSLHASH 1"
866 ISC_OPENSSL_INC="$DST_OPENSSL_INC"
869 ISC_PLATFORM_OPENSSLHASH="#undef ISC_PLATFORM_OPENSSLHASH"
873 AC_SUBST(ISC_PLATFORM_OPENSSLHASH)
874 AC_SUBST(ISC_OPENSSL_INC)
877 # PKCS11 (aka crypto hardware) support
879 # This works only with the right OpenSSL with PKCS11 engine!
882 AC_MSG_CHECKING(for PKCS11 support)
884 [ --with-pkcs11[=PATH] Build with PKCS11 support [yes|no|path]
885 (PATH is for the PKCS11 provider)],
886 use_pkcs11="$withval", use_pkcs11="no")
888 case "$use_pkcs11" in
890 AC_MSG_RESULT(disabled)
895 AC_MSG_RESULT(using OpenSSL with PKCS11 support)
896 USE_PKCS11='-DUSE_PKCS11'
901 AC_SUBST(PKCS11_TOOLS)
903 AC_MSG_CHECKING(for PKCS11 tools)
904 case "$use_pkcs11" in
906 AC_MSG_RESULT(disabled)
907 PKCS11_PROVIDER="undefined"
910 AC_MSG_RESULT(PKCS11 provider is "$use_pkcs11")
911 PKCS11_PROVIDER="$use_pkcs11"
914 AC_SUBST(PKCS11_PROVIDER)
916 AC_MSG_CHECKING(for GSSAPI library)
918 [ --with-gssapi=PATH Specify path for system-supplied GSSAPI [[default=yes]]],
919 use_gssapi="$withval", use_gssapi="yes")
921 # gssapi is just the framework, we really require kerberos v5, so
922 # look for those headers (the gssapi headers must be there, too)
923 # The problem with this implementation is that it doesn't allow
924 # for the specification of gssapi and krb5 headers in different locations,
925 # which probably ought to be fixed although fixing might raise the issue of
926 # trying to build with incompatible versions of gssapi and krb5.
927 if test "$use_gssapi" = "yes"
929 # first, deal with the obvious
930 if test \( -f /usr/include/kerberosv5/krb5.h -o \
931 -f /usr/include/krb5/krb5.h -o \
932 -f /usr/include/krb5.h \) -a \
933 \( -f /usr/include/gssapi.h -o \
934 -f /usr/include/gssapi/gssapi.h \)
938 krb5dirs="/usr/local /usr/local/krb5 /usr/local/kerberosv5 /usr/local/kerberos /usr/pkg /usr/krb5 /usr/kerberosv5 /usr/kerberos /usr"
941 if test -f $d/include/gssapi/gssapi_krb5.h -o \
944 if test -f $d/include/gssapi/gssapi.h -o \
945 -f $d/include/gssapi.h
956 case "$use_gssapi" in
958 AC_MSG_RESULT(disabled)
962 AC_MSG_ERROR([--with-gssapi must specify a path])
965 AC_MSG_RESULT(looking in $use_gssapi/lib)
966 USE_GSSAPI='-DGSSAPI'
967 saved_cppflags="$CPPFLAGS"
968 CPPFLAGS="-I$use_gssapi/include $CPPFLAGS"
969 AC_CHECK_HEADERS(gssapi.h gssapi/gssapi.h,
970 [ISC_PLATFORM_GSSAPIHEADER="#define ISC_PLATFORM_GSSAPIHEADER <$ac_header>"])
972 if test "$ISC_PLATFORM_GSSAPIHEADER" = ""; then
973 AC_MSG_ERROR([gssapi.h not found])
976 AC_CHECK_HEADERS(gssapi_krb5.h gssapi/gssapi_krb5.h,
977 [ISC_PLATFORM_GSSAPI_KRB5_HEADER="#define ISC_PLATFORM_GSSAPI_KRB5_HEADER <$ac_header>"])
979 AC_CHECK_HEADERS(krb5.h krb5/krb5.h kerberosv5/krb5.h,
980 [ISC_PLATFORM_KRB5HEADER="#define ISC_PLATFORM_KRB5HEADER <$ac_header>"])
982 if test "$ISC_PLATFORM_KRB5HEADER" = ""; then
983 AC_MSG_ERROR([krb5.h not found])
986 CPPFLAGS="$saved_cppflags"
989 # XXXDCL This probably doesn't work right on all systems.
990 # It will need to be worked on as problems become evident.
992 # Essentially the problems here relate to two different
993 # areas. The first area is building with either KTH
994 # or MIT Kerberos, particularly when both are present on
995 # the machine. The other is static versus dynamic linking.
997 # On the KTH vs MIT issue, Both have libkrb5 that can mess
998 # up the works if one implementation ends up trying to
999 # use the other's krb. This is unfortunately a situation
1000 # that very easily arises.
1002 # Dynamic linking when the dependency information is built
1003 # into MIT's libgssapi_krb5 or KTH's libgssapi magically makes
1004 # all such problems go away, but when that setup is not
1005 # present, because either the dynamic libraries lack
1006 # dependencies or static linking is being done, then the
1007 # problems start to show up.
1011 "-lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err" \
1012 "-lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lresolv" \
1014 "-lgssapi -lkrb5 -ldes -lcrypt -lasn1 -lroken -lcom_err" \
1015 "-lgssapi -lkrb5 -lcrypto -lcrypt -lasn1 -lroken -lcom_err" \
1016 "-lgssapi -lkrb5 -lhx509 -lcrypto -lcrypt -lasn1 -lroken -lcom_err" \
1019 # Note that this does not include $saved_libs, because
1020 # on FreeBSD machines this configure script has added
1021 # -L/usr/local/lib to LIBS, which can make the
1022 # -lgssapi_krb5 test succeed with shared libraries even
1023 # when you are trying to build with KTH in /usr/lib.
1024 if test "$use_gssapi" = "/usr"
1028 LIBS="-L$use_gssapi/lib $TRY_LIBS"
1030 AC_MSG_CHECKING(linking as $TRY_LIBS)
1031 AC_TRY_LINK( , [gss_acquire_cred();krb5_init_context()],
1032 gssapi_linked=yes, gssapi_linked=no)
1033 case $gssapi_linked in
1034 yes) AC_MSG_RESULT(yes); break ;;
1035 no) AC_MSG_RESULT(no) ;;
1039 case $gssapi_linked in
1040 no) AC_MSG_ERROR(could not determine proper GSSAPI linkage) ;;
1044 # XXXDCL Major kludge. Tries to cope with KTH in /usr/lib
1045 # but MIT in /usr/local/lib and trying to build with KTH.
1046 # /usr/local/lib can end up earlier on the link lines.
1047 # Like most kludges, this one is not only inelegant it
1048 # is also likely to be the wrong thing to do at least as
1049 # many times as it is the right thing. Something better
1052 if test "$use_gssapi" = "/usr" -a \
1053 -f /usr/local/lib/libkrb5.a; then
1057 case "$FIX_KTH_VS_MIT" in
1059 case "$enable_static_linking" in
1060 yes) gssapi_lib_suffix=".a" ;;
1061 *) gssapi_lib_suffix=".so" ;;
1064 for lib in $LIBS; do
1069 new_lib=`echo $lib |
1070 sed -e s%^-l%$use_gssapi/lib/lib% \
1071 -e s%$%$gssapi_lib_suffix%`
1072 NEW_LIBS="$NEW_LIBS $new_lib"
1075 AC_MSG_ERROR([KTH vs MIT Kerberos confusion!])
1083 DST_GSSAPI_INC="-I$use_gssapi/include"
1084 DNS_GSSAPI_LIBS="$LIBS"
1086 AC_MSG_RESULT(using GSSAPI from $use_gssapi/lib and $use_gssapi/include)
1091 AC_SUBST(ISC_PLATFORM_HAVEGSSAPI)
1092 AC_SUBST(ISC_PLATFORM_GSSAPIHEADER)
1093 AC_SUBST(ISC_PLATFORM_GSSAPI_KRB5_HEADER)
1094 AC_SUBST(ISC_PLATFORM_KRB5HEADER)
1096 AC_SUBST(USE_GSSAPI)
1097 AC_SUBST(DST_GSSAPI_INC)
1098 AC_SUBST(DNS_GSSAPI_LIBS)
1099 DNS_CRYPTO_LIBS="$DNS_GSSAPI_LIBS $DNS_CRYPTO_LIBS"
1102 # Applications linking with libdns also need to link with these libraries.
1105 AC_SUBST(DNS_CRYPTO_LIBS)
1108 # was --with-randomdev specified?
1110 AC_MSG_CHECKING(for random device)
1111 AC_ARG_WITH(randomdev,
1112 [ --with-randomdev=PATH Specify path for random device],
1113 use_randomdev="$withval", use_randomdev="unspec")
1115 case "$use_randomdev" in
1117 case "$cross_compiling" in
1119 AC_MSG_RESULT(unspecified)
1120 AC_MSG_ERROR([ need --with-randomdev=PATH or --with-randomdev=no])
1124 devrandom=/dev/arandom
1127 devrandom=/dev/random
1130 AC_MSG_RESULT($devrandom)
1131 AC_CHECK_FILE($devrandom,
1132 AC_DEFINE_UNQUOTED(PATH_RANDOMDEV,
1137 AC_MSG_ERROR([--with-randomdev must specify a path])
1140 AC_MSG_RESULT(disabled)
1143 AC_DEFINE_UNQUOTED(PATH_RANDOMDEV, "$use_randomdev")
1144 AC_MSG_RESULT(using "$use_randomdev")
1149 # Do we have arc4random() ?
1151 AC_CHECK_FUNC(arc4random, AC_DEFINE(HAVE_ARC4RANDOM))
1153 sinclude(config.threads.in)dnl
1157 if test "X$GCC" = "Xyes"; then
1161 CCOPT="$CCOPT -pthread"
1162 CCNOOPT="$CCNOOPT -pthread"
1163 STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
1167 CCOPT="$CCOPT -pthread"
1168 CCNOOPT="$CCNOOPT -pthread"
1171 LIBS="$LIBS -lthread"
1174 STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
1181 CCOPT="$CCOPT -pthread"
1182 CCNOOPT="$CCNOOPT -pthread"
1187 CCNOOPT="$CCNOOPT -mt"
1190 STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
1192 *-sco-sysv*uw*|*-*-sysv*UnixWare*)
1194 CCOPT="$CCOPT -Kthread"
1195 CCNOOPT="$CCNOOPT -Kthread"
1199 CCOPT="$CCOPT -Kpthread"
1200 CCNOOPT="$CCNOOPT -Kpthread"
1204 ALWAYS_DEFINES="-D_REENTRANT"
1205 ISC_PLATFORM_USETHREADS="#define ISC_PLATFORM_USETHREADS 1"
1206 THREADOPTOBJS='${THREADOPTOBJS}'
1207 THREADOPTSRCS='${THREADOPTSRCS}'
1210 # We'd like to use sigwait() too
1212 AC_CHECK_FUNC(sigwait,
1213 AC_DEFINE(HAVE_SIGWAIT),
1214 AC_CHECK_LIB(c, sigwait,
1215 AC_DEFINE(HAVE_SIGWAIT),
1216 AC_CHECK_LIB(pthread, sigwait,
1217 AC_DEFINE(HAVE_SIGWAIT),
1218 AC_CHECK_LIB(pthread, _Psigwait,
1219 AC_DEFINE(HAVE_SIGWAIT),))))
1221 AC_CHECK_FUNC(pthread_attr_getstacksize,
1222 AC_DEFINE(HAVE_PTHREAD_ATTR_GETSTACKSIZE),)
1224 AC_CHECK_FUNC(pthread_attr_setstacksize,
1225 AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE),)
1228 # Additional OS-specific issues related to pthreads and sigwait.
1232 # One more place to look for sigwait.
1235 AC_CHECK_LIB(c_r, sigwait, AC_DEFINE(HAVE_SIGWAIT),)
1237 *-freebsd5.[[012]]|*-freebsd5.[[012]].*);;
1238 *-freebsd5.[[3456789]]|*-freebsd5.[[3456789]].*)
1239 AC_DEFINE(NEED_PTHREAD_SCOPE_SYSTEM)
1242 AC_DEFINE(NEED_PTHREAD_SCOPE_SYSTEM)
1247 # BSDI 3.0 through 4.0.1 needs pthread_init() to be
1248 # called before certain pthreads calls. This is deprecated
1251 *-bsdi3.*|*-bsdi4.0*)
1252 AC_DEFINE(NEED_PTHREAD_INIT)
1255 # LinuxThreads requires some changes to the way we
1256 # deal with signals.
1259 AC_DEFINE(HAVE_LINUXTHREADS)
1262 # Ensure the right sigwait() semantics on Solaris and make
1263 # sure we call pthread_setconcurrency.
1266 AC_DEFINE(_POSIX_PTHREAD_SEMANTICS)
1267 AC_CHECK_FUNC(pthread_setconcurrency,
1268 AC_DEFINE(CALL_PTHREAD_SETCONCURRENCY))
1271 # UnixWare does things its own way.
1273 *-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
1274 AC_DEFINE(HAVE_UNIXWARE_SIGWAIT)
1279 # Look for sysconf to allow detection of the number of processors.
1281 AC_CHECK_FUNC(sysconf, AC_DEFINE(HAVE_SYSCONF),)
1284 ISC_PLATFORM_USETHREADS="#undef ISC_PLATFORM_USETHREADS"
1285 thread_dir=nothreads
1291 AC_SUBST(ALWAYS_DEFINES)
1292 AC_SUBST(ISC_PLATFORM_USETHREADS)
1293 AC_SUBST(THREADOPTOBJS)
1294 AC_SUBST(THREADOPTSRCS)
1295 ISC_THREAD_DIR=$thread_dir
1296 AC_SUBST(ISC_THREAD_DIR)
1299 # was --with-libxml2 specified?
1301 AC_MSG_CHECKING(for libxml2 library)
1302 AC_ARG_WITH(libxml2,
1303 [ --with-libxml2[=PATH] Build with libxml2 library [yes|no|path]],
1304 use_libxml2="$withval", use_libxml2="auto")
1306 case "$use_libxml2" in
1311 case X`(xml2-config --version) 2>/dev/null` in
1313 libxml2_libs=`xml2-config --libs`
1314 libxml2_cflags=`xml2-config --cflags`
1323 if test -f "$use_libxml2/bin/xml2-config" ; then
1324 libxml2_libs=`$use_libxml2/bin/xml2-config --libs`
1325 libxml2_cflags=`$use_libxml2/bin/xml2-config --cflags`
1330 if test "X$libxml2_libs" != "X"
1333 CFLAGS="$CFLAGS $libxml2_cflags"
1334 LIBS="$LIBS $libxml2_libs"
1335 AC_DEFINE(HAVE_LIBXML2, 1, [Define if libxml2 was found])
1341 # In solaris 10, SMF can manage named service
1343 AC_CHECK_LIB(scf, smf_enable_instance)
1346 # flockfile is usually provided by pthreads, but we may want to use it
1347 # even if compiled with --disable-threads. getc_unlocked might also not
1350 AC_CHECK_FUNC(flockfile, AC_DEFINE(HAVE_FLOCKFILE),)
1351 AC_CHECK_FUNC(getc_unlocked, AC_DEFINE(HAVE_GETCUNLOCKED),)
1354 # Indicate what the final decision was regarding threads.
1356 AC_MSG_CHECKING(whether to build with threads)
1357 if $use_threads; then
1364 # End of pthreads stuff.
1370 AC_ARG_ENABLE(largefile, [ --enable-largefile 64-bit file support],
1371 want_largefile="yes", want_largefile="no")
1372 case $want_largefile in
1374 ALWAYS_DEFINES="$ALWAYS_DEFINES -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
1381 # Additional compiler settings.
1385 IRIX_DNSSEC_WARNINGS_HACK=""
1387 if test "X$GCC" = "Xyes"; then
1388 AC_MSG_CHECKING(if "$CC" supports -fno-strict-aliasing)
1390 CFLAGS="$CFLAGS -fno-strict-aliasing"
1391 AC_TRY_COMPILE(,, [FNOSTRICTALIASING=yes],[FNOSTRICTALIASING=no])
1393 if test "$FNOSTRICTALIASING" = "yes"; then
1395 STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith -fno-strict-aliasing"
1398 STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith"
1402 LDFLAGS="-Wl,+vnocompatwarnings $LDFLAGS"
1410 CCNOOPT="$CCNOOPT -std"
1415 # The version of the C compiler that constantly warns about
1416 # 'const' as well as alignment issues is unfortunately not
1417 # able to be discerned via the version of the operating
1418 # system, nor does cc have a version flag.
1419 case "`$CC +W 123 2>&1`" in
1424 # Turn off the pointlessly noisy warnings.
1425 STD_CWARNINGS="+w1 +W 474,530,2193,2236"
1428 CCOPT="$CCOPT -Ae -z"
1429 CCNOOPT="$CCNOOPT -Ae -z"
1430 LDFLAGS="-Wl,+vnocompatwarnings $LDFLAGS"
1431 MKDEPPROG='cc -Ae -E -Wp,-M >/dev/null 2>>$TMP'
1434 STD_CWARNINGS="-fullwarn -woff 1209"
1436 # Silence more than 250 instances of
1437 # "prototyped function redeclared without prototype"
1438 # and 11 instances of
1439 # "variable ... was set but never used"
1440 # from lib/dns/sec/openssl.
1442 IRIX_DNSSEC_WARNINGS_HACK="-woff 1692,1552"
1447 *-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
1455 AC_SUBST(MKDEPCFLAGS)
1457 AC_SUBST(IRIX_DNSSEC_WARNINGS_HACK)
1462 AC_CHECK_FUNC(catgets, AC_DEFINE(HAVE_CATGETS),)
1465 # -lxnet buys us one big porting headache... standards, gotta love 'em.
1467 # AC_CHECK_LIB(xnet, socket, ,
1468 # AC_CHECK_LIB(socket, socket)
1471 # Use this for now, instead:
1479 AC_CHECK_LIB(socket, socket)
1480 AC_CHECK_LIB(nsl, inet_addr)
1485 # Work around Solaris's select() limitations.
1488 *-solaris2.[[89]]|*-solaris2.1?)
1489 AC_DEFINE(FD_SETSIZE, 65536,
1490 [Solaris hack to get select_large_fdset.])
1497 AC_MSG_CHECKING(whether to use purify)
1499 [ --with-purify[=PATH] use Rational purify],
1500 use_purify="$withval", use_purify="no")
1502 case "$use_purify" in
1506 AC_PATH_PROG(purify_path, purify, purify)
1509 purify_path="$use_purify"
1513 case "$use_purify" in
1519 if test -f $purify_path || test $purify_path = purify; then
1520 AC_MSG_RESULT($purify_path)
1521 PURIFYFLAGS="`echo $PURIFYOPTIONS`"
1522 PURIFY="$purify_path $PURIFYFLAGS"
1524 AC_MSG_ERROR([$purify_path not found.
1526 Please choose the proper path with the following command:
1528 configure --with-purify=PATH
1537 AC_ARG_WITH(libtool,
1538 [ --with-libtool use GNU libtool],
1539 use_libtool="$withval", use_libtool="no")
1541 case $use_libtool in
1546 LIBTOOL_MKDEP_SED='s;\.o;\.lo;'
1547 LIBTOOL_MODE_COMPILE='--mode=compile --tag=CC'
1548 LIBTOOL_MODE_INSTALL='--mode=install --tag=CC'
1549 LIBTOOL_MODE_LINK='--mode=link --tag=CC'
1551 *) LIBTOOL_ALLOW_UNDEFINED= ;;
1554 *-ibm-aix*) LIBTOOL_IN_MAIN="-Wl,-bI:T_testlist.imp" ;;
1555 *) LIBTOOL_IN_MAIN= ;;
1564 LIBTOOL_MODE_COMPILE=
1565 LIBTOOL_MODE_INSTALL=
1567 LIBTOOL_ALLOW_UNDEFINED=
1573 # enable/disable dumping stack backtrace. Also check if the system supports
1574 # glibc-compatible backtrace() function.
1576 AC_ARG_ENABLE(backtrace,
1577 [ --enable-backtrace log stack backtrace on abort [[default=yes]]],
1578 want_backtrace="$enableval", want_backtrace="yes")
1579 case $want_backtrace in
1581 ISC_PLATFORM_USEBACKTRACE="#define ISC_PLATFORM_USEBACKTRACE 1"
1582 AC_TRY_LINK([#include <execinfo.h>],
1583 [return (backtrace((void **)0, 0));],
1584 [AC_DEFINE([HAVE_LIBCTRACE], [], [if system have backtrace function])],)
1587 ISC_PLATFORM_USEBACKTRACE="#undef ISC_PLATFORM_USEBACKTRACE"
1590 AC_SUBST(ISC_PLATFORM_USEBACKTRACE)
1592 AC_ARG_ENABLE(symtable,
1593 [ --enable-symtable use internal symbol table for backtrace
1594 [[all|minimal(default)|none]]],
1595 want_symtable="$enableval", want_symtable="minimal")
1596 case $want_symtable in
1597 yes|all|minimal) # "yes" is a hidden value equivalent to "minimal"
1598 if test "$PERL" = ""
1600 AC_MSG_ERROR([Internal symbol table requires perl but no perl is found.
1601 Install perl or explicitly disable the feature by --disable-symtable.])
1603 if test "$use_libtool" = "yes"; then
1604 AC_MSG_WARN([Internal symbol table does not work with libtool. Disabling symbol table.])
1606 # we generate the internal symbol table only for those systems
1607 # known to work to avoid unexpected build failure. Also, warn
1608 # about unsupported systems when the feature is enabled
1611 freebsd*|netbsd*|openbsd*|linux*|solaris*|darwin*)
1612 MKSYMTBL_PROGRAM="$PERL"
1613 if test $want_symtable = all; then
1614 ALWAYS_MAKE_SYMTABLE="yes"
1618 if test $want_symtable = yes -o $want_symtable = all
1620 AC_MSG_WARN([this system is not known to generate internal symbol table safely; disabling it])
1628 AC_SUBST(MKSYMTBL_PROGRAM)
1629 AC_SUBST(ALWAYS_MAKE_SYMTABLE)
1632 # File name extension for static archive files, for those few places
1633 # where they are treated differently from dynamic ones.
1640 AC_SUBST(LIBTOOL_MKDEP_SED)
1641 AC_SUBST(LIBTOOL_MODE_COMPILE)
1642 AC_SUBST(LIBTOOL_MODE_INSTALL)
1643 AC_SUBST(LIBTOOL_MODE_LINK)
1644 AC_SUBST(LIBTOOL_ALLOW_UNDEFINED)
1645 AC_SUBST(LIBTOOL_IN_MAIN)
1648 # build exportable DNS library?
1650 AC_ARG_ENABLE(exportlib,
1651 [ --enable-exportlib build exportable library (GNU make required)
1653 case "$enable_exportlib" in
1656 for x in gmake gnumake make; do
1657 if $x --version 2>/dev/null | grep GNU > /dev/null; then
1662 if test -z "$gmake"; then
1663 AC_MSG_ERROR([exportlib requires GNU make. Install it or disable the feature.])
1665 LIBEXPORT=lib/export
1667 BIND9_CO_RULE="%.$O: \${srcdir}/%.c"
1670 BIND9_CO_RULE=".c.$O:"
1673 AC_SUBST(BIND9_CO_RULE)
1675 AC_ARG_WITH(export-libdir,
1676 [ --with-export-libdir[=PATH]
1677 installation directory for the export library
1678 [[EPREFIX/lib/bind9]]],
1679 export_libdir="$withval",)
1680 if test -z "$export_libdir"; then
1681 export_libdir="\${exec_prefix}/lib/bind9/"
1683 AC_SUBST(export_libdir)
1685 AC_ARG_WITH(export-includedir,
1686 [ --with-export-includedir[=PATH]
1687 installation directory for the header files of the
1688 export library [[PREFIX/include/bind9]]],
1689 export_includedir="$withval",)
1690 if test -z "$export_includedir"; then
1691 export_includedir="\${prefix}/include/bind9/"
1693 AC_SUBST(export_includedir)
1696 # Here begins a very long section to determine the system's networking
1697 # capabilities. The order of the tests is significant.
1704 [ --enable-ipv6 use IPv6 [default=autodetect]])
1706 case "$enable_ipv6" in
1708 AC_DEFINE(WANT_IPV6)
1715 # We do the IPv6 compilation checking after libtool so that we can put
1716 # the right suffix on the files.
1718 AC_MSG_CHECKING(for IPv6 structures)
1720 #include <sys/types.h>
1721 #include <sys/socket.h>
1722 #include <netinet/in.h>],
1723 [struct sockaddr_in6 sin6; return (0);],
1730 # See whether IPv6 support is provided via a Kame add-on.
1731 # This is done before other IPv6 linking tests to LIBS is properly set.
1733 AC_MSG_CHECKING(for Kame IPv6 support)
1735 [ --with-kame[=PATH] use Kame IPv6 [default path /usr/local/v6]],
1736 use_kame="$withval", use_kame="no")
1742 kame_path=/usr/local/v6
1745 kame_path="$use_kame"
1754 if test -f $kame_path/lib/libinet6.a; then
1755 AC_MSG_RESULT($kame_path/lib/libinet6.a)
1756 LIBS="-L$kame_path/lib -linet6 $LIBS"
1758 AC_MSG_ERROR([$kame_path/lib/libinet6.a not found.
1760 Please choose the proper path with the following command:
1762 configure --with-kame=PATH
1769 # Whether netinet6/in6.h is needed has to be defined in isc/platform.h.
1770 # Including it on Kame-using platforms is very bad, though, because
1771 # Kame uses #error against direct inclusion. So include it on only
1772 # the platform that is otherwise broken without it -- BSD/OS 4.0 through 4.1.
1773 # This is done before the in6_pktinfo check because that's what
1774 # netinet6/in6.h is needed for.
1779 ISC_PLATFORM_NEEDNETINET6IN6H="#define ISC_PLATFORM_NEEDNETINET6IN6H 1"
1780 LWRES_PLATFORM_NEEDNETINET6IN6H="#define LWRES_PLATFORM_NEEDNETINET6IN6H 1"
1781 isc_netinet6in6_hack="#include <netinet6/in6.h>"
1784 ISC_PLATFORM_NEEDNETINET6IN6H="#undef ISC_PLATFORM_NEEDNETINET6IN6H"
1785 LWRES_PLATFORM_NEEDNETINET6IN6H="#undef LWRES_PLATFORM_NEEDNETINET6IN6H"
1786 isc_netinet6in6_hack=""
1792 # This is similar to the netinet6/in6.h issue.
1795 *-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
1797 ISC_PLATFORM_NEEDNETINETIN6H="#define ISC_PLATFORM_NEEDNETINETIN6H 1"
1798 LWRES_PLATFORM_NEEDNETINETIN6H="#define LWRES_PLATFORM_NEEDNETINETIN6H 1"
1799 ISC_PLATFORM_FIXIN6ISADDR="#define ISC_PLATFORM_FIXIN6ISADDR 1"
1800 isc_netinetin6_hack="#include <netinet/in6.h>"
1803 ISC_PLATFORM_NEEDNETINETIN6H="#undef ISC_PLATFORM_NEEDNETINETIN6H"
1804 LWRES_PLATFORM_NEEDNETINETIN6H="#undef LWRES_PLATFORM_NEEDNETINETIN6H"
1805 ISC_PLATFORM_FIXIN6ISADDR="#undef ISC_PLATFORM_FIXIN6ISADDR"
1806 isc_netinetin6_hack=""
1811 # Now delve deeper into the suitability of the IPv6 support.
1813 case "$found_ipv6" in
1815 ISC_PLATFORM_HAVEIPV6="#define ISC_PLATFORM_HAVEIPV6 1"
1816 LWRES_PLATFORM_HAVEIPV6="#define LWRES_PLATFORM_HAVEIPV6 1"
1818 AC_MSG_CHECKING(for in6_addr)
1820 #include <sys/types.h>
1821 #include <sys/socket.h>
1822 #include <netinet/in.h>
1823 $isc_netinetin6_hack
1824 $isc_netinet6in6_hack
1826 [struct in6_addr in6; return (0);],
1828 ISC_PLATFORM_HAVEINADDR6="#undef ISC_PLATFORM_HAVEINADDR6"
1829 LWRES_PLATFORM_HAVEINADDR6="#undef LWRES_PLATFORM_HAVEINADDR6"
1830 isc_in_addr6_hack=""],
1832 ISC_PLATFORM_HAVEINADDR6="#define ISC_PLATFORM_HAVEINADDR6 1"
1833 LWRES_PLATFORM_HAVEINADDR6="#define LWRES_PLATFORM_HAVEINADDR6 1"
1834 isc_in_addr6_hack="#define in6_addr in_addr6"])
1836 AC_MSG_CHECKING(for in6addr_any)
1838 #include <sys/types.h>
1839 #include <sys/socket.h>
1840 #include <netinet/in.h>
1841 $isc_netinetin6_hack
1842 $isc_netinet6in6_hack
1845 [struct in6_addr in6; in6 = in6addr_any; return (in6.s6_addr[0]);],
1847 ISC_PLATFORM_NEEDIN6ADDRANY="#undef ISC_PLATFORM_NEEDIN6ADDRANY"
1848 LWRES_PLATFORM_NEEDIN6ADDRANY="#undef LWRES_PLATFORM_NEEDIN6ADDRANY"],
1850 ISC_PLATFORM_NEEDIN6ADDRANY="#define ISC_PLATFORM_NEEDIN6ADDRANY 1"
1851 LWRES_PLATFORM_NEEDIN6ADDRANY="#define LWRES_PLATFORM_NEEDIN6ADDRANY 1"])
1853 AC_MSG_CHECKING(for in6addr_loopback)
1855 #include <sys/types.h>
1856 #include <sys/socket.h>
1857 #include <netinet/in.h>
1858 $isc_netinetin6_hack
1859 $isc_netinet6in6_hack
1862 [struct in6_addr in6; in6 = in6addr_loopback; return (in6.s6_addr[0]);],
1864 ISC_PLATFORM_NEEDIN6ADDRLOOPBACK="#undef ISC_PLATFORM_NEEDIN6ADDRLOOPBACK"
1865 LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK="#undef LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK"],
1867 ISC_PLATFORM_NEEDIN6ADDRLOOPBACK="#define ISC_PLATFORM_NEEDIN6ADDRLOOPBACK 1"
1868 LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK="#define LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK 1"])
1870 AC_MSG_CHECKING(for sin6_scope_id in struct sockaddr_in6)
1872 #include <sys/types.h>
1873 #include <sys/socket.h>
1874 #include <netinet/in.h>
1875 $isc_netinetin6_hack
1876 $isc_netinet6in6_hack
1878 [struct sockaddr_in6 xyzzy; xyzzy.sin6_scope_id = 0; return (0);],
1880 ISC_PLATFORM_HAVESCOPEID="#define ISC_PLATFORM_HAVESCOPEID 1"
1881 result="#define LWRES_HAVE_SIN6_SCOPE_ID 1"],
1883 ISC_PLATFORM_HAVESCOPEID="#undef ISC_PLATFORM_HAVESCOPEID"
1884 result="#undef LWRES_HAVE_SIN6_SCOPE_ID"])
1885 LWRES_HAVE_SIN6_SCOPE_ID="$result"
1887 AC_MSG_CHECKING(for in6_pktinfo)
1889 #include <sys/types.h>
1890 #include <sys/socket.h>
1891 #include <netinet/in.h>
1892 $isc_netinetin6_hack
1893 $isc_netinet6in6_hack
1895 [struct in6_pktinfo xyzzy; return (0);],
1897 ISC_PLATFORM_HAVEIN6PKTINFO="#define ISC_PLATFORM_HAVEIN6PKTINFO 1"],
1898 [AC_MSG_RESULT(no -- disabling runtime ipv6 support)
1899 ISC_PLATFORM_HAVEIN6PKTINFO="#undef ISC_PLATFORM_HAVEIN6PKTINFO"])
1902 ISC_PLATFORM_HAVEIPV6="#undef ISC_PLATFORM_HAVEIPV6"
1903 LWRES_PLATFORM_HAVEIPV6="#undef LWRES_PLATFORM_HAVEIPV6"
1904 ISC_PLATFORM_NEEDIN6ADDRANY="#undef ISC_PLATFORM_NEEDIN6ADDRANY"
1905 LWRES_PLATFORM_NEEDIN6ADDRANY="#undef LWRES_PLATFORM_NEEDIN6ADDRANY"
1906 ISC_PLATFORM_HAVEIN6PKTINFO="#undef ISC_PLATFORM_HAVEIN6PKTINFO"
1907 LWRES_HAVE_SIN6_SCOPE_ID="#define LWRES_HAVE_SIN6_SCOPE_ID 1"
1908 ISC_PLATFORM_HAVESCOPEID="#define ISC_PLATFORM_HAVESCOPEID 1"
1910 ISC_IPV6_O="ipv6.$O"
1911 ISC_ISCIPV6_O="unix/ipv6.$O"
1916 AC_SUBST(ISC_PLATFORM_HAVEIPV6)
1917 AC_SUBST(LWRES_PLATFORM_HAVEIPV6)
1918 AC_SUBST(ISC_PLATFORM_NEEDNETINETIN6H)
1919 AC_SUBST(LWRES_PLATFORM_NEEDNETINETIN6H)
1920 AC_SUBST(ISC_PLATFORM_NEEDNETINET6IN6H)
1921 AC_SUBST(LWRES_PLATFORM_NEEDNETINET6IN6H)
1922 AC_SUBST(ISC_PLATFORM_HAVEINADDR6)
1923 AC_SUBST(LWRES_PLATFORM_HAVEINADDR6)
1924 AC_SUBST(ISC_PLATFORM_NEEDIN6ADDRANY)
1925 AC_SUBST(LWRES_PLATFORM_NEEDIN6ADDRANY)
1926 AC_SUBST(ISC_PLATFORM_NEEDIN6ADDRLOOPBACK)
1927 AC_SUBST(LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK)
1928 AC_SUBST(ISC_PLATFORM_HAVEIN6PKTINFO)
1929 AC_SUBST(ISC_PLATFORM_FIXIN6ISADDR)
1930 AC_SUBST(ISC_IPV6_H)
1931 AC_SUBST(ISC_IPV6_O)
1932 AC_SUBST(ISC_ISCIPV6_O)
1933 AC_SUBST(ISC_IPV6_C)
1934 AC_SUBST(LWRES_HAVE_SIN6_SCOPE_ID)
1935 AC_SUBST(ISC_PLATFORM_HAVESCOPEID)
1937 AC_MSG_CHECKING([for struct if_laddrreq])
1939 #include <sys/types.h>
1940 #include <net/if6.h>
1941 ],[ struct if_laddrreq a; ],
1943 ISC_PLATFORM_HAVEIF_LADDRREQ="#define ISC_PLATFORM_HAVEIF_LADDRREQ 1"],
1945 ISC_PLATFORM_HAVEIF_LADDRREQ="#undef ISC_PLATFORM_HAVEIF_LADDRREQ"])
1946 AC_SUBST(ISC_PLATFORM_HAVEIF_LADDRREQ)
1948 AC_MSG_CHECKING([for struct if_laddrconf])
1950 #include <sys/types.h>
1951 #include <net/if6.h>
1952 ],[ struct if_laddrconf a; ],
1954 ISC_PLATFORM_HAVEIF_LADDRCONF="#define ISC_PLATFORM_HAVEIF_LADDRCONF 1"],
1956 ISC_PLATFORM_HAVEIF_LADDRCONF="#undef ISC_PLATFORM_HAVEIF_LADDRCONF"])
1957 AC_SUBST(ISC_PLATFORM_HAVEIF_LADDRCONF)
1960 # Check for network functions that are often missing. We do this
1961 # after the libtool checking, so we can put the right suffix on
1962 # the files. It also needs to come after checking for a Kame add-on,
1963 # which provides some (all?) of the desired functions.
1966 AC_MSG_CHECKING([for inet_ntop with IPv6 support])
1968 #include <sys/types.h>
1969 #include <sys/socket.h>
1970 #include <netinet/in.h>
1971 #include <arpa/inet.h>
1973 char a[16],b[64]; return(inet_ntop(AF_INET6, a, b, sizeof(b)) == (char*)0);}],
1975 ISC_PLATFORM_NEEDNTOP="#undef ISC_PLATFORM_NEEDNTOP"],
1978 ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_ntop.$O"
1979 ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_ntop.c"
1980 ISC_PLATFORM_NEEDNTOP="#define ISC_PLATFORM_NEEDNTOP 1"],
1981 [AC_MSG_RESULT(assuming inet_ntop not needed)
1982 ISC_PLATFORM_NEEDNTOP="#undef ISC_PLATFORM_NEEDNTOP"])
1985 # On NetBSD 1.4.2 and maybe others, inet_pton() incorrectly accepts
1986 # addresses with less than four octets, like "1.2.3". Also leading
1987 # zeros should also be rejected.
1989 AC_MSG_CHECKING([for working inet_pton with IPv6 support])
1991 #include <sys/types.h>
1992 #include <sys/socket.h>
1993 #include <netinet/in.h>
1994 #include <arpa/inet.h>
1995 main() { char a[16]; return (inet_pton(AF_INET, "1.2.3", a) == 1 ? 1 :
1996 inet_pton(AF_INET, "1.2.3.04", a) == 1 ? 1 :
1997 (inet_pton(AF_INET6, "::1.2.3.4", a) != 1)); }],
1999 ISC_PLATFORM_NEEDPTON="#undef ISC_PLATFORM_NEEDPTON"],
2001 ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_pton.$O"
2002 ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_pton.c"
2003 ISC_PLATFORM_NEEDPTON="#define ISC_PLATFORM_NEEDPTON 1"],
2004 [AC_MSG_RESULT(assuming inet_pton needed)
2005 ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_pton.$O"
2006 ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_pton.c"
2007 ISC_PLATFORM_NEEDPTON="#define ISC_PLATFORM_NEEDPTON 1"])
2009 AC_SUBST(ISC_PLATFORM_NEEDNTOP)
2010 AC_SUBST(ISC_PLATFORM_NEEDPTON)
2013 # Look for a 4.4BSD-style sa_len member in struct sockaddr.
2017 # Turn on 4.4BSD style sa_len support.
2018 AC_DEFINE(_SOCKADDR_LEN)
2022 AC_MSG_CHECKING(for sa_len in struct sockaddr)
2024 #include <sys/types.h>
2025 #include <sys/socket.h>],
2026 [struct sockaddr sa; sa.sa_len = 0; return (0);],
2028 ISC_PLATFORM_HAVESALEN="#define ISC_PLATFORM_HAVESALEN 1"
2029 LWRES_PLATFORM_HAVESALEN="#define LWRES_PLATFORM_HAVESALEN 1"],
2031 ISC_PLATFORM_HAVESALEN="#undef ISC_PLATFORM_HAVESALEN"
2032 LWRES_PLATFORM_HAVESALEN="#undef LWRES_PLATFORM_HAVESALEN"])
2033 AC_SUBST(ISC_PLATFORM_HAVESALEN)
2034 AC_SUBST(LWRES_PLATFORM_HAVESALEN)
2037 # Look for a 4.4BSD or 4.3BSD struct msghdr
2039 AC_MSG_CHECKING(for struct msghdr flavor)
2041 #include <sys/types.h>
2042 #include <sys/socket.h>],
2043 [struct msghdr msg; msg.msg_flags = 0; return (0);],
2044 [AC_MSG_RESULT(4.4BSD)
2045 ISC_PLATFORM_MSGHDRFLAVOR="#define ISC_NET_BSD44MSGHDR 1"],
2046 [AC_MSG_RESULT(4.3BSD)
2047 ISC_PLATFORM_MSGHDRFLAVOR="#define ISC_NET_BSD43MSGHDR 1"])
2048 AC_SUBST(ISC_PLATFORM_MSGHDRFLAVOR)
2051 # Look for in_port_t.
2053 AC_MSG_CHECKING(for type in_port_t)
2055 #include <sys/types.h>
2056 #include <netinet/in.h>],
2057 [in_port_t port = 25; return (0);],
2059 ISC_PLATFORM_NEEDPORTT="#undef ISC_PLATFORM_NEEDPORTT"],
2061 ISC_PLATFORM_NEEDPORTT="#define ISC_PLATFORM_NEEDPORTT 1"])
2062 AC_SUBST(ISC_PLATFORM_NEEDPORTT)
2065 # Check for addrinfo
2067 AC_MSG_CHECKING(for struct addrinfo)
2069 #include <netdb.h>],
2070 [struct addrinfo a; return (0);],
2072 ISC_LWRES_NEEDADDRINFO="#undef ISC_LWRES_NEEDADDRINFO"
2073 ISC_IRS_NEEDADDRINFO="#undef ISC_IRS_NEEDADDRINFO"
2074 AC_DEFINE(HAVE_ADDRINFO)],
2076 ISC_LWRES_NEEDADDRINFO="#define ISC_LWRES_NEEDADDRINFO 1"
2077 ISC_IRS_NEEDADDRINFO="#define ISC_IRS_NEEDADDRINFO 1"])
2078 AC_SUBST(ISC_LWRES_NEEDADDRINFO)
2079 AC_SUBST(ISC_IRS_NEEDADDRINFO)
2082 # Check for rrsetinfo
2084 AC_MSG_CHECKING(for struct rrsetinfo)
2086 #include <netdb.h>],
2087 [struct rrsetinfo r; return (0);],
2089 ISC_LWRES_NEEDRRSETINFO="#undef ISC_LWRES_NEEDRRSETINFO"],
2091 ISC_LWRES_NEEDRRSETINFO="#define ISC_LWRES_NEEDRRSETINFO 1"])
2092 AC_SUBST(ISC_LWRES_NEEDRRSETINFO)
2094 AC_MSG_CHECKING(for int sethostent)
2096 #include <netdb.h>],
2097 [int i = sethostent(0); return(0);],
2099 ISC_LWRES_SETHOSTENTINT="#define ISC_LWRES_SETHOSTENTINT 1"],
2101 ISC_LWRES_SETHOSTENTINT="#undef ISC_LWRES_SETHOSTENTINT"])
2102 AC_SUBST(ISC_LWRES_SETHOSTENTINT)
2104 AC_MSG_CHECKING(for int endhostent)
2106 #include <netdb.h>],
2107 [int i = endhostent(); return(0);],
2109 ISC_LWRES_ENDHOSTENTINT="#define ISC_LWRES_ENDHOSTENTINT 1"],
2111 ISC_LWRES_ENDHOSTENTINT="#undef ISC_LWRES_ENDHOSTENTINT"])
2112 AC_SUBST(ISC_LWRES_ENDHOSTENTINT)
2114 AC_MSG_CHECKING(for getnetbyaddr(in_addr_t, ...))
2117 struct netent *getnetbyaddr(in_addr_t, int);],
2120 ISC_LWRES_GETNETBYADDRINADDR="#define ISC_LWRES_GETNETBYADDRINADDR 1"],
2122 ISC_LWRES_GETNETBYADDRINADDR="#undef ISC_LWRES_GETNETBYADDRINADDR"])
2123 AC_SUBST(ISC_LWRES_GETNETBYADDRINADDR)
2125 AC_MSG_CHECKING(for int setnetent)
2127 #include <netdb.h>],
2128 [int i = setnetent(0); return(0);],
2130 ISC_LWRES_SETNETENTINT="#define ISC_LWRES_SETNETENTINT 1"],
2132 ISC_LWRES_SETNETENTINT="#undef ISC_LWRES_SETNETENTINT"])
2133 AC_SUBST(ISC_LWRES_SETNETENTINT)
2135 AC_MSG_CHECKING(for int endnetent)
2137 #include <netdb.h>],
2138 [int i = endnetent(); return(0);],
2140 ISC_LWRES_ENDNETENTINT="#define ISC_LWRES_ENDNETENTINT 1"],
2142 ISC_LWRES_ENDNETENTINT="#undef ISC_LWRES_ENDNETENTINT"])
2143 AC_SUBST(ISC_LWRES_ENDNETENTINT)
2145 AC_MSG_CHECKING(for gethostbyaddr(const void *, size_t, ...))
2148 struct hostent *gethostbyaddr(const void *, size_t, int);],
2151 ISC_LWRES_GETHOSTBYADDRVOID="#define ISC_LWRES_GETHOSTBYADDRVOID 1"],
2153 ISC_LWRES_GETHOSTBYADDRVOID="#undef ISC_LWRES_GETHOSTBYADDRVOID"])
2154 AC_SUBST(ISC_LWRES_GETHOSTBYADDRVOID)
2156 AC_MSG_CHECKING(for h_errno in netdb.h)
2158 #include <netdb.h>],
2159 [h_errno = 1; return(0);],
2161 ISC_LWRES_NEEDHERRNO="#undef ISC_LWRES_NEEDHERRNO"],
2163 ISC_LWRES_NEEDHERRNO="#define ISC_LWRES_NEEDHERRNO 1"])
2164 AC_SUBST(ISC_LWRES_NEEDHERRNO)
2167 # Sadly, the definitions of system-supplied getnameinfo(3) vary. Try to catch
2168 # known variations here:
2170 AC_MSG_CHECKING(for getnameinfo prototype definitions)
2172 #include <sys/types.h>
2173 #include <sys/socket.h>
2175 int getnameinfo(const struct sockaddr *, socklen_t, char *,
2176 socklen_t, char *, socklen_t, unsigned int);],
2178 [AC_MSG_RESULT(socklen_t for buflen; u_int for flags)
2179 AC_DEFINE(IRS_GETNAMEINFO_BUFLEN_T, socklen_t,
2180 [Define to the buffer length type used by getnameinfo(3).])
2181 AC_DEFINE(IRS_GETNAMEINFO_FLAGS_T, unsigned int,
2182 [Define to the flags type used by getnameinfo(3).])],
2184 #include <sys/types.h>
2185 #include <sys/socket.h>
2187 int getnameinfo(const struct sockaddr *, socklen_t, char *,
2188 size_t, char *, size_t, int);],
2190 [AC_MSG_RESULT(size_t for buflen; int for flags)
2191 AC_DEFINE(IRS_GETNAMEINFO_BUFLEN_T, size_t)
2192 AC_DEFINE(IRS_GETNAMEINFO_FLAGS_T, int)],
2193 [AC_MSG_RESULT(not match any subspecies; assume standard definition)
2194 AC_DEFINE(IRS_GETNAMEINFO_BUFLEN_T, socklen_t)
2195 AC_DEFINE(IRS_GETNAMEINFO_FLAGS_T, int)])])
2198 # ...and same for gai_strerror().
2200 AC_MSG_CHECKING(for gai_strerror prototype definitions)
2202 #include <sys/types.h>
2203 #include <sys/socket.h>
2205 char *gai_strerror(int ecode);],
2207 [AC_MSG_RESULT(returning char *)
2208 AC_DEFINE([IRS_GAISTRERROR_RETURN_T], [char *],
2209 [return type of gai_strerror])],
2210 [AC_MSG_RESULT(not match any subspecies; assume standard definition)
2211 AC_DEFINE([IRS_GAISTRERROR_RETURN_T], [const char *])])
2213 AC_CHECK_FUNC(getipnodebyname,
2214 [ISC_LWRES_GETIPNODEPROTO="#undef ISC_LWRES_GETIPNODEPROTO"],
2215 [ISC_LWRES_GETIPNODEPROTO="#define ISC_LWRES_GETIPNODEPROTO 1"])
2216 AC_CHECK_FUNC(getnameinfo,
2217 [ISC_LWRES_GETNAMEINFOPROTO="#undef ISC_LWRES_GETNAMEINFOPROTO"],
2218 [ISC_LWRES_GETNAMEINFOPROTO="#define ISC_LWRES_GETNAMEINFOPROTO 1"])
2219 AC_CHECK_FUNC(getaddrinfo,
2220 [ISC_LWRES_GETADDRINFOPROTO="#undef ISC_LWRES_GETADDRINFOPROTO"
2221 AC_DEFINE(HAVE_GETADDRINFO)],
2222 [ISC_LWRES_GETADDRINFOPROTO="#define ISC_LWRES_GETADDRINFOPROTO 1"])
2223 AC_CHECK_FUNC(gai_strerror, AC_DEFINE(HAVE_GAISTRERROR))
2224 AC_SUBST(ISC_LWRES_GETIPNODEPROTO)
2225 AC_SUBST(ISC_LWRES_GETADDRINFOPROTO)
2226 AC_SUBST(ISC_LWRES_GETNAMEINFOPROTO)
2227 AC_SUBST(ISC_IRS_GETNAMEINFOSOCKLEN)
2229 AC_ARG_ENABLE(getifaddrs,
2230 [ --enable-getifaddrs Enable the use of getifaddrs() [[yes|no]].],
2231 want_getifaddrs="$enableval", want_getifaddrs="yes")
2234 # This interface iteration code for getifaddrs() will fall back to using
2235 # /proc/net/if_inet6 if getifaddrs() in glibc doesn't return any IPv6
2238 case $want_getifaddrs in
2240 AC_MSG_WARN("--enable-getifaddrs=glibc is no longer required")
2241 AC_CHECK_FUNC(getifaddrs, AC_DEFINE(HAVE_GETIFADDRS))
2244 AC_CHECK_FUNC(getifaddrs, AC_DEFINE(HAVE_GETIFADDRS))
2251 # Look for a sysctl call to get the list of network interfaces.
2253 case $ac_cv_header_sys_sysctl_h in
2255 AC_MSG_CHECKING(for interface list sysctl)
2256 AC_EGREP_CPP(found_rt_iflist, [
2257 #include <sys/param.h>
2258 #include <sys/sysctl.h>
2259 #include <sys/socket.h>
2260 #ifdef NET_RT_IFLIST
2265 AC_DEFINE(HAVE_IFLIST_SYSCTL)],
2266 [AC_MSG_RESULT(no)])
2271 # Check for some other useful functions that are not ever-present.
2274 # We test for strsep() using AC_TRY_LINK instead of AC_CHECK_FUNC
2275 # because AIX 4.3.3 with patches for bos.adt.include to version 4.3.3.77
2276 # reportedly defines strsep() without declaring it in <string.h> when
2277 # -D_LINUX_SOURCE_COMPAT is not defined [RT #2190], and
2278 # AC_CHECK_FUNC() incorrectly succeeds because it declares
2279 # the function itself.
2280 AC_MSG_CHECKING(for correctly declared strsep())
2281 AC_TRY_LINK([#include <string.h>], [char *sp; char *foo = strsep(&sp, ".");],
2282 [AC_MSG_RESULT(yes); ISC_PLATFORM_NEEDSTRSEP="#undef ISC_PLATFORM_NEEDSTRSEP"],
2283 [AC_MSG_RESULT(no); ISC_PLATFORM_NEEDSTRSEP="#define ISC_PLATFORM_NEEDSTRSEP 1"])
2284 AC_SUBST(ISC_PLATFORM_NEEDSTRSEP)
2286 AC_CHECK_FUNC(memmove,
2287 [ISC_PLATFORM_NEEDMEMMOVE="#undef ISC_PLATFORM_NEEDMEMMOVE"],
2288 [ISC_PLATFORM_NEEDMEMMOVE="#define ISC_PLATFORM_NEEDMEMMOVE 1"])
2289 AC_SUBST(ISC_PLATFORM_NEEDMEMMOVE)
2291 AC_CHECK_FUNC(strtoul,
2292 [ISC_PLATFORM_NEEDSTRTOUL="#undef ISC_PLATFORM_NEEDSTRTOUL"
2293 LWRES_PLATFORM_NEEDSTRTOUL="#undef LWRES_PLATFORM_NEEDSTRTOUL"
2295 [ISC_PLATFORM_NEEDSTRTOUL="#define ISC_PLATFORM_NEEDSTRTOUL 1"
2296 LWRES_PLATFORM_NEEDSTRTOUL="#define LWRES_PLATFORM_NEEDSTRTOUL 1"
2297 GENRANDOMLIB='${ISCLIBS}'])
2298 AC_SUBST(ISC_PLATFORM_NEEDSTRTOUL)
2299 AC_SUBST(LWRES_PLATFORM_NEEDSTRTOUL)
2300 AC_SUBST(GENRANDOMLIB)
2302 AC_CHECK_FUNC(strlcpy,
2303 [ISC_PLATFORM_NEEDSTRLCPY="#undef ISC_PLATFORM_NEEDSTRLCPY"],
2304 [ISC_PLATFORM_NEEDSTRLCPY="#define ISC_PLATFORM_NEEDSTRLCPY 1"])
2305 AC_SUBST(ISC_PLATFORM_NEEDSTRLCPY)
2307 AC_CHECK_FUNC(strlcat,
2308 [ISC_PLATFORM_NEEDSTRLCAT="#undef ISC_PLATFORM_NEEDSTRLCAT"],
2309 [ISC_PLATFORM_NEEDSTRLCAT="#define ISC_PLATFORM_NEEDSTRLCAT 1"])
2310 AC_SUBST(ISC_PLATFORM_NEEDSTRLCAT)
2314 AC_MSG_CHECKING(sprintf)
2318 [ char buf[2]; return(*sprintf(buf,"x"));],
2320 ISC_PRINT_OBJS="print.$O"
2321 ISC_PRINT_SRCS="print.c"
2322 ISC_PLATFORM_NEEDSPRINTF="#define ISC_PLATFORM_NEEDSPRINTF"
2323 LWRES_PLATFORM_NEEDSPRINTF="#define LWRES_PLATFORM_NEEDSPRINTF"
2325 [ISC_PLATFORM_NEEDSPRINTF="#undef ISC_PLATFORM_NEEDSPRINTF"
2326 LWRES_PLATFORM_NEEDSPRINTF="#undef LWRES_PLATFORM_NEEDSPRINTF"]
2328 AC_SUBST(ISC_PLATFORM_NEEDSPRINTF)
2329 AC_SUBST(LWRES_PLATFORM_NEEDSPRINTF)
2331 AC_CHECK_FUNC(vsnprintf,
2332 [ISC_PLATFORM_NEEDVSNPRINTF="#undef ISC_PLATFORM_NEEDVSNPRINTF"
2333 LWRES_PLATFORM_NEEDVSNPRINTF="#undef LWRES_PLATFORM_NEEDVSNPRINTF"],
2334 [ISC_PRINT_OBJS="print.$O"
2335 ISC_PRINT_SRCS="print.c"
2336 ISC_PLATFORM_NEEDVSNPRINTF="#define ISC_PLATFORM_NEEDVSNPRINTF 1"
2337 LWRES_PLATFORM_NEEDVSNPRINTF="#define LWRES_PLATFORM_NEEDVSNPRINTF 1"])
2338 AC_SUBST(ISC_PLATFORM_NEEDVSNPRINTF)
2339 AC_SUBST(LWRES_PLATFORM_NEEDVSNPRINTF)
2340 ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS $ISC_PRINT_OBJS"
2341 ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS $ISC_PRINT_SRCS"
2343 AC_CHECK_FUNC(strerror, AC_DEFINE(HAVE_STRERROR))
2345 AC_SUBST(ISC_EXTRA_OBJS)
2346 AC_SUBST(ISC_EXTRA_SRCS)
2349 # Use our own SPNEGO implementation?
2351 AC_ARG_ENABLE(isc-spnego,
2352 [ --disable-isc-spnego use SPNEGO from GSSAPI library])
2354 if test -n "$USE_GSSAPI"
2356 case "$enable_isc_spnego" in
2358 USE_ISC_SPNEGO='-DUSE_ISC_SPNEGO'
2359 DST_EXTRA_OBJS="$DST_EXTRA_OBJS spnego.$O"
2360 DST_EXTRA_SRCS="$DST_EXTRA_SRCS spnego.c"
2361 AC_MSG_RESULT(using SPNEGO from lib/dns)
2364 AC_MSG_RESULT(using SPNEGO from GSSAPI library)
2369 AC_SUBST(USE_ISC_SPNEGO)
2371 AC_SUBST(DST_EXTRA_OBJS)
2372 AC_SUBST(DST_EXTRA_SRCS)
2374 # Determine the printf format characters to use when printing
2375 # values of type isc_int64_t. This will normally be "ll", but where
2376 # the compiler treats "long long" as a alias for "long" and printf
2377 # doesn't know about "long long" use "l". Hopefully the sprintf
2378 # will produce a inconsistent result in the later case. If the compiler
2379 # fails due to seeing "%lld" we fall back to "l".
2381 # Digital Unix 4.0 (gcc?) (long long) is 64 bits as is its long. It uses
2382 # %ld even for (long long)/
2384 # Win32 uses "%I64d", but that's defined elsewhere since we don't use
2385 # configure on Win32.
2387 AC_MSG_CHECKING(printf format modifier for 64-bit integers)
2391 long long int j = 0;
2394 sprintf(buf, "%lld", j);
2395 exit((sizeof(long long int) != sizeof(long int))? 0 :
2396 (strcmp(buf, "0") != 0));
2400 ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "ll"'
2401 LWRES_PLATFORM_QUADFORMAT='#define LWRES_PLATFORM_QUADFORMAT "ll"'],
2403 ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "l"'
2404 LWRES_PLATFORM_QUADFORMAT='#define LWRES_PLATFORM_QUADFORMAT "l"'],
2405 [AC_MSG_RESULT(assuming target platform uses ll)
2406 ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "ll"'
2407 LWRES_PLATFORM_QUADFORMAT='#define LWRES_PLATFORM_QUADFORMAT "ll"'])
2408 AC_SUBST(ISC_PLATFORM_QUADFORMAT)
2409 AC_SUBST(LWRES_PLATFORM_QUADFORMAT)
2414 # Note it is very recommended to *not* disable chroot(),
2415 # this is only because chroot() was made obsolete by Posix.
2416 AC_ARG_ENABLE(chroot,
2417 [ --disable-chroot disable chroot])
2418 case "$enable_chroot" in
2420 AC_CHECK_FUNCS(chroot)
2425 AC_ARG_ENABLE(linux-caps,
2426 [ --disable-linux-caps disable linux capabilities])
2427 case "$enable_linux_caps" in
2429 AC_CHECK_HEADERS(linux/types.h)
2430 AC_CHECK_HEADERS([sys/capability.h])
2431 AC_CHECK_HEADERS([linux/capability.h], [], [],
2432 [#ifdef HAVE_LINUX_TYPES_H
2433 #include <linux/types.h>
2436 AC_CHECK_LIB(cap, cap_set_proc)
2441 AC_CHECK_HEADERS(sys/prctl.h)
2443 AC_CHECK_HEADERS(sys/un.h,
2444 ISC_PLATFORM_HAVESYSUNH="#define ISC_PLATFORM_HAVESYSUNH 1"
2446 ISC_PLATFORM_HAVESYSUNH="#undef ISC_PLATFORM_HAVESYSUNH"
2448 AC_SUBST(ISC_PLATFORM_HAVESYSUNH)
2452 AC_DEFINE(NEED_SECURE_DIRECTORY, 1,
2453 [Define if connect does not honour the permission on the UNIX domain socket.])
2456 AC_DEFINE(NEED_SECURE_DIRECTORY, 1,
2457 [Define if connect does not honour the permission on the UNIX domain socket.])
2464 AC_CHECK_FUNC(tzset, AC_DEFINE(HAVE_TZSET))
2466 AC_MSG_CHECKING(for optarg declaration)
2471 [AC_MSG_RESULT(yes)],
2473 GEN_NEED_OPTARG="-DNEED_OPTARG=1"
2474 AC_DEFINE(NEED_OPTARG, 1, [Defined if extern char *optarg is not declared.])])
2477 # BSD/OS, and perhaps some others, don't define rlim_t.
2479 AC_MSG_CHECKING(for type rlim_t)
2481 #include <sys/types.h>
2482 #include <sys/time.h>
2483 #include <sys/resource.h>],
2484 [rlim_t rl = 19671212; return (0);],
2486 ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE rlim_t"],
2489 AC_MSG_CHECKING(type of rlim_cur)
2491 #include <sys/types.h>
2492 #include <sys/time.h>
2493 #include <sys/resource.h>
2494 main() { struct rlimit r; exit(!(sizeof(r.rlim_cur) == sizeof(int)));}],
2496 ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE int"],
2499 #include <sys/types.h>
2500 #include <sys/time.h>
2501 #include <sys/resource.h>
2502 main() { struct rlimit r; exit(!(sizeof(r.rlim_cur) == sizeof(long int)));}],
2503 [AC_MSG_RESULT(long int)
2504 ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE long int"],
2507 #include <sys/types.h>
2508 #include <sys/time.h>
2509 #include <sys/resource.h>
2510 main() { struct rlimit r; exit((!sizeof(r.rlim_cur) == sizeof(long long int)));}],
2511 [AC_MSG_RESULT(long long int)
2512 ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE long long int"],
2513 [AC_MSG_ERROR([unable to determine sizeof rlim_cur])
2514 ],[AC_MSG_ERROR(this cannot happen)])
2515 ],[AC_MSG_ERROR(this cannot happen)])
2517 AC_ARG_WITH(rlimtype, , rlimtype="$withval", rlimtype="long long int")
2518 ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE $rlimtype"
2519 AC_MSG_RESULT(cannot determine type of rlim_cur when cross compiling - assuming $rlimtype)])
2521 AC_SUBST(ISC_PLATFORM_RLIMITTYPE)
2524 # Older HP-UX doesn't have gettune
2528 AC_CHECK_HEADERS(sys/dyntune.h)
2536 # Compaq TruCluster requires more code for handling cluster IP aliases
2540 AC_CHECK_LIB(clua, clua_getaliasaddress, LIBS="-lclua $LIBS")
2541 AC_CHECK_FUNC(clua_getaliasaddress,
2542 AC_DEFINE(HAVE_TRUCLUSTER, 1,
2543 [Define if running under Compaq TruCluster]))
2550 # Some hosts need msg_namelen to match the size of the socket structure.
2551 # Some hosts don't set msg_namelen appropriately on return from recvmsg().
2555 AC_DEFINE(BROKEN_RECVMSG, 1,
2556 [Define if recvmsg() does not meet all of the BSD socket API specifications.])
2561 # Microsoft has their own way of handling shared libraries that requires
2562 # additional qualifiers on extern variables. Unix systems don't need it.
2564 AC_SUBST(ISC_PLATFORM_USEDECLSPEC)
2565 ISC_PLATFORM_USEDECLSPEC="#undef ISC_PLATFORM_USEDECLSPEC"
2566 AC_SUBST(LWRES_PLATFORM_USEDECLSPEC)
2567 LWRES_PLATFORM_USEDECLSPEC="#undef LWRES_PLATFORM_USEDECLSPEC"
2568 AC_SUBST(IRS_PLATFORM_USEDECLSPEC)
2569 IRS_PLATFORM_USEDECLSPEC="#undef IRS_PLATFORM_USEDECLSPEC"
2572 # Random remaining OS-specific issues involving compiler warnings.
2573 # XXXDCL print messages to indicate some compensation is being done?
2575 AC_SUBST(ISC_PLATFORM_BRACEPTHREADONCEINIT)
2576 ISC_PLATFORM_BRACEPTHREADONCEINIT="#undef ISC_PLATFORM_BRACEPTHREADONCEINIT"
2580 hack_shutup_pthreadonceinit=yes
2583 hack_shutup_sputaux=yes
2586 hack_shutup_sigwait=yes
2587 hack_shutup_sputaux=yes
2590 hack_shutup_stdargcast=yes
2593 hack_shutup_pthreadonceinit=yes
2595 *-solaris2.1[[0-9]])
2596 AC_TRY_COMPILE([ #include <pthread.h> ], [ static pthread_once_t once_test = { PTHREAD_ONCE_INIT }; ], [hack_shutup_pthreadonceinit=yes], )
2600 case "$hack_shutup_pthreadonceinit" in
2603 # Shut up PTHREAD_ONCE_INIT unbraced initializer warnings.
2605 ISC_PLATFORM_BRACEPTHREADONCEINIT="#define ISC_PLATFORM_BRACEPTHREADONCEINIT 1"
2609 case "$hack_shutup_sigwait" in
2612 # Shut up a -Wmissing-prototypes warning for sigwait().
2614 AC_DEFINE(SHUTUP_SIGWAIT)
2618 case "$hack_shutup_sputaux" in
2621 # Shut up a -Wmissing-prototypes warning from <stdio.h>.
2623 AC_DEFINE(SHUTUP_SPUTAUX)
2627 case "$hack_shutup_stdargcast" in
2630 # Shut up a -Wcast-qual warning from va_start().
2632 AC_DEFINE(SHUTUP_STDARG_CAST)
2636 AC_CHECK_HEADERS(strings.h,
2637 ISC_PLATFORM_HAVESTRINGSH="#define ISC_PLATFORM_HAVESTRINGSH 1"
2639 ISC_PLATFORM_HAVESTRINGSH="#undef ISC_PLATFORM_HAVESTRINGSH"
2641 AC_SUBST(ISC_PLATFORM_HAVESTRINGSH)
2644 # Check for if_nametoindex() for IPv6 scoped addresses support
2646 AC_CHECK_FUNC(if_nametoindex, ac_cv_have_if_nametoindex=yes,
2647 ac_cv_have_if_nametoindex=no)
2648 case $ac_cv_have_if_nametoindex in
2652 AC_CHECK_LIB(ipv6, if_nametoindex,
2653 ac_cv_have_if_nametoindex=yes
2654 LIBS="-lipv6 $LIBS",)
2658 case $ac_cv_have_if_nametoindex in
2660 ISC_PLATFORM_HAVEIFNAMETOINDEX="#define ISC_PLATFORM_HAVEIFNAMETOINDEX 1"
2663 ISC_PLATFORM_HAVEIFNAMETOINDEX="#undef ISC_PLATFORM_HAVEIFNAMETOINDEX"
2666 AC_SUBST(ISC_PLATFORM_HAVEIFNAMETOINDEX)
2668 AC_CHECK_FUNCS(nanosleep)
2671 # Machine architecture dependent features
2673 AC_ARG_ENABLE(atomic,
2674 [ --enable-atomic enable machine specific atomic operations
2675 [[default=autodetect]]],
2676 enable_atomic="$enableval",
2677 enable_atomic="autodetect")
2678 case "$enable_atomic" in
2682 if test "X$GCC" = "Xyes"; then
2683 AC_MSG_CHECKING([if asm("isc"); works])
2685 main() { asm("ics"); exit(0); }
2690 saved_cflags="$CFLAGS"
2691 CFLAGS="$CFLAGS -Wa,-many"
2693 main() { asm("ics"); exit(0); }
2695 [AC_MSG_RESULT([yes, required -Wa,-many])
2697 [AC_MSG_RESULT([no, use_atomic disabled])
2698 CFLAGS="$saved_cflags"
2700 [AC_MSG_RESULT([cross compile, assume yes])
2701 CFLAGS="$saved_cflags"
2720 ISC_PLATFORM_USEOSFASM="#undef ISC_PLATFORM_USEOSFASM"
2721 if test "$use_atomic" = "yes"; then
2722 AC_MSG_CHECKING([architecture type for atomic operations])
2723 have_atomic=yes # set default
2726 # XXX: some old x86 architectures actually do not support
2727 # (some of) these operations. Do we need stricter checks?
2728 AC_CHECK_SIZEOF([void *])
2729 if test $ac_cv_sizeof_void_p = 8; then
2737 AC_CHECK_SIZEOF([void *])
2738 if test $ac_cv_sizeof_void_p = 8; then
2748 powerpc-*|powerpc64-*)
2751 mips-*|mipsel-*|mips64-*|mips64el-*)
2762 AC_MSG_RESULT($arch)
2765 if test "$have_atomic" = "yes"; then
2766 AC_MSG_CHECKING([compiler support for inline assembly code])
2769 # Check whether the compiler supports the assembly syntax we provide.
2770 if test "X$GCC" = "Xyes"; then
2771 # GCC's ASM extension always works
2773 if test $arch = "x86_64"; then
2774 # We can share the same code for gcc with x86_32
2777 if test $arch = "powerpc"; then
2779 # The MacOS (and maybe others) uses "r0" for register
2780 # zero. Under linux/ibm it is "0" for register 0.
2781 # Probe to see if we have a MacOS style assembler.
2783 AC_MSG_CHECKING([Checking for MacOS style assembler syntax])
2785 __asm__ volatile ("li r0, 0x0\n"::);
2789 ISC_PLATFORM_USEMACASM="#define ISC_PLATFORM_USEMACASM 1"
2790 ], [AC_MSG_RESULT(no)])
2795 # Tru64 compiler has its own syntax for inline
2799 #error "unexpected compiler"
2811 ISC_PLATFORM_USEGCCASM="#define ISC_PLATFORM_USEGCCASM 1"
2814 ISC_PLATFORM_USEOSFASM="#define ISC_PLATFORM_USEOSFASM 1"
2821 # See if the generic __asm function works. If not,
2822 # we need to disable the atomic operations.
2826 [compiler="standard"
2827 ISC_PLATFORM_USESTDASM="#define ISC_PLATFORM_USESTDASM 1"],
2828 [compiler="not supported (atomic operations disabled)"
2834 AC_MSG_RESULT($compiler)
2837 if test "$have_atomic" = "yes"; then
2838 ISC_PLATFORM_HAVEXADD="#define ISC_PLATFORM_HAVEXADD 1"
2839 ISC_PLATFORM_HAVECMPXCHG="#define ISC_PLATFORM_HAVECMPXCHG 1"
2840 ISC_PLATFORM_HAVEATOMICSTORE="#define ISC_PLATFORM_HAVEATOMICSTORE 1"
2842 ISC_PLATFORM_HAVEXADD="#undef ISC_PLATFORM_HAVEXADD"
2843 ISC_PLATFORM_HAVECMPXCHG="#undef ISC_PLATFORM_HAVECMPXCHG"
2844 ISC_PLATFORM_HAVEATOMICSTORE="#undef ISC_PLATFORM_HAVEATOMICSTORE"
2847 if test "$have_xaddq" = "yes"; then
2848 ISC_PLATFORM_HAVEXADDQ="#define ISC_PLATFORM_HAVEXADDQ 1"
2850 ISC_PLATFORM_HAVEXADDQ="#undef ISC_PLATFORM_HAVEXADDQ"
2853 AC_SUBST(ISC_PLATFORM_HAVEXADD)
2854 AC_SUBST(ISC_PLATFORM_HAVEXADDQ)
2855 AC_SUBST(ISC_PLATFORM_HAVECMPXCHG)
2856 AC_SUBST(ISC_PLATFORM_HAVEATOMICSTORE)
2858 AC_SUBST(ISC_PLATFORM_USEGCCASM)
2859 AC_SUBST(ISC_PLATFORM_USEOSFASM)
2860 AC_SUBST(ISC_PLATFORM_USESTDASM)
2861 AC_SUBST(ISC_PLATFORM_USEMACASM)
2864 AC_SUBST(ISC_ARCH_DIR)
2867 # Activate "rrset-order fixed" or not?
2869 AC_ARG_ENABLE(fixed-rrset,
2870 [ --enable-fixed-rrset enable fixed rrset ordering
2872 enable_fixed="$enableval",
2874 case "$enable_fixed" in
2876 AC_DEFINE(DNS_RDATASET_FIXED, 1,
2877 [Define to enable "rrset-order fixed" syntax.])
2886 # Enable response policy rewriting using NS IP addresses
2888 AC_ARG_ENABLE(rpz-nsip,
2889 [ --disable-rpz-nsip disable rpz-nsip rules [[default=enabled]]],
2890 enable_nsip="$enableval",
2892 case "$enable_nsip" in
2894 AC_DEFINE(ENABLE_RPZ_NSIP, 1,
2895 [Define to enable rpz-nsip rules.])
2904 # Enable response policy rewriting using NS name
2906 AC_ARG_ENABLE(rpz-nsdname,
2907 [ --disable-rpz-nsdname disable rpz-nsdname rules [[default=enabled]]],
2908 enable_nsdname="$enableval",
2909 enable_nsdname="yes")
2910 case "$enable_nsdname" in
2912 AC_DEFINE(ENABLE_RPZ_NSDNAME, 1,
2913 [Define to enable rpz-nsdname rules.])
2922 # Activate "filter-aaaa-on-v4" or not?
2924 AC_ARG_ENABLE(filter-aaaa,
2925 [ --enable-filter-aaaa enable filtering of AAAA records over IPv4
2927 enable_filter="$enableval",
2929 case "$enable_filter" in
2931 AC_DEFINE(ALLOW_FILTER_AAAA_ON_V4, 1,
2932 [Define to enable the "filter-aaaa-on-v4" option.])
2941 # The following sets up how non-blocking i/o is established.
2942 # Sunos, cygwin and solaris 2.x (x<5) require special handling.
2945 *-sunos*) AC_DEFINE(PORT_NONBLOCK, O_NDELAY);;
2946 *-cygwin*) AC_DEFINE(PORT_NONBLOCK, O_NDELAY);;
2947 *-solaris2.[[01234]])
2948 AC_DEFINE(PORT_NONBLOCK, O_NONBLOCK)
2949 AC_DEFINE(USE_FIONBIO_IOCTL, 1,
2950 [Defined if you need to use ioctl(FIONBIO) instead a fcntl call to make non-blocking.])
2952 *) AC_DEFINE(PORT_NONBLOCK, O_NONBLOCK,
2953 [Sets which flag to pass to open/fcntl to make non-blocking (O_NDELAY/O_NONBLOCK).])
2957 # Solaris 2.5.1 and earlier cannot bind() then connect() a TCP socket.
2958 # This prevents the source address being set.
2961 *-solaris2.[[012345]]|*-solaris2.5.1)
2962 AC_DEFINE(BROKEN_TCP_BIND_BEFORE_CONNECT, 1,
2963 [Define if you cannot bind() before connect() for TCP sockets.])
2967 # The following sections deal with tools used for formatting
2968 # the documentation. They are all optional, unless you are
2969 # a developer editing the documentation source.
2976 AC_PATH_PROGS(LATEX, latex, latex)
2979 AC_PATH_PROGS(PDFLATEX, pdflatex, pdflatex)
2986 AC_PATH_PROGS(W3M, w3m, w3m)
2990 # Look for xsltproc (libxslt)
2993 AC_PATH_PROG(XSLTPROC, xsltproc, xsltproc)
2997 # Look for xmllint (libxml2)
3000 AC_PATH_PROG(XMLLINT, xmllint, xmllint)
3007 AC_PATH_PROG(DOXYGEN, doxygen, doxygen)
3011 # Subroutine for searching for an ordinary file (e.g., a stylesheet)
3012 # in a number of directories:
3014 # NOM_PATH_FILE(VARIABLE, FILENAME, DIRECTORIES)
3016 # If the file FILENAME is found in one of the DIRECTORIES, the shell
3017 # variable VARIABLE is defined to its absolute pathname. Otherwise,
3018 # it is set to FILENAME, with no directory prefix (that's not terribly
3019 # useful, but looks less confusing in substitutions than leaving it
3020 # empty). The variable VARIABLE will be substituted into output files.
3023 AC_DEFUN(NOM_PATH_FILE, [
3025 AC_MSG_CHECKING(for $2)
3036 if test "X[$]$1" = "X"
3038 AC_MSG_RESULT("not found");
3045 # Look for Docbook-XSL stylesheets. Location probably varies by system.
3046 # If it's not explicitly specified, guess where it might be found, based on
3047 # where SGML stuff lives on some systems (FreeBSD is the only one we're sure
3048 # of at the moment).
3050 AC_MSG_CHECKING(for Docbook-XSL path)
3051 AC_ARG_WITH(docbook-xsl,
3052 [ --with-docbook-xsl=PATH Specify path for Docbook-XSL stylesheets],
3053 docbook_path="$withval", docbook_path="auto")
3054 case "$docbook_path" in
3057 docbook_xsl_trees="/usr/pkg/share/xsl/docbook /usr/local/share/xsl/docbook /usr/share/xsl/docbook /opt/local/share/xsl/docbook-xsl"
3060 docbook_xsl_trees="$withval"
3061 AC_MSG_RESULT($docbook_xsl_trees)
3066 # Look for stylesheets we need.
3069 NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_HTML, html/docbook.xsl, $docbook_xsl_trees)
3070 NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_XHTML, xhtml/docbook.xsl, $docbook_xsl_trees)
3071 NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_MAN, manpages/docbook.xsl, $docbook_xsl_trees)
3072 NOM_PATH_FILE(XSLT_DOCBOOK_CHUNK_HTML, html/chunk.xsl, $docbook_xsl_trees)
3073 NOM_PATH_FILE(XSLT_DOCBOOK_CHUNK_XHTML, xhtml/chunk.xsl, $docbook_xsl_trees)
3074 NOM_PATH_FILE(XSLT_DOCBOOK_CHUNKTOC_HTML, html/chunktoc.xsl, $docbook_xsl_trees)
3075 NOM_PATH_FILE(XSLT_DOCBOOK_CHUNKTOC_XHTML, xhtml/chunktoc.xsl, $docbook_xsl_trees)
3076 NOM_PATH_FILE(XSLT_DOCBOOK_MAKETOC_HTML, html/maketoc.xsl, $docbook_xsl_trees)
3077 NOM_PATH_FILE(XSLT_DOCBOOK_MAKETOC_XHTML, xhtml/maketoc.xsl, $docbook_xsl_trees)
3080 # Same dance for db2latex
3082 # No idea where this lives except on FreeBSD.
3085 db2latex_xsl_trees="/usr/local/share"
3088 # Look for stylesheets we need.
3091 NOM_PATH_FILE(XSLT_DB2LATEX_STYLE, db2latex/xsl/docbook.xsl, $db2latex_xsl_trees)
3094 # Look for "admonition" image directory. Can't use NOM_PATH_FILE()
3095 # because it's a directory, so just do the same things, inline.
3098 AC_MSG_CHECKING(for db2latex/xsl/figures)
3099 for d in $db2latex_xsl_trees
3101 dd=$d/db2latex/xsl/figures
3104 XSLT_DB2LATEX_ADMONITIONS=$dd
3109 if test "X$XSLT_DB2LATEX_ADMONITIONS" = "X"
3111 AC_MSG_RESULT(not found)
3112 XSLT_DB2LATEX_ADMONITIONS=db2latex/xsl/figures
3114 AC_SUBST(XSLT_DB2LATEX_ADMONITIONS)
3120 [ --with-idn[=MPREFIX] enable IDN support using idnkit [default PREFIX]],
3121 use_idn="$withval", use_idn="no")
3124 if test X$prefix = XNONE ; then
3139 AC_ARG_WITH(libiconv,
3140 [ --with-libiconv[=IPREFIX] GNU libiconv are in IPREFIX [default PREFIX]],
3141 use_libiconv="$withval", use_libiconv="no")
3142 case "$use_libiconv" in
3144 if test X$prefix = XNONE ; then
3145 iconvlib="-L/usr/local/lib -R/usr/local/lib -liconv"
3147 iconvlib="-L$prefix/lib -R$prefix/lib -liconv"
3154 iconvlib="-L$use_libiconv/lib -R$use_libiconv/lib -liconv"
3159 [ --with-iconv[=LIBSPEC] specify iconv library [default -liconv]],
3160 iconvlib="$withval")
3171 [ --with-idnlib=ARG specify libidnkit],
3172 idnlib="$withval", idnlib="no")
3173 if test "$idnlib" = yes; then
3174 AC_MSG_ERROR([You must specify ARG for --with-idnlib.])
3178 if test "$use_idn" != no; then
3179 AC_DEFINE(WITH_IDN, 1, [define if idnkit support is to be included.])
3180 STD_CINCLUDES="$STD_CINCLUDES -I$idn_path/include"
3181 if test "$idnlib" != no; then
3182 IDNLIBS="$idnlib $iconvlib"
3184 IDNLIBS="-L$idn_path/lib -lidnkit $iconvlib"
3190 # Check whether to build Automated Test Framework unit tests
3193 [ --with-atf=ARG Automated Test Framework support],
3194 atf="$withval", atf="no")
3195 if test "$atf" = yes; then
3199 AC_CONFIG_COMMANDS([atf-config],
3201 mkdir -p unit/atf-src;
3205 *) srcdir="../../$srcdir";;
3207 ${SHELL} "${srcdir}${srcdir:+/unit/atf-src/}./configure" --enable-tools --disable-shared MISSING=: --prefix $atfdir;
3209 [atfdir=`pwd`/unit/atf])
3210 AC_MSG_RESULT(building ATF from bind9/unit/atf-src)
3214 if test "$atf" != no; then
3215 AC_DEFINE(ATF_TEST, 1, [define if ATF unit tests are to be built.])
3216 STD_CINCLUDES="$STD_CINCLUDES -I$atf/include"
3218 ATFLIBS="-L$atf/lib -latf-c"
3219 if test "$want_openssl_hash" = yes; then
3220 ATFLIBS="-L$atf/lib -latf-c $DNS_CRYPTO_LIBS"
3228 AC_CHECK_HEADERS(locale.h)
3229 AC_CHECK_FUNCS(setlocale)
3234 AC_SUBST(BIND9_TOP_BUILDDIR)
3235 BIND9_TOP_BUILDDIR=`pwd`
3237 AC_SUBST(BIND9_ISC_BUILDINCLUDE)
3238 AC_SUBST(BIND9_ISCCC_BUILDINCLUDE)
3239 AC_SUBST(BIND9_ISCCFG_BUILDINCLUDE)
3240 AC_SUBST(BIND9_DNS_BUILDINCLUDE)
3241 AC_SUBST(BIND9_LWRES_BUILDINCLUDE)
3242 AC_SUBST(BIND9_BIND9_BUILDINCLUDE)
3243 if test "X$srcdir" != "X"; then
3244 BIND9_ISC_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/isc/include"
3245 BIND9_ISCCC_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/isccc/include"
3246 BIND9_ISCCFG_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/isccfg/include"
3247 BIND9_DNS_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/dns/include"
3248 BIND9_LWRES_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/lwres/include"
3249 BIND9_BIND9_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/bind9/include"
3251 BIND9_ISC_BUILDINCLUDE=""
3252 BIND9_ISCCC_BUILDINCLUDE=""
3253 BIND9_ISCCFG_BUILDINCLUDE=""
3254 BIND9_DNS_BUILDINCLUDE=""
3255 BIND9_LWRES_BUILDINCLUDE=""
3256 BIND9_BIND9_BUILDINCLUDE=""
3259 AC_SUBST_FILE(BIND9_MAKE_INCLUDES)
3260 BIND9_MAKE_INCLUDES=$BIND9_TOP_BUILDDIR/make/includes
3262 AC_SUBST_FILE(BIND9_MAKE_RULES)
3263 BIND9_MAKE_RULES=$BIND9_TOP_BUILDDIR/make/rules
3266 BIND9_PRODUCT="PRODUCT=\"${PRODUCT}\""
3267 AC_SUBST(BIND9_PRODUCT)
3268 BIND9_DESCRIPTION="DESCRIPTION=\"${DESCRIPTION}\""
3269 AC_SUBST(BIND9_DESCRIPTION)
3270 BIND9_VERSION="VERSION=${MAJORVER}.${MINORVER}${PATCHVER:+.}${PATCHVER}${RELEASETYPE}${RELEASEVER}${EXTENSIONS}"
3271 AC_SUBST(BIND9_VERSION)
3273 BIND9_SRCID="SRCID=unset"
3274 if test -f "${srcdir}/srcid"; then
3276 BIND9_SRCID="SRCID=$SRCID"
3277 elif test -d "${srcdir}/.git"; then
3278 BIND9_SRCID="SRCID="`(cd "${srcdir}";git log -n 1 --format=%h)`
3281 AC_SUBST(BIND9_SRCID)
3283 if test -z "$ac_configure_args"; then
3284 BIND9_CONFIGARGS="defaults"
3286 for a in $ac_configure_args
3288 BIND9_CONFIGARGS="$BIND9_CONFIGARGS $a"
3291 BIND9_CONFIGARGS="`echo $BIND9_CONFIGARGS | sed 's/^ //'`"
3292 BIND9_CONFIGARGS="CONFIGARGS=${BIND9_CONFIGARGS}"
3293 AC_SUBST(BIND9_CONFIGARGS)
3295 AC_SUBST_FILE(LIBISC_API)
3296 LIBISC_API="$srcdir/lib/isc/api"
3298 AC_SUBST_FILE(LIBISCCC_API)
3299 LIBISCCC_API="$srcdir/lib/isccc/api"
3301 AC_SUBST_FILE(LIBISCCFG_API)
3302 LIBISCCFG_API="$srcdir/lib/isccfg/api"
3304 AC_SUBST_FILE(LIBDNS_API)
3305 LIBDNS_API="$srcdir/lib/dns/api"
3307 AC_SUBST_FILE(LIBBIND9_API)
3308 LIBBIND9_API="$srcdir/lib/bind9/api"
3310 AC_SUBST_FILE(LIBLWRES_API)
3311 LIBLWRES_API="$srcdir/lib/lwres/api"
3313 AC_SUBST_FILE(LIBIRS_API)
3314 LIBIRS_API="$srcdir/lib/irs/api"
3317 # Configure any DLZ drivers.
3319 # If config.dlz.in selects one or more DLZ drivers, it will set
3320 # CONTRIB_DLZ to a non-empty value, which will be our clue to
3321 # build DLZ drivers in contrib.
3323 # This section has to come after the libtool stuff because it needs to
3324 # know how to name the driver object files.
3328 DLZ_DRIVER_INCLUDES=""
3335 # Configure support for building a shared library object
3337 # Even when libtool is available it can't always be relied upon
3338 # to build an object that can be dlopen()'ed, but this is necessary
3339 # for building the dlzexternal system test, so we'll try it the
3340 # old-fashioned way.
3348 [ --with-dlopen=ARG Support dynamically loadable DLZ drivers],
3349 dlopen="$withval", dlopen="yes")
3352 *-sunos*) dlopen="no"
3356 if test "$dlopen" = "yes"; then
3357 AC_CHECK_LIB(dl, dlopen, have_dl=yes, have_dl=no)
3358 if test "$have_dl" = "yes"; then
3361 AC_CHECK_FUNCS(dlopen dlclose dlsym,,dlopen=no)
3364 if test "$dlopen" = "yes"; then
3368 if test "$have_dl" = "yes"
3370 if test "$use_libtool" = "yes"; then
3371 SO_LD="${CC} -Xcompiler -shared"
3373 SO_LD="${CC} -shared"
3379 *-freebsd*|*-openbsd*|*-netbsd*)
3381 SO_LD="ld -Bshareable -x"
3385 SO_LD="ld -G -z text"
3397 if test "X$GCC" = "Xyes"; then
3399 test -n "$SO_LD" || SO_LD="${CC} -shared"
3402 # If we still don't know how to make shared objects, don't make any.
3403 if test -n "$SO_LD"; then
3404 SO_TARGETS="\${SO_TARGETS}"
3405 AC_DEFINE(ISC_DLZ_DLOPEN, 1,
3406 [Define to allow building of objects for dlopen().])
3413 AC_SUBST(SO_TARGETS)
3415 sinclude(contrib/dlz/config.dlz.in)
3416 AC_MSG_CHECKING(contributed DLZ drivers)
3418 if test -n "$CONTRIB_DLZ"
3421 DLZ_DRIVER_RULES=contrib/dlz/drivers/rules
3422 AC_CONFIG_FILES([$DLZ_DRIVER_RULES])
3425 DLZ_DRIVER_RULES=/dev/null
3428 AC_SUBST(CONTRIB_DLZ)
3429 AC_SUBST(DLZ_DRIVER_INCLUDES)
3430 AC_SUBST(DLZ_DRIVER_LIBS)
3431 AC_SUBST(DLZ_DRIVER_SRCS)
3432 AC_SUBST(DLZ_DRIVER_OBJS)
3433 AC_SUBST(DLZ_SYSTEM_TEST)
3434 AC_SUBST_FILE(DLZ_DRIVER_RULES)
3436 if test "$cross_compiling" = "yes"; then
3437 if test -z "$BUILD_CC"; then
3438 AC_ERROR([BUILD_CC not set])
3440 BUILD_CFLAGS="$BUILD_CFLAGS"
3441 BUILD_CPPFLAGS="$BUILD_CPPFLAGS"
3442 BUILD_LDFLAGS="$BUILD_LDFLAGS"
3443 BUILD_LIBS="$BUILD_LIBS"
3446 BUILD_CFLAGS="$CFLAGS"
3447 BUILD_CPPFLAGS="$CPPFLAGS $GEN_NEED_OPTARG"
3448 BUILD_LDFLAGS="$LDFLAGS"
3453 for e in $BUILD_LDFLAGS ; do
3458 ee=`echo $e | sed -e 's%^-L%-Wl,-rpath,%'`
3459 NEWFLAGS="$NEWFLAGS $e $ee"
3462 ee=`echo $e | sed -e 's%^-L%-Wl,-rpath,%'`
3463 NEWFLAGS="$NEWFLAGS $e $ee"
3466 ee=`echo $e | sed -e 's%^-L%-R%'`
3467 NEWFLAGS="$NEWFLAGS $e $ee"
3470 NEWFLAGS="$NEWFLAGS $e"
3475 NEWFLAGS="$NEWFLAGS $e"
3479 BUILD_LDFLAGS="$NEWFLAGS"
3482 for e in $DNS_GSSAPI_LIBS ; do
3487 ee=`echo $e | sed -e 's%^-L%-Wl,-rpath,%'`
3488 NEWFLAGS="$NEWFLAGS $e $ee"
3491 ee=`echo $e | sed -e 's%^-L%-Wl,-rpath,%'`
3492 NEWFLAGS="$NEWFLAGS $e $ee"
3495 ee=`echo $e | sed -e 's%^-L%-R%'`
3496 NEWFLAGS="$NEWFLAGS $e $ee"
3499 NEWFLAGS="$NEWFLAGS $e"
3504 NEWFLAGS="$NEWFLAGS $e"
3508 DNS_GSSAPI_LIBS="$NEWFLAGS"
3511 for e in $DNS_CRYPTO_LIBS ; do
3516 ee=`echo $e | sed -e 's%^-L%-Wl,-rpath,%'`
3517 NEWFLAGS="$NEWFLAGS $e $ee"
3520 ee=`echo $e | sed -e 's%^-L%-Wl,-rpath,%'`
3521 NEWFLAGS="$NEWFLAGS $e $ee"
3524 ee=`echo $e | sed -e 's%^-L%-R%'`
3525 NEWFLAGS="$NEWFLAGS $e $ee"
3528 NEWFLAGS="$NEWFLAGS $e"
3533 NEWFLAGS="$NEWFLAGS $e"
3537 DNS_CRYPTO_LIBS="$NEWFLAGS"
3540 AC_SUBST(BUILD_CFLAGS)
3541 AC_SUBST(BUILD_CPPFLAGS)
3542 AC_SUBST(BUILD_LDFLAGS)
3543 AC_SUBST(BUILD_LIBS)
3546 # Commands to run at the end of config.status.
3547 # Don't just put these into configure, it won't work right if somebody
3548 # runs config.status directly (which autoconf allows).
3553 [chmod a+x isc-config.sh doc/doxygen/doxygen-input-filter])
3556 # Files to configure. These are listed here because we used to
3557 # specify them as arguments to AC_OUTPUT. It's (now) ok to move these
3558 # elsewhere if there's a good reason for doing so.
3567 bin/confgen/Makefile
3568 bin/confgen/unix/Makefile
3572 bin/named/unix/Makefile
3573 bin/nsupdate/Makefile
3577 bin/tests/atomic/Makefile
3578 bin/tests/db/Makefile
3579 bin/tests/dst/Makefile
3580 bin/tests/dst/Kdh.+002+18602.key
3581 bin/tests/dst/Kdh.+002+18602.private
3582 bin/tests/dst/Kdh.+002+48957.key
3583 bin/tests/dst/Kdh.+002+48957.private
3584 bin/tests/dst/Ktest.+001+00002.key
3585 bin/tests/dst/Ktest.+001+54622.key
3586 bin/tests/dst/Ktest.+001+54622.private
3587 bin/tests/dst/Ktest.+003+23616.key
3588 bin/tests/dst/Ktest.+003+23616.private
3589 bin/tests/dst/Ktest.+003+49667.key
3590 bin/tests/dst/dst_2_data
3591 bin/tests/dst/t2_data_1
3592 bin/tests/dst/t2_data_2
3593 bin/tests/dst/t2_dsasig
3594 bin/tests/dst/t2_rsasig
3595 bin/tests/hashes/Makefile
3596 bin/tests/headerdep_test.sh
3597 bin/tests/master/Makefile
3598 bin/tests/mem/Makefile
3599 bin/tests/names/Makefile
3600 bin/tests/net/Makefile
3601 bin/tests/rbt/Makefile
3602 bin/tests/resolver/Makefile
3603 bin/tests/sockaddr/Makefile
3604 bin/tests/system/Makefile
3605 bin/tests/system/conf.sh
3606 bin/tests/system/dlz/prereq.sh
3607 bin/tests/system/dlzexternal/Makefile
3608 bin/tests/system/dlzexternal/ns1/named.conf
3609 bin/tests/system/ecdsa/prereq.sh
3610 bin/tests/system/filter-aaaa/Makefile
3611 bin/tests/system/gost/prereq.sh
3612 bin/tests/system/lwresd/Makefile
3613 bin/tests/system/rpz/Makefile
3614 bin/tests/system/tkey/Makefile
3615 bin/tests/system/tsiggss/Makefile
3616 bin/tests/tasks/Makefile
3617 bin/tests/timers/Makefile
3618 bin/tests/virtual-time/Makefile
3619 bin/tests/virtual-time/conf.sh
3621 contrib/check-secure-delegation.pl
3622 contrib/zone-edit.sh
3625 doc/doxygen/Doxyfile
3626 doc/doxygen/Makefile
3627 doc/doxygen/doxygen-input-filter
3630 doc/xsl/isc-docbook-chunk.xsl
3631 doc/xsl/isc-docbook-html.xsl
3632 doc/xsl/isc-docbook-latex.xsl
3633 doc/xsl/isc-manpage.xsl
3637 lib/bind9/include/Makefile
3638 lib/bind9/include/bind9/Makefile
3640 lib/dns/include/Makefile
3641 lib/dns/include/dns/Makefile
3642 lib/dns/include/dst/Makefile
3643 lib/dns/tests/Makefile
3645 lib/export/dns/Makefile
3646 lib/export/dns/include/Makefile
3647 lib/export/dns/include/dns/Makefile
3648 lib/export/dns/include/dst/Makefile
3649 lib/export/irs/Makefile
3650 lib/export/irs/include/Makefile
3651 lib/export/irs/include/irs/Makefile
3652 lib/export/isc/$thread_dir/Makefile
3653 lib/export/isc/$thread_dir/include/Makefile
3654 lib/export/isc/$thread_dir/include/isc/Makefile
3655 lib/export/isc/Makefile
3656 lib/export/isc/include/Makefile
3657 lib/export/isc/include/isc/Makefile
3658 lib/export/isc/nls/Makefile
3659 lib/export/isc/unix/Makefile
3660 lib/export/isc/unix/include/Makefile
3661 lib/export/isc/unix/include/isc/Makefile
3662 lib/export/isccfg/Makefile
3663 lib/export/isccfg/include/Makefile
3664 lib/export/isccfg/include/isccfg/Makefile
3665 lib/export/samples/Makefile
3666 lib/export/samples/Makefile-postinstall
3668 lib/irs/include/Makefile
3669 lib/irs/include/irs/Makefile
3670 lib/irs/include/irs/netdb.h
3671 lib/irs/include/irs/platform.h
3672 lib/isc/$arch/Makefile
3673 lib/isc/$arch/include/Makefile
3674 lib/isc/$arch/include/isc/Makefile
3675 lib/isc/$thread_dir/Makefile
3676 lib/isc/$thread_dir/include/Makefile
3677 lib/isc/$thread_dir/include/isc/Makefile
3679 lib/isc/include/Makefile
3680 lib/isc/include/isc/Makefile
3681 lib/isc/include/isc/platform.h
3682 lib/isc/tests/Makefile
3683 lib/isc/nls/Makefile
3684 lib/isc/unix/Makefile
3685 lib/isc/unix/include/Makefile
3686 lib/isc/unix/include/isc/Makefile
3688 lib/isccc/include/Makefile
3689 lib/isccc/include/isccc/Makefile
3691 lib/isccfg/include/Makefile
3692 lib/isccfg/include/isccfg/Makefile
3694 lib/lwres/include/Makefile
3695 lib/lwres/include/lwres/Makefile
3696 lib/lwres/include/lwres/netdb.h
3697 lib/lwres/include/lwres/platform.h
3698 lib/lwres/man/Makefile
3699 lib/lwres/unix/Makefile
3700 lib/lwres/unix/include/Makefile
3701 lib/lwres/unix/include/lwres/Makefile
3703 lib/tests/include/Makefile
3704 lib/tests/include/tests/Makefile
3716 # Now that the Makefiles exist we can ensure that everything is rebuilt.
3718 AC_ARG_WITH(make-clean,
3719 [ --with-make-clean Run "make clean" at end of configure [[yes|no]].],
3720 make_clean="$withval", make_clean="yes")
3721 case "$make_clean" in
3727 AC_ARG_ENABLE(full-report,
3728 [ --enable-full-report report values of all configure options])
3730 echo "========================================================================"
3731 echo "Configuration summary:"
3732 echo "------------------------------------------------------------------------"
3733 echo "Optional features enabled:"
3734 $use_threads && echo " Multiprocessing support (--enable-threads)"
3736 test "$use_gssapi" = "no" || echo " GSS-API (--with-gssapi)"
3737 test "$use_pkcs11" = "no" || echo " PKCS#11/Cryptoki support (--with-pkcs11)"
3738 test "$enable_fixed" = "yes" && \
3739 echo " Allow 'fixed' rrset-order (--enable-fixed-rrset)"
3740 test "$enable_filter" = "yes" && \
3741 echo " AAAA filtering (--enable-filter-aaaa)"
3742 test "$want_backtrace" = "yes" && \
3743 echo " Print backtrace on crash (--enable-backtrace)"
3744 test "$want_symtable" = "minimal" && \
3745 echo " Use symbol table for backtrace, named only (--enable-symtable)"
3746 test "$want_symtable" = "yes" -o "$want_symtable" = "all" && \
3747 echo " Use symbol table for backtrace, all binaries (--enable-symtable=all)"
3748 test "$atf" = "no" || echo " Automated Testing Framework (--with-atf)"
3750 # these lines are only printed if run with --enable-full-report
3751 if test "$enable_full_report" = "yes"; then
3752 test "$enable_ipv6" = "no" -o "$found_ipv6" = "no" || \
3753 echo " IPv6 support (--enable-ipv6)"
3754 test "X$USE_OPENSSL" = "X" || \
3755 echo " OpenSSL cryptography/DNSSEC (--with-openssl)"
3756 test "$OPENSSL_GOST" != "yes" || \
3757 echo " GOST algorithm support (--with-gost)"
3758 test "$OPENSSL_ECDSA" != "yes" || \
3759 echo " ECDSA algorithm support (--with-ecdsa)"
3760 test "X$libxml2_libs" = "X" || echo " XML statistics (--with-libxml2)"
3763 echo " Dynamically loadable zone (DLZ) drivers:"
3764 test "$use_dlz_bdb" = "no" || \
3765 echo " Berkeley DB (--with-dlz-bdb)"
3766 test "$use_dlz_ldap" = "no" || \
3767 echo " LDAP (--with-dlz-ldap)"
3768 test "$use_dlz_mysql" = "no" || \
3769 echo " MySQL (--with-dlz-mysql)"
3770 test "$use_dlz_odbc" = "no" || \
3771 echo " ODBC (--with-dlz-bdb)"
3772 test "$use_dlz_postgres" = "no" || \
3773 echo " Postgres (--with-dlz-postgres)"
3774 test "$use_dlz_filesystem" = "no" || \
3775 echo " Filesystem (--with-dlz-filesystem)"
3776 test "$use_dlz_stub" = "no" || \
3777 echo " Stub (--with-dlz-stub)"
3778 test "$use_dlz_bdb $use_dlz_ldap $use_dlz_mysql $use_dlz_odbc $use_dlz_postgres $use_dlz_filesystem $use_dlz_stub" = "no no no no no no no" && echo " None"
3781 echo "Features disabled or unavailable on this platform:"
3782 $use_threads || echo " Multiprocessing support (--enable-threads)"
3783 test "$enable_ipv6" = "no" -o "$found_ipv6" = "no" && \
3784 echo " IPv6 support (--enable-ipv6)"
3785 test "$use_gssapi" = "no" && echo " GSS-API (--with-gssapi)"
3786 test "$use_pkcs11" = "no" && echo " PKCS#11/Cryptoki support (--with-pkcs11)"
3787 test "$enable_fixed" = "yes" || \
3788 echo " Allow 'fixed' rrset-order (--enable-fixed-rrset)"
3789 test "$want_backtrace" = "yes" || \
3790 echo " Print backtrace on crash (--enable-backtrace)"
3791 test "$atf" = "no" && echo " Automated Testing Framework (--with-atf)"
3792 test "X$USE_OPENSSL" = "X" && \
3793 echo " OpenSSL cryptography/DNSSEC (--with-openssl)"
3794 test "X$USE_OPENSSL" != "X" -a "$OPENSSL_GOST" != "yes" && \
3795 echo " GOST algorithm support (--with-gost)"
3796 test "X$USE_OPENSSL" != "X" -a "$OPENSSL_ECDSA" != "yes" && \
3797 echo " ECDSA algorithm support (--with-ecdsa)"
3798 test "X$libxml2_libs" = "X" && echo " XML statistics (--with-libxml2)"
3800 echo "========================================================================"
3802 if test "X$USE_OPENSSL" = "X"; then
3804 BIND is being built without OpenSSL. This means it will not have DNSSEC support.
3808 if test "X$OPENSSL_WARNING" != "X"; then
3810 WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
3811 WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
3813 WARNING Your OpenSSL crypto library may be vulnerable to WARNING
3814 WARNING one or more of the the following known security WARNING
3815 WARNING flaws: WARNING
3817 WARNING CAN-2002-0659, CAN-2006-4339, CVE-2006-2937 and WARNING
3818 WARNING CVE-2006-2940. WARNING
3820 WARNING It is recommended that you upgrade to OpenSSL WARNING
3821 WARNING version 0.9.8d/0.9.7l (or greater). WARNING
3823 WARNING You can disable this warning by specifying: WARNING
3825 WARNING --disable-openssl-version-check WARNING
3827 WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
3828 WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
3832 # Tell Emacs to edit this file in shell mode.