1 # Copyright (C) 2004-2013 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 "s/^/# /" COPYRIGHT])dnl
21 AC_REVISION($Revision: 1.533 $)
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)
54 # Warn if the user specified libbind, which is now deprecated
55 AC_ARG_ENABLE(libbind, [ --enable-libbind deprecated])
57 case "$enable_libbind" in
59 AC_MSG_ERROR(['libbind' is no longer part of the BIND 9 distribution.
60 It is available from http://www.isc.org as a separate download.])
66 AC_ARG_ENABLE(developer, [ --enable-developer enable developer build settings])
67 case "$enable_developer" in
69 STD_CDEFINES="$STD_CDEFINES -DISC_LIST_CHECKINIT=1"
70 test "${enable_fixed_rrset+set}" = set || enable_fixed_rrset=yes
71 test "${with_atf+set}" = set || with_atf=yes
72 test "${enable_filter_aaaa+set}" = set || enable_filter_aaaa=yes
73 test "${with_dlz_filesystem+set}" = set || with_dlz_filesystem=yes
76 test "${enable_exportlib+set}" = set || enable_exportlib=yes
79 test "${enable_exportlib+set}" = set || enable_exportlib=yes
85 # Make very sure that these are the first files processed by
86 # config.status, since we use the processed output as the input for
87 # AC_SUBST_FILE() substitutions in other files.
89 AC_CONFIG_FILES([make/rules make/includes])
96 # The POSIX ln(1) program. Non-POSIX systems may substitute
97 # "copy" or something.
104 ar program not found. Please fix your PATH to include the directory in
105 which ar resides, or set AR in the environment with the full path to ar.
114 AC_PATH_PROGS(ETAGS, etags emacs-etags)
117 # Some systems, e.g. RH7, have the Exuberant Ctags etags instead of
118 # GNU emacs etags, and it requires the -L flag.
120 if test "X$ETAGS" != "X"; then
121 AC_MSG_CHECKING(for Exuberant Ctags etags)
122 if $ETAGS --version 2>&1 | grep 'Exuberant Ctags' >/dev/null 2>&1; then
132 # Perl is optional; it is used only by some of the system test scripts.
133 # Note: the backtrace feature (see below) uses perl to build the symbol table,
134 # but it still compiles without perl, in which case an empty table will be used.
136 AC_PATH_PROGS(PERL, perl5 perl)
140 # Python is also optional; it is used by the tools in bin/python.
141 # If python is unavailable, we simply don't build those.
144 [ --with-python=PATH Specify path to python interpreter],
145 use_python="$withval", use_python="unspec")
147 case "$use_python" in
149 AC_MSG_RESULT(disabled)
152 case "$use_python" in
154 AC_PATH_PROGS(PYTHON, python)
157 AC_PATH_PROGS(PYTHON, $use_python)
160 if test "X$PYTHON" == "X"
162 case "$use_python" in
164 AC_MSG_RESULT(disabled)
167 AC_MSG_ERROR([missing python])
172 testscript='try: import argparse
174 AC_MSG_CHECKING([python module 'argparse'])
175 if $PYTHON -c "$testscript"; then
176 AC_MSG_RESULT([found, using $PYTHON])
178 case "$use_python" in
183 AC_MSG_RESULT([not found, python disabled])
186 AC_MSG_RESULT([no found])
187 AC_MSG_ERROR([python 'argparse' module not supported])
197 if test "X$PYTHON" != "X"; then
204 AC_SUBST(PYTHON_TOOLS)
207 # Special processing of paths depending on whether --prefix,
208 # --sysconfdir or --localstatedir arguments were given. What's
209 # desired is some compatibility with the way previous versions
210 # of BIND built; they defaulted to /usr/local for most parts of
211 # the installation, but named.boot/named.conf was in /etc
212 # and named.pid was in /var/run.
214 # So ... if none of --prefix, --sysconfdir or --localstatedir are
215 # specified, set things up that way. If --prefix is given, use
216 # it for sysconfdir and localstatedir the way configure normally
217 # would. To change the prefix for everything but leave named.conf
218 # in /etc or named.pid in /var/run, then do this the usual configure way:
219 # ./configure --prefix=/somewhere --sysconfdir=/etc
220 # ./configure --prefix=/somewhere --localstatedir=/var
222 # To put named.conf and named.pid in /usr/local with everything else,
223 # set the prefix explicitly to /usr/local even though that's the default:
224 # ./configure --prefix=/usr/local
228 case "$sysconfdir" in
233 case "$localstatedir" in
242 # Make sure INSTALL uses an absolute path, else it will be wrong in all
243 # Makefiles, since they use make/rules.in and INSTALL will be adjusted by
244 # configure based on the location of the file where it is substituted.
245 # Since in BIND9 INSTALL is only substituted into make/rules.in, an immediate
246 # subdirectory of install-sh, This relative path will be wrong for all
247 # directories more than one level down from install-sh.
254 # Not all systems have dirname.
257 ac_dir="`echo $INSTALL | sed 's%/[^/]*$%%'`"
260 ac_prog="`echo $INSTALL | sed 's%.*/%%'`"
261 test "$ac_dir" = "$ac_prog" && ac_dir=.
262 test -d "$ac_dir" && ac_dir="`(cd \"$ac_dir\" && pwd)`"
263 INSTALL="$ac_dir/$ac_prog"
268 # On these hosts, we really want to use cc, not gcc, even if it is
269 # found. The gcc that these systems have will not correctly handle
272 # However, if the user sets $CC to be something, let that override
275 if test "X$CC" = "X" ; then
281 # Use Sun's cc if it is available, but watch
282 # out for /usr/ucb/cc; it will never be the right
285 # If setting CC here fails, the AC_PROG_CC done
286 # below might still find gcc.
287 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
288 for ac_dir in $PATH; do
289 test -z "$ac_dir" && ac_dir=.
295 if test -f "$ac_dir/cc"; then
316 # gcc's optimiser is broken at -02 for ultrasparc
318 if test "$ac_env_CFLAGS_set" != set -a "X$GCC" = "Xyes"; then
327 # OS dependent CC flags
330 # OSF 5.0: recv/send are only available with -D_POSIX_PII_SOCKET or
331 # -D_XOPEN_SOURCE_EXTENDED.
333 STD_CDEFINES="$STD_CDEFINES -D_POSIX_PII_SOCKET"
334 CPPFLAGS="$CPPFLAGS -D_POSIX_PII_SOCKET"
336 #HP-UX: need -D_XOPEN_SOURCE_EXTENDED and -lxnet for CMSG macros
338 STD_CDEFINES="$STD_CDEFINES -D_XOPEN_SOURCE_EXTENDED"
339 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
342 # Solaris: need -D_XPG4_2 and -D__EXTENSIONS__ for CMSG macros
344 STD_CDEFINES="$STD_CDEFINES -D_XPG4_2 -D__EXTENSIONS__"
345 CPPFLAGS="$CPPFLAGS -D_XPG4_2 -D__EXTENSIONS__"
347 # POSIX doesn't include the IPv6 Advanced Socket API and glibc hides
348 # parts of the IPv6 Advanced Socket API as a result. This is stupid
349 # as it breaks how the two halves (Basic and Advanced) of the IPv6
350 # Socket API were designed to be used but we have to live with it.
351 # Define _GNU_SOURCE to pull in the IPv6 Advanced Socket API.
352 *-linux* | *-kfreebsd*-gnu)
353 STD_CDEFINES="$STD_CDEFINES -D_GNU_SOURCE"
354 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
357 # Starting with OSX 10.7 (Lion) we must choose which IPv6 API to use.
358 # Setting this is sufficient to select the correct behavior for BIND 9.
361 STD_CDEFINES="$STD_CDEFINES -D__APPLE_USE_RFC_3542"
362 CPPFLAGS="$CPPFLAGS -D__APPLE_USE_RFC_3542"
368 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,,,
369 [$ac_includes_default
370 #ifdef HAVE_SYS_PARAM_H
371 # include <sys/param.h>
378 AC_CHECK_FUNC(sysctlbyname, AC_DEFINE(HAVE_SYSCTLBYNAME))
379 AC_C_FLEXIBLE_ARRAY_MEMBER
382 # Older versions of HP/UX don't define seteuid() and setegid()
384 AC_CHECK_FUNCS(seteuid setresuid)
385 AC_CHECK_FUNCS(setegid setresgid)
388 # UnixWare 7.1.1 with the feature supplement to the UDK compiler
389 # is reported to not support "static inline" (RT #1212).
391 AC_MSG_CHECKING(for static inline breakage)
393 static inline int foo1() {
397 static inline int foo2() {
403 AC_DEFINE(inline, ,[Define to empty if your compiler does not support "static inline".])])
406 AC_CHECK_TYPE(ssize_t, int)
407 AC_CHECK_TYPE(uintptr_t,unsigned long)
408 AC_CHECK_TYPE(socklen_t,
409 [AC_DEFINE(ISC_SOCKADDR_LEN_T, socklen_t)],
413 #include <sys/types.h>
414 #include <sys/socket.h>
415 int getsockname(int, struct sockaddr *, size_t *);
417 [AC_DEFINE(ISC_SOCKADDR_LEN_T, size_t)],
418 [AC_DEFINE(ISC_SOCKADDR_LEN_T, int)])
421 #include <sys/types.h>
422 #include <sys/socket.h>
424 AC_SUBST(ISC_SOCKADDR_LEN_T)
426 AC_MSG_CHECKING(for long long)
427 AC_TRY_COMPILE([],[long long i = 0; return (0);],
429 ISC_PLATFORM_HAVELONGLONG="#define ISC_PLATFORM_HAVELONGLONG 1"],
431 ISC_PLATFORM_HAVELONGLONG="#undef ISC_PLATFORM_HAVELONGLONG"])
432 AC_SUBST(ISC_PLATFORM_HAVELONGLONG)
435 # check for GCC noreturn attribute
437 AC_MSG_CHECKING(for GCC noreturn attribute)
438 AC_TRY_COMPILE([],[void foo() __attribute__((noreturn));],
440 ISC_PLATFORM_NORETURN_PRE="#define ISC_PLATFORM_NORETURN_PRE"
441 ISC_PLATFORM_NORETURN_POST="#define ISC_PLATFORM_NORETURN_POST __attribute__((noreturn))"],
443 ISC_PLATFORM_NORETURN_PRE="#define ISC_PLATFORM_NORETURN_PRE"
444 ISC_PLATFORM_NORETURN_POST="#define ISC_PLATFORM_NORETURN_POST"])
445 AC_SUBST(ISC_PLATFORM_NORETURN_PRE)
446 AC_SUBST(ISC_PLATFORM_NORETURN_POST)
449 # check if we have lifconf
451 AC_MSG_CHECKING(for struct lifconf)
453 #include <sys/types.h>
454 #include <sys/socket.h>
458 struct lifconf lifconf;
459 lifconf.lifc_len = 0;
463 ISC_PLATFORM_HAVELIFCONF="#define ISC_PLATFORM_HAVELIFCONF 1"],
465 ISC_PLATFORM_HAVELIFCONF="#undef ISC_PLATFORM_HAVELIFCONF"])
466 AC_SUBST(ISC_PLATFORM_HAVELIFCONF)
469 # check if we want the new statistics
471 AC_ARG_ENABLE(newstats,
472 [ --enable-newstats use the new statistics])
473 case "$enable_newstats" in
475 AC_DEFINE(NEWSTATS, 1, [Use the new XML schema for statistics])
482 # check if we have kqueue
484 AC_ARG_ENABLE(kqueue,
485 [ --enable-kqueue use BSD kqueue when available [[default=yes]]],
486 want_kqueue="$enableval", want_kqueue="yes")
489 AC_CHECK_FUNC(kqueue, ac_cv_have_kqueue=yes, ac_cv_have_kqueue=no)
490 case $ac_cv_have_kqueue in
492 ISC_PLATFORM_HAVEKQUEUE="#define ISC_PLATFORM_HAVEKQUEUE 1"
495 ISC_PLATFORM_HAVEKQUEUE="#undef ISC_PLATFORM_HAVEKQUEUE"
500 ISC_PLATFORM_HAVEKQUEUE="#undef ISC_PLATFORM_HAVEKQUEUE"
503 AC_SUBST(ISC_PLATFORM_HAVEKQUEUE)
506 # check if we have epoll. Linux kernel 2.4 has epoll_create() which fails,
507 # so we need to try running the code, not just test its existence.
510 [ --enable-epoll use Linux epoll when available [[default=auto]]],
511 want_epoll="$enableval", want_epoll="auto")
514 AC_MSG_CHECKING(epoll support)
516 #include <sys/epoll.h>
518 if (epoll_create(1) < 0)
524 ISC_PLATFORM_HAVEEPOLL="#define ISC_PLATFORM_HAVEEPOLL 1"],
526 ISC_PLATFORM_HAVEEPOLL="#undef ISC_PLATFORM_HAVEEPOLL"],
528 ISC_PLATFORM_HAVEEPOLL="#undef ISC_PLATFORM_HAVEEPOLL"])
531 ISC_PLATFORM_HAVEEPOLL="#define ISC_PLATFORM_HAVEEPOLL 1"
534 ISC_PLATFORM_HAVEEPOLL="#undef ISC_PLATFORM_HAVEEPOLL"
537 AC_SUBST(ISC_PLATFORM_HAVEEPOLL)
540 # check if we support /dev/poll
542 AC_ARG_ENABLE(devpoll,
543 [ --enable-devpoll use /dev/poll when available [[default=yes]]],
544 want_devpoll="$enableval", want_devpoll="yes")
545 case $want_devpoll in
547 AC_CHECK_HEADERS(sys/devpoll.h devpoll.h,
548 ISC_PLATFORM_HAVEDEVPOLL="#define ISC_PLATFORM_HAVEDEVPOLL 1"
550 ISC_PLATFORM_HAVEDEVPOLL="#undef ISC_PLATFORM_HAVEDEVPOLL"
554 ISC_PLATFORM_HAVEDEVPOLL="#undef ISC_PLATFORM_HAVEDEVPOLL"
557 AC_SUBST(ISC_PLATFORM_HAVEDEVPOLL)
560 # check if we need to #include sys/select.h explicitly
562 case $ac_cv_header_unistd_h in
564 AC_MSG_CHECKING(if unistd.h or sys/types.h defines fd_set)
566 #include <sys/types.h> /* Ultrix */
567 #include <unistd.h>],
568 [fd_set read_set; return (0);],
570 ISC_PLATFORM_NEEDSYSSELECTH="#undef ISC_PLATFORM_NEEDSYSSELECTH"
571 LWRES_PLATFORM_NEEDSYSSELECTH="#undef LWRES_PLATFORM_NEEDSYSSELECTH"],
573 case $ac_cv_header_sys_select_h in
575 ISC_PLATFORM_NEEDSYSSELECTH="#define ISC_PLATFORM_NEEDSYSSELECTH 1"
576 LWRES_PLATFORM_NEEDSYSSELECTH="#define LWRES_PLATFORM_NEEDSYSSELECTH 1"
579 AC_MSG_ERROR([need either working unistd.h or sys/select.h])
585 case $ac_cv_header_sys_select_h in
587 ISC_PLATFORM_NEEDSYSSELECTH="#define ISC_PLATFORM_NEEDSYSSELECTH 1"
588 LWRES_PLATFORM_NEEDSYSSELECTH="#define LWRES_PLATFORM_NEEDSYSSELECTH 1"
591 AC_MSG_ERROR([need either unistd.h or sys/select.h])
596 AC_SUBST(ISC_PLATFORM_NEEDSYSSELECTH)
597 AC_SUBST(LWRES_PLATFORM_NEEDSYSSELECTH)
600 # Find the machine's endian flavor.
605 # was --with-openssl specified?
608 AC_MSG_CHECKING(for OpenSSL library)
610 [ --with-openssl[=PATH] Build with OpenSSL [yes|no|path].
611 (Required for DNSSEC)],
612 use_openssl="$withval", use_openssl="auto")
614 openssldirs="/usr /usr/local /usr/local/ssl /usr/pkg /usr/sfw"
615 if test "$use_openssl" = "auto"
617 for d in $openssldirs
619 if test -f $d/include/openssl/opensslv.h
628 case "$use_openssl" in
633 OPENSSLGOSTLINKOBJS=""
634 OPENSSLGOSTLINKSRS=""
641 OPENSSLGOSTLINKOBJS=""
642 OPENSSLGOSTLINKSRS=""
646 [OpenSSL was not found in any of $openssldirs; use --with-openssl=/path
647 If you don't want OpenSSL, use --without-openssl])
650 if test "$use_openssl" = "yes"
652 # User did not specify a path - guess it
653 for d in $openssldirs
655 if test -f $d/include/openssl/opensslv.h
661 if test "$use_openssl" = "yes"
663 AC_MSG_RESULT(not found)
665 [OpenSSL was not found in any of $openssldirs; use --with-openssl=/path])
667 elif ! test -f "$use_openssl"/include/openssl/opensslv.h
669 AC_MSG_ERROR(["$use_openssl/include/openssl/opensslv.h" not found])
671 USE_OPENSSL='-DOPENSSL'
672 if test "$use_openssl" = "/usr"
675 DNS_OPENSSL_LIBS="-lcrypto"
677 DST_OPENSSL_INC="-I$use_openssl/include"
680 DNS_OPENSSL_LIBS="-L$use_openssl/lib -R$use_openssl/lib -lcrypto"
683 DNS_OPENSSL_LIBS="-L$use_openssl/lib -Wl,+b: -lcrypto"
687 # Apple's ld seaches for serially for dynamic
688 # then static libraries. This means you can't
689 # use -L to override dynamic system libraries
690 # with static ones when linking. Instead
691 # we specify a absolute path.
693 if test -f "$use_openssl/lib/libcrypto.dylib"
695 DNS_OPENSSL_LIBS="-L$use_openssl/lib -lcrypto"
697 DNS_OPENSSL_LIBS="$use_openssl/lib/libcrypto.a"
701 DNS_OPENSSL_LIBS="-L$use_openssl/lib -lcrypto"
705 AC_MSG_RESULT(using OpenSSL from $use_openssl/lib and $use_openssl/include)
707 saved_cflags="$CFLAGS"
709 CFLAGS="$CFLAGS $DST_OPENSSL_INC"
710 LIBS="$LIBS $DNS_OPENSSL_LIBS"
711 AC_MSG_CHECKING(whether linking with OpenSSL works)
713 #include <openssl/err.h>
719 [AC_MSG_RESULT(yes)],
721 AC_MSG_ERROR(Could not run test program using OpenSSL from
722 $use_openssl/lib and $use_openssl/include.
723 Please check the argument to --with-openssl and your
724 shared library configuration (e.g., LD_LIBRARY_PATH).)],
725 [AC_MSG_RESULT(assuming it does work on target platform)])
727 AC_MSG_CHECKING(whether linking with OpenSSL requires -ldl)
729 #include <openssl/err.h>],
730 [ DSO_METHOD_dlfcn(); ],
734 #include <openssl/err.h>
735 ],[ DSO_METHOD_dlfcn(); ],
737 DNS_OPENSSL_LIBS="$DNS_OPENSSL_LIBS -ldl"
739 [AC_MSG_RESULT(unknown)
740 AC_MSG_ERROR(OpenSSL has unsupported dynamic loading)],
741 [AC_MSG_RESULT(assuming it does work on target platform)])
743 [AC_MSG_RESULT(assuming it does work on target platform)]
746 AC_ARG_ENABLE(openssl-version-check,
747 [AC_HELP_STRING([--enable-openssl-version-check],
748 [Check OpenSSL Version @<:@default=yes@:>@])])
749 case "$enable_openssl_version_check" in
751 AC_MSG_CHECKING(OpenSSL library version)
754 #include <openssl/opensslv.h>
756 if ((OPENSSL_VERSION_NUMBER >= 0x009070cfL &&
757 OPENSSL_VERSION_NUMBER < 0x00908000L) ||
758 OPENSSL_VERSION_NUMBER >= 0x0090804fL)
760 printf("\n\nFound OPENSSL_VERSION_NUMBER %#010x\n",
761 OPENSSL_VERSION_NUMBER);
762 printf("Require OPENSSL_VERSION_NUMBER 0x009070cf or greater (0.9.7l)\n"
763 "Require OPENSSL_VERSION_NUMBER 0x0090804f or greater (0.9.8d)\n\n");
768 [AC_MSG_RESULT(not compatible)
771 [AC_MSG_RESULT(assuming target platform has compatible version)])
774 AC_MSG_RESULT(Skipped OpenSSL version check)
778 AC_MSG_CHECKING(for OpenSSL DSA support)
779 if test -f $use_openssl/include/openssl/dsa.h
781 AC_DEFINE(HAVE_OPENSSL_DSA)
787 AC_CHECK_FUNCS(EVP_sha256 EVP_sha384 EVP_sha512)
789 AC_MSG_CHECKING(for OpenSSL ECDSA support)
793 #include <openssl/ecdsa.h>
794 #include <openssl/objects.h>
796 EC_KEY *ec256, *ec384;
798 #if !defined(HAVE_EVP_SHA256) || !defined(HAVE_EVP_SHA384)
801 ec256 = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
802 ec384 = EC_KEY_new_by_curve_name(NID_secp384r1);
803 if (ec256 == NULL || ec384 == NULL)
812 [AC_MSG_RESULT(using --with-ecdsa)])
813 AC_ARG_WITH(ecdsa, [ --with-ecdsa OpenSSL ECDSA],
814 with_ecdsa="$withval", with_ecdsa="auto")
815 case "$with_ecdsa" in
817 case "$have_ecdsa" in
818 no) AC_MSG_ERROR([ecdsa not supported]) ;;
825 case "$have_ecdsa" in
827 *) AC_MSG_ERROR([need --with-ecdsa=[[yes or no]]]) ;;
834 AC_DEFINE(HAVE_OPENSSL_ECDSA, 1,
835 [Define if your OpenSSL version supports ECDSA.])
841 AC_MSG_CHECKING(for OpenSSL GOST support)
844 #include <openssl/conf.h>
845 #include <openssl/engine.h>
847 #if (OPENSSL_VERSION_NUMBER >= 0x10000000L)
852 OPENSSL_config(NULL);
854 e = ENGINE_by_id("gost");
857 if (ENGINE_init(e) <= 0)
869 [AC_MSG_RESULT(using --with-gost)])
870 AC_ARG_WITH(gost, [ --with-gost OpenSSL GOST],
871 with_gost="$withval", with_gost="auto")
875 no) AC_MSG_ERROR([gost not supported]) ;;
884 *) AC_MSG_ERROR([need --with-gost=[[yes or no]]]) ;;
891 OPENSSLGOSTLINKOBJS='${OPENSSLGOSTLINKOBJS}'
892 OPENSSLGOSTLINKSRCS='${OPENSSLGOSTLINKSRCS}'
893 AC_DEFINE(HAVE_OPENSSL_GOST, 1,
894 [Define if your OpenSSL version supports GOST.])
899 CFLAGS="$saved_cflags"
901 OPENSSLLINKOBJS='${OPENSSLLINKOBJS}'
902 OPENSSLLINKSRCS='${OPENSSLLINKSRCS}'
908 # This would include the system openssl path (and linker options to use
909 # it as needed) if it is found.
912 AC_SUBST(USE_OPENSSL)
913 AC_SUBST(DST_OPENSSL_INC)
914 AC_SUBST(OPENSSLGOSTLINKOBJS)
915 AC_SUBST(OPENSSLGOSTLINKSRCS)
916 AC_SUBST(OPENSSLLINKOBJS)
917 AC_SUBST(OPENSSLLINKSRCS)
918 AC_SUBST(OPENSSL_ECDSA)
919 AC_SUBST(OPENSSL_GOST)
921 DNS_CRYPTO_LIBS="$DNS_CRYPTO_LIBS $DNS_OPENSSL_LIBS"
924 # Use OpenSSL for hash functions
927 AC_ARG_ENABLE(openssl-hash,
928 [ --enable-openssl-hash use OpenSSL for hash functions [[default=no]]],
929 want_openssl_hash="$enableval", want_openssl_hash="no")
930 case $want_openssl_hash in
932 if test "$USE_OPENSSL" = ""
934 AC_MSG_ERROR([No OpenSSL for hash functions])
936 ISC_PLATFORM_OPENSSLHASH="#define ISC_PLATFORM_OPENSSLHASH 1"
937 ISC_OPENSSL_INC="$DST_OPENSSL_INC"
940 ISC_PLATFORM_OPENSSLHASH="#undef ISC_PLATFORM_OPENSSLHASH"
944 AC_SUBST(ISC_PLATFORM_OPENSSLHASH)
945 AC_SUBST(ISC_OPENSSL_INC)
948 # PKCS11 (aka crypto hardware) support
950 # This works only with the right OpenSSL with PKCS11 engine!
953 AC_MSG_CHECKING(for PKCS11 support)
955 [ --with-pkcs11[=PATH] Build with PKCS11 support [yes|no|path]
956 (PATH is for the PKCS11 provider)],
957 use_pkcs11="$withval", use_pkcs11="no")
959 case "$use_pkcs11" in
961 AC_MSG_RESULT(disabled)
966 AC_MSG_RESULT(using OpenSSL with PKCS11 support)
967 USE_PKCS11='-DUSE_PKCS11'
972 AC_SUBST(PKCS11_TOOLS)
974 AC_MSG_CHECKING(for PKCS11 tools)
975 case "$use_pkcs11" in
977 AC_MSG_RESULT(disabled)
978 PKCS11_PROVIDER="undefined"
981 AC_MSG_RESULT(PKCS11 provider is "$use_pkcs11")
982 PKCS11_PROVIDER="$use_pkcs11"
985 AC_SUBST(PKCS11_PROVIDER)
987 AC_MSG_CHECKING(for GSSAPI library)
989 [ --with-gssapi=PATH Specify path for system-supplied GSSAPI [[default=yes]]],
990 use_gssapi="$withval", use_gssapi="yes")
992 # gssapi is just the framework, we really require kerberos v5, so
993 # look for those headers (the gssapi headers must be there, too)
994 # The problem with this implementation is that it doesn't allow
995 # for the specification of gssapi and krb5 headers in different locations,
996 # which probably ought to be fixed although fixing might raise the issue of
997 # trying to build with incompatible versions of gssapi and krb5.
998 if test "$use_gssapi" = "yes"
1000 # first, deal with the obvious
1001 if test \( -f /usr/include/kerberosv5/krb5.h -o \
1002 -f /usr/include/krb5/krb5.h -o \
1003 -f /usr/include/krb5.h \) -a \
1004 \( -f /usr/include/gssapi.h -o \
1005 -f /usr/include/gssapi/gssapi.h \)
1009 krb5dirs="/usr/local /usr/local/krb5 /usr/local/kerberosv5 /usr/local/kerberos /usr/pkg /usr/krb5 /usr/kerberosv5 /usr/kerberos /usr"
1012 if test -f $d/include/gssapi/gssapi_krb5.h -o \
1013 -f $d/include/krb5.h
1015 if test -f $d/include/gssapi/gssapi.h -o \
1016 -f $d/include/gssapi.h
1027 case "$use_gssapi" in
1029 AC_MSG_RESULT(disabled)
1033 AC_MSG_ERROR([--with-gssapi must specify a path])
1036 AC_MSG_RESULT(looking in $use_gssapi/lib)
1037 USE_GSSAPI='-DGSSAPI'
1038 saved_cppflags="$CPPFLAGS"
1039 CPPFLAGS="-I$use_gssapi/include $CPPFLAGS"
1040 AC_CHECK_HEADERS(gssapi.h gssapi/gssapi.h,
1041 [ISC_PLATFORM_GSSAPIHEADER="#define ISC_PLATFORM_GSSAPIHEADER <$ac_header>"])
1043 if test "$ISC_PLATFORM_GSSAPIHEADER" = ""; then
1044 AC_MSG_ERROR([gssapi.h not found])
1047 AC_CHECK_HEADERS(gssapi_krb5.h gssapi/gssapi_krb5.h,
1048 [ISC_PLATFORM_GSSAPI_KRB5_HEADER="#define ISC_PLATFORM_GSSAPI_KRB5_HEADER <$ac_header>"])
1050 AC_CHECK_HEADERS(krb5.h krb5/krb5.h kerberosv5/krb5.h,
1051 [ISC_PLATFORM_KRB5HEADER="#define ISC_PLATFORM_KRB5HEADER <$ac_header>"])
1053 if test "$ISC_PLATFORM_KRB5HEADER" = ""; then
1054 AC_MSG_ERROR([krb5.h not found])
1057 CPPFLAGS="$saved_cppflags"
1060 # XXXDCL This probably doesn't work right on all systems.
1061 # It will need to be worked on as problems become evident.
1063 # Essentially the problems here relate to two different
1064 # areas. The first area is building with either KTH
1065 # or MIT Kerberos, particularly when both are present on
1066 # the machine. The other is static versus dynamic linking.
1068 # On the KTH vs MIT issue, Both have libkrb5 that can mess
1069 # up the works if one implementation ends up trying to
1070 # use the other's krb. This is unfortunately a situation
1071 # that very easily arises.
1073 # Dynamic linking when the dependency information is built
1074 # into MIT's libgssapi_krb5 or KTH's libgssapi magically makes
1075 # all such problems go away, but when that setup is not
1076 # present, because either the dynamic libraries lack
1077 # dependencies or static linking is being done, then the
1078 # problems start to show up.
1082 "-lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err" \
1083 "-lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lresolv" \
1085 "-lgssapi -lkrb5 -ldes -lcrypt -lasn1 -lroken -lcom_err" \
1086 "-lgssapi -lkrb5 -lcrypto -lcrypt -lasn1 -lroken -lcom_err" \
1089 # Note that this does not include $saved_libs, because
1090 # on FreeBSD machines this configure script has added
1091 # -L/usr/local/lib to LIBS, which can make the
1092 # -lgssapi_krb5 test succeed with shared libraries even
1093 # when you are trying to build with KTH in /usr/lib.
1094 if test "$use_gssapi" = "/usr"
1098 LIBS="-L$use_gssapi/lib $TRY_LIBS"
1100 AC_MSG_CHECKING(linking as $TRY_LIBS)
1101 AC_TRY_LINK( , [gss_acquire_cred();krb5_init_context()],
1102 gssapi_linked=yes, gssapi_linked=no)
1103 case $gssapi_linked in
1104 yes) AC_MSG_RESULT(yes); break ;;
1105 no) AC_MSG_RESULT(no) ;;
1109 case $gssapi_linked in
1110 no) AC_MSG_ERROR(could not determine proper GSSAPI linkage) ;;
1114 # XXXDCL Major kludge. Tries to cope with KTH in /usr/lib
1115 # but MIT in /usr/local/lib and trying to build with KTH.
1116 # /usr/local/lib can end up earlier on the link lines.
1117 # Like most kludges, this one is not only inelegant it
1118 # is also likely to be the wrong thing to do at least as
1119 # many times as it is the right thing. Something better
1122 if test "$use_gssapi" = "/usr" -a \
1123 -f /usr/local/lib/libkrb5.a; then
1127 case "$FIX_KTH_VS_MIT" in
1129 case "$enable_static_linking" in
1130 yes) gssapi_lib_suffix=".a" ;;
1131 *) gssapi_lib_suffix=".so" ;;
1134 for lib in $LIBS; do
1139 new_lib=`echo $lib |
1140 sed -e s%^-l%$use_gssapi/lib/lib% \
1141 -e s%$%$gssapi_lib_suffix%`
1142 NEW_LIBS="$NEW_LIBS $new_lib"
1145 AC_MSG_ERROR([KTH vs MIT Kerberos confusion!])
1153 DST_GSSAPI_INC="-I$use_gssapi/include"
1154 DNS_GSSAPI_LIBS="$LIBS"
1156 AC_MSG_RESULT(using GSSAPI from $use_gssapi/lib and $use_gssapi/include)
1161 AC_SUBST(ISC_PLATFORM_HAVEGSSAPI)
1162 AC_SUBST(ISC_PLATFORM_GSSAPIHEADER)
1163 AC_SUBST(ISC_PLATFORM_GSSAPI_KRB5_HEADER)
1164 AC_SUBST(ISC_PLATFORM_KRB5HEADER)
1166 AC_SUBST(USE_GSSAPI)
1167 AC_SUBST(DST_GSSAPI_INC)
1168 AC_SUBST(DNS_GSSAPI_LIBS)
1169 DNS_CRYPTO_LIBS="$DNS_GSSAPI_LIBS $DNS_CRYPTO_LIBS"
1172 # Applications linking with libdns also need to link with these libraries.
1175 AC_SUBST(DNS_CRYPTO_LIBS)
1178 # was --with-randomdev specified?
1180 AC_MSG_CHECKING(for random device)
1181 AC_ARG_WITH(randomdev,
1182 [ --with-randomdev=PATH Specify path for random device],
1183 use_randomdev="$withval", use_randomdev="unspec")
1185 case "$use_randomdev" in
1187 case "$cross_compiling" in
1189 AC_MSG_RESULT(unspecified)
1190 AC_MSG_ERROR([ need --with-randomdev=PATH or --with-randomdev=no])
1194 devrandom=/dev/arandom
1197 devrandom=/dev/random
1200 AC_MSG_RESULT($devrandom)
1201 AC_CHECK_FILE($devrandom,
1202 AC_DEFINE_UNQUOTED(PATH_RANDOMDEV,
1207 AC_MSG_ERROR([--with-randomdev must specify a path])
1210 AC_MSG_RESULT(disabled)
1213 AC_DEFINE_UNQUOTED(PATH_RANDOMDEV, "$use_randomdev")
1214 AC_MSG_RESULT(using "$use_randomdev")
1219 # Do we have arc4random() ?
1221 AC_CHECK_FUNC(arc4random, AC_DEFINE(HAVE_ARC4RANDOM))
1223 sinclude(config.threads.in)dnl
1227 if test "X$GCC" = "Xyes"; then
1231 CCOPT="$CCOPT -pthread"
1232 STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
1236 CCOPT="$CCOPT -pthread"
1239 LIBS="$LIBS -lthread"
1242 STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
1249 CCOPT="$CCOPT -pthread"
1256 STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
1258 *-sco-sysv*uw*|*-*-sysv*UnixWare*)
1260 CCOPT="$CCOPT -Kthread"
1264 CCOPT="$CCOPT -Kpthread"
1268 ALWAYS_DEFINES="-D_REENTRANT"
1269 ISC_PLATFORM_USETHREADS="#define ISC_PLATFORM_USETHREADS 1"
1270 THREADOPTOBJS='${THREADOPTOBJS}'
1271 THREADOPTSRCS='${THREADOPTSRCS}'
1274 # We'd like to use sigwait() too
1276 AC_CHECK_FUNC(sigwait,
1277 AC_DEFINE(HAVE_SIGWAIT),
1278 AC_CHECK_LIB(c, sigwait,
1279 AC_DEFINE(HAVE_SIGWAIT),
1280 AC_CHECK_LIB(pthread, sigwait,
1281 AC_DEFINE(HAVE_SIGWAIT),
1282 AC_CHECK_LIB(pthread, _Psigwait,
1283 AC_DEFINE(HAVE_SIGWAIT),))))
1285 AC_CHECK_FUNC(pthread_attr_getstacksize,
1286 AC_DEFINE(HAVE_PTHREAD_ATTR_GETSTACKSIZE),)
1288 AC_CHECK_FUNC(pthread_attr_setstacksize,
1289 AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE),)
1292 # Additional OS-specific issues related to pthreads and sigwait.
1296 # One more place to look for sigwait.
1299 AC_CHECK_LIB(c_r, sigwait, AC_DEFINE(HAVE_SIGWAIT),)
1301 *-freebsd5.[[012]]|*-freebsd5.[[012]].*);;
1302 *-freebsd5.[[3456789]]|*-freebsd5.[[3456789]].*)
1303 AC_DEFINE(NEED_PTHREAD_SCOPE_SYSTEM)
1306 AC_DEFINE(NEED_PTHREAD_SCOPE_SYSTEM)
1311 # BSDI 3.0 through 4.0.1 needs pthread_init() to be
1312 # called before certain pthreads calls. This is deprecated
1315 *-bsdi3.*|*-bsdi4.0*)
1316 AC_DEFINE(NEED_PTHREAD_INIT)
1319 # LinuxThreads requires some changes to the way we
1320 # deal with signals.
1323 AC_DEFINE(HAVE_LINUXTHREADS)
1326 # Ensure the right sigwait() semantics on Solaris and make
1327 # sure we call pthread_setconcurrency.
1330 AC_DEFINE(_POSIX_PTHREAD_SEMANTICS)
1331 AC_CHECK_FUNC(pthread_setconcurrency,
1332 AC_DEFINE(CALL_PTHREAD_SETCONCURRENCY))
1335 # UnixWare does things its own way.
1337 *-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
1338 AC_DEFINE(HAVE_UNIXWARE_SIGWAIT)
1343 # Look for sysconf to allow detection of the number of processors.
1345 AC_CHECK_FUNC(sysconf, AC_DEFINE(HAVE_SYSCONF),)
1348 ISC_PLATFORM_USETHREADS="#undef ISC_PLATFORM_USETHREADS"
1349 thread_dir=nothreads
1355 AC_SUBST(ALWAYS_DEFINES)
1356 AC_SUBST(ISC_PLATFORM_USETHREADS)
1357 AC_SUBST(THREADOPTOBJS)
1358 AC_SUBST(THREADOPTSRCS)
1359 ISC_THREAD_DIR=$thread_dir
1360 AC_SUBST(ISC_THREAD_DIR)
1363 # was --with-libxml2 specified?
1365 AC_MSG_CHECKING(for libxml2 library)
1366 AC_ARG_WITH(libxml2,
1367 [ --with-libxml2[=PATH] Build with libxml2 library [yes|no|path]],
1368 use_libxml2="$withval", use_libxml2="auto")
1370 case "$use_libxml2" in
1375 case X`(xml2-config --version) 2>/dev/null` in
1377 libxml2_libs=`xml2-config --libs`
1378 libxml2_cflags=`xml2-config --cflags`
1387 if test -f "$use_libxml2/bin/xml2-config" ; then
1388 libxml2_libs=`$use_libxml2/bin/xml2-config --libs`
1389 libxml2_cflags=`$use_libxml2/bin/xml2-config --cflags`
1394 if test "X$libxml2_libs" != "X"
1397 CFLAGS="$CFLAGS $libxml2_cflags"
1398 LIBS="$LIBS $libxml2_libs"
1399 AC_DEFINE(HAVE_LIBXML2, 1, [Define if libxml2 was found])
1405 # In solaris 10, SMF can manage named service
1407 AC_CHECK_LIB(scf, smf_enable_instance)
1410 # flockfile is usually provided by pthreads, but we may want to use it
1411 # even if compiled with --disable-threads. getc_unlocked might also not
1414 AC_CHECK_FUNC(flockfile, AC_DEFINE(HAVE_FLOCKFILE),)
1415 AC_CHECK_FUNC(getc_unlocked, AC_DEFINE(HAVE_GETCUNLOCKED),)
1418 # Indicate what the final decision was regarding threads.
1420 AC_MSG_CHECKING(whether to build with threads)
1421 if $use_threads; then
1428 # End of pthreads stuff.
1434 AC_ARG_ENABLE(largefile, [ --enable-largefile 64-bit file support],
1435 want_largefile="yes", want_largefile="no")
1436 case $want_largefile in
1438 ALWAYS_DEFINES="$ALWAYS_DEFINES -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
1445 # Additional compiler settings.
1449 IRIX_DNSSEC_WARNINGS_HACK=""
1451 if test "X$GCC" = "Xyes"; then
1452 AC_MSG_CHECKING(if "$CC" supports -fno-strict-aliasing)
1454 CFLAGS="$CFLAGS -fno-strict-aliasing"
1455 AC_TRY_COMPILE(,, [FNOSTRICTALIASING=yes],[FNOSTRICTALIASING=no])
1457 if test "$FNOSTRICTALIASING" = "yes"; then
1459 STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith -fno-strict-aliasing"
1462 STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith"
1466 LDFLAGS="-Wl,+vnocompatwarnings $LDFLAGS"
1478 # The version of the C compiler that constantly warns about
1479 # 'const' as well as alignment issues is unfortunately not
1480 # able to be discerned via the version of the operating
1481 # system, nor does cc have a version flag.
1482 case "`$CC +W 123 2>&1`" in
1487 # Turn off the pointlessly noisy warnings.
1488 STD_CWARNINGS="+w1 +W 474,530,2193,2236"
1491 CCOPT="$CCOPT -Ae -z"
1492 LDFLAGS="-Wl,+vnocompatwarnings $LDFLAGS"
1493 MKDEPPROG='cc -Ae -E -Wp,-M >/dev/null 2>>$TMP'
1496 STD_CWARNINGS="-fullwarn -woff 1209"
1498 # Silence more than 250 instances of
1499 # "prototyped function redeclared without prototype"
1500 # and 11 instances of
1501 # "variable ... was set but never used"
1502 # from lib/dns/sec/openssl.
1504 IRIX_DNSSEC_WARNINGS_HACK="-woff 1692,1552"
1509 *-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
1517 AC_SUBST(MKDEPCFLAGS)
1519 AC_SUBST(IRIX_DNSSEC_WARNINGS_HACK)
1524 AC_CHECK_FUNC(catgets, AC_DEFINE(HAVE_CATGETS),)
1527 # -lxnet buys us one big porting headache... standards, gotta love 'em.
1529 # AC_CHECK_LIB(xnet, socket, ,
1530 # AC_CHECK_LIB(socket, socket)
1533 # Use this for now, instead:
1541 AC_CHECK_LIB(socket, socket)
1542 AC_CHECK_LIB(nsl, inet_addr)
1547 # Work around Solaris's select() limitations.
1550 *-solaris2.[[89]]|*-solaris2.1?)
1551 AC_DEFINE(FD_SETSIZE, 65536,
1552 [Solaris hack to get select_large_fdset.])
1559 AC_MSG_CHECKING(whether to use purify)
1561 [ --with-purify[=PATH] use Rational purify],
1562 use_purify="$withval", use_purify="no")
1564 case "$use_purify" in
1568 AC_PATH_PROG(purify_path, purify, purify)
1571 purify_path="$use_purify"
1575 case "$use_purify" in
1581 if test -f $purify_path || test $purify_path = purify; then
1582 AC_MSG_RESULT($purify_path)
1583 PURIFYFLAGS="`echo $PURIFYOPTIONS`"
1584 PURIFY="$purify_path $PURIFYFLAGS"
1586 AC_MSG_ERROR([$purify_path not found.
1588 Please choose the proper path with the following command:
1590 configure --with-purify=PATH
1599 AC_ARG_WITH(libtool,
1600 [ --with-libtool use GNU libtool],
1601 use_libtool="$withval", use_libtool="no")
1603 case $use_libtool in
1608 LIBTOOL_MKDEP_SED='s;\.o;\.lo;'
1609 LIBTOOL_MODE_COMPILE='--mode=compile --tag=CC'
1610 LIBTOOL_MODE_INSTALL='--mode=install --tag=CC'
1611 LIBTOOL_MODE_LINK='--mode=link --tag=CC'
1613 *) LIBTOOL_ALLOW_UNDEFINED= ;;
1616 *-ibm-aix*) LIBTOOL_IN_MAIN="-Wl,-bI:T_testlist.imp" ;;
1617 *) LIBTOOL_IN_MAIN= ;;
1626 LIBTOOL_MODE_COMPILE=
1627 LIBTOOL_MODE_INSTALL=
1629 LIBTOOL_ALLOW_UNDEFINED=
1635 # enable/disable dumping stack backtrace. Also check if the system supports
1636 # glibc-compatible backtrace() function.
1638 AC_ARG_ENABLE(backtrace,
1639 [ --enable-backtrace log stack backtrace on abort [[default=yes]]],
1640 want_backtrace="$enableval", want_backtrace="yes")
1641 case $want_backtrace in
1643 ISC_PLATFORM_USEBACKTRACE="#define ISC_PLATFORM_USEBACKTRACE 1"
1644 AC_TRY_LINK([#include <execinfo.h>],
1645 [return (backtrace((void **)0, 0));],
1646 [AC_DEFINE([HAVE_LIBCTRACE], [], [if system have backtrace function])],)
1649 ISC_PLATFORM_USEBACKTRACE="#undef ISC_PLATFORM_USEBACKTRACE"
1652 AC_SUBST(ISC_PLATFORM_USEBACKTRACE)
1654 AC_ARG_ENABLE(symtable,
1655 [ --enable-symtable use internal symbol table for backtrace
1656 [[all|minimal(default)|none]]],
1657 want_symtable="$enableval", want_symtable="minimal")
1658 case $want_symtable in
1659 yes|all|minimal) # "yes" is a hidden value equivalent to "minimal"
1660 if test "$PERL" = ""
1662 AC_MSG_ERROR([Internal symbol table requires perl but no perl is found.
1663 Install perl or explicitly disable the feature by --disable-symtable.])
1665 if test "$use_libtool" = "yes"; then
1666 AC_MSG_WARN([Internal symbol table does not work with libtool. Disabling symbol table.])
1668 # we generate the internal symbol table only for those systems
1669 # known to work to avoid unexpected build failure. Also, warn
1670 # about unsupported systems when the feature is enabled
1673 freebsd*|netbsd*|openbsd*|linux*|solaris*|darwin*)
1674 MKSYMTBL_PROGRAM="$PERL"
1675 if test $want_symtable = all; then
1676 ALWAYS_MAKE_SYMTABLE="yes"
1680 if test $want_symtable = yes -o $want_symtable = all
1682 AC_MSG_WARN([this system is not known to generate internal symbol table safely; disabling it])
1690 AC_SUBST(MKSYMTBL_PROGRAM)
1691 AC_SUBST(ALWAYS_MAKE_SYMTABLE)
1694 # File name extension for static archive files, for those few places
1695 # where they are treated differently from dynamic ones.
1702 AC_SUBST(LIBTOOL_MKDEP_SED)
1703 AC_SUBST(LIBTOOL_MODE_COMPILE)
1704 AC_SUBST(LIBTOOL_MODE_INSTALL)
1705 AC_SUBST(LIBTOOL_MODE_LINK)
1706 AC_SUBST(LIBTOOL_ALLOW_UNDEFINED)
1707 AC_SUBST(LIBTOOL_IN_MAIN)
1710 # build exportable DNS library?
1712 AC_ARG_ENABLE(exportlib,
1713 [ --enable-exportlib build exportable library (GNU make required)
1715 case "$enable_exportlib" in
1718 for x in gmake gnumake make; do
1719 if $x --version 2>/dev/null | grep GNU > /dev/null; then
1724 if test -z "$gmake"; then
1725 AC_MSG_ERROR([exportlib requires GNU make. Install it or disable the feature.])
1727 LIBEXPORT=lib/export
1729 BIND9_CO_RULE="%.$O: \${srcdir}/%.c"
1732 BIND9_CO_RULE=".c.$O:"
1735 AC_SUBST(BIND9_CO_RULE)
1737 AC_ARG_WITH(export-libdir,
1738 [ --with-export-libdir[=PATH]
1739 installation directory for the export library
1740 [[EPREFIX/lib/bind9]]],
1741 export_libdir="$withval",)
1742 if test -z "$export_libdir"; then
1743 export_libdir="\${exec_prefix}/lib/bind9/"
1745 AC_SUBST(export_libdir)
1747 AC_ARG_WITH(export-includedir,
1748 [ --with-export-includedir[=PATH]
1749 installation directory for the header files of the
1750 export library [[PREFIX/include/bind9]]],
1751 export_includedir="$withval",)
1752 if test -z "$export_includedir"; then
1753 export_includedir="\${prefix}/include/bind9/"
1755 AC_SUBST(export_includedir)
1758 # Here begins a very long section to determine the system's networking
1759 # capabilities. The order of the tests is significant.
1766 [ --enable-ipv6 use IPv6 [default=autodetect]])
1768 case "$enable_ipv6" in
1770 AC_DEFINE(WANT_IPV6)
1777 # We do the IPv6 compilation checking after libtool so that we can put
1778 # the right suffix on the files.
1780 AC_MSG_CHECKING(for IPv6 structures)
1782 #include <sys/types.h>
1783 #include <sys/socket.h>
1784 #include <netinet/in.h>],
1785 [struct sockaddr_in6 sin6; return (0);],
1792 # See whether IPv6 support is provided via a Kame add-on.
1793 # This is done before other IPv6 linking tests to LIBS is properly set.
1795 AC_MSG_CHECKING(for Kame IPv6 support)
1797 [ --with-kame[=PATH] use Kame IPv6 [default path /usr/local/v6]],
1798 use_kame="$withval", use_kame="no")
1804 kame_path=/usr/local/v6
1807 kame_path="$use_kame"
1816 if test -f $kame_path/lib/libinet6.a; then
1817 AC_MSG_RESULT($kame_path/lib/libinet6.a)
1818 LIBS="-L$kame_path/lib -linet6 $LIBS"
1820 AC_MSG_ERROR([$kame_path/lib/libinet6.a not found.
1822 Please choose the proper path with the following command:
1824 configure --with-kame=PATH
1831 # Whether netinet6/in6.h is needed has to be defined in isc/platform.h.
1832 # Including it on Kame-using platforms is very bad, though, because
1833 # Kame uses #error against direct inclusion. So include it on only
1834 # the platform that is otherwise broken without it -- BSD/OS 4.0 through 4.1.
1835 # This is done before the in6_pktinfo check because that's what
1836 # netinet6/in6.h is needed for.
1841 ISC_PLATFORM_NEEDNETINET6IN6H="#define ISC_PLATFORM_NEEDNETINET6IN6H 1"
1842 LWRES_PLATFORM_NEEDNETINET6IN6H="#define LWRES_PLATFORM_NEEDNETINET6IN6H 1"
1843 isc_netinet6in6_hack="#include <netinet6/in6.h>"
1846 ISC_PLATFORM_NEEDNETINET6IN6H="#undef ISC_PLATFORM_NEEDNETINET6IN6H"
1847 LWRES_PLATFORM_NEEDNETINET6IN6H="#undef LWRES_PLATFORM_NEEDNETINET6IN6H"
1848 isc_netinet6in6_hack=""
1854 # This is similar to the netinet6/in6.h issue.
1857 *-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
1859 ISC_PLATFORM_NEEDNETINETIN6H="#define ISC_PLATFORM_NEEDNETINETIN6H 1"
1860 LWRES_PLATFORM_NEEDNETINETIN6H="#define LWRES_PLATFORM_NEEDNETINETIN6H 1"
1861 ISC_PLATFORM_FIXIN6ISADDR="#define ISC_PLATFORM_FIXIN6ISADDR 1"
1862 isc_netinetin6_hack="#include <netinet/in6.h>"
1865 ISC_PLATFORM_NEEDNETINETIN6H="#undef ISC_PLATFORM_NEEDNETINETIN6H"
1866 LWRES_PLATFORM_NEEDNETINETIN6H="#undef LWRES_PLATFORM_NEEDNETINETIN6H"
1867 ISC_PLATFORM_FIXIN6ISADDR="#undef ISC_PLATFORM_FIXIN6ISADDR"
1868 isc_netinetin6_hack=""
1873 # Now delve deeper into the suitability of the IPv6 support.
1875 case "$found_ipv6" in
1877 ISC_PLATFORM_HAVEIPV6="#define ISC_PLATFORM_HAVEIPV6 1"
1878 LWRES_PLATFORM_HAVEIPV6="#define LWRES_PLATFORM_HAVEIPV6 1"
1880 AC_MSG_CHECKING(for in6_addr)
1882 #include <sys/types.h>
1883 #include <sys/socket.h>
1884 #include <netinet/in.h>
1885 $isc_netinetin6_hack
1886 $isc_netinet6in6_hack
1888 [struct in6_addr in6; return (0);],
1890 ISC_PLATFORM_HAVEINADDR6="#undef ISC_PLATFORM_HAVEINADDR6"
1891 LWRES_PLATFORM_HAVEINADDR6="#undef LWRES_PLATFORM_HAVEINADDR6"
1892 isc_in_addr6_hack=""],
1894 ISC_PLATFORM_HAVEINADDR6="#define ISC_PLATFORM_HAVEINADDR6 1"
1895 LWRES_PLATFORM_HAVEINADDR6="#define LWRES_PLATFORM_HAVEINADDR6 1"
1896 isc_in_addr6_hack="#define in6_addr in_addr6"])
1898 AC_MSG_CHECKING(for in6addr_any)
1900 #include <sys/types.h>
1901 #include <sys/socket.h>
1902 #include <netinet/in.h>
1903 $isc_netinetin6_hack
1904 $isc_netinet6in6_hack
1907 [struct in6_addr in6; in6 = in6addr_any; return (in6.s6_addr[0]);],
1909 ISC_PLATFORM_NEEDIN6ADDRANY="#undef ISC_PLATFORM_NEEDIN6ADDRANY"
1910 LWRES_PLATFORM_NEEDIN6ADDRANY="#undef LWRES_PLATFORM_NEEDIN6ADDRANY"],
1912 ISC_PLATFORM_NEEDIN6ADDRANY="#define ISC_PLATFORM_NEEDIN6ADDRANY 1"
1913 LWRES_PLATFORM_NEEDIN6ADDRANY="#define LWRES_PLATFORM_NEEDIN6ADDRANY 1"])
1915 AC_MSG_CHECKING(for in6addr_loopback)
1917 #include <sys/types.h>
1918 #include <sys/socket.h>
1919 #include <netinet/in.h>
1920 $isc_netinetin6_hack
1921 $isc_netinet6in6_hack
1924 [struct in6_addr in6; in6 = in6addr_loopback; return (in6.s6_addr[0]);],
1926 ISC_PLATFORM_NEEDIN6ADDRLOOPBACK="#undef ISC_PLATFORM_NEEDIN6ADDRLOOPBACK"
1927 LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK="#undef LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK"],
1929 ISC_PLATFORM_NEEDIN6ADDRLOOPBACK="#define ISC_PLATFORM_NEEDIN6ADDRLOOPBACK 1"
1930 LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK="#define LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK 1"])
1932 AC_MSG_CHECKING(for sin6_scope_id in struct sockaddr_in6)
1934 #include <sys/types.h>
1935 #include <sys/socket.h>
1936 #include <netinet/in.h>
1937 $isc_netinetin6_hack
1938 $isc_netinet6in6_hack
1940 [struct sockaddr_in6 xyzzy; xyzzy.sin6_scope_id = 0; return (0);],
1942 ISC_PLATFORM_HAVESCOPEID="#define ISC_PLATFORM_HAVESCOPEID 1"
1943 result="#define LWRES_HAVE_SIN6_SCOPE_ID 1"],
1945 ISC_PLATFORM_HAVESCOPEID="#undef ISC_PLATFORM_HAVESCOPEID"
1946 result="#undef LWRES_HAVE_SIN6_SCOPE_ID"])
1947 LWRES_HAVE_SIN6_SCOPE_ID="$result"
1949 AC_MSG_CHECKING(for in6_pktinfo)
1951 #include <sys/types.h>
1952 #include <sys/socket.h>
1953 #include <netinet/in.h>
1954 $isc_netinetin6_hack
1955 $isc_netinet6in6_hack
1957 [struct in6_pktinfo xyzzy; return (0);],
1959 ISC_PLATFORM_HAVEIN6PKTINFO="#define ISC_PLATFORM_HAVEIN6PKTINFO 1"],
1960 [AC_MSG_RESULT(no -- disabling runtime ipv6 support)
1961 ISC_PLATFORM_HAVEIN6PKTINFO="#undef ISC_PLATFORM_HAVEIN6PKTINFO"])
1964 ISC_PLATFORM_HAVEIPV6="#undef ISC_PLATFORM_HAVEIPV6"
1965 LWRES_PLATFORM_HAVEIPV6="#undef LWRES_PLATFORM_HAVEIPV6"
1966 ISC_PLATFORM_NEEDIN6ADDRANY="#undef ISC_PLATFORM_NEEDIN6ADDRANY"
1967 LWRES_PLATFORM_NEEDIN6ADDRANY="#undef LWRES_PLATFORM_NEEDIN6ADDRANY"
1968 ISC_PLATFORM_HAVEIN6PKTINFO="#undef ISC_PLATFORM_HAVEIN6PKTINFO"
1969 LWRES_HAVE_SIN6_SCOPE_ID="#define LWRES_HAVE_SIN6_SCOPE_ID 1"
1970 ISC_PLATFORM_HAVESCOPEID="#define ISC_PLATFORM_HAVESCOPEID 1"
1972 ISC_IPV6_O="ipv6.$O"
1973 ISC_ISCIPV6_O="unix/ipv6.$O"
1978 AC_SUBST(ISC_PLATFORM_HAVEIPV6)
1979 AC_SUBST(LWRES_PLATFORM_HAVEIPV6)
1980 AC_SUBST(ISC_PLATFORM_NEEDNETINETIN6H)
1981 AC_SUBST(LWRES_PLATFORM_NEEDNETINETIN6H)
1982 AC_SUBST(ISC_PLATFORM_NEEDNETINET6IN6H)
1983 AC_SUBST(LWRES_PLATFORM_NEEDNETINET6IN6H)
1984 AC_SUBST(ISC_PLATFORM_HAVEINADDR6)
1985 AC_SUBST(LWRES_PLATFORM_HAVEINADDR6)
1986 AC_SUBST(ISC_PLATFORM_NEEDIN6ADDRANY)
1987 AC_SUBST(LWRES_PLATFORM_NEEDIN6ADDRANY)
1988 AC_SUBST(ISC_PLATFORM_NEEDIN6ADDRLOOPBACK)
1989 AC_SUBST(LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK)
1990 AC_SUBST(ISC_PLATFORM_HAVEIN6PKTINFO)
1991 AC_SUBST(ISC_PLATFORM_FIXIN6ISADDR)
1992 AC_SUBST(ISC_IPV6_H)
1993 AC_SUBST(ISC_IPV6_O)
1994 AC_SUBST(ISC_ISCIPV6_O)
1995 AC_SUBST(ISC_IPV6_C)
1996 AC_SUBST(LWRES_HAVE_SIN6_SCOPE_ID)
1997 AC_SUBST(ISC_PLATFORM_HAVESCOPEID)
1999 AC_MSG_CHECKING([for struct if_laddrreq])
2001 #include <sys/types.h>
2002 #include <net/if6.h>
2003 ],[ struct if_laddrreq a; ],
2005 ISC_PLATFORM_HAVEIF_LADDRREQ="#define ISC_PLATFORM_HAVEIF_LADDRREQ 1"],
2007 ISC_PLATFORM_HAVEIF_LADDRREQ="#undef ISC_PLATFORM_HAVEIF_LADDRREQ"])
2008 AC_SUBST(ISC_PLATFORM_HAVEIF_LADDRREQ)
2010 AC_MSG_CHECKING([for struct if_laddrconf])
2012 #include <sys/types.h>
2013 #include <net/if6.h>
2014 ],[ struct if_laddrconf a; ],
2016 ISC_PLATFORM_HAVEIF_LADDRCONF="#define ISC_PLATFORM_HAVEIF_LADDRCONF 1"],
2018 ISC_PLATFORM_HAVEIF_LADDRCONF="#undef ISC_PLATFORM_HAVEIF_LADDRCONF"])
2019 AC_SUBST(ISC_PLATFORM_HAVEIF_LADDRCONF)
2022 # Check for network functions that are often missing. We do this
2023 # after the libtool checking, so we can put the right suffix on
2024 # the files. It also needs to come after checking for a Kame add-on,
2025 # which provides some (all?) of the desired functions.
2028 AC_MSG_CHECKING([for inet_ntop with IPv6 support])
2030 #include <sys/types.h>
2031 #include <sys/socket.h>
2032 #include <netinet/in.h>
2033 #include <arpa/inet.h>
2035 char a[16],b[64]; return(inet_ntop(AF_INET6, a, b, sizeof(b)) == (char*)0);}],
2037 ISC_PLATFORM_NEEDNTOP="#undef ISC_PLATFORM_NEEDNTOP"],
2040 ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_ntop.$O"
2041 ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_ntop.c"
2042 ISC_PLATFORM_NEEDNTOP="#define ISC_PLATFORM_NEEDNTOP 1"],
2043 [AC_MSG_RESULT(assuming inet_ntop not needed)
2044 ISC_PLATFORM_NEEDNTOP="#undef ISC_PLATFORM_NEEDNTOP"])
2047 # On NetBSD 1.4.2 and maybe others, inet_pton() incorrectly accepts
2048 # addresses with less than four octets, like "1.2.3". Also leading
2049 # zeros should also be rejected.
2051 AC_MSG_CHECKING([for working inet_pton with IPv6 support])
2053 #include <sys/types.h>
2054 #include <sys/socket.h>
2055 #include <netinet/in.h>
2056 #include <arpa/inet.h>
2057 main() { char a[16]; return (inet_pton(AF_INET, "1.2.3", a) == 1 ? 1 :
2058 inet_pton(AF_INET, "1.2.3.04", a) == 1 ? 1 :
2059 (inet_pton(AF_INET6, "::1.2.3.4", a) != 1)); }],
2061 ISC_PLATFORM_NEEDPTON="#undef ISC_PLATFORM_NEEDPTON"],
2063 ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_pton.$O"
2064 ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_pton.c"
2065 ISC_PLATFORM_NEEDPTON="#define ISC_PLATFORM_NEEDPTON 1"],
2066 [AC_MSG_RESULT(assuming inet_pton needed)
2067 ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_pton.$O"
2068 ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_pton.c"
2069 ISC_PLATFORM_NEEDPTON="#define ISC_PLATFORM_NEEDPTON 1"])
2071 AC_SUBST(ISC_PLATFORM_NEEDNTOP)
2072 AC_SUBST(ISC_PLATFORM_NEEDPTON)
2075 # Look for a 4.4BSD-style sa_len member in struct sockaddr.
2079 # Turn on 4.4BSD style sa_len support.
2080 AC_DEFINE(_SOCKADDR_LEN)
2084 AC_MSG_CHECKING(for sa_len in struct sockaddr)
2086 #include <sys/types.h>
2087 #include <sys/socket.h>],
2088 [struct sockaddr sa; sa.sa_len = 0; return (0);],
2090 ISC_PLATFORM_HAVESALEN="#define ISC_PLATFORM_HAVESALEN 1"
2091 LWRES_PLATFORM_HAVESALEN="#define LWRES_PLATFORM_HAVESALEN 1"],
2093 ISC_PLATFORM_HAVESALEN="#undef ISC_PLATFORM_HAVESALEN"
2094 LWRES_PLATFORM_HAVESALEN="#undef LWRES_PLATFORM_HAVESALEN"])
2095 AC_SUBST(ISC_PLATFORM_HAVESALEN)
2096 AC_SUBST(LWRES_PLATFORM_HAVESALEN)
2099 # Look for a 4.4BSD or 4.3BSD struct msghdr
2101 AC_MSG_CHECKING(for struct msghdr flavor)
2103 #include <sys/types.h>
2104 #include <sys/socket.h>],
2105 [struct msghdr msg; msg.msg_flags = 0; return (0);],
2106 [AC_MSG_RESULT(4.4BSD)
2107 ISC_PLATFORM_MSGHDRFLAVOR="#define ISC_NET_BSD44MSGHDR 1"],
2108 [AC_MSG_RESULT(4.3BSD)
2109 ISC_PLATFORM_MSGHDRFLAVOR="#define ISC_NET_BSD43MSGHDR 1"])
2110 AC_SUBST(ISC_PLATFORM_MSGHDRFLAVOR)
2113 # Look for in_port_t.
2115 AC_MSG_CHECKING(for type in_port_t)
2117 #include <sys/types.h>
2118 #include <netinet/in.h>],
2119 [in_port_t port = 25; return (0);],
2121 ISC_PLATFORM_NEEDPORTT="#undef ISC_PLATFORM_NEEDPORTT"],
2123 ISC_PLATFORM_NEEDPORTT="#define ISC_PLATFORM_NEEDPORTT 1"])
2124 AC_SUBST(ISC_PLATFORM_NEEDPORTT)
2127 # Check for addrinfo
2129 AC_MSG_CHECKING(for struct addrinfo)
2131 #include <netdb.h>],
2132 [struct addrinfo a; return (0);],
2134 ISC_LWRES_NEEDADDRINFO="#undef ISC_LWRES_NEEDADDRINFO"
2135 ISC_IRS_NEEDADDRINFO="#undef ISC_IRS_NEEDADDRINFO"
2136 AC_DEFINE(HAVE_ADDRINFO)],
2138 ISC_LWRES_NEEDADDRINFO="#define ISC_LWRES_NEEDADDRINFO 1"
2139 ISC_IRS_NEEDADDRINFO="#define ISC_IRS_NEEDADDRINFO 1"])
2140 AC_SUBST(ISC_LWRES_NEEDADDRINFO)
2141 AC_SUBST(ISC_IRS_NEEDADDRINFO)
2144 # Check for rrsetinfo
2146 AC_MSG_CHECKING(for struct rrsetinfo)
2148 #include <netdb.h>],
2149 [struct rrsetinfo r; return (0);],
2151 ISC_LWRES_NEEDRRSETINFO="#undef ISC_LWRES_NEEDRRSETINFO"],
2153 ISC_LWRES_NEEDRRSETINFO="#define ISC_LWRES_NEEDRRSETINFO 1"])
2154 AC_SUBST(ISC_LWRES_NEEDRRSETINFO)
2156 AC_MSG_CHECKING(for int sethostent)
2158 #include <netdb.h>],
2159 [int i = sethostent(0); return(0);],
2161 ISC_LWRES_SETHOSTENTINT="#define ISC_LWRES_SETHOSTENTINT 1"],
2163 ISC_LWRES_SETHOSTENTINT="#undef ISC_LWRES_SETHOSTENTINT"])
2164 AC_SUBST(ISC_LWRES_SETHOSTENTINT)
2166 AC_MSG_CHECKING(for int endhostent)
2168 #include <netdb.h>],
2169 [int i = endhostent(); return(0);],
2171 ISC_LWRES_ENDHOSTENTINT="#define ISC_LWRES_ENDHOSTENTINT 1"],
2173 ISC_LWRES_ENDHOSTENTINT="#undef ISC_LWRES_ENDHOSTENTINT"])
2174 AC_SUBST(ISC_LWRES_ENDHOSTENTINT)
2176 AC_MSG_CHECKING(for getnetbyaddr(in_addr_t, ...))
2179 struct netent *getnetbyaddr(in_addr_t, int);],
2182 ISC_LWRES_GETNETBYADDRINADDR="#define ISC_LWRES_GETNETBYADDRINADDR 1"],
2184 ISC_LWRES_GETNETBYADDRINADDR="#undef ISC_LWRES_GETNETBYADDRINADDR"])
2185 AC_SUBST(ISC_LWRES_GETNETBYADDRINADDR)
2187 AC_MSG_CHECKING(for int setnetent)
2189 #include <netdb.h>],
2190 [int i = setnetent(0); return(0);],
2192 ISC_LWRES_SETNETENTINT="#define ISC_LWRES_SETNETENTINT 1"],
2194 ISC_LWRES_SETNETENTINT="#undef ISC_LWRES_SETNETENTINT"])
2195 AC_SUBST(ISC_LWRES_SETNETENTINT)
2197 AC_MSG_CHECKING(for int endnetent)
2199 #include <netdb.h>],
2200 [int i = endnetent(); return(0);],
2202 ISC_LWRES_ENDNETENTINT="#define ISC_LWRES_ENDNETENTINT 1"],
2204 ISC_LWRES_ENDNETENTINT="#undef ISC_LWRES_ENDNETENTINT"])
2205 AC_SUBST(ISC_LWRES_ENDNETENTINT)
2207 AC_MSG_CHECKING(for gethostbyaddr(const void *, size_t, ...))
2210 struct hostent *gethostbyaddr(const void *, size_t, int);],
2213 ISC_LWRES_GETHOSTBYADDRVOID="#define ISC_LWRES_GETHOSTBYADDRVOID 1"],
2215 ISC_LWRES_GETHOSTBYADDRVOID="#undef ISC_LWRES_GETHOSTBYADDRVOID"])
2216 AC_SUBST(ISC_LWRES_GETHOSTBYADDRVOID)
2218 AC_MSG_CHECKING(for h_errno in netdb.h)
2220 #include <netdb.h>],
2221 [h_errno = 1; return(0);],
2223 ISC_LWRES_NEEDHERRNO="#undef ISC_LWRES_NEEDHERRNO"],
2225 ISC_LWRES_NEEDHERRNO="#define ISC_LWRES_NEEDHERRNO 1"])
2226 AC_SUBST(ISC_LWRES_NEEDHERRNO)
2229 # Sadly, the definitions of system-supplied getnameinfo(3) vary. Try to catch
2230 # known variations here:
2232 AC_MSG_CHECKING(for getnameinfo prototype definitions)
2234 #include <sys/types.h>
2235 #include <sys/socket.h>
2237 int getnameinfo(const struct sockaddr *, socklen_t, char *,
2238 socklen_t, char *, socklen_t, unsigned int);],
2240 [AC_MSG_RESULT(socklen_t for buflen; u_int for flags)
2241 AC_DEFINE(IRS_GETNAMEINFO_BUFLEN_T, socklen_t,
2242 [Define to the buffer length type used by getnameinfo(3).])
2243 AC_DEFINE(IRS_GETNAMEINFO_FLAGS_T, unsigned int,
2244 [Define to the flags type used by getnameinfo(3).])],
2246 #include <sys/types.h>
2247 #include <sys/socket.h>
2249 int getnameinfo(const struct sockaddr *, socklen_t, char *,
2250 size_t, char *, size_t, int);],
2252 [AC_MSG_RESULT(size_t for buflen; int for flags)
2253 AC_DEFINE(IRS_GETNAMEINFO_BUFLEN_T, size_t)
2254 AC_DEFINE(IRS_GETNAMEINFO_FLAGS_T, int)],
2255 [AC_MSG_RESULT(not match any subspecies; assume standard definition)
2256 AC_DEFINE(IRS_GETNAMEINFO_BUFLEN_T, socklen_t)
2257 AC_DEFINE(IRS_GETNAMEINFO_FLAGS_T, int)])])
2260 # ...and same for gai_strerror().
2262 AC_MSG_CHECKING(for gai_strerror prototype definitions)
2264 #include <sys/types.h>
2265 #include <sys/socket.h>
2267 char *gai_strerror(int ecode);],
2269 [AC_MSG_RESULT(returning char *)
2270 AC_DEFINE([IRS_GAISTRERROR_RETURN_T], [char *],
2271 [return type of gai_strerror])],
2272 [AC_MSG_RESULT(not match any subspecies; assume standard definition)
2273 AC_DEFINE([IRS_GAISTRERROR_RETURN_T], [const char *])])
2275 AC_CHECK_FUNC(getipnodebyname,
2276 [ISC_LWRES_GETIPNODEPROTO="#undef ISC_LWRES_GETIPNODEPROTO"],
2277 [ISC_LWRES_GETIPNODEPROTO="#define ISC_LWRES_GETIPNODEPROTO 1"])
2278 AC_CHECK_FUNC(getnameinfo,
2279 [ISC_LWRES_GETNAMEINFOPROTO="#undef ISC_LWRES_GETNAMEINFOPROTO"],
2280 [ISC_LWRES_GETNAMEINFOPROTO="#define ISC_LWRES_GETNAMEINFOPROTO 1"])
2281 AC_CHECK_FUNC(getaddrinfo,
2282 [ISC_LWRES_GETADDRINFOPROTO="#undef ISC_LWRES_GETADDRINFOPROTO"
2283 AC_DEFINE(HAVE_GETADDRINFO)],
2284 [ISC_LWRES_GETADDRINFOPROTO="#define ISC_LWRES_GETADDRINFOPROTO 1"])
2285 AC_CHECK_FUNC(gai_strerror, AC_DEFINE(HAVE_GAISTRERROR))
2286 AC_SUBST(ISC_LWRES_GETIPNODEPROTO)
2287 AC_SUBST(ISC_LWRES_GETADDRINFOPROTO)
2288 AC_SUBST(ISC_LWRES_GETNAMEINFOPROTO)
2289 AC_SUBST(ISC_IRS_GETNAMEINFOSOCKLEN)
2291 AC_ARG_ENABLE(getifaddrs,
2292 [ --enable-getifaddrs Enable the use of getifaddrs() [[yes|no]].],
2293 want_getifaddrs="$enableval", want_getifaddrs="yes")
2296 # This interface iteration code for getifaddrs() will fall back to using
2297 # /proc/net/if_inet6 if getifaddrs() in glibc doesn't return any IPv6
2300 case $want_getifaddrs in
2302 AC_MSG_WARN("--enable-getifaddrs=glibc is no longer required")
2303 AC_CHECK_FUNC(getifaddrs, AC_DEFINE(HAVE_GETIFADDRS))
2306 AC_CHECK_FUNC(getifaddrs, AC_DEFINE(HAVE_GETIFADDRS))
2313 # Look for a sysctl call to get the list of network interfaces.
2315 case $ac_cv_header_sys_sysctl_h in
2317 AC_MSG_CHECKING(for interface list sysctl)
2318 AC_EGREP_CPP(found_rt_iflist, [
2319 #include <sys/param.h>
2320 #include <sys/sysctl.h>
2321 #include <sys/socket.h>
2322 #ifdef NET_RT_IFLIST
2327 AC_DEFINE(HAVE_IFLIST_SYSCTL)],
2328 [AC_MSG_RESULT(no)])
2333 # Check for some other useful functions that are not ever-present.
2336 # We test for strsep() using AC_TRY_LINK instead of AC_CHECK_FUNC
2337 # because AIX 4.3.3 with patches for bos.adt.include to version 4.3.3.77
2338 # reportedly defines strsep() without declaring it in <string.h> when
2339 # -D_LINUX_SOURCE_COMPAT is not defined [RT #2190], and
2340 # AC_CHECK_FUNC() incorrectly succeeds because it declares
2341 # the function itself.
2342 AC_MSG_CHECKING(for correctly declared strsep())
2343 AC_TRY_LINK([#include <string.h>], [char *sp; char *foo = strsep(&sp, ".");],
2344 [AC_MSG_RESULT(yes); ISC_PLATFORM_NEEDSTRSEP="#undef ISC_PLATFORM_NEEDSTRSEP"],
2345 [AC_MSG_RESULT(no); ISC_PLATFORM_NEEDSTRSEP="#define ISC_PLATFORM_NEEDSTRSEP 1"])
2346 AC_SUBST(ISC_PLATFORM_NEEDSTRSEP)
2348 AC_CHECK_FUNC(memmove,
2349 [ISC_PLATFORM_NEEDMEMMOVE="#undef ISC_PLATFORM_NEEDMEMMOVE"],
2350 [ISC_PLATFORM_NEEDMEMMOVE="#define ISC_PLATFORM_NEEDMEMMOVE 1"])
2351 AC_SUBST(ISC_PLATFORM_NEEDMEMMOVE)
2353 AC_CHECK_FUNC(strtoul,
2354 [ISC_PLATFORM_NEEDSTRTOUL="#undef ISC_PLATFORM_NEEDSTRTOUL"
2355 LWRES_PLATFORM_NEEDSTRTOUL="#undef LWRES_PLATFORM_NEEDSTRTOUL"
2357 [ISC_PLATFORM_NEEDSTRTOUL="#define ISC_PLATFORM_NEEDSTRTOUL 1"
2358 LWRES_PLATFORM_NEEDSTRTOUL="#define LWRES_PLATFORM_NEEDSTRTOUL 1"
2359 GENRANDOMLIB='${ISCLIBS}'])
2360 AC_SUBST(ISC_PLATFORM_NEEDSTRTOUL)
2361 AC_SUBST(LWRES_PLATFORM_NEEDSTRTOUL)
2362 AC_SUBST(GENRANDOMLIB)
2364 AC_CHECK_FUNC(strlcpy,
2365 [ISC_PLATFORM_NEEDSTRLCPY="#undef ISC_PLATFORM_NEEDSTRLCPY"],
2366 [ISC_PLATFORM_NEEDSTRLCPY="#define ISC_PLATFORM_NEEDSTRLCPY 1"])
2367 AC_SUBST(ISC_PLATFORM_NEEDSTRLCPY)
2369 AC_CHECK_FUNC(strlcat,
2370 [ISC_PLATFORM_NEEDSTRLCAT="#undef ISC_PLATFORM_NEEDSTRLCAT"],
2371 [ISC_PLATFORM_NEEDSTRLCAT="#define ISC_PLATFORM_NEEDSTRLCAT 1"])
2372 AC_SUBST(ISC_PLATFORM_NEEDSTRLCAT)
2375 AC_SUBST(READLINE_LIB)
2376 AC_ARG_WITH(readline,
2377 [ --with-readline[=LIBSPEC] specify readline library [default -lreadline]],
2378 readline="$withval", readline="-lreadline")
2382 if test "x$readline" = "xyes"
2388 AC_CHECK_FUNCS(readline)
2389 if test "$ac_cv_func_readline" = "yes"
2391 READLINE_LIB="$readline"
2399 AC_MSG_CHECKING(sprintf)
2403 [ char buf[2]; return(*sprintf(buf,"x"));],
2405 ISC_PRINT_OBJS="print.$O"
2406 ISC_PRINT_SRCS="print.c"
2407 ISC_PLATFORM_NEEDSPRINTF="#define ISC_PLATFORM_NEEDSPRINTF"
2408 LWRES_PLATFORM_NEEDSPRINTF="#define LWRES_PLATFORM_NEEDSPRINTF"
2410 [ISC_PLATFORM_NEEDSPRINTF="#undef ISC_PLATFORM_NEEDSPRINTF"
2411 LWRES_PLATFORM_NEEDSPRINTF="#undef LWRES_PLATFORM_NEEDSPRINTF"]
2413 AC_SUBST(ISC_PLATFORM_NEEDSPRINTF)
2414 AC_SUBST(LWRES_PLATFORM_NEEDSPRINTF)
2416 AC_CHECK_FUNC(vsnprintf,
2417 [ISC_PLATFORM_NEEDVSNPRINTF="#undef ISC_PLATFORM_NEEDVSNPRINTF"
2418 LWRES_PLATFORM_NEEDVSNPRINTF="#undef LWRES_PLATFORM_NEEDVSNPRINTF"],
2419 [ISC_PRINT_OBJS="print.$O"
2420 ISC_PRINT_SRCS="print.c"
2421 ISC_PLATFORM_NEEDVSNPRINTF="#define ISC_PLATFORM_NEEDVSNPRINTF 1"
2422 LWRES_PLATFORM_NEEDVSNPRINTF="#define LWRES_PLATFORM_NEEDVSNPRINTF 1"])
2423 AC_SUBST(ISC_PLATFORM_NEEDVSNPRINTF)
2424 AC_SUBST(LWRES_PLATFORM_NEEDVSNPRINTF)
2425 ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS $ISC_PRINT_OBJS"
2426 ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS $ISC_PRINT_SRCS"
2428 AC_CHECK_FUNC(strerror, AC_DEFINE(HAVE_STRERROR))
2430 AC_SUBST(ISC_EXTRA_OBJS)
2431 AC_SUBST(ISC_EXTRA_SRCS)
2434 # Use our own SPNEGO implementation?
2436 AC_ARG_ENABLE(isc-spnego,
2437 [ --disable-isc-spnego use SPNEGO from GSSAPI library])
2439 if test -n "$USE_GSSAPI"
2441 case "$enable_isc_spnego" in
2443 USE_ISC_SPNEGO='-DUSE_ISC_SPNEGO'
2444 DST_EXTRA_OBJS="$DST_EXTRA_OBJS spnego.$O"
2445 DST_EXTRA_SRCS="$DST_EXTRA_SRCS spnego.c"
2446 AC_MSG_RESULT(using SPNEGO from lib/dns)
2449 AC_MSG_RESULT(using SPNEGO from GSSAPI library)
2454 AC_SUBST(USE_ISC_SPNEGO)
2456 AC_SUBST(DST_EXTRA_OBJS)
2457 AC_SUBST(DST_EXTRA_SRCS)
2459 # Determine the printf format characters to use when printing
2460 # values of type isc_int64_t. This will normally be "ll", but where
2461 # the compiler treats "long long" as a alias for "long" and printf
2462 # doesn't know about "long long" use "l". Hopefully the sprintf
2463 # will produce a inconsistent result in the later case. If the compiler
2464 # fails due to seeing "%lld" we fall back to "l".
2466 # Digital Unix 4.0 (gcc?) (long long) is 64 bits as is its long. It uses
2467 # %ld even for (long long)/
2469 # Win32 uses "%I64d", but that's defined elsewhere since we don't use
2470 # configure on Win32.
2472 AC_MSG_CHECKING(printf format modifier for 64-bit integers)
2476 long long int j = 0;
2479 sprintf(buf, "%lld", j);
2480 exit((sizeof(long long int) != sizeof(long int))? 0 :
2481 (strcmp(buf, "0") != 0));
2485 ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "ll"'
2486 LWRES_PLATFORM_QUADFORMAT='#define LWRES_PLATFORM_QUADFORMAT "ll"'],
2488 ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "l"'
2489 LWRES_PLATFORM_QUADFORMAT='#define LWRES_PLATFORM_QUADFORMAT "l"'],
2490 [AC_MSG_RESULT(assuming target platform uses ll)
2491 ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "ll"'
2492 LWRES_PLATFORM_QUADFORMAT='#define LWRES_PLATFORM_QUADFORMAT "ll"'])
2493 AC_SUBST(ISC_PLATFORM_QUADFORMAT)
2494 AC_SUBST(LWRES_PLATFORM_QUADFORMAT)
2499 # Note it is very recommended to *not* disable chroot(),
2500 # this is only because chroot() was made obsolete by Posix.
2501 AC_ARG_ENABLE(chroot,
2502 [ --disable-chroot disable chroot])
2503 case "$enable_chroot" in
2505 AC_CHECK_FUNCS(chroot)
2510 AC_ARG_ENABLE(linux-caps,
2511 [ --disable-linux-caps disable linux capabilities])
2512 case "$enable_linux_caps" in
2514 AC_CHECK_HEADERS(linux/capability.h sys/capability.h)
2515 AC_CHECK_LIB(cap, cap_set_proc)
2520 AC_CHECK_HEADERS(sys/prctl.h)
2522 AC_CHECK_HEADERS(sys/un.h,
2523 ISC_PLATFORM_HAVESYSUNH="#define ISC_PLATFORM_HAVESYSUNH 1"
2525 ISC_PLATFORM_HAVESYSUNH="#undef ISC_PLATFORM_HAVESYSUNH"
2527 AC_SUBST(ISC_PLATFORM_HAVESYSUNH)
2531 AC_DEFINE(NEED_SECURE_DIRECTORY, 1,
2532 [Define if connect does not honour the permission on the UNIX domain socket.])
2535 AC_DEFINE(NEED_SECURE_DIRECTORY, 1,
2536 [Define if connect does not honour the permission on the UNIX domain socket.])
2543 AC_CHECK_FUNC(tzset, AC_DEFINE(HAVE_TZSET))
2545 AC_MSG_CHECKING(for optarg declaration)
2550 [AC_MSG_RESULT(yes)],
2552 GEN_NEED_OPTARG="-DNEED_OPTARG=1"
2553 AC_DEFINE(NEED_OPTARG, 1, [Defined if extern char *optarg is not declared.])])
2556 # BSD/OS, and perhaps some others, don't define rlim_t.
2558 AC_MSG_CHECKING(for type rlim_t)
2560 #include <sys/types.h>
2561 #include <sys/time.h>
2562 #include <sys/resource.h>],
2563 [rlim_t rl = 19671212; return (0);],
2565 ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE rlim_t"],
2568 AC_MSG_CHECKING(type of rlim_cur)
2570 #include <sys/types.h>
2571 #include <sys/time.h>
2572 #include <sys/resource.h>
2573 main() { struct rlimit r; exit(!(sizeof(r.rlim_cur) == sizeof(int)));}],
2575 ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE int"],
2578 #include <sys/types.h>
2579 #include <sys/time.h>
2580 #include <sys/resource.h>
2581 main() { struct rlimit r; exit(!(sizeof(r.rlim_cur) == sizeof(long int)));}],
2582 [AC_MSG_RESULT(long int)
2583 ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE long int"],
2586 #include <sys/types.h>
2587 #include <sys/time.h>
2588 #include <sys/resource.h>
2589 main() { struct rlimit r; exit((!sizeof(r.rlim_cur) == sizeof(long long int)));}],
2590 [AC_MSG_RESULT(long long int)
2591 ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE long long int"],
2592 [AC_MSG_ERROR([unable to determine sizeof rlim_cur])
2593 ],[AC_MSG_ERROR(this cannot happen)])
2594 ],[AC_MSG_ERROR(this cannot happen)])
2596 AC_ARG_WITH(rlimtype, , rlimtype="$withval", rlimtype="long long int")
2597 ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE $rlimtype"
2598 AC_MSG_RESULT(cannot determine type of rlim_cur when cross compiling - assuming $rlimtype)])
2600 AC_SUBST(ISC_PLATFORM_RLIMITTYPE)
2603 # Older HP-UX doesn't have gettune
2607 AC_CHECK_HEADERS(sys/dyntune.h)
2615 # Compaq TruCluster requires more code for handling cluster IP aliases
2619 AC_CHECK_LIB(clua, clua_getaliasaddress, LIBS="-lclua $LIBS")
2620 AC_CHECK_FUNC(clua_getaliasaddress,
2621 AC_DEFINE(HAVE_TRUCLUSTER, 1,
2622 [Define if running under Compaq TruCluster]))
2629 # Some hosts need msg_namelen to match the size of the socket structure.
2630 # Some hosts don't set msg_namelen appropriately on return from recvmsg().
2634 AC_DEFINE(BROKEN_RECVMSG, 1,
2635 [Define if recvmsg() does not meet all of the BSD socket API specifications.])
2640 # Microsoft has their own way of handling shared libraries that requires
2641 # additional qualifiers on extern variables. Unix systems don't need it.
2643 AC_SUBST(ISC_PLATFORM_USEDECLSPEC)
2644 ISC_PLATFORM_USEDECLSPEC="#undef ISC_PLATFORM_USEDECLSPEC"
2645 AC_SUBST(LWRES_PLATFORM_USEDECLSPEC)
2646 LWRES_PLATFORM_USEDECLSPEC="#undef LWRES_PLATFORM_USEDECLSPEC"
2647 AC_SUBST(IRS_PLATFORM_USEDECLSPEC)
2648 IRS_PLATFORM_USEDECLSPEC="#undef IRS_PLATFORM_USEDECLSPEC"
2651 # Random remaining OS-specific issues involving compiler warnings.
2652 # XXXDCL print messages to indicate some compensation is being done?
2654 AC_SUBST(ISC_PLATFORM_BRACEPTHREADONCEINIT)
2655 ISC_PLATFORM_BRACEPTHREADONCEINIT="#undef ISC_PLATFORM_BRACEPTHREADONCEINIT"
2659 hack_shutup_pthreadonceinit=yes
2662 hack_shutup_sputaux=yes
2665 hack_shutup_sigwait=yes
2666 hack_shutup_sputaux=yes
2669 hack_shutup_stdargcast=yes
2672 hack_shutup_pthreadonceinit=yes
2674 *-solaris2.1[[0-9]])
2675 AC_TRY_COMPILE([ #include <pthread.h> ], [ static pthread_once_t once_test = { PTHREAD_ONCE_INIT }; ], [hack_shutup_pthreadonceinit=yes], )
2679 case "$hack_shutup_pthreadonceinit" in
2682 # Shut up PTHREAD_ONCE_INIT unbraced initializer warnings.
2684 ISC_PLATFORM_BRACEPTHREADONCEINIT="#define ISC_PLATFORM_BRACEPTHREADONCEINIT 1"
2688 case "$hack_shutup_sigwait" in
2691 # Shut up a -Wmissing-prototypes warning for sigwait().
2693 AC_DEFINE(SHUTUP_SIGWAIT)
2697 case "$hack_shutup_sputaux" in
2700 # Shut up a -Wmissing-prototypes warning from <stdio.h>.
2702 AC_DEFINE(SHUTUP_SPUTAUX)
2706 case "$hack_shutup_stdargcast" in
2709 # Shut up a -Wcast-qual warning from va_start().
2711 AC_DEFINE(SHUTUP_STDARG_CAST)
2715 AC_CHECK_HEADERS(strings.h,
2716 ISC_PLATFORM_HAVESTRINGSH="#define ISC_PLATFORM_HAVESTRINGSH 1"
2718 ISC_PLATFORM_HAVESTRINGSH="#undef ISC_PLATFORM_HAVESTRINGSH"
2720 AC_SUBST(ISC_PLATFORM_HAVESTRINGSH)
2723 # Check for if_nametoindex() for IPv6 scoped addresses support
2725 AC_CHECK_FUNC(if_nametoindex, ac_cv_have_if_nametoindex=yes,
2726 ac_cv_have_if_nametoindex=no)
2727 case $ac_cv_have_if_nametoindex in
2731 AC_CHECK_LIB(ipv6, if_nametoindex,
2732 ac_cv_have_if_nametoindex=yes
2733 LIBS="-lipv6 $LIBS",)
2737 case $ac_cv_have_if_nametoindex in
2739 ISC_PLATFORM_HAVEIFNAMETOINDEX="#define ISC_PLATFORM_HAVEIFNAMETOINDEX 1"
2742 ISC_PLATFORM_HAVEIFNAMETOINDEX="#undef ISC_PLATFORM_HAVEIFNAMETOINDEX"
2745 AC_SUBST(ISC_PLATFORM_HAVEIFNAMETOINDEX)
2747 AC_CHECK_FUNCS(nanosleep usleep)
2750 # Machine architecture dependent features
2752 AC_ARG_ENABLE(atomic,
2753 [ --enable-atomic enable machine specific atomic operations
2754 [[default=autodetect]]],
2755 enable_atomic="$enableval",
2756 enable_atomic="autodetect")
2757 case "$enable_atomic" in
2761 if test "X$GCC" = "Xyes"; then
2762 AC_MSG_CHECKING([if asm("isc"); works])
2764 main() { asm("ics"); exit(0); }
2769 saved_cflags="$CFLAGS"
2770 CFLAGS="$CFLAGS -Wa,-many"
2772 main() { asm("ics"); exit(0); }
2774 [AC_MSG_RESULT([yes, required -Wa,-many])
2776 [AC_MSG_RESULT([no, use_atomic disabled])
2777 CFLAGS="$saved_cflags"
2779 [AC_MSG_RESULT([cross compile, assume yes])
2780 CFLAGS="$saved_cflags"
2799 ISC_PLATFORM_USEOSFASM="#undef ISC_PLATFORM_USEOSFASM"
2800 if test "$use_atomic" = "yes"; then
2801 AC_MSG_CHECKING([architecture type for atomic operations])
2802 have_atomic=yes # set default
2805 # XXX: some old x86 architectures actually do not support
2806 # (some of) these operations. Do we need stricter checks?
2807 AC_CHECK_SIZEOF([void *])
2808 if test $ac_cv_sizeof_void_p = 8; then
2816 AC_CHECK_SIZEOF([void *])
2817 if test $ac_cv_sizeof_void_p = 8; then
2827 powerpc-*|powerpc64-*)
2830 mips-*|mipsel-*|mips64-*|mips64el-*)
2841 AC_MSG_RESULT($arch)
2844 if test "$have_atomic" = "yes"; then
2845 AC_MSG_CHECKING([compiler support for inline assembly code])
2848 # Check whether the compiler supports the assembly syntax we provide.
2849 if test "X$GCC" = "Xyes"; then
2850 # GCC's ASM extension always works
2852 if test $arch = "x86_64"; then
2853 # We can share the same code for gcc with x86_32
2856 if test $arch = "powerpc"; then
2858 # The MacOS (and maybe others) uses "r0" for register
2859 # zero. Under linux/ibm it is "0" for register 0.
2860 # Probe to see if we have a MacOS style assembler.
2862 AC_MSG_CHECKING([Checking for MacOS style assembler syntax])
2864 __asm__ volatile ("li r0, 0x0\n"::);
2868 ISC_PLATFORM_USEMACASM="#define ISC_PLATFORM_USEMACASM 1"
2869 ], [AC_MSG_RESULT(no)])
2874 # Tru64 compiler has its own syntax for inline
2878 #error "unexpected compiler"
2890 ISC_PLATFORM_USEGCCASM="#define ISC_PLATFORM_USEGCCASM 1"
2893 ISC_PLATFORM_USEOSFASM="#define ISC_PLATFORM_USEOSFASM 1"
2900 # See if the generic __asm function works. If not,
2901 # we need to disable the atomic operations.
2905 [compiler="standard"
2906 ISC_PLATFORM_USESTDASM="#define ISC_PLATFORM_USESTDASM 1"],
2907 [compiler="not supported (atomic operations disabled)"
2913 AC_MSG_RESULT($compiler)
2916 if test "$have_atomic" = "yes"; then
2917 ISC_PLATFORM_HAVEXADD="#define ISC_PLATFORM_HAVEXADD 1"
2918 ISC_PLATFORM_HAVECMPXCHG="#define ISC_PLATFORM_HAVECMPXCHG 1"
2919 ISC_PLATFORM_HAVEATOMICSTORE="#define ISC_PLATFORM_HAVEATOMICSTORE 1"
2921 ISC_PLATFORM_HAVEXADD="#undef ISC_PLATFORM_HAVEXADD"
2922 ISC_PLATFORM_HAVECMPXCHG="#undef ISC_PLATFORM_HAVECMPXCHG"
2923 ISC_PLATFORM_HAVEATOMICSTORE="#undef ISC_PLATFORM_HAVEATOMICSTORE"
2926 if test "$have_xaddq" = "yes"; then
2927 ISC_PLATFORM_HAVEXADDQ="#define ISC_PLATFORM_HAVEXADDQ 1"
2929 ISC_PLATFORM_HAVEXADDQ="#undef ISC_PLATFORM_HAVEXADDQ"
2932 AC_SUBST(ISC_PLATFORM_HAVEXADD)
2933 AC_SUBST(ISC_PLATFORM_HAVEXADDQ)
2934 AC_SUBST(ISC_PLATFORM_HAVECMPXCHG)
2935 AC_SUBST(ISC_PLATFORM_HAVEATOMICSTORE)
2937 AC_SUBST(ISC_PLATFORM_USEGCCASM)
2938 AC_SUBST(ISC_PLATFORM_USEOSFASM)
2939 AC_SUBST(ISC_PLATFORM_USESTDASM)
2940 AC_SUBST(ISC_PLATFORM_USEMACASM)
2943 AC_SUBST(ISC_ARCH_DIR)
2946 # Activate "rrset-order fixed" or not?
2948 AC_ARG_ENABLE(fixed-rrset,
2949 [ --enable-fixed-rrset enable fixed rrset ordering
2951 enable_fixed="$enableval",
2953 case "$enable_fixed" in
2955 AC_DEFINE(DNS_RDATASET_FIXED, 1,
2956 [Define to enable "rrset-order fixed" syntax.])
2965 # Enable response policy rewriting using NS IP addresses
2967 AC_ARG_ENABLE(rpz-nsip,
2968 [ --disable-rpz-nsip disable rpz-nsip rules [[default=enabled]]],
2969 enable_nsip="$enableval",
2971 case "$enable_nsip" in
2973 AC_DEFINE(ENABLE_RPZ_NSIP, 1,
2974 [Define to enable rpz-nsip rules.])
2983 # Enable response policy rewriting using NS name
2985 AC_ARG_ENABLE(rpz-nsdname,
2986 [ --disable-rpz-nsdname disable rpz-nsdname rules [[default=enabled]]],
2987 enable_nsdname="$enableval",
2988 enable_nsdname="yes")
2989 case "$enable_nsdname" in
2991 AC_DEFINE(ENABLE_RPZ_NSDNAME, 1,
2992 [Define to enable rpz-nsdname rules.])
3001 # Activate "filter-aaaa-on-v4" or not?
3003 AC_ARG_ENABLE(filter-aaaa,
3004 [ --enable-filter-aaaa enable filtering of AAAA records over IPv4
3006 enable_filter="$enableval",
3008 case "$enable_filter" in
3010 AC_DEFINE(ALLOW_FILTER_AAAA_ON_V4, 1,
3011 [Define to enable the "filter-aaaa-on-v4" option.])
3020 # The following sets up how non-blocking i/o is established.
3021 # Sunos, cygwin and solaris 2.x (x<5) require special handling.
3024 *-sunos*) AC_DEFINE(PORT_NONBLOCK, O_NDELAY);;
3025 *-cygwin*) AC_DEFINE(PORT_NONBLOCK, O_NDELAY);;
3026 *-solaris2.[[01234]])
3027 AC_DEFINE(PORT_NONBLOCK, O_NONBLOCK)
3028 AC_DEFINE(USE_FIONBIO_IOCTL, 1,
3029 [Defined if you need to use ioctl(FIONBIO) instead a fcntl call to make non-blocking.])
3031 *) AC_DEFINE(PORT_NONBLOCK, O_NONBLOCK,
3032 [Sets which flag to pass to open/fcntl to make non-blocking (O_NDELAY/O_NONBLOCK).])
3036 # Solaris 2.5.1 and earlier cannot bind() then connect() a TCP socket.
3037 # This prevents the source address being set.
3040 *-solaris2.[[012345]]|*-solaris2.5.1)
3041 AC_DEFINE(BROKEN_TCP_BIND_BEFORE_CONNECT, 1,
3042 [Define if you cannot bind() before connect() for TCP sockets.])
3046 # The following sections deal with tools used for formatting
3047 # the documentation. They are all optional, unless you are
3048 # a developer editing the documentation source.
3055 AC_PATH_PROGS(LATEX, latex, latex)
3058 AC_PATH_PROGS(PDFLATEX, pdflatex, pdflatex)
3065 AC_PATH_PROGS(W3M, w3m, w3m)
3069 # Look for xsltproc (libxslt)
3072 AC_PATH_PROG(XSLTPROC, xsltproc, xsltproc)
3076 # Look for xmllint (libxml2)
3079 AC_PATH_PROG(XMLLINT, xmllint, xmllint)
3086 AC_PATH_PROG(DOXYGEN, doxygen, doxygen)
3090 # Subroutine for searching for an ordinary file (e.g., a stylesheet)
3091 # in a number of directories:
3093 # NOM_PATH_FILE(VARIABLE, FILENAME, DIRECTORIES)
3095 # If the file FILENAME is found in one of the DIRECTORIES, the shell
3096 # variable VARIABLE is defined to its absolute pathname. Otherwise,
3097 # it is set to FILENAME, with no directory prefix (that's not terribly
3098 # useful, but looks less confusing in substitutions than leaving it
3099 # empty). The variable VARIABLE will be substituted into output files.
3102 AC_DEFUN(NOM_PATH_FILE, [
3104 AC_MSG_CHECKING(for $2)
3115 if test "X[$]$1" = "X"
3117 AC_MSG_RESULT("not found");
3124 # Look for Docbook-XSL stylesheets. Location probably varies by system.
3125 # If it's not explicitly specified, guess where it might be found, based on
3126 # where SGML stuff lives on some systems (FreeBSD is the only one we're sure
3127 # of at the moment).
3129 AC_MSG_CHECKING(for Docbook-XSL path)
3130 AC_ARG_WITH(docbook-xsl,
3131 [ --with-docbook-xsl=PATH Specify path for Docbook-XSL stylesheets],
3132 docbook_path="$withval", docbook_path="auto")
3133 case "$docbook_path" in
3136 docbook_xsl_trees="/usr/pkg/share/xsl/docbook /usr/local/share/xsl/docbook /usr/share/xsl/docbook /opt/local/share/xsl/docbook-xsl"
3139 docbook_xsl_trees="$withval"
3140 AC_MSG_RESULT($docbook_xsl_trees)
3145 # Look for stylesheets we need.
3148 NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_HTML, html/docbook.xsl, $docbook_xsl_trees)
3149 NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_XHTML, xhtml/docbook.xsl, $docbook_xsl_trees)
3150 NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_MAN, manpages/docbook.xsl, $docbook_xsl_trees)
3151 NOM_PATH_FILE(XSLT_DOCBOOK_CHUNK_HTML, html/chunk.xsl, $docbook_xsl_trees)
3152 NOM_PATH_FILE(XSLT_DOCBOOK_CHUNK_XHTML, xhtml/chunk.xsl, $docbook_xsl_trees)
3153 NOM_PATH_FILE(XSLT_DOCBOOK_CHUNKTOC_HTML, html/chunktoc.xsl, $docbook_xsl_trees)
3154 NOM_PATH_FILE(XSLT_DOCBOOK_CHUNKTOC_XHTML, xhtml/chunktoc.xsl, $docbook_xsl_trees)
3155 NOM_PATH_FILE(XSLT_DOCBOOK_MAKETOC_HTML, html/maketoc.xsl, $docbook_xsl_trees)
3156 NOM_PATH_FILE(XSLT_DOCBOOK_MAKETOC_XHTML, xhtml/maketoc.xsl, $docbook_xsl_trees)
3159 # Same dance for db2latex
3161 # No idea where this lives except on FreeBSD.
3164 db2latex_xsl_trees="/usr/local/share"
3167 # Look for stylesheets we need.
3170 NOM_PATH_FILE(XSLT_DB2LATEX_STYLE, db2latex/xsl/docbook.xsl, $db2latex_xsl_trees)
3173 # Look for "admonition" image directory. Can't use NOM_PATH_FILE()
3174 # because it's a directory, so just do the same things, inline.
3177 AC_MSG_CHECKING(for db2latex/xsl/figures)
3178 for d in $db2latex_xsl_trees
3180 dd=$d/db2latex/xsl/figures
3183 XSLT_DB2LATEX_ADMONITIONS=$dd
3188 if test "X$XSLT_DB2LATEX_ADMONITIONS" = "X"
3190 AC_MSG_RESULT(not found)
3191 XSLT_DB2LATEX_ADMONITIONS=db2latex/xsl/figures
3193 AC_SUBST(XSLT_DB2LATEX_ADMONITIONS)
3199 [ --with-idn[=MPREFIX] enable IDN support using idnkit [default PREFIX]],
3200 use_idn="$withval", use_idn="no")
3203 if test X$prefix = XNONE ; then
3218 AC_ARG_WITH(libiconv,
3219 [ --with-libiconv[=IPREFIX] GNU libiconv are in IPREFIX [default PREFIX]],
3220 use_libiconv="$withval", use_libiconv="no")
3221 case "$use_libiconv" in
3223 if test X$prefix = XNONE ; then
3224 iconvlib="-L/usr/local/lib -R/usr/local/lib -liconv"
3226 iconvlib="-L$prefix/lib -R$prefix/lib -liconv"
3233 iconvlib="-L$use_libiconv/lib -R$use_libiconv/lib -liconv"
3238 [ --with-iconv[=LIBSPEC] specify iconv library [default -liconv]],
3239 iconvlib="$withval")
3250 [ --with-idnlib=ARG specify libidnkit],
3251 idnlib="$withval", idnlib="no")
3252 if test "$idnlib" = yes; then
3253 AC_MSG_ERROR([You must specify ARG for --with-idnlib.])
3257 if test "$use_idn" != no; then
3258 AC_DEFINE(WITH_IDN, 1, [define if idnkit support is to be included.])
3259 STD_CINCLUDES="$STD_CINCLUDES -I$idn_path/include"
3260 if test "$idnlib" != no; then
3261 IDNLIBS="$idnlib $iconvlib"
3263 IDNLIBS="-L$idn_path/lib -lidnkit $iconvlib"
3269 # Check whether to build Automated Test Framework unit tests
3272 [ --with-atf=ARG Automated Test Framework support],
3273 atf="$withval", atf="no")
3274 if test "$atf" = yes; then
3278 AC_CONFIG_COMMANDS([atf-config],
3280 mkdir -p unit/atf-src;
3284 *) srcdir="../../$srcdir";;
3286 ${SHELL} ${srcdir}${srcdir:+/unit/atf-src/}./configure MISSING=: --prefix $atfdir;
3288 [atfdir=`pwd`/unit/atf])
3289 AC_MSG_RESULT(building ATF from bind9/unit/atf-src)
3293 if test "$atf" != no; then
3294 AC_DEFINE(ATF_TEST, 1, [define if ATF unit tests are to be built.])
3295 STD_CINCLUDES="$STD_CINCLUDES -I$atf/include"
3297 ATFLIBS="-L$atf/lib -latf-c"
3298 if test "$want_openssl_hash" = yes; then
3299 ATFLIBS="-L$atf/lib -latf-c $DNS_CRYPTO_LIBS"
3307 AC_CHECK_HEADERS(locale.h)
3308 AC_CHECK_FUNCS(setlocale)
3313 AC_SUBST(BIND9_TOP_BUILDDIR)
3314 BIND9_TOP_BUILDDIR=`pwd`
3316 AC_SUBST(BIND9_ISC_BUILDINCLUDE)
3317 AC_SUBST(BIND9_ISCCC_BUILDINCLUDE)
3318 AC_SUBST(BIND9_ISCCFG_BUILDINCLUDE)
3319 AC_SUBST(BIND9_DNS_BUILDINCLUDE)
3320 AC_SUBST(BIND9_LWRES_BUILDINCLUDE)
3321 AC_SUBST(BIND9_BIND9_BUILDINCLUDE)
3322 if test "X$srcdir" != "X"; then
3323 BIND9_ISC_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/isc/include"
3324 BIND9_ISCCC_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/isccc/include"
3325 BIND9_ISCCFG_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/isccfg/include"
3326 BIND9_DNS_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/dns/include"
3327 BIND9_LWRES_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/lwres/include"
3328 BIND9_BIND9_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/bind9/include"
3330 BIND9_ISC_BUILDINCLUDE=""
3331 BIND9_ISCCC_BUILDINCLUDE=""
3332 BIND9_ISCCFG_BUILDINCLUDE=""
3333 BIND9_DNS_BUILDINCLUDE=""
3334 BIND9_LWRES_BUILDINCLUDE=""
3335 BIND9_BIND9_BUILDINCLUDE=""
3338 AC_SUBST_FILE(BIND9_MAKE_INCLUDES)
3339 BIND9_MAKE_INCLUDES=$BIND9_TOP_BUILDDIR/make/includes
3341 AC_SUBST_FILE(BIND9_MAKE_RULES)
3342 BIND9_MAKE_RULES=$BIND9_TOP_BUILDDIR/make/rules
3345 BIND9_PRODUCT="PRODUCT=\"${PRODUCT}\""
3346 AC_SUBST(BIND9_PRODUCT)
3347 BIND9_DESCRIPTION="DESCRIPTION=\"${DESCRIPTION}\""
3348 AC_SUBST(BIND9_DESCRIPTION)
3349 BIND9_VERSION="VERSION=${MAJORVER}.${MINORVER}${PATCHVER:+.}${PATCHVER}${RELEASETYPE}${RELEASEVER}"
3350 AC_SUBST(BIND9_VERSION)
3352 BIND9_SRCID="SRCID=unset"
3353 if test -f $srcdir/srcid; then
3355 BIND9_SRCID="SRCID=$SRCID"
3357 AC_SUBST(BIND9_SRCID)
3359 if test -z "$ac_configure_args"; then
3360 BIND9_CONFIGARGS="defaults"
3362 for a in $ac_configure_args
3364 BIND9_CONFIGARGS="$BIND9_CONFIGARGS $a"
3367 BIND9_CONFIGARGS="`echo $BIND9_CONFIGARGS | sed 's/^ //'`"
3368 BIND9_CONFIGARGS="CONFIGARGS=${BIND9_CONFIGARGS}"
3369 AC_SUBST(BIND9_CONFIGARGS)
3371 AC_SUBST_FILE(LIBISC_API)
3372 LIBISC_API=$srcdir/lib/isc/api
3374 AC_SUBST_FILE(LIBISCCC_API)
3375 LIBISCCC_API=$srcdir/lib/isccc/api
3377 AC_SUBST_FILE(LIBISCCFG_API)
3378 LIBISCCFG_API=$srcdir/lib/isccfg/api
3380 AC_SUBST_FILE(LIBDNS_API)
3381 LIBDNS_API=$srcdir/lib/dns/api
3383 AC_SUBST_FILE(LIBBIND9_API)
3384 LIBBIND9_API=$srcdir/lib/bind9/api
3386 AC_SUBST_FILE(LIBLWRES_API)
3387 LIBLWRES_API=$srcdir/lib/lwres/api
3389 AC_SUBST_FILE(LIBIRS_API)
3390 LIBIRS_API=$srcdir/lib/irs/api
3393 # Configure any DLZ drivers.
3395 # If config.dlz.in selects one or more DLZ drivers, it will set
3396 # CONTRIB_DLZ to a non-empty value, which will be our clue to
3397 # build DLZ drivers in contrib.
3399 # This section has to come after the libtool stuff because it needs to
3400 # know how to name the driver object files.
3404 DLZ_DRIVER_INCLUDES=""
3411 # Configure support for building a shared library object
3413 # Even when libtool is available it can't always be relied upon
3414 # to build an object that can be dlopen()'ed, but this is necessary
3415 # for building the dlzexternal system test, so we'll try it the
3416 # old-fashioned way.
3424 [ --with-dlopen=ARG Support dynamically loadable DLZ drivers],
3425 dlopen="$withval", dlopen="yes")
3428 *-sunos*) dlopen="no"
3432 if test "$dlopen" = "yes"; then
3433 AC_CHECK_LIB(dl, dlopen, have_dl=yes, have_dl=no)
3434 if test "$have_dl" = "yes"; then
3437 AC_CHECK_FUNCS(dlopen dlclose dlsym,,dlopen=no)
3440 if test "$dlopen" = "yes"; then
3444 if test "$have_dl" = "yes"
3446 if test "$use_libtool" = "yes"; then
3447 SO_LD="${CC} -Xcompiler -shared"
3449 SO_LD="${CC} -shared"
3455 *-freebsd*|*-openbsd*|*-netbsd*)
3457 SO_LD="ld -Bshareable -x"
3461 SO_LD="ld -G -z text"
3473 if test "X$GCC" = "Xyes"; then
3475 test -n "$SO_LD" || SO_LD="${CC} -shared"
3478 # If we still don't know how to make shared objects, don't make any.
3479 if test -n "$SO_LD"; then
3480 SO_TARGETS="\${SO_TARGETS}"
3481 AC_DEFINE(ISC_DLZ_DLOPEN, 1,
3482 [Define to allow building of objects for dlopen().])
3489 AC_SUBST(SO_TARGETS)
3491 sinclude(contrib/dlz/config.dlz.in)
3492 AC_MSG_CHECKING(contributed DLZ drivers)
3494 if test -n "$CONTRIB_DLZ"
3497 DLZ_DRIVER_RULES=contrib/dlz/drivers/rules
3498 AC_CONFIG_FILES([$DLZ_DRIVER_RULES])
3501 DLZ_DRIVER_RULES=/dev/null
3504 AC_SUBST(CONTRIB_DLZ)
3505 AC_SUBST(DLZ_DRIVER_INCLUDES)
3506 AC_SUBST(DLZ_DRIVER_LIBS)
3507 AC_SUBST(DLZ_DRIVER_SRCS)
3508 AC_SUBST(DLZ_DRIVER_OBJS)
3509 AC_SUBST(DLZ_SYSTEM_TEST)
3510 AC_SUBST_FILE(DLZ_DRIVER_RULES)
3512 if test "$cross_compiling" = "yes"; then
3513 if test -z "$BUILD_CC"; then
3514 AC_ERROR([BUILD_CC not set])
3516 BUILD_CFLAGS="$BUILD_CFLAGS"
3517 BUILD_CPPFLAGS="$BUILD_CPPFLAGS"
3518 BUILD_LDFLAGS="$BUILD_LDFLAGS"
3519 BUILD_LIBS="$BUILD_LIBS"
3522 BUILD_CFLAGS="$CFLAGS"
3523 BUILD_CPPFLAGS="$CPPFLAGS $GEN_NEED_OPTARG"
3524 BUILD_LDFLAGS="$LDFLAGS"
3529 for e in $BUILD_LDFLAGS ; do
3534 ee=`echo $e | sed -e 's%^-L%-Wl,-rpath,%'`
3535 NEWFLAGS="$NEWFLAGS $e $ee"
3538 ee=`echo $e | sed -e 's%^-L%-Wl,-rpath,%'`
3539 NEWFLAGS="$NEWFLAGS $e $ee"
3542 ee=`echo $e | sed -e 's%^-L%-R%'`
3543 NEWFLAGS="$NEWFLAGS $e $ee"
3546 NEWFLAGS="$NEWFLAGS $e"
3551 NEWFLAGS="$NEWFLAGS $e"
3555 BUILD_LDFLAGS="$NEWFLAGS"
3558 for e in $DNS_GSSAPI_LIBS ; do
3563 ee=`echo $e | sed -e 's%^-L%-Wl,-rpath,%'`
3564 NEWFLAGS="$NEWFLAGS $e $ee"
3567 ee=`echo $e | sed -e 's%^-L%-Wl,-rpath,%'`
3568 NEWFLAGS="$NEWFLAGS $e $ee"
3571 ee=`echo $e | sed -e 's%^-L%-R%'`
3572 NEWFLAGS="$NEWFLAGS $e $ee"
3575 NEWFLAGS="$NEWFLAGS $e"
3580 NEWFLAGS="$NEWFLAGS $e"
3584 DNS_GSSAPI_LIBS="$NEWFLAGS"
3587 for e in $DNS_CRYPTO_LIBS ; do
3592 ee=`echo $e | sed -e 's%^-L%-Wl,-rpath,%'`
3593 NEWFLAGS="$NEWFLAGS $e $ee"
3596 ee=`echo $e | sed -e 's%^-L%-Wl,-rpath,%'`
3597 NEWFLAGS="$NEWFLAGS $e $ee"
3600 ee=`echo $e | sed -e 's%^-L%-R%'`
3601 NEWFLAGS="$NEWFLAGS $e $ee"
3604 NEWFLAGS="$NEWFLAGS $e"
3609 NEWFLAGS="$NEWFLAGS $e"
3613 DNS_CRYPTO_LIBS="$NEWFLAGS"
3616 AC_SUBST(BUILD_CFLAGS)
3617 AC_SUBST(BUILD_CPPFLAGS)
3618 AC_SUBST(BUILD_LDFLAGS)
3619 AC_SUBST(BUILD_LIBS)
3622 # Commands to run at the end of config.status.
3623 # Don't just put these into configure, it won't work right if somebody
3624 # runs config.status directly (which autoconf allows).
3629 [chmod a+x isc-config.sh doc/doxygen/doxygen-input-filter])
3632 # Files to configure. These are listed here because we used to
3633 # specify them as arguments to AC_OUTPUT. It's (now) ok to move these
3634 # elsewhere if there's a good reason for doing so.
3643 bin/confgen/Makefile
3644 bin/confgen/unix/Makefile
3648 bin/named/unix/Makefile
3649 bin/nsupdate/Makefile
3652 bin/python/dnssec-checkds.py
3653 bin/python/dnssec-coverage.py
3656 bin/tests/atomic/Makefile
3657 bin/tests/db/Makefile
3658 bin/tests/dst/Makefile
3659 bin/tests/dst/Kdh.+002+18602.key
3660 bin/tests/dst/Kdh.+002+18602.private
3661 bin/tests/dst/Kdh.+002+48957.key
3662 bin/tests/dst/Kdh.+002+48957.private
3663 bin/tests/dst/Ktest.+001+00002.key
3664 bin/tests/dst/Ktest.+001+54622.key
3665 bin/tests/dst/Ktest.+001+54622.private
3666 bin/tests/dst/Ktest.+003+23616.key
3667 bin/tests/dst/Ktest.+003+23616.private
3668 bin/tests/dst/Ktest.+003+49667.key
3669 bin/tests/dst/dst_2_data
3670 bin/tests/dst/t2_data_1
3671 bin/tests/dst/t2_data_2
3672 bin/tests/dst/t2_dsasig
3673 bin/tests/dst/t2_rsasig
3674 bin/tests/hashes/Makefile
3675 bin/tests/headerdep_test.sh
3676 bin/tests/master/Makefile
3677 bin/tests/mem/Makefile
3678 bin/tests/names/Makefile
3679 bin/tests/net/Makefile
3680 bin/tests/rbt/Makefile
3681 bin/tests/resolver/Makefile
3682 bin/tests/sockaddr/Makefile
3683 bin/tests/system/Makefile
3684 bin/tests/system/conf.sh
3685 bin/tests/system/dlz/prereq.sh
3686 bin/tests/system/dlzexternal/Makefile
3687 bin/tests/system/dlzexternal/ns1/named.conf
3688 bin/tests/system/ecdsa/prereq.sh
3689 bin/tests/system/filter-aaaa/Makefile
3690 bin/tests/system/gost/prereq.sh
3691 bin/tests/system/lwresd/Makefile
3692 bin/tests/system/rpz/Makefile
3693 bin/tests/system/rsabigexponent/Makefile
3694 bin/tests/system/tkey/Makefile
3695 bin/tests/system/tsiggss/Makefile
3696 bin/tests/tasks/Makefile
3697 bin/tests/timers/Makefile
3698 bin/tests/virtual-time/Makefile
3699 bin/tests/virtual-time/conf.sh
3701 contrib/check-secure-delegation.pl
3702 contrib/zone-edit.sh
3705 doc/doxygen/Doxyfile
3706 doc/doxygen/Makefile
3707 doc/doxygen/doxygen-input-filter
3710 doc/xsl/isc-docbook-chunk.xsl
3711 doc/xsl/isc-docbook-html.xsl
3712 doc/xsl/isc-docbook-latex.xsl
3713 doc/xsl/isc-manpage.xsl
3717 lib/bind9/include/Makefile
3718 lib/bind9/include/bind9/Makefile
3720 lib/dns/include/Makefile
3721 lib/dns/include/dns/Makefile
3722 lib/dns/include/dst/Makefile
3723 lib/dns/tests/Makefile
3725 lib/export/dns/Makefile
3726 lib/export/dns/include/Makefile
3727 lib/export/dns/include/dns/Makefile
3728 lib/export/dns/include/dst/Makefile
3729 lib/export/irs/Makefile
3730 lib/export/irs/include/Makefile
3731 lib/export/irs/include/irs/Makefile
3732 lib/export/isc/$thread_dir/Makefile
3733 lib/export/isc/$thread_dir/include/Makefile
3734 lib/export/isc/$thread_dir/include/isc/Makefile
3735 lib/export/isc/Makefile
3736 lib/export/isc/include/Makefile
3737 lib/export/isc/include/isc/Makefile
3738 lib/export/isc/nls/Makefile
3739 lib/export/isc/unix/Makefile
3740 lib/export/isc/unix/include/Makefile
3741 lib/export/isc/unix/include/isc/Makefile
3742 lib/export/isccfg/Makefile
3743 lib/export/isccfg/include/Makefile
3744 lib/export/isccfg/include/isccfg/Makefile
3745 lib/export/samples/Makefile
3746 lib/export/samples/Makefile-postinstall
3748 lib/irs/include/Makefile
3749 lib/irs/include/irs/Makefile
3750 lib/irs/include/irs/netdb.h
3751 lib/irs/include/irs/platform.h
3752 lib/isc/$arch/Makefile
3753 lib/isc/$arch/include/Makefile
3754 lib/isc/$arch/include/isc/Makefile
3755 lib/isc/$thread_dir/Makefile
3756 lib/isc/$thread_dir/include/Makefile
3757 lib/isc/$thread_dir/include/isc/Makefile
3759 lib/isc/include/Makefile
3760 lib/isc/include/isc/Makefile
3761 lib/isc/include/isc/platform.h
3762 lib/isc/tests/Makefile
3763 lib/isc/nls/Makefile
3764 lib/isc/unix/Makefile
3765 lib/isc/unix/include/Makefile
3766 lib/isc/unix/include/isc/Makefile
3768 lib/isccc/include/Makefile
3769 lib/isccc/include/isccc/Makefile
3771 lib/isccfg/include/Makefile
3772 lib/isccfg/include/isccfg/Makefile
3774 lib/lwres/include/Makefile
3775 lib/lwres/include/lwres/Makefile
3776 lib/lwres/include/lwres/netdb.h
3777 lib/lwres/include/lwres/platform.h
3778 lib/lwres/man/Makefile
3779 lib/lwres/unix/Makefile
3780 lib/lwres/unix/include/Makefile
3781 lib/lwres/unix/include/lwres/Makefile
3783 lib/tests/include/Makefile
3784 lib/tests/include/tests/Makefile
3796 # Now that the Makefiles exist we can ensure that everything is rebuilt.
3798 AC_ARG_WITH(make-clean,
3799 [ --with-make-clean Run "make clean" at end of configure [[yes|no]].],
3800 make_clean="$withval", make_clean="yes")
3801 case "$make_clean" in
3807 if test "X$USE_OPENSSL" = "X"; then
3809 BIND is being built without OpenSSL. This means it will not have DNSSEC support.
3813 if test "X$OPENSSL_WARNING" != "X"; then
3815 WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
3816 WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
3818 WARNING Your OpenSSL crypto library may be vulnerable to WARNING
3819 WARNING one or more of the the following known security WARNING
3820 WARNING flaws: WARNING
3822 WARNING CAN-2002-0659, CAN-2006-4339, CVE-2006-2937 and WARNING
3823 WARNING CVE-2006-2940. WARNING
3825 WARNING It is recommended that you upgrade to OpenSSL WARNING
3826 WARNING version 0.9.8d/0.9.7l (or greater). WARNING
3828 WARNING You can disable this warning by specifying: WARNING
3830 WARNING --disable-openssl-version-check WARNING
3832 WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
3833 WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
3837 # Tell Emacs to edit this file in shell mode.