]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/bind9/configure.in
This commit was generated by cvs2svn to compensate for changes in r167961,
[FreeBSD/FreeBSD.git] / contrib / bind9 / configure.in
1 # Copyright (C) 2004-2006  Internet Systems Consortium, Inc. ("ISC")
2 # Copyright (C) 1998-2003  Internet Software Consortium.
3 #
4 # Permission to use, copy, modify, and 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.
7 #
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.
15
16 dnl
17 AC_DIVERT_PUSH(1)dnl
18 esyscmd([sed "s/^/# /" COPYRIGHT])dnl
19 AC_DIVERT_POP()dnl
20
21 AC_REVISION($Revision: 1.294.2.23.2.73 $)
22
23 AC_INIT(lib/dns/name.c)
24 AC_PREREQ(2.13)
25
26 AC_CONFIG_HEADER(config.h)
27 AC_CONFIG_SUBDIRS(lib/bind)
28
29 AC_CANONICAL_HOST
30
31 AC_PROG_MAKE_SET
32 AC_PROG_RANLIB
33 AC_PROG_INSTALL
34
35 AC_SUBST(STD_CINCLUDES)
36 AC_SUBST(STD_CDEFINES)
37 AC_SUBST(STD_CWARNINGS)
38 AC_SUBST(CCOPT)
39
40 AC_PATH_PROG(AR, ar)
41 ARFLAGS="cruv"
42 AC_SUBST(AR)
43 AC_SUBST(ARFLAGS)
44
45 # The POSIX ln(1) program.  Non-POSIX systems may substitute
46 # "copy" or something.
47 LN=ln
48 AC_SUBST(LN)
49
50 case "$AR" in
51         "")
52                 AC_MSG_ERROR([
53 ar program not found.  Please fix your PATH to include the directory in
54 which ar resides, or set AR in the environment with the full path to ar.
55 ])
56
57                 ;;
58 esac
59
60 #
61 # Etags.
62 #
63 AC_PATH_PROGS(ETAGS, etags emacs-etags)
64
65 #
66 # Some systems, e.g. RH7, have the Exuberant Ctags etags instead of
67 # GNU emacs etags, and it requires the -L flag.
68 #
69 if test "X$ETAGS" != "X"; then
70         AC_MSG_CHECKING(for Exuberant Ctags etags)
71         if $ETAGS --version 2>&1 | grep 'Exuberant Ctags' >/dev/null 2>&1; then
72                 AC_MSG_RESULT(yes)
73                 ETAGS="$ETAGS -L"
74         else
75                 AC_MSG_RESULT(no)
76         fi
77 fi
78 AC_SUBST(ETAGS)
79
80 #
81 # Perl is optional; it is used only by some of the system test scripts.
82 #
83 AC_PATH_PROGS(PERL, perl5 perl)
84 AC_SUBST(PERL)
85
86 #
87 # Special processing of paths depending on whether --prefix,
88 # --sysconfdir or --localstatedir arguments were given.  What's
89 # desired is some compatibility with the way previous versions
90 # of BIND built; they defaulted to /usr/local for most parts of
91 # the installation, but named.boot/named.conf was in /etc
92 # and named.pid was in /var/run.
93 #
94 # So ... if none of --prefix, --sysconfdir or --localstatedir are
95 # specified, set things up that way.  If --prefix is given, use
96 # it for sysconfdir and localstatedir the way configure normally
97 # would.  To change the prefix for everything but leave named.conf
98 # in /etc or named.pid in /var/run, then do this the usual configure way:
99 # ./configure --prefix=/somewhere --sysconfdir=/etc
100 # ./configure --prefix=/somewhere --localstatedir=/var
101 #
102 # To put named.conf and named.pid in /usr/local with everything else,
103 # set the prefix explicitly to /usr/local even though that's the default:
104 # ./configure --prefix=/usr/local
105 #
106 case "$prefix" in
107         NONE)
108                 case "$sysconfdir" in
109                         '${prefix}/etc')
110                                 sysconfdir=/etc
111                                 ;;
112                 esac
113                 case "$localstatedir" in
114                         '${prefix}/var')
115                                 localstatedir=/var
116                                 ;;
117                 esac
118                 ;;
119 esac
120
121 #
122 # Make sure INSTALL uses an absolute path, else it will be wrong in all
123 # Makefiles, since they use make/rules.in and INSTALL will be adjusted by
124 # configure based on the location of the file where it is substituted.
125 # Since in BIND9 INSTALL is only substituted into make/rules.in, an immediate
126 # subdirectory of install-sh, This relative path will be wrong for all
127 # directories more than one level down from install-sh.
128 #
129 case "$INSTALL" in
130         /*)
131                 ;;
132         *)
133                 #
134                 # Not all systems have dirname.
135                 #
136                 changequote({, })
137                 ac_dir="`echo $INSTALL | sed 's%/[^/]*$%%'`"
138                 changequote([, ])
139
140                 ac_prog="`echo $INSTALL | sed 's%.*/%%'`"
141                 test "$ac_dir" = "$ac_prog" && ac_dir=.
142                 test -d "$ac_dir" && ac_dir="`(cd \"$ac_dir\" && pwd)`"
143                 INSTALL="$ac_dir/$ac_prog"
144                 ;;
145 esac
146
147 #
148 # On these hosts, we really want to use cc, not gcc, even if it is
149 # found.  The gcc that these systems have will not correctly handle
150 # pthreads.
151 #
152 # However, if the user sets $CC to be something, let that override
153 # our change.
154 #
155 if test "X$CC" = "X" ; then
156         case "$host" in
157                 *-dec-osf*)
158                         CC="cc"
159                         ;;
160                 *-solaris*)
161                         # Use Sun's cc if it is available, but watch
162                         # out for /usr/ucb/cc; it will never be the right
163                         # compiler to use.
164                         #
165                         # If setting CC here fails, the AC_PROG_CC done
166                         # below might still find gcc.
167                         IFS="${IFS=     }"; ac_save_ifs="$IFS"; IFS=":"
168                         for ac_dir in $PATH; do
169                                 test -z "$ac_dir" && ac_dir=.
170                                 case "$ac_dir" in
171                                 /usr/ucb)
172                                         # exclude
173                                         ;;
174                                 *)
175                                         if test -f "$ac_dir/cc"; then
176                                                 CC="$ac_dir/cc"
177                                                 break
178                                         fi
179                                         ;;
180                                 esac
181                         done
182                         IFS="$ac_save_ifs"
183                         ;;
184                 *-hp-hpux*)
185                         CC="cc"
186                         ;;
187                 mips-sgi-irix*)
188                         CC="cc"
189                         ;;
190         esac
191 fi
192
193 AC_PROG_CC
194
195 #
196 # gcc's optimiser is broken at -02 for ultrasparc
197 #
198 if test "$ac_env_CFLAGS_set" != set -a "X$GCC" = "Xyes"; then
199         case "$host" in
200         sparc-*)
201                 CCFLAGS="-g -O1"
202                 ;;
203         esac
204 fi
205
206 #
207 # OS dependent CC flags
208 #
209 case "$host" in
210         # OSF 5.0: recv/send are only avaliable with -D_POSIX_PII_SOCKET or
211         # -D_XOPEN_SOURCE_EXTENDED.
212         *-dec-osf*)
213                 STD_CDEFINES="$STD_CDEFINES -D_POSIX_PII_SOCKET"
214                 CPPFLAGS="$CPPFLAGS -D_POSIX_PII_SOCKET"
215                 ;;
216         #HP-UX: need -D_XOPEN_SOURCE_EXTENDED and -lxnet for CMSG macros
217         *-hp-hpux*)
218                 STD_CDEFINES="$STD_CDEFINES -D_XOPEN_SOURCE_EXTENDED"
219                 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
220                 LIBS="-lxnet $LIBS"
221                 ;;
222         # Solaris: need -D_XPG4_2 and -D__EXTENSIONS__ for CMSG macros
223         *-solaris*)
224                 STD_CDEFINES="$STD_CDEFINES -D_XPG4_2 -D__EXTENSIONS__"
225                 CPPFLAGS="$CPPFLAGS -D_XPG4_2 -D__EXTENSIONS__"
226                 ;;
227 esac
228
229 AC_HEADER_STDC
230
231 AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h sys/sockio.h sys/select.h sys/param.h sys/sysctl.h net/if6.h,,,
232 [$ac_includes_default
233 #ifdef HAVE_SYS_PARAM_H
234 # include <sys/param.h>
235 #endif
236 ])
237
238 AC_C_CONST
239 AC_C_INLINE
240 AC_CHECK_FUNC(sysctlbyname, AC_DEFINE(HAVE_SYSCTLBYNAME))
241
242 #
243 # UnixWare 7.1.1 with the feature supplement to the UDK compiler
244 # is reported to not support "static inline" (RT #1212).
245 #
246 AC_MSG_CHECKING(for static inline breakage)
247 AC_TRY_COMPILE(, [
248                 foo1();
249         }
250
251         static inline int foo1() {
252                 return 0;
253         }
254
255         static inline int foo2() {
256                 return foo1();
257         ],
258         [AC_MSG_RESULT(no)],
259         [AC_MSG_RESULT(yes)
260          AC_DEFINE(inline, )])
261
262 AC_TYPE_SIZE_T
263 AC_CHECK_TYPE(ssize_t, int)
264 AC_CHECK_TYPE(uintptr_t,unsigned long)
265 AC_CHECK_TYPE(socklen_t,
266 [AC_DEFINE(ISC_SOCKADDR_LEN_T, socklen_t)],
267 [
268 AC_TRY_COMPILE(
269 [
270 #include <sys/types.h>
271 #include <sys/socket.h>
272 int getsockname(int, struct sockaddr *, size_t *);
273 ],[],
274 [AC_DEFINE(ISC_SOCKADDR_LEN_T, size_t)],
275 [AC_DEFINE(ISC_SOCKADDR_LEN_T, int)])
276 ],
277 [
278 #include <sys/types.h>
279 #include <sys/socket.h>
280 ])
281 AC_SUBST(ISC_SOCKADDR_LEN_T)
282 AC_HEADER_TIME
283 AC_MSG_CHECKING(for long long)
284 AC_TRY_COMPILE([],[long long i = 0; return (0);],
285         [AC_MSG_RESULT(yes)
286                 ISC_PLATFORM_HAVELONGLONG="#define ISC_PLATFORM_HAVELONGLONG 1"],
287         [AC_MSG_RESULT(no)
288                 ISC_PLATFORM_HAVELONGLONG="#undef ISC_PLATFORM_HAVELONGLONG"])
289 AC_SUBST(ISC_PLATFORM_HAVELONGLONG)
290
291 #
292 # check if we have lifconf
293 #
294 AC_MSG_CHECKING(for struct lifconf)
295 AC_TRY_COMPILE([
296 #include <sys/types.h>
297 #include <sys/socket.h>
298 #include <net/if.h>
299 ],
300 [
301 struct lifconf lifconf;
302 lifconf.lifc_len = 0;
303 ]
304 ,
305         [AC_MSG_RESULT(yes)
306                 ISC_PLATFORM_HAVELIFCONF="#define ISC_PLATFORM_HAVELIFCONF 1"],
307         [AC_MSG_RESULT(no)
308                 ISC_PLATFORM_HAVELIFCONF="#undef ISC_PLATFORM_HAVELIFCONF"])
309 AC_SUBST(ISC_PLATFORM_HAVELIFCONF)
310
311
312 #
313 # check if we need to #include sys/select.h explicitly
314 #
315 case $ac_cv_header_unistd_h in
316 yes)
317 AC_MSG_CHECKING(if unistd.h or sys/types.h defines fd_set)
318 AC_TRY_COMPILE([
319 #include <sys/types.h> /* Ultrix */
320 #include <unistd.h>],
321 [fd_set read_set; return (0);],
322         [AC_MSG_RESULT(yes)
323          ISC_PLATFORM_NEEDSYSSELECTH="#undef ISC_PLATFORM_NEEDSYSSELECTH"
324          LWRES_PLATFORM_NEEDSYSSELECTH="#undef LWRES_PLATFORM_NEEDSYSSELECTH"],
325         [AC_MSG_RESULT(no)
326         case $ac_cv_header_sys_select_h in
327         yes)
328          ISC_PLATFORM_NEEDSYSSELECTH="#define ISC_PLATFORM_NEEDSYSSELECTH 1"
329          LWRES_PLATFORM_NEEDSYSSELECTH="#define LWRES_PLATFORM_NEEDSYSSELECTH 1"
330                 ;;
331         no)
332                 AC_MSG_ERROR([need either working unistd.h or sys/select.h])
333                 ;;
334         esac
335         ])
336         ;;
337 no)
338         case $ac_cv_header_sys_select_h in
339         yes)
340              ISC_PLATFORM_NEEDSYSSELECTH="#define ISC_PLATFORM_NEEDSYSSELECTH 1"
341              LWRES_PLATFORM_NEEDSYSSELECTH="#define LWRES_PLATFORM_NEEDSYSSELECTH 1"
342                 ;;
343         no)
344                 AC_MSG_ERROR([need either unistd.h or sys/select.h])
345                 ;;
346         esac
347         ;;
348 esac
349 AC_SUBST(ISC_PLATFORM_NEEDSYSSELECTH)
350 AC_SUBST(LWRES_PLATFORM_NEEDSYSSELECTH)
351
352 #
353 # Find the machine's endian flavor.
354 #
355 AC_C_BIGENDIAN
356
357 #
358 # was --with-openssl specified?
359 #
360 OPENSSL_WARNING=
361 AC_MSG_CHECKING(for OpenSSL library)
362 AC_ARG_WITH(openssl,
363 [  --with-openssl[=PATH]   Build with OpenSSL [yes|no|path].
364                           (Required for DNSSEC)],
365     use_openssl="$withval", use_openssl="auto")
366
367 openssldirs="/usr /usr/local /usr/local/ssl /usr/pkg /usr/sfw"
368 if test "$use_openssl" = "auto"
369 then
370         for d in $openssldirs
371         do
372                 if test -f $d/include/openssl/opensslv.h
373                 then
374                         use_openssl=$d
375                         break
376                 fi
377         done
378 fi
379 case "$use_openssl" in
380         no)
381                 AC_MSG_RESULT(no)
382                 DST_OPENSSL_INC=""
383                 USE_OPENSSL=""
384                 ;;
385         auto)
386                 DST_OPENSSL_INC=""
387                 USE_OPENSSL=""
388                 AC_MSG_RESULT(not found)
389                 ;;
390         *)
391                 if test "$use_openssl" = "yes"
392                 then
393                         # User did not specify a path - guess it
394                         for d in $openssldirs
395                         do
396                                 if test -f $d/include/openssl/opensslv.h
397                                 then
398                                         use_openssl=$d
399                                         break
400                                 fi
401                         done
402                         if test "$use_openssl" = "yes"
403                         then
404                                 AC_MSG_RESULT(not found)
405                                 AC_MSG_ERROR(
406 [OpenSSL was not found in any of $openssldirs; use --with-openssl=/path])
407                         fi
408                 fi
409                 USE_OPENSSL='-DOPENSSL'
410                 if test "$use_openssl" = "/usr"
411                 then
412                         DST_OPENSSL_INC=""
413                         DNS_OPENSSL_LIBS="-lcrypto"
414                 else
415                         DST_OPENSSL_INC="-I$use_openssl/include"
416                         case $host in
417                         *-solaris*)
418                                 DNS_OPENSSL_LIBS="-L$use_openssl/lib -R$use_openssl/lib -lcrypto"
419                                 ;;
420                         *-hp-hpux*)
421                                 DNS_OPENSSL_LIBS="-L$use_openssl/lib -Wl,+b: -lcrypto"
422                                 ;;
423                         *)
424                                 DNS_OPENSSL_LIBS="-L$use_openssl/lib -lcrypto"
425                                 ;;
426                         esac
427                 fi
428                 AC_MSG_RESULT(using openssl from $use_openssl/lib and $use_openssl/include)
429
430                 saved_cflags="$CFLAGS"
431                 saved_libs="$LIBS"
432                 CFLAGS="$CFLAGS $DST_OPENSSL_INC"
433                 LIBS="$LIBS $DNS_OPENSSL_LIBS"
434                 AC_MSG_CHECKING(whether linking with OpenSSL works)
435                 AC_TRY_RUN([
436 #include <openssl/err.h>
437 int main() {
438         ERR_clear_error();
439         return (0);
440 }
441 ],
442                 [AC_MSG_RESULT(yes)],
443                 [AC_MSG_RESULT(no)
444                  AC_MSG_ERROR(Could not run test program using OpenSSL from
445 $use_openssl/lib and $use_openssl/include.
446 Please check the argument to --with-openssl and your
447 shared library configuration (e.g., LD_LIBRARY_PATH).)],
448                 [AC_MSG_RESULT(assuming it does work on target platform)])
449
450                 AC_MSG_CHECKING(whether linking with OpenSSL requires -ldl)
451                 AC_TRY_LINK([
452 #include <openssl/err.h>],
453 [ DSO_METHOD_dlfcn(); ],
454                 [AC_MSG_RESULT(no)],
455                 [LIBS="$LIBS -ldl"
456                 AC_TRY_LINK([
457 #include <openssl/err.h>
458 ],[ DSO_METHOD_dlfcn(); ],
459                 [AC_MSG_RESULT(yes)
460                 DNS_OPENSSL_LIBS="$DNS_OPENSSL_LIBS -ldl"
461                 ],
462                  [AC_MSG_RESULT(unknown)
463                  AC_MSG_ERROR(OpenSSL has unsupported dynamic loading)],
464                 [AC_MSG_RESULT(assuming it does work on target platform)])
465                 ],
466                 [AC_MSG_RESULT(assuming it does work on target platform)]
467                 )
468                  
469                 AC_CHECK_FUNC(DH_generate_parameters,
470                               AC_DEFINE(HAVE_DH_GENERATE_PARAMETERS, 1,
471                                         [Define if libcrypto has DH_generate_parameters]))
472                 AC_CHECK_FUNC(RSA_generate_key,
473                               AC_DEFINE(HAVE_RSA_GENERATE_KEY, 1,
474                                         [Define if libcrypto has RSA_generate_key]))
475                 AC_CHECK_FUNC(DSA_generate_parameters,
476                               AC_DEFINE(HAVE_DSA_GENERATE_PARAMETERS, 1,
477                                         [Define if libcrypto has DSA_generate_parameters]))
478
479 AC_ARG_ENABLE(openssl-version-check,
480 [AC_HELP_STRING([--enable-openssl-version-check],
481         [Check OpenSSL Version @<:@default=yes@:>@])])
482 case "$enable_openssl_version_check" in
483 yes|'')
484                 AC_MSG_CHECKING(OpenSSL library version)
485                 AC_TRY_RUN([
486 #include <stdio.h>
487 #include <openssl/opensslv.h>
488 int main() {
489         if ((OPENSSL_VERSION_NUMBER >= 0x009070cfL &&
490              OPENSSL_VERSION_NUMBER < 0x00908000L) ||
491              OPENSSL_VERSION_NUMBER >= 0x0090804fL)
492                 return (0);
493         printf("\n\nFound   OPENSSL_VERSION_NUMBER %#010x\n",
494                 OPENSSL_VERSION_NUMBER);
495         printf("Require OPENSSL_VERSION_NUMBER 0x009070cf or greater (0.9.7l)\n"
496                "Require OPENSSL_VERSION_NUMBER 0x0090804f or greater (0.9.8d)\n\n");
497         return (1);
498 }
499                 ],
500                 [AC_MSG_RESULT(ok)],
501                 [AC_MSG_RESULT(not compatible)
502                  OPENSSL_WARNING=yes
503                 ],
504                 [AC_MSG_RESULT(assuming target platform has compatible version)])
505 ;;
506 no)
507         AC_MSG_RESULT(Skipped OpenSSL version check)
508 ;;
509 esac
510
511                 AC_MSG_CHECKING(for OpenSSL DSA support)
512                 if test -f $use_openssl/include/openssl/dsa.h
513                 then
514                         AC_DEFINE(HAVE_OPENSSL_DSA)
515                         AC_MSG_RESULT(yes)
516                 else
517                         AC_MSG_RESULT(no)
518                 fi
519                 CFLAGS="$saved_cflags"
520                 LIBS="$saved_libs"
521                 ;;
522 esac
523
524 #
525 # This would include the system openssl path (and linker options to use
526 # it as needed) if it is found.
527 #
528
529 AC_SUBST(USE_OPENSSL)
530 AC_SUBST(DST_OPENSSL_INC)
531 DNS_CRYPTO_LIBS="$DNS_CRYPTO_LIBS $DNS_OPENSSL_LIBS"
532
533 #
534 # was --with-gssapi specified?
535 #
536 #AC_MSG_CHECKING(for GSSAPI library)
537 #AC_ARG_WITH(gssapi,
538 #[  --with-gssapi=PATH   Specify path for system-supplied GSSAPI],
539 #    use_gssapi="$withval", use_gssapi="no")
540 #
541 #case "$use_gssapi" in
542 #       no)
543 #               USE_GSSAPI=''
544 #               DST_GSSAPI_INC=''
545 #               DNS_GSSAPI_LIBS=''
546 #               AC_MSG_RESULT(not specified)
547 #               ;;
548 #       yes)
549 #               AC_MSG_ERROR([--with-gssapi must specify a path])
550 #               ;;
551 #       *)
552 #               USE_GSSAPI='-DGSSAPI'
553 #               DST_GSSAPI_INC="-I$use_gssapi/include"
554 #               DNS_GSSAPI_LIBS="-L$use_gssapi/lib -lgssapi_krb5"
555 #               AC_MSG_RESULT(using gssapi from $use_gssapi/lib and $use_gssapi/include)
556 #               ;;
557 #esac
558
559 USE_GSSAPI=''
560 DST_GSSAPI_INC=''
561 DNS_GSSAPI_LIBS=''
562
563 AC_SUBST(USE_GSSAPI)
564 AC_SUBST(DST_GSSAPI_INC)
565 DNS_CRYPTO_LIBS="$DNS_CRYPTO_LIBS $DNS_GSSAPI_LIBS"
566
567 #
568 # Applications linking with libdns also need to link with these libraries.
569 #
570
571 AC_SUBST(DNS_CRYPTO_LIBS)
572
573 #
574 # was --with-randomdev specified?
575 #
576 AC_MSG_CHECKING(for random device)
577 AC_ARG_WITH(randomdev,
578 [  --with-randomdev=PATH Specify path for random device],
579     use_randomdev="$withval", use_randomdev="unspec")
580
581 case "$use_randomdev" in
582         unspec)
583                 case "$host" in
584                         *-openbsd*)
585                                 devrandom=/dev/arandom
586                                 ;;
587                         *)
588                                 devrandom=/dev/random
589                                 ;;
590                 esac
591                 AC_MSG_RESULT($devrandom)
592                 AC_CHECK_FILE($devrandom,
593                               AC_DEFINE_UNQUOTED(PATH_RANDOMDEV,
594                                                  "$devrandom"),)
595                 ;;
596         yes)
597                 AC_MSG_ERROR([--with-randomdev must specify a path])
598                 ;;
599         no)
600                 AC_MSG_RESULT(disabled)
601                 ;;
602         *)
603                 AC_DEFINE_UNQUOTED(PATH_RANDOMDEV, "$use_randomdev")
604                 AC_MSG_RESULT(using "$use_randomdev")
605                 ;;
606 esac
607
608 #
609 # Do we have arc4random() ?
610 #
611 AC_CHECK_FUNC(arc4random, AC_DEFINE(HAVE_ARC4RANDOM))
612
613 sinclude(config.threads.in)dnl
614
615 if $use_threads
616 then
617         if test "X$GCC" = "Xyes"; then
618                 case "$host" in
619                 *-freebsd*)
620                         CC="$CC -pthread"
621                         CCOPT="$CCOPT -pthread"
622                         STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
623                         ;;
624                 *-openbsd*)
625                         CC="$CC -pthread"
626                         CCOPT="$CCOPT -pthread"
627                         ;;
628                 *-solaris*)
629                         LIBS="$LIBS -lthread"
630                         ;;
631                 *-ibm-aix*)
632                         STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
633                         ;;
634                 esac
635         else
636                 case $host in
637                 *-dec-osf*)
638                         CC="$CC -pthread"
639                         CCOPT="$CCOPT -pthread"
640                         ;;
641                 *-solaris*)
642                         CC="$CC -mt"
643                         CCOPT="$CCOPT -mt"
644                         ;;
645                 *-ibm-aix*)
646                         STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
647                         ;;
648                 *-sco-sysv*uw*|*-*-sysv*UnixWare*)
649                         CC="$CC -Kthread"
650                         CCOPT="$CCOPT -Kthread"
651                         ;;
652                 *-*-sysv*OpenUNIX*)
653                         CC="$CC -Kpthread"
654                         CCOPT="$CCOPT -Kpthread"
655                         ;;
656                 esac
657         fi
658         ALWAYS_DEFINES="-D_REENTRANT"
659         ISC_PLATFORM_USETHREADS="#define ISC_PLATFORM_USETHREADS 1"
660         thread_dir=pthreads
661         #
662         # We'd like to use sigwait() too
663         #
664         AC_CHECK_FUNC(sigwait,
665                       AC_DEFINE(HAVE_SIGWAIT),
666                       AC_CHECK_LIB(c, sigwait,
667                       AC_DEFINE(HAVE_SIGWAIT),
668                       AC_CHECK_LIB(pthread, sigwait,
669                                    AC_DEFINE(HAVE_SIGWAIT),
670                                    AC_CHECK_LIB(pthread, _Psigwait,
671                                                 AC_DEFINE(HAVE_SIGWAIT),))))
672
673         AC_CHECK_FUNC(pthread_attr_getstacksize,
674                       AC_DEFINE(HAVE_PTHREAD_ATTR_GETSTACKSIZE),)
675
676         AC_CHECK_FUNC(pthread_attr_setstacksize,
677                       AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE),)
678
679         #
680         # Additional OS-specific issues related to pthreads and sigwait.
681         #
682         case "$host" in
683                 #
684                 # One more place to look for sigwait.
685                 #
686                 *-freebsd*)
687                         AC_CHECK_LIB(c_r, sigwait, AC_DEFINE(HAVE_SIGWAIT),)
688                         case $host in
689                         *-freebsd5.[[012]]|*-freebsd5.[[012]].*);;
690                         *-freebsd5.[[3456789]]|*-freebsd5.[[3456789]].*)
691                                 AC_DEFINE(NEED_PTHREAD_SCOPE_SYSTEM)
692                                 ;;
693                         *-freebsd6.*)
694                                 AC_DEFINE(NEED_PTHREAD_SCOPE_SYSTEM)
695                                 ;;
696                         esac
697                         ;;
698                 #
699                 # BSDI 3.0 through 4.0.1 needs pthread_init() to be
700                 # called before certain pthreads calls.  This is deprecated
701                 # in BSD/OS 4.1.
702                 #
703                 *-bsdi3.*|*-bsdi4.0*)
704                         AC_DEFINE(NEED_PTHREAD_INIT)
705                         ;;
706                 #
707                 # LinuxThreads requires some changes to the way we
708                 # deal with signals.
709                 #
710                 *-linux*)
711                         AC_DEFINE(HAVE_LINUXTHREADS)
712                         ;;
713                 #
714                 # Ensure the right sigwait() semantics on Solaris and make
715                 # sure we call pthread_setconcurrency.
716                 #
717                 *-solaris*)
718                         AC_DEFINE(_POSIX_PTHREAD_SEMANTICS)
719                         AC_CHECK_FUNC(pthread_setconcurrency,
720                                       AC_DEFINE(CALL_PTHREAD_SETCONCURRENCY))
721                         ;;
722                 #
723                 # UnixWare does things its own way.
724                 #
725                 *-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
726                         AC_DEFINE(HAVE_UNIXWARE_SIGWAIT)
727                         ;;
728         esac
729
730         #
731         # Look for sysconf to allow detection of the number of processors.
732         #
733         AC_CHECK_FUNC(sysconf, AC_DEFINE(HAVE_SYSCONF),)
734
735 else
736         ISC_PLATFORM_USETHREADS="#undef ISC_PLATFORM_USETHREADS"
737         thread_dir=nothreads
738         ALWAYS_DEFINES=""
739 fi
740
741 AC_SUBST(ALWAYS_DEFINES)
742 AC_SUBST(ISC_PLATFORM_USETHREADS)
743 ISC_THREAD_DIR=$thread_dir
744 AC_SUBST(ISC_THREAD_DIR)
745
746 #
747 # In solaris 10, SMF can manage named service
748 #
749 AC_CHECK_LIB(scf, smf_enable_instance)
750
751 #
752 # flockfile is usually provided by pthreads, but we may want to use it
753 # even if compiled with --disable-threads.  getc_unlocked might also not
754 # be defined.
755 #
756 AC_CHECK_FUNC(flockfile, AC_DEFINE(HAVE_FLOCKFILE),)
757 AC_CHECK_FUNC(getc_unlocked, AC_DEFINE(HAVE_GETCUNLOCKED),)
758
759
760 # Indicate what the final decision was regarding threads.
761 #
762 AC_MSG_CHECKING(whether to build with threads)
763 if $use_threads; then
764         AC_MSG_RESULT(yes)
765 else
766         AC_MSG_RESULT(no)
767 fi
768
769
770 # End of pthreads stuff.
771 #
772
773 #
774 # Large File
775 #
776 AC_ARG_ENABLE(largefile, [  --enable-largefile    64-bit file support],
777               want_largefile="yes", want_largefile="no")
778 case $want_largefile in
779         yes)
780                 ALWAYS_DEFINES="$ALWAYS_DEFINES -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
781                 ;;
782         *)
783                 ;;
784 esac
785
786 #
787 # Additional compiler settings.
788 #
789 MKDEPCC="$CC"
790 MKDEPCFLAGS="-M"
791 IRIX_DNSSEC_WARNINGS_HACK=""
792
793 if test "X$GCC" = "Xyes"; then
794         AC_MSG_CHECKING(if "$CC" supports -fno-strict-aliasing)
795         SAVE_CFLAGS=$CFLAGS
796         CFLAGS=-fno-strict-aliasing
797         AC_TRY_COMPILE(,, [FNOSTRICTALIASING=yes],[FNOSTRICTALIASING=no])
798         CFLAGS=$SAVE_CFLAGS
799         if test "$FNOSTRICTALIASING" = "yes"; then
800                 AC_MSG_RESULT(yes)
801         STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith -fno-strict-aliasing"
802         else
803                 AC_MSG_RESULT(no)
804         STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith"
805         fi
806         case "$host" in
807         *-hp-hpux*)
808                 LDFLAGS="-Wl,+vnocompatwarnings $LDFLAGS"
809                 ;;
810         esac
811 else
812         case $host in
813         *-dec-osf*)
814                 CC="$CC -std"
815                 CCOPT="$CCOPT -std"
816                 MKDEPCC="$CC"
817                 ;;
818         *-hp-hpux*)
819                 CC="$CC -Ae -z"
820                 # The version of the C compiler that constantly warns about
821                 # 'const' as well as alignment issues is unfortunately not
822                 # able to be discerned via the version of the operating
823                 # system, nor does cc have a version flag.
824                 case "`$CC +W 123 2>&1`" in
825                 *Unknown?option*)
826                         STD_CWARNINGS="+w1"
827                         ;;
828                 *)
829                         # Turn off the pointlessly noisy warnings.
830                         STD_CWARNINGS="+w1 +W 474,530,2193,2236"
831                         ;;
832                 esac
833                 CCOPT="$CCOPT -Ae -z"
834                 LDFLAGS="-Wl,+vnocompatwarnings $LDFLAGS"
835                 MKDEPPROG='cc -Ae -E -Wp,-M >/dev/null 2>>$TMP'
836                 ;;
837         *-sgi-irix*)
838                 STD_CWARNINGS="-fullwarn -woff 1209"
839                 #
840                 # Silence more than 250 instances of
841                 #   "prototyped function redeclared without prototype"
842                 # and 11 instances of
843                 #   "variable ... was set but never used"
844                 # from lib/dns/sec/openssl.
845                 #
846                 IRIX_DNSSEC_WARNINGS_HACK="-woff 1692,1552"
847                 ;;
848         *-solaris*)
849                 MKDEPCFLAGS="-xM"
850                 ;;
851         *-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
852                 # UnixWare
853                 CC="$CC -w"
854                 ;;
855         esac
856 fi
857
858 AC_SUBST(MKDEPCC)
859 AC_SUBST(MKDEPCFLAGS)
860 AC_SUBST(MKDEPPROG)
861 AC_SUBST(IRIX_DNSSEC_WARNINGS_HACK)
862
863 #
864 # NLS
865 #
866 AC_CHECK_FUNC(catgets, AC_DEFINE(HAVE_CATGETS),)
867
868 #
869 # -lxnet buys us one big porting headache...  standards, gotta love 'em.
870 #
871 # AC_CHECK_LIB(xnet, socket, ,
872 #    AC_CHECK_LIB(socket, socket)
873 #    AC_CHECK_LIB(nsl, inet_ntoa)
874 # )
875 #
876 # Use this for now, instead:
877 #
878 case "$host" in
879         mips-sgi-irix*)
880                 ;;
881         *)
882                 AC_CHECK_LIB(socket, socket)
883                 AC_CHECK_LIB(nsl, inet_ntoa)
884                 ;;
885 esac
886
887 #
888 # Purify support
889 #
890 AC_MSG_CHECKING(whether to use purify)
891 AC_ARG_WITH(purify,
892         [  --with-purify[=PATH] use Rational purify],
893         use_purify="$withval", use_purify="no")
894
895 case "$use_purify" in
896         no)
897                 ;;
898         yes)
899                 AC_PATH_PROG(purify_path, purify, purify)
900                 ;;
901         *)
902                 purify_path="$use_purify"
903                 ;;
904 esac
905
906 case "$use_purify" in
907         no)
908                 AC_MSG_RESULT(no)
909                 PURIFY=""
910                 ;;
911         *)
912                 if test -f $purify_path || test $purify_path = purify; then
913                         AC_MSG_RESULT($purify_path)
914                         PURIFYFLAGS="`echo $PURIFYOPTIONS`"
915                         PURIFY="$purify_path $PURIFYFLAGS"
916                 else
917                         AC_MSG_ERROR([$purify_path not found.
918
919 Please choose the proper path with the following command:
920
921     configure --with-purify=PATH
922 ])
923                 fi
924                 ;;
925 esac
926
927 AC_SUBST(PURIFY)
928
929 #
930 # GNU libtool support
931 #
932 AC_ARG_WITH(libtool,
933             [  --with-libtool   use GNU libtool (following indented options supported)],
934             use_libtool="$withval", use_libtool="no")
935
936 case $use_libtool in
937         yes)
938                 AM_PROG_LIBTOOL
939                 O=lo
940                 A=la
941                 LIBTOOL_MKDEP_SED='s;\.o;\.lo;'
942                 LIBTOOL_MODE_COMPILE='--mode=compile'
943                 LIBTOOL_MODE_INSTALL='--mode=install'
944                 LIBTOOL_MODE_LINK='--mode=link'
945                 case "$host" in
946                 *) LIBTOOL_ALLOW_UNDEFINED= ;;
947                 esac
948                 case "$host" in
949                 *-ibm-aix*) LIBTOOL_IN_MAIN="-Wl,-bI:T_testlist.imp" ;;
950                 *) LIBTOOL_IN_MAIN= ;;
951                 esac;
952                 ;;
953         *)
954                 O=o
955                 A=a
956                 LIBTOOL=
957                 AC_SUBST(LIBTOOL)
958                 LIBTOOL_MKDEP_SED=
959                 LIBTOOL_MODE_COMPILE=
960                 LIBTOOL_MODE_INSTALL=
961                 LIBTOOL_MODE_LINK=
962                 LIBTOOL_ALLOW_UNDEFINED=
963                 LIBTOOL_IN_MAIN=
964                 ;;
965 esac
966
967 #
968 # File name extension for static archive files, for those few places
969 # where they are treated differently from dynamic ones.
970 #
971 SA=a
972
973 AC_SUBST(O)
974 AC_SUBST(A)
975 AC_SUBST(SA)
976 AC_SUBST(LIBTOOL_MKDEP_SED)
977 AC_SUBST(LIBTOOL_MODE_COMPILE)
978 AC_SUBST(LIBTOOL_MODE_INSTALL)
979 AC_SUBST(LIBTOOL_MODE_LINK)
980 AC_SUBST(LIBTOOL_ALLOW_UNDEFINED)
981 AC_SUBST(LIBTOOL_IN_MAIN)
982
983 #
984 # build libbind?
985 #
986 AC_ARG_ENABLE(libbind,
987         [  --enable-libbind             build libbind [default=no]])
988
989 case "$enable_libbind" in
990         yes)
991                 LIBBIND=lib/bind
992                 AC_SUBST(LIBBIND)
993                 ;;
994         no|'')
995                 ;;
996 esac
997
998 #
999 # Here begins a very long section to determine the system's networking
1000 # capabilities.  The order of the tests is signficant.
1001 #
1002
1003 #
1004 # IPv6
1005 #
1006 AC_ARG_ENABLE(ipv6,
1007         [  --enable-ipv6                use IPv6 [default=autodetect]])
1008
1009 case "$enable_ipv6" in
1010         yes|''|autodetect)
1011                 AC_DEFINE(WANT_IPV6)
1012                 ;;
1013         no)
1014                 ;;
1015 esac
1016
1017 #
1018 # We do the IPv6 compilation checking after libtool so that we can put
1019 # the right suffix on the files.
1020 #
1021 AC_MSG_CHECKING(for IPv6 structures)
1022 AC_TRY_COMPILE([
1023 #include <sys/types.h>
1024 #include <sys/socket.h>
1025 #include <netinet/in.h>],
1026 [struct sockaddr_in6 sin6; return (0);],
1027         [AC_MSG_RESULT(yes)
1028          found_ipv6=yes],
1029         [AC_MSG_RESULT(no)
1030          found_ipv6=no])
1031
1032 #
1033 # See whether IPv6 support is provided via a Kame add-on.
1034 # This is done before other IPv6 linking tests to LIBS is properly set.
1035 #
1036 AC_MSG_CHECKING(for Kame IPv6 support)
1037 AC_ARG_WITH(kame,
1038         [  --with-kame[=PATH]   use Kame IPv6 [default path /usr/local/v6]],
1039         use_kame="$withval", use_kame="no")
1040
1041 case "$use_kame" in
1042         no)
1043                 ;;
1044         yes)
1045                 kame_path=/usr/local/v6
1046                 ;;
1047         *)
1048                 kame_path="$use_kame"
1049                 ;;
1050 esac
1051
1052 case "$use_kame" in
1053         no)
1054                 AC_MSG_RESULT(no)
1055                 ;;
1056         *)
1057                 if test -f $kame_path/lib/libinet6.a; then
1058                         AC_MSG_RESULT($kame_path/lib/libinet6.a)
1059                         LIBS="-L$kame_path/lib -linet6 $LIBS"
1060                 else
1061                         AC_MSG_ERROR([$kame_path/lib/libinet6.a not found.
1062
1063 Please choose the proper path with the following command:
1064
1065     configure --with-kame=PATH
1066 ])
1067                 fi
1068                 ;;
1069 esac
1070
1071 #
1072 # Whether netinet6/in6.h is needed has to be defined in isc/platform.h.
1073 # Including it on Kame-using platforms is very bad, though, because
1074 # Kame uses #error against direct inclusion.   So include it on only
1075 # the platform that is otherwise broken without it -- BSD/OS 4.0 through 4.1.
1076 # This is done before the in6_pktinfo check because that's what
1077 # netinet6/in6.h is needed for.
1078 #
1079 changequote({, })
1080 case "$host" in
1081 *-bsdi4.[01]*)
1082         ISC_PLATFORM_NEEDNETINET6IN6H="#define ISC_PLATFORM_NEEDNETINET6IN6H 1"
1083         LWRES_PLATFORM_NEEDNETINET6IN6H="#define LWRES_PLATFORM_NEEDNETINET6IN6H 1"
1084         isc_netinet6in6_hack="#include <netinet6/in6.h>"
1085         ;;
1086 *)
1087         ISC_PLATFORM_NEEDNETINET6IN6H="#undef ISC_PLATFORM_NEEDNETINET6IN6H"
1088         LWRES_PLATFORM_NEEDNETINET6IN6H="#undef LWRES_PLATFORM_NEEDNETINET6IN6H"
1089         isc_netinet6in6_hack=""
1090         ;;
1091 esac
1092 changequote([, ])
1093
1094 #
1095 # This is similar to the netinet6/in6.h issue.
1096 #
1097 case "$host" in
1098 *-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
1099         # UnixWare
1100         ISC_PLATFORM_NEEDNETINETIN6H="#define ISC_PLATFORM_NEEDNETINETIN6H 1"
1101         LWRES_PLATFORM_NEEDNETINETIN6H="#define LWRES_PLATFORM_NEEDNETINETIN6H 1"
1102         ISC_PLATFORM_FIXIN6ISADDR="#define ISC_PLATFORM_FIXIN6ISADDR 1"
1103         isc_netinetin6_hack="#include <netinet/in6.h>"
1104         ;;
1105 *)
1106         ISC_PLATFORM_NEEDNETINETIN6H="#undef ISC_PLATFORM_NEEDNETINETIN6H"
1107         LWRES_PLATFORM_NEEDNETINETIN6H="#undef LWRES_PLATFORM_NEEDNETINETIN6H"
1108         ISC_PLATFORM_FIXIN6ISADDR="#undef ISC_PLATFORM_FIXIN6ISADDR"
1109         isc_netinetin6_hack=""
1110         ;;
1111 esac
1112
1113 #
1114 # Now delve deeper into the suitability of the IPv6 support.
1115 #
1116 case "$found_ipv6" in
1117         yes)
1118                 ISC_PLATFORM_HAVEIPV6="#define ISC_PLATFORM_HAVEIPV6 1"
1119                 LWRES_PLATFORM_HAVEIPV6="#define LWRES_PLATFORM_HAVEIPV6 1"
1120
1121                 AC_MSG_CHECKING(for in6_addr)
1122                 AC_TRY_COMPILE([
1123 #include <sys/types.h>
1124 #include <sys/socket.h>
1125 #include <netinet/in.h>
1126 $isc_netinetin6_hack
1127 $isc_netinet6in6_hack
1128 ],
1129 [struct in6_addr in6; return (0);],
1130                 [AC_MSG_RESULT(yes)
1131                  ISC_PLATFORM_HAVEINADDR6="#undef ISC_PLATFORM_HAVEINADDR6"
1132                  LWRES_PLATFORM_HAVEINADDR6="#undef LWRES_PLATFORM_HAVEINADDR6"
1133                  isc_in_addr6_hack=""],
1134                 [AC_MSG_RESULT(no)
1135                  ISC_PLATFORM_HAVEINADDR6="#define ISC_PLATFORM_HAVEINADDR6 1"
1136                  LWRES_PLATFORM_HAVEINADDR6="#define LWRES_PLATFORM_HAVEINADDR6 1"
1137                  isc_in_addr6_hack="#define in6_addr in_addr6"])
1138
1139                 AC_MSG_CHECKING(for in6addr_any)
1140                 AC_TRY_LINK([
1141 #include <sys/types.h>
1142 #include <sys/socket.h>
1143 #include <netinet/in.h>
1144 $isc_netinetin6_hack
1145 $isc_netinet6in6_hack
1146 $isc_in_addr6_hack
1147 ],
1148                 [struct in6_addr in6; in6 = in6addr_any; return (in6.s6_addr[0]);],
1149                         [AC_MSG_RESULT(yes)
1150                          ISC_PLATFORM_NEEDIN6ADDRANY="#undef ISC_PLATFORM_NEEDIN6ADDRANY"
1151                          LWRES_PLATFORM_NEEDIN6ADDRANY="#undef LWRES_PLATFORM_NEEDIN6ADDRANY"],
1152                         [AC_MSG_RESULT(no)
1153                          ISC_PLATFORM_NEEDIN6ADDRANY="#define ISC_PLATFORM_NEEDIN6ADDRANY 1"
1154                          LWRES_PLATFORM_NEEDIN6ADDRANY="#define LWRES_PLATFORM_NEEDIN6ADDRANY 1"])
1155
1156                 AC_MSG_CHECKING(for in6addr_loopback)
1157                 AC_TRY_LINK([
1158 #include <sys/types.h>
1159 #include <sys/socket.h>
1160 #include <netinet/in.h>
1161 $isc_netinetin6_hack
1162 $isc_netinet6in6_hack
1163 $isc_in_addr6_hack
1164 ],
1165                 [struct in6_addr in6; in6 = in6addr_loopback; return (in6.s6_addr[0]);],
1166                         [AC_MSG_RESULT(yes)
1167                          ISC_PLATFORM_NEEDIN6ADDRLOOPBACK="#undef ISC_PLATFORM_NEEDIN6ADDRLOOPBACK"
1168                          LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK="#undef LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK"],
1169                         [AC_MSG_RESULT(no)
1170                          ISC_PLATFORM_NEEDIN6ADDRLOOPBACK="#define ISC_PLATFORM_NEEDIN6ADDRLOOPBACK 1"
1171                          LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK="#define LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK 1"])
1172
1173                 AC_MSG_CHECKING(for sin6_scope_id in struct sockaddr_in6)
1174                 AC_TRY_COMPILE([
1175 #include <sys/types.h>
1176 #include <sys/socket.h>
1177 #include <netinet/in.h>
1178 $isc_netinetin6_hack
1179 $isc_netinet6in6_hack
1180 ],
1181                 [struct sockaddr_in6 xyzzy; xyzzy.sin6_scope_id = 0; return (0);],
1182                         [AC_MSG_RESULT(yes)
1183                          ISC_PLATFORM_HAVESCOPEID="#define ISC_PLATFORM_HAVESCOPEID 1"
1184                          result="#define LWRES_HAVE_SIN6_SCOPE_ID 1"],
1185                         [AC_MSG_RESULT(no)
1186                          ISC_PLATFORM_HAVESCOPEID="#undef ISC_PLATFORM_HAVESCOPEID"
1187                          result="#undef LWRES_HAVE_SIN6_SCOPE_ID"])
1188                 LWRES_HAVE_SIN6_SCOPE_ID="$result"
1189
1190                 AC_MSG_CHECKING(for in6_pktinfo)
1191                 AC_TRY_COMPILE([
1192 #include <sys/types.h>
1193 #include <sys/socket.h>
1194 #include <netinet/in.h>
1195 $isc_netinetin6_hack
1196 $isc_netinet6in6_hack
1197 ],
1198                 [struct in6_pktinfo xyzzy; return (0);],
1199                         [AC_MSG_RESULT(yes)
1200                          ISC_PLATFORM_HAVEIN6PKTINFO="#define ISC_PLATFORM_HAVEIN6PKTINFO 1"],
1201                         [AC_MSG_RESULT(no -- disabling runtime ipv6 support)
1202                          ISC_PLATFORM_HAVEIN6PKTINFO="#undef ISC_PLATFORM_HAVEIN6PKTINFO"])
1203                 ;;
1204         no)
1205                 ISC_PLATFORM_HAVEIPV6="#undef ISC_PLATFORM_HAVEIPV6"
1206                 LWRES_PLATFORM_HAVEIPV6="#undef LWRES_PLATFORM_HAVEIPV6"
1207                 ISC_PLATFORM_NEEDIN6ADDRANY="#undef ISC_PLATFORM_NEEDIN6ADDRANY"
1208                 LWRES_PLATFORM_NEEDIN6ADDRANY="#undef LWRES_PLATFORM_NEEDIN6ADDRANY"
1209                 ISC_PLATFORM_HAVEIN6PKTINFO="#undef ISC_PLATFORM_HAVEIN6PKTINFO"
1210                 LWRES_HAVE_SIN6_SCOPE_ID="#define LWRES_HAVE_SIN6_SCOPE_ID 1"
1211                 ISC_PLATFORM_HAVESCOPEID="#define ISC_PLATFORM_HAVESCOPEID 1"
1212                 ISC_IPV6_H="ipv6.h"
1213                 ISC_IPV6_O="ipv6.$O"
1214                 ISC_ISCIPV6_O="unix/ipv6.$O"
1215                 ISC_IPV6_C="ipv6.c"
1216                 ;;
1217 esac
1218
1219 AC_SUBST(ISC_PLATFORM_HAVEIPV6)
1220 AC_SUBST(LWRES_PLATFORM_HAVEIPV6)
1221 AC_SUBST(ISC_PLATFORM_NEEDNETINETIN6H)
1222 AC_SUBST(LWRES_PLATFORM_NEEDNETINETIN6H)
1223 AC_SUBST(ISC_PLATFORM_NEEDNETINET6IN6H)
1224 AC_SUBST(LWRES_PLATFORM_NEEDNETINET6IN6H)
1225 AC_SUBST(ISC_PLATFORM_HAVEINADDR6)
1226 AC_SUBST(LWRES_PLATFORM_HAVEINADDR6)
1227 AC_SUBST(ISC_PLATFORM_NEEDIN6ADDRANY)
1228 AC_SUBST(LWRES_PLATFORM_NEEDIN6ADDRANY)
1229 AC_SUBST(ISC_PLATFORM_NEEDIN6ADDRLOOPBACK)
1230 AC_SUBST(LWRES_PLATFORM_NEEDIN6ADDRLOOPBACK)
1231 AC_SUBST(ISC_PLATFORM_HAVEIN6PKTINFO)
1232 AC_SUBST(ISC_PLATFORM_FIXIN6ISADDR)
1233 AC_SUBST(ISC_IPV6_H)
1234 AC_SUBST(ISC_IPV6_O)
1235 AC_SUBST(ISC_ISCIPV6_O)
1236 AC_SUBST(ISC_IPV6_C)
1237 AC_SUBST(LWRES_HAVE_SIN6_SCOPE_ID)
1238 AC_SUBST(ISC_PLATFORM_HAVESCOPEID)
1239
1240 AC_MSG_CHECKING([for struct if_laddrreq])
1241 AC_TRY_LINK([
1242 #include <sys/types.h>
1243 #include <net/if6.h>
1244 ],[ struct if_laddrreq a; ],
1245         [AC_MSG_RESULT(yes)
1246         ISC_PLATFORM_HAVEIF_LADDRREQ="#define ISC_PLATFORM_HAVEIF_LADDRREQ 1"],
1247         [AC_MSG_RESULT(no)
1248         ISC_PLATFORM_HAVEIF_LADDRREQ="#undef ISC_PLATFORM_HAVEIF_LADDRREQ"])
1249 AC_SUBST(ISC_PLATFORM_HAVEIF_LADDRREQ)
1250
1251 AC_MSG_CHECKING([for struct if_laddrconf])
1252 AC_TRY_LINK([
1253 #include <sys/types.h>
1254 #include <net/if6.h>
1255 ],[ struct if_laddrconf a; ],
1256         [AC_MSG_RESULT(yes)
1257         ISC_PLATFORM_HAVEIF_LADDRCONF="#define ISC_PLATFORM_HAVEIF_LADDRCONF 1"],
1258         [AC_MSG_RESULT(no)
1259         ISC_PLATFORM_HAVEIF_LADDRCONF="#undef ISC_PLATFORM_HAVEIF_LADDRCONF"])
1260 AC_SUBST(ISC_PLATFORM_HAVEIF_LADDRCONF)
1261
1262 #
1263 # Check for network functions that are often missing.  We do this
1264 # after the libtool checking, so we can put the right suffix on
1265 # the files.  It also needs to come after checking for a Kame add-on,
1266 # which provides some (all?) of the desired functions.
1267 #
1268
1269 AC_MSG_CHECKING([for inet_ntop with IPv6 support])
1270 AC_TRY_RUN([
1271 #include <sys/types.h>
1272 #include <sys/socket.h>
1273 #include <netinet/in.h>
1274 #include <arpa/inet.h>
1275 main() {
1276 char a[16],b[64]; return(inet_ntop(AF_INET6, a, b, sizeof(b)) == (char*)0);}],
1277         [AC_MSG_RESULT(yes)
1278         ISC_PLATFORM_NEEDNTOP="#undef ISC_PLATFORM_NEEDNTOP"],
1279
1280         [AC_MSG_RESULT(no)
1281         ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_ntop.$O"
1282         ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_ntop.c"
1283         ISC_PLATFORM_NEEDNTOP="#define ISC_PLATFORM_NEEDNTOP 1"],
1284         [AC_MSG_RESULT(assuming inet_ntop needed)
1285         ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_ntop.$O"
1286         ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_ntop.c"
1287         ISC_PLATFORM_NEEDNTOP="#define ISC_PLATFORM_NEEDNTOP 1"])
1288
1289
1290 # On NetBSD 1.4.2 and maybe others, inet_pton() incorrectly accepts
1291 # addresses with less than four octets, like "1.2.3".  Also leading
1292 # zeros should also be rejected.
1293
1294 AC_MSG_CHECKING([for working inet_pton with IPv6 support])
1295 AC_TRY_RUN([
1296 #include <sys/types.h>
1297 #include <sys/socket.h>
1298 #include <netinet/in.h>
1299 #include <arpa/inet.h>
1300 main() { char a[16]; return (inet_pton(AF_INET, "1.2.3", a) == 1 ? 1 :
1301                              inet_pton(AF_INET, "1.2.3.04", a) == 1 ? 1 : 
1302                              (inet_pton(AF_INET6, "::1.2.3.4", a) != 1)); }],
1303         [AC_MSG_RESULT(yes)
1304         ISC_PLATFORM_NEEDPTON="#undef ISC_PLATFORM_NEEDPTON"],
1305         [AC_MSG_RESULT(no)
1306         ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_pton.$O"
1307         ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_pton.c"
1308         ISC_PLATFORM_NEEDPTON="#define ISC_PLATFORM_NEEDPTON 1"],
1309         [AC_MSG_RESULT(assuming target platform has working inet_pton)
1310         ISC_PLATFORM_NEEDPTON="#undef ISC_PLATFORM_NEEDPTON"],
1311         [AC_MSG_RESULT(assuming inet_pton needed)
1312         ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_pton.$O"
1313         ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_pton.c"
1314         ISC_PLATFORM_NEEDPTON="#define ISC_PLATFORM_NEEDPTON 1"],
1315         [AC_MSG_RESULT(assuming target platform has working inet_pton)
1316         ISC_PLATFORM_NEEDPTON="#undef ISC_PLATFORM_NEEDPTON"])
1317
1318 AC_MSG_CHECKING([for inet_aton])
1319 AC_TRY_LINK([
1320 #include <sys/types.h>
1321 #include <netinet/in.h>
1322 #include <arpa/inet.h>],
1323         [struct in_addr in; inet_aton(0, &in); return (0);],
1324         [AC_MSG_RESULT(yes)
1325         ISC_PLATFORM_NEEDATON="#undef ISC_PLATFORM_NEEDATON"],
1326
1327         [AC_MSG_RESULT(no)
1328         ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_aton.$O"
1329         ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_aton.c"
1330         ISC_PLATFORM_NEEDATON="#define ISC_PLATFORM_NEEDATON 1"])
1331
1332 AC_SUBST(ISC_PLATFORM_NEEDNTOP)
1333 AC_SUBST(ISC_PLATFORM_NEEDPTON)
1334 AC_SUBST(ISC_PLATFORM_NEEDATON)
1335
1336 #
1337 # Look for a 4.4BSD-style sa_len member in struct sockaddr.
1338 #
1339 case "$host" in
1340         *-dec-osf*)
1341                 # Turn on 4.4BSD style sa_len support.
1342                 AC_DEFINE(_SOCKADDR_LEN)
1343                 ;;
1344 esac
1345
1346 AC_MSG_CHECKING(for sa_len in struct sockaddr)
1347 AC_TRY_COMPILE([
1348 #include <sys/types.h>
1349 #include <sys/socket.h>],
1350 [struct sockaddr sa; sa.sa_len = 0; return (0);],
1351         [AC_MSG_RESULT(yes)
1352         ISC_PLATFORM_HAVESALEN="#define ISC_PLATFORM_HAVESALEN 1"
1353         LWRES_PLATFORM_HAVESALEN="#define LWRES_PLATFORM_HAVESALEN 1"],
1354         [AC_MSG_RESULT(no)
1355         ISC_PLATFORM_HAVESALEN="#undef ISC_PLATFORM_HAVESALEN"
1356         LWRES_PLATFORM_HAVESALEN="#undef LWRES_PLATFORM_HAVESALEN"])
1357 AC_SUBST(ISC_PLATFORM_HAVESALEN)
1358 AC_SUBST(LWRES_PLATFORM_HAVESALEN)
1359
1360 #
1361 # Look for a 4.4BSD or 4.3BSD struct msghdr
1362 #
1363 AC_MSG_CHECKING(for struct msghdr flavor)
1364 AC_TRY_COMPILE([
1365 #include <sys/types.h>
1366 #include <sys/socket.h>],
1367 [struct msghdr msg; msg.msg_flags = 0; return (0);],
1368         [AC_MSG_RESULT(4.4BSD)
1369         ISC_PLATFORM_MSGHDRFLAVOR="#define ISC_NET_BSD44MSGHDR 1"],
1370         [AC_MSG_RESULT(4.3BSD)
1371         ISC_PLATFORM_MSGHDRFLAVOR="#define ISC_NET_BSD43MSGHDR 1"])
1372 AC_SUBST(ISC_PLATFORM_MSGHDRFLAVOR)
1373
1374 #
1375 # Look for in_port_t.
1376 #
1377 AC_MSG_CHECKING(for type in_port_t)
1378 AC_TRY_COMPILE([
1379 #include <sys/types.h>
1380 #include <netinet/in.h>],
1381 [in_port_t port = 25; return (0);],
1382         [AC_MSG_RESULT(yes)
1383         ISC_PLATFORM_NEEDPORTT="#undef ISC_PLATFORM_NEEDPORTT"],
1384         [AC_MSG_RESULT(no)
1385         ISC_PLATFORM_NEEDPORTT="#define ISC_PLATFORM_NEEDPORTT 1"])
1386 AC_SUBST(ISC_PLATFORM_NEEDPORTT)
1387
1388 #
1389 # Check for addrinfo
1390 #
1391 AC_MSG_CHECKING(for struct addrinfo)
1392 AC_TRY_COMPILE([
1393 #include <netdb.h>],
1394 [struct addrinfo a; return (0);],
1395         [AC_MSG_RESULT(yes)
1396         ISC_LWRES_NEEDADDRINFO="#undef ISC_LWRES_NEEDADDRINFO"
1397         AC_DEFINE(HAVE_ADDRINFO)],
1398         [AC_MSG_RESULT(no)
1399         ISC_LWRES_NEEDADDRINFO="#define ISC_LWRES_NEEDADDRINFO 1"])
1400 AC_SUBST(ISC_LWRES_NEEDADDRINFO)
1401
1402 #
1403 # Check for rrsetinfo
1404 #
1405 AC_MSG_CHECKING(for struct rrsetinfo)
1406 AC_TRY_COMPILE([
1407 #include <netdb.h>],
1408 [struct rrsetinfo r; return (0);],
1409         [AC_MSG_RESULT(yes)
1410         ISC_LWRES_NEEDRRSETINFO="#undef ISC_LWRES_NEEDRRSETINFO"],
1411         [AC_MSG_RESULT(no)
1412         ISC_LWRES_NEEDRRSETINFO="#define ISC_LWRES_NEEDRRSETINFO 1"])
1413 AC_SUBST(ISC_LWRES_NEEDRRSETINFO)
1414
1415 AC_MSG_CHECKING(for int sethostent)
1416 AC_TRY_COMPILE([
1417 #include <netdb.h>],
1418 [int i = sethostent(0); return(0);],
1419         [AC_MSG_RESULT(yes)
1420         ISC_LWRES_SETHOSTENTINT="#define ISC_LWRES_SETHOSTENTINT 1"],
1421         [AC_MSG_RESULT(no)
1422         ISC_LWRES_SETHOSTENTINT="#undef ISC_LWRES_SETHOSTENTINT"])
1423 AC_SUBST(ISC_LWRES_SETHOSTENTINT)
1424
1425 AC_MSG_CHECKING(for int endhostent)
1426 AC_TRY_COMPILE([
1427 #include <netdb.h>],
1428 [int i = endhostent(); return(0);],
1429         [AC_MSG_RESULT(yes)
1430         ISC_LWRES_ENDHOSTENTINT="#define ISC_LWRES_ENDHOSTENTINT 1"],
1431         [AC_MSG_RESULT(no)
1432         ISC_LWRES_ENDHOSTENTINT="#undef ISC_LWRES_ENDHOSTENTINT"])
1433 AC_SUBST(ISC_LWRES_ENDHOSTENTINT)
1434
1435 AC_MSG_CHECKING(for getnetbyaddr(in_addr_t, ...))
1436 AC_TRY_COMPILE([
1437 #include <netdb.h>
1438 struct netent *getnetbyaddr(in_addr_t, int);],
1439 [],
1440         [AC_MSG_RESULT(yes)
1441         ISC_LWRES_GETNETBYADDRINADDR="#define ISC_LWRES_GETNETBYADDRINADDR 1"],
1442         [AC_MSG_RESULT(no)
1443         ISC_LWRES_GETNETBYADDRINADDR="#undef ISC_LWRES_GETNETBYADDRINADDR"])
1444 AC_SUBST(ISC_LWRES_GETNETBYADDRINADDR)
1445
1446 AC_MSG_CHECKING(for int setnetent)
1447 AC_TRY_COMPILE([
1448 #include <netdb.h>],
1449 [int i = setnetent(0); return(0);],
1450         [AC_MSG_RESULT(yes)
1451         ISC_LWRES_SETNETENTINT="#define ISC_LWRES_SETNETENTINT 1"],
1452         [AC_MSG_RESULT(no)
1453         ISC_LWRES_SETNETENTINT="#undef ISC_LWRES_SETNETENTINT"])
1454 AC_SUBST(ISC_LWRES_SETNETENTINT)
1455
1456 AC_MSG_CHECKING(for int endnetent)
1457 AC_TRY_COMPILE([
1458 #include <netdb.h>],
1459 [int i = endnetent(); return(0);],
1460         [AC_MSG_RESULT(yes)
1461         ISC_LWRES_ENDNETENTINT="#define ISC_LWRES_ENDNETENTINT 1"],
1462         [AC_MSG_RESULT(no)
1463         ISC_LWRES_ENDNETENTINT="#undef ISC_LWRES_ENDNETENTINT"])
1464 AC_SUBST(ISC_LWRES_ENDNETENTINT)
1465
1466 AC_MSG_CHECKING(for gethostbyaddr(const void *, size_t, ...))
1467 AC_TRY_COMPILE([
1468 #include <netdb.h>
1469 struct hostent *gethostbyaddr(const void *, size_t, int);],
1470 [return(0);],
1471         [AC_MSG_RESULT(yes)
1472         ISC_LWRES_GETHOSTBYADDRVOID="#define ISC_LWRES_GETHOSTBYADDRVOID 1"],
1473         [AC_MSG_RESULT(no)
1474         ISC_LWRES_GETHOSTBYADDRVOID="#undef ISC_LWRES_GETHOSTBYADDRVOID"])
1475 AC_SUBST(ISC_LWRES_GETHOSTBYADDRVOID)
1476
1477 AC_MSG_CHECKING(for h_errno in netdb.h)
1478 AC_TRY_COMPILE([
1479 #include <netdb.h>],
1480 [h_errno = 1; return(0);],
1481         [AC_MSG_RESULT(yes)
1482         ISC_LWRES_NEEDHERRNO="#undef ISC_LWRES_NEEDHERRNO"],
1483         [AC_MSG_RESULT(no)
1484         ISC_LWRES_NEEDHERRNO="#define ISC_LWRES_NEEDHERRNO 1"])
1485 AC_SUBST(ISC_LWRES_NEEDHERRNO)
1486
1487 AC_CHECK_FUNC(getipnodebyname,
1488         [ISC_LWRES_GETIPNODEPROTO="#undef ISC_LWRES_GETIPNODEPROTO"],
1489         [ISC_LWRES_GETIPNODEPROTO="#define ISC_LWRES_GETIPNODEPROTO 1"])
1490 AC_CHECK_FUNC(getnameinfo,
1491         [ISC_LWRES_GETNAMEINFOPROTO="#undef ISC_LWRES_GETNAMEINFOPROTO"],
1492         [ISC_LWRES_GETNAMEINFOPROTO="#define ISC_LWRES_GETNAMEINFOPROTO 1"])
1493 AC_CHECK_FUNC(getaddrinfo,
1494         [ISC_LWRES_GETADDRINFOPROTO="#undef ISC_LWRES_GETADDRINFOPROTO"
1495         AC_DEFINE(HAVE_GETADDRINFO)],
1496         [ISC_LWRES_GETADDRINFOPROTO="#define ISC_LWRES_GETADDRINFOPROTO 1"])
1497 AC_CHECK_FUNC(gai_strerror, AC_DEFINE(HAVE_GAISTRERROR))
1498 AC_SUBST(ISC_LWRES_GETIPNODEPROTO)
1499 AC_SUBST(ISC_LWRES_GETADDRINFOPROTO)
1500 AC_SUBST(ISC_LWRES_GETNAMEINFOPROTO)
1501
1502 AC_ARG_ENABLE(getifaddrs,
1503 [  --enable-getifaddrs    Enable the use of getifaddrs() [[yes|no|glibc]].
1504              glibc: Use getifaddrs() in glibc if you know it supports IPv6.],
1505     want_getifaddrs="$enableval",  want_getifaddrs="yes")
1506
1507 case $want_getifaddrs in
1508 yes|glibc)
1509 #
1510 # Do we have getifaddrs() ?
1511 #
1512 case $host in
1513 *-linux*)
1514         # Some recent versions of glibc support getifaddrs() which does not
1515         # provide AF_INET6 addresses while the function provided by the USAGI
1516         # project handles the AF_INET6 case correctly.  We need to avoid
1517         # using the former but prefer the latter unless overridden by
1518         # --enable-getifaddrs=glibc.
1519         if test $want_getifaddrs = glibc
1520         then
1521                 AC_CHECK_FUNC(getifaddrs, AC_DEFINE(HAVE_GETIFADDRS))
1522         else
1523                 save_LIBS="$LIBS"
1524                 LIBS="-L/usr/local/v6/lib $LIBS"
1525                 AC_CHECK_LIB(inet6, getifaddrs,
1526                         LIBS="$LIBS -linet6"
1527                         AC_DEFINE(HAVE_GETIFADDRS),
1528                         LIBS=${save_LIBS})
1529         fi
1530         ;;
1531 *)
1532         AC_CHECK_FUNC(getifaddrs, AC_DEFINE(HAVE_GETIFADDRS))
1533         ;;
1534 esac
1535 ;;
1536 no)
1537 ;;
1538 esac
1539
1540 #
1541 # Look for a sysctl call to get the list of network interfaces.
1542 #
1543 case $ac_cv_header_sys_sysctl_h in
1544 yes)
1545 AC_MSG_CHECKING(for interface list sysctl)
1546 AC_EGREP_CPP(found_rt_iflist, [
1547 #include <sys/param.h>
1548 #include <sys/sysctl.h>
1549 #include <sys/socket.h>
1550 #ifdef NET_RT_IFLIST
1551 found_rt_iflist
1552 #endif
1553 ],
1554         [AC_MSG_RESULT(yes)
1555          AC_DEFINE(HAVE_IFLIST_SYSCTL)],
1556         [AC_MSG_RESULT(no)])
1557 ;;
1558 esac
1559
1560 #
1561 # Check for some other useful functions that are not ever-present.
1562 #
1563
1564 # We test for strsep() using AC_TRY_LINK instead of AC_CHECK_FUNC
1565 # because AIX 4.3.3 with patches for bos.adt.include to version 4.3.3.77
1566 # reportedly defines strsep() without declaring it in <string.h> when
1567 # -D_LINUX_SOURCE_COMPAT is not defined [RT #2190], and
1568 # AC_CHECK_FUNC() incorrectly succeeds because it declares
1569 # the function itself.
1570 AC_MSG_CHECKING(for correctly declared strsep())
1571 AC_TRY_LINK([#include <string.h>], [char *sp; char *foo = strsep(&sp, ".");],
1572         [AC_MSG_RESULT(yes); ISC_PLATFORM_NEEDSTRSEP="#undef ISC_PLATFORM_NEEDSTRSEP"],
1573         [AC_MSG_RESULT(no); ISC_PLATFORM_NEEDSTRSEP="#define ISC_PLATFORM_NEEDSTRSEP 1"])
1574 AC_SUBST(ISC_PLATFORM_NEEDSTRSEP)
1575
1576 AC_CHECK_FUNC(memmove,
1577         [ISC_PLATFORM_NEEDMEMMOVE="#undef ISC_PLATFORM_NEEDMEMMOVE"],
1578         [ISC_PLATFORM_NEEDMEMMOVE="#define ISC_PLATFORM_NEEDMEMMOVE 1"])
1579 AC_SUBST(ISC_PLATFORM_NEEDMEMMOVE)
1580
1581 AC_CHECK_FUNC(strtoul,
1582         [ISC_PLATFORM_NEEDSTRTOUL="#undef ISC_PLATFORM_NEEDSTRTOUL"
1583          LWRES_PLATFORM_NEEDSTRTOUL="#undef LWRES_PLATFORM_NEEDSTRTOUL"
1584          GENRANDOMLIB=""],
1585         [ISC_PLATFORM_NEEDSTRTOUL="#define ISC_PLATFORM_NEEDSTRTOUL 1"
1586          LWRES_PLATFORM_NEEDSTRTOUL="#define LWRES_PLATFORM_NEEDSTRTOUL 1"
1587          GENRANDOMLIB='${ISCLIBS}'])
1588 AC_SUBST(ISC_PLATFORM_NEEDSTRTOUL)
1589 AC_SUBST(LWRES_PLATFORM_NEEDSTRTOUL)
1590 AC_SUBST(GENRANDOMLIB)
1591
1592 AC_CHECK_FUNC(strlcpy,
1593         [ISC_PLATFORM_NEEDSTRLCPY="#undef ISC_PLATFORM_NEEDSTRLCPY"],
1594         [ISC_PLATFORM_NEEDSTRLCPY="#define ISC_PLATFORM_NEEDSTRLCPY 1"])
1595 AC_SUBST(ISC_PLATFORM_NEEDSTRLCPY)
1596
1597 AC_CHECK_FUNC(strlcat,
1598         [ISC_PLATFORM_NEEDSTRLCAT="#undef ISC_PLATFORM_NEEDSTRLCAT"],
1599         [ISC_PLATFORM_NEEDSTRLCAT="#define ISC_PLATFORM_NEEDSTRLCAT 1"])
1600 AC_SUBST(ISC_PLATFORM_NEEDSTRLCAT)
1601
1602 ISC_PRINT_OBJS=
1603 ISC_PRINT_SRCS=
1604 AC_MSG_CHECKING(sprintf)
1605 AC_TRY_COMPILE([
1606 #include <stdio.h>
1607 ],
1608 [ char buf[2]; return(*sprintf(buf,"x"));],
1609 [
1610 ISC_PRINT_OBJS="print.$O"
1611 ISC_PRINT_SRCS="print.c"
1612 ISC_PLATFORM_NEEDSPRINTF="#define ISC_PLATFORM_NEEDSPRINTF"
1613 LWRES_PLATFORM_NEEDSPRINTF="#define LWRES_PLATFORM_NEEDSPRINTF"
1614 ],
1615 [ISC_PLATFORM_NEEDSPRINTF="#undef ISC_PLATFORM_NEEDSPRINTF"
1616  LWRES_PLATFORM_NEEDSPRINTF="#undef LWRES_PLATFORM_NEEDSPRINTF"]
1617 )
1618 AC_SUBST(ISC_PLATFORM_NEEDSPRINTF)
1619 AC_SUBST(LWRES_PLATFORM_NEEDSPRINTF)
1620
1621 AC_CHECK_FUNC(vsnprintf,
1622         [ISC_PLATFORM_NEEDVSNPRINTF="#undef ISC_PLATFORM_NEEDVSNPRINTF"
1623          LWRES_PLATFORM_NEEDVSNPRINTF="#undef LWRES_PLATFORM_NEEDVSNPRINTF"],
1624         [ISC_PRINT_OBJS="print.$O"
1625          ISC_PRINT_SRCS="print.c"
1626          ISC_PLATFORM_NEEDVSNPRINTF="#define ISC_PLATFORM_NEEDVSNPRINTF 1"
1627          LWRES_PLATFORM_NEEDVSNPRINTF="#define LWRES_PLATFORM_NEEDVSNPRINTF 1"])
1628 AC_SUBST(ISC_PLATFORM_NEEDVSNPRINTF)
1629 AC_SUBST(LWRES_PLATFORM_NEEDVSNPRINTF)
1630 ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS $ISC_PRINT_OBJS"
1631 ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS $ISC_PRINT_SRCS"
1632
1633 AC_CHECK_FUNC(strerror, AC_DEFINE(HAVE_STRERROR))
1634
1635 AC_SUBST(ISC_EXTRA_OBJS)
1636 AC_SUBST(ISC_EXTRA_SRCS)
1637
1638 # Determine the printf format characters to use when printing
1639 # values of type isc_int64_t. This will normally be "ll", but where
1640 # the compiler treats "long long" as a alias for "long" and printf
1641 # doesn't know about "long long" use "l".  Hopefully the sprintf
1642 # will produce a inconsistant result in the later case.  If the compiler
1643 # fails due to seeing "%lld" we fall back to "l".
1644 #
1645 # Digital Unix 4.0 (gcc?) (long long) is 64 bits as is its long. It uses
1646 # %ld even for (long long)/
1647 #
1648 # Win32 uses "%I64d", but that's defined elsewhere since we don't use
1649 # configure on Win32.
1650 #
1651 AC_MSG_CHECKING(printf format modifier for 64-bit integers)
1652 AC_TRY_RUN([
1653 #include <stdio.h>
1654 main() {
1655         long long int j = 0;
1656         char buf[100];
1657         buf[0] = 0;
1658         sprintf(buf, "%lld", j);
1659         exit((sizeof(long long int) != sizeof(long int))? 0 :
1660              (strcmp(buf, "0") != 0));
1661
1662 ],
1663         [AC_MSG_RESULT(ll)
1664         ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "ll"'
1665         LWRES_PLATFORM_QUADFORMAT='#define LWRES_PLATFORM_QUADFORMAT "ll"'],
1666         [AC_MSG_RESULT(l)
1667         ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "l"'
1668         LWRES_PLATFORM_QUADFORMAT='#define LWRES_PLATFORM_QUADFORMAT "l"'],
1669         [AC_MSG_RESULT(assuming target platform uses ll)
1670         ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "ll"'
1671         LWRES_PLATFORM_QUADFORMAT='#define LWRES_PLATFORM_QUADFORMAT "ll"'])
1672 AC_SUBST(ISC_PLATFORM_QUADFORMAT)
1673 AC_SUBST(LWRES_PLATFORM_QUADFORMAT)
1674
1675 #
1676 # Security Stuff
1677 #
1678 AC_CHECK_FUNC(chroot, AC_DEFINE(HAVE_CHROOT))
1679 AC_ARG_ENABLE(linux-caps,
1680         [  --disable-linux-caps disable linux capabilities])
1681 case "$enable_linux_caps" in
1682         yes|'')
1683                 AC_CHECK_HEADERS(linux/capability.h)
1684                 ;;
1685         no)
1686                 ;;
1687 esac
1688 AC_CHECK_HEADERS(sys/prctl.h)
1689
1690 #
1691 # Time Zone Stuff
1692 #
1693 AC_CHECK_FUNC(tzset, AC_DEFINE(HAVE_TZSET))
1694
1695 AC_MSG_CHECKING(for optarg decarartion)
1696 AC_TRY_COMPILE([
1697 #include <unistd.h>
1698 ],
1699 [optarg = 0;],
1700 [AC_MSG_RESULT(yes)],
1701 [AC_MSG_RESULT(no)
1702 GEN_NEED_OPTARG="-DNEED_OPTARG=1"
1703 AC_DEFINE(NEED_OPTARG, 1, [Defined if extern char *optarg is not declared.])])
1704
1705 #
1706 # BSD/OS, and perhaps some others, don't define rlim_t.
1707 #
1708 AC_MSG_CHECKING(for type rlim_t)
1709 AC_TRY_COMPILE([
1710 #include <sys/types.h>
1711 #include <sys/time.h>
1712 #include <sys/resource.h>],
1713 [rlim_t rl = 19671212; return (0);],
1714 [AC_MSG_RESULT(yes)
1715  ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE rlim_t"],
1716 [AC_MSG_RESULT(no)
1717
1718 AC_MSG_CHECKING(type of rlim_cur)
1719 AC_TRY_RUN([
1720 #include <sys/types.h>
1721 #include <sys/time.h>
1722 #include <sys/resource.h>
1723 main() { struct rlimit r; exit(!(sizeof(r.rlim_cur) == sizeof(int)));}],
1724 [AC_MSG_RESULT(int)
1725 ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE int"],
1726 [
1727 AC_TRY_RUN([
1728 #include <sys/types.h>
1729 #include <sys/time.h>
1730 #include <sys/resource.h>
1731 main() { struct rlimit r; exit(!(sizeof(r.rlim_cur) == sizeof(long int)));}],
1732 [AC_MSG_RESULT(long int)
1733 ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE long int"],
1734 [
1735 AC_TRY_RUN([
1736 #include <sys/types.h>
1737 #include <sys/time.h>
1738 #include <sys/resource.h>
1739 main() { struct rlimit r; exit((!sizeof(r.rlim_cur) == sizeof(long long int)));}],
1740 [AC_MSG_RESULT(long long int)
1741 ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE long long int"],
1742 [AC_MSG_ERROR([unable to determine sizeof rlim_cur])
1743 ],[AC_MSG_ERROR(this cannot happen)])
1744 ],[AC_MSG_ERROR(this cannot happen)])
1745 ],[
1746 ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE long long int"
1747 AC_MSG_RESULT(cannot determine type of rlim_cur when cross compiling - assuming long long int)])
1748 ])
1749 AC_SUBST(ISC_PLATFORM_RLIMITTYPE)
1750
1751 #
1752 # Compaq TruCluster requires more code for handling cluster IP aliases
1753 #
1754 case "$host" in
1755         *-dec-osf*)
1756                 AC_CHECK_LIB(clua, clua_getaliasaddress, LIBS="-lclua $LIBS")
1757                 AC_CHECK_FUNC(clua_getaliasaddress,
1758                                 AC_DEFINE(HAVE_TRUCLUSTER, 1,
1759                                         [Define if running under Compaq TruCluster]))
1760                 ;;
1761         *)
1762                 ;;
1763 esac
1764
1765 #
1766 # Some hosts need msg_namelen to match the size of the socket structure.
1767 # Some hosts don't set msg_namelen appropriately on return from recvmsg().
1768 #
1769 case $host in
1770 *os2*|*hp-mpeix*)
1771         AC_DEFINE(BROKEN_RECVMSG, 1,
1772                   [Define if recvmsg() does not meet all of the BSD socket API specifications.])
1773         ;;
1774 esac
1775
1776 #
1777 # Microsoft has their own way of handling shared libraries that requires
1778 # additional qualifiers on extern variables.  Unix systems don't need it.
1779 #
1780 AC_SUBST(ISC_PLATFORM_USEDECLSPEC)
1781 ISC_PLATFORM_USEDECLSPEC="#undef ISC_PLATFORM_USEDECLSPEC"
1782 AC_SUBST(LWRES_PLATFORM_USEDECLSPEC)
1783 LWRES_PLATFORM_USEDECLSPEC="#undef LWRES_PLATFORM_USEDECLSPEC"
1784
1785 #
1786 # Random remaining OS-specific issues involving compiler warnings.
1787 # XXXDCL print messages to indicate some compensation is being done?
1788 #
1789 AC_SUBST(ISC_PLATFORM_BRACEPTHREADONCEINIT)
1790 ISC_PLATFORM_BRACEPTHREADONCEINIT="#undef ISC_PLATFORM_BRACEPTHREADONCEINIT"
1791
1792 case "$host" in
1793         *-aix5.[[123]].*)
1794                 hack_shutup_pthreadonceinit=yes
1795                 ;;
1796         *-bsdi3.1*)
1797                 hack_shutup_sputaux=yes
1798                 ;;
1799         *-bsdi4.0*)
1800                 hack_shutup_sigwait=yes
1801                 hack_shutup_sputaux=yes
1802                 ;;
1803         [*-bsdi4.[12]*])
1804                 hack_shutup_stdargcast=yes
1805                 ;;
1806         [*-solaris2.[89]])
1807                 hack_shutup_pthreadonceinit=yes
1808                 ;;
1809         *-solaris2.10)
1810                 hack_shutup_pthreadonceinit=yes
1811                 ;;
1812 esac
1813
1814 case "$hack_shutup_pthreadonceinit" in
1815         yes)
1816                 #
1817                 # Shut up PTHREAD_ONCE_INIT unbraced initializer warnings.
1818                 #
1819                 ISC_PLATFORM_BRACEPTHREADONCEINIT="#define ISC_PLATFORM_BRACEPTHREADONCEINIT 1"
1820                 ;;
1821 esac
1822
1823 case "$hack_shutup_sigwait" in
1824         yes)
1825                 #
1826                 # Shut up a -Wmissing-prototypes warning for sigwait().
1827                 #
1828                 AC_DEFINE(SHUTUP_SIGWAIT)
1829                 ;;
1830 esac
1831
1832 case "$hack_shutup_sputaux" in
1833         yes)
1834                 #
1835                 # Shut up a -Wmissing-prototypes warning from <stdio.h>.
1836                 #
1837                 AC_DEFINE(SHUTUP_SPUTAUX)
1838                 ;;
1839 esac
1840
1841 case "$hack_shutup_stdargcast" in
1842         yes)
1843                 #
1844                 # Shut up a -Wcast-qual warning from va_start().
1845                 #
1846                 AC_DEFINE(SHUTUP_STDARG_CAST)
1847                 ;;
1848 esac
1849
1850 #
1851 # Check for if_nametoindex() for IPv6 scoped addresses support
1852 #
1853 AC_CHECK_FUNC(if_nametoindex, ac_cv_have_if_nametoindex=yes,
1854                 ac_cv_have_if_nametoindex=no)
1855 case $ac_cv_have_if_nametoindex in
1856 no)
1857         case "$host" in
1858         *-hp-hpux*)
1859                 AC_CHECK_LIB(ipv6, if_nametoindex,
1860                                 ac_cv_have_if_nametoindex=yes
1861                                 LIBS="-lipv6 $LIBS",)
1862         ;;
1863         esac
1864 esac
1865 case $ac_cv_have_if_nametoindex in
1866 yes)
1867         ISC_PLATFORM_HAVEIFNAMETOINDEX="#define ISC_PLATFORM_HAVEIFNAMETOINDEX 1"
1868         ;;
1869 *)
1870         ISC_PLATFORM_HAVEIFNAMETOINDEX="#undef ISC_PLATFORM_HAVEIFNAMETOINDEX"
1871         ;;
1872 esac
1873 AC_SUBST(ISC_PLATFORM_HAVEIFNAMETOINDEX)
1874
1875 #
1876 #  The following sets up how non-blocking i/o is established.
1877 #  Sunos, cygwin and solaris 2.x (x<5) require special handling.
1878 #
1879 case "$host" in
1880 *-sunos*) AC_DEFINE(PORT_NONBLOCK, O_NDELAY);;
1881 *-cygwin*) AC_DEFINE(PORT_NONBLOCK, O_NDELAY);;
1882 *-solaris2.[[01234]])
1883         AC_DEFINE(PORT_NONBLOCK, O_NONBLOCK)
1884         AC_DEFINE(USE_FIONBIO_IOCTL, 1,
1885                   [Defined if you need to use ioctl(FIONBIO) instead a fcntl call to make non-blocking.])
1886         ;;
1887 *) AC_DEFINE(PORT_NONBLOCK, O_NONBLOCK,
1888              [Sets which flag to pass to open/fcntl to make non-blocking (O_NDELAY/O_NONBLOCK).])
1889         ;;
1890 esac
1891 #
1892 # Solaris 2.5.1 and earlier cannot bind() then connect() a TCP socket.
1893 # This prevents the source address being set.
1894 #
1895 case "$host" in
1896 *-solaris2.[[012345]]|*-solaris2.5.1)
1897         AC_DEFINE(BROKEN_TCP_BIND_BEFORE_CONNECT, 1,
1898                   [Define if you cannot bind() before connect() for TCP sockets.])
1899         ;;
1900 esac
1901 #
1902 # The following sections deal with tools used for formatting
1903 # the documentation.  They are all optional, unless you are
1904 # a developer editing the documentation source.
1905 #
1906
1907 #
1908 # Look for TeX.
1909 #
1910
1911 AC_PATH_PROGS(LATEX, latex, latex)
1912 AC_SUBST(LATEX)
1913
1914 AC_PATH_PROGS(PDFLATEX, pdflatex, pdflatex)
1915 AC_SUBST(PDFLATEX)
1916
1917 #
1918 # Look for xsltproc (libxslt)
1919 #
1920
1921 AC_PATH_PROG(XSLTPROC, xsltproc, xsltproc)
1922 AC_SUBST(XSLTPROC)
1923
1924 #
1925 # Look for xmllint (libxml2)
1926 #
1927
1928 AC_PATH_PROG(XMLLINT, xmllint, xmllint)
1929 AC_SUBST(XMLLINT)
1930
1931 #
1932 # Subroutine for searching for an ordinary file (e.g., a stylesheet)
1933 # in a number of directories:
1934 #
1935 #   NOM_PATH_FILE(VARIABLE, FILENAME, DIRECTORIES)
1936 #
1937 # If the file FILENAME is found in one of the DIRECTORIES, the shell
1938 # variable VARIABLE is defined to its absolute pathname.  Otherwise, 
1939 # it is set to FILENAME, with no directory prefix (that's not terribly
1940 # useful, but looks less confusing in substitutions than leaving it
1941 # empty).  The variable VARIABLE will be substituted into output files.
1942
1943
1944 AC_DEFUN(NOM_PATH_FILE, [
1945 $1=""
1946 AC_MSG_CHECKING(for $2)
1947 for d in $3
1948 do
1949         f=$d/$2
1950         if test -f $f
1951         then
1952                 $1=$f
1953                 AC_MSG_RESULT($f)
1954                 break
1955         fi
1956 done
1957 if test "X[$]$1" = "X"
1958 then
1959         AC_MSG_RESULT("not found");
1960         $1=$2
1961 fi
1962 AC_SUBST($1)
1963 ])
1964
1965 #
1966 # Look for Docbook-XSL stylesheets.  Location probably varies by
1967 # system.  Guessing where it might be found, based on where SGML stuff
1968 # lives on some systems.  FreeBSD is the only one I'm sure of at the
1969 # moment.
1970 #
1971
1972 docbook_xsl_trees="/usr/pkg/share/xsl /usr/local/share/xsl /usr/share/xsl"
1973
1974 #
1975 # Look for stylesheets we need.
1976 #
1977
1978 NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_HTML, docbook/html/docbook.xsl, $docbook_xsl_trees)
1979 NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_XHTML, docbook/xhtml/docbook.xsl, $docbook_xsl_trees)
1980 NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_MAN, docbook/manpages/docbook.xsl, $docbook_xsl_trees)
1981 NOM_PATH_FILE(XSLT_DOCBOOK_CHUNK_HTML, docbook/html/chunk.xsl, $docbook_xsl_trees)
1982 NOM_PATH_FILE(XSLT_DOCBOOK_CHUNK_XHTML, docbook/xhtml/chunk.xsl, $docbook_xsl_trees)
1983
1984 #
1985 # Same dance for db2latex
1986 #
1987 # No idea where this lives except on FreeBSD.
1988 #
1989
1990 db2latex_xsl_trees="/usr/local/share"
1991
1992 #
1993 # Look for stylesheets we need.
1994 #
1995
1996 NOM_PATH_FILE(XSLT_DB2LATEX_STYLE, db2latex/xsl/docbook.xsl, $db2latex_xsl_trees)
1997
1998 #
1999 # Look for "admonition" image directory.  Can't use NOM_PATH_FILE()
2000 # because it's a directory, so just do the same things, inline.
2001 #
2002
2003 AC_MSG_CHECKING(for db2latex/xsl/figures)
2004 for d in $db2latex_xsl_trees
2005 do
2006         dd=$d/db2latex/xsl/figures
2007         if test -d $dd
2008         then
2009                 XSLT_DB2LATEX_ADMONITIONS=$dd
2010                 AC_MSG_RESULT($dd)
2011                 break
2012         fi
2013 done
2014 if test "X$XSLT_DB2LATEX_ADMONITIONS" = "X"
2015 then
2016         AC_MSG_RESULT(not found)
2017         XSLT_DB2LATEX_ADMONITIONS=db2latex/xsl/figures
2018 fi
2019 AC_SUBST(XSLT_DB2LATEX_ADMONITIONS)
2020
2021 #
2022 # Substitutions
2023 #
2024 AC_SUBST(BIND9_TOP_BUILDDIR)
2025 BIND9_TOP_BUILDDIR=`pwd`
2026
2027 AC_SUBST(BIND9_ISC_BUILDINCLUDE)
2028 AC_SUBST(BIND9_ISCCC_BUILDINCLUDE)
2029 AC_SUBST(BIND9_ISCCFG_BUILDINCLUDE)
2030 AC_SUBST(BIND9_DNS_BUILDINCLUDE)
2031 AC_SUBST(BIND9_LWRES_BUILDINCLUDE)
2032 AC_SUBST(BIND9_BIND9_BUILDINCLUDE)
2033 if test "X$srcdir" != "X"; then
2034         BIND9_ISC_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/isc/include"
2035         BIND9_ISCCC_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/isccc/include"
2036         BIND9_ISCCFG_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/isccfg/include"
2037         BIND9_DNS_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/dns/include"
2038         BIND9_LWRES_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/lwres/include"
2039         BIND9_BIND9_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/bind9/include"
2040 else
2041         BIND9_ISC_BUILDINCLUDE=""
2042         BIND9_ISCCC_BUILDINCLUDE=""
2043         BIND9_ISCCFG_BUILDINCLUDE=""
2044         BIND9_DNS_BUILDINCLUDE=""
2045         BIND9_LWRES_BUILDINCLUDE=""
2046         BIND9_BIND9_BUILDINCLUDE=""
2047 fi
2048
2049 AC_SUBST_FILE(BIND9_MAKE_INCLUDES)
2050 BIND9_MAKE_INCLUDES=$BIND9_TOP_BUILDDIR/make/includes
2051
2052 AC_SUBST_FILE(BIND9_MAKE_RULES)
2053 BIND9_MAKE_RULES=$BIND9_TOP_BUILDDIR/make/rules
2054
2055 . $srcdir/version
2056 BIND9_VERSION="VERSION=${MAJORVER}.${MINORVER}.${PATCHVER}${RELEASETYPE}${RELEASEVER}"
2057 AC_SUBST(BIND9_VERSION)
2058
2059 AC_SUBST_FILE(LIBISC_API)
2060 LIBISC_API=$srcdir/lib/isc/api
2061
2062 AC_SUBST_FILE(LIBISCCC_API)
2063 LIBISCCC_API=$srcdir/lib/isccc/api
2064
2065 AC_SUBST_FILE(LIBISCCFG_API)
2066 LIBISCCFG_API=$srcdir/lib/isccfg/api
2067
2068 AC_SUBST_FILE(LIBDNS_API)
2069 LIBDNS_API=$srcdir/lib/dns/api
2070
2071 AC_SUBST_FILE(LIBBIND9_API)
2072 LIBBIND9_API=$srcdir/lib/bind9/api
2073
2074 AC_SUBST_FILE(LIBLWRES_API)
2075 LIBLWRES_API=$srcdir/lib/lwres/api
2076
2077 if test "$cross_compiling" = "yes"; then
2078         if test -z "$BUILD_CC"; then
2079                 AC_ERROR([BUILD_CC not set])
2080         fi
2081         BUILD_CFLAGS="$BUILD_CFLAGS"
2082         BUILD_CPPFLAGS="$BUILD_CPPFLAGS"
2083         BUILD_LDFLAGS="$BUILD_LDFLAGS"
2084         BUILD_LIBS="$BUILD_LIBS"
2085 else
2086         BUILD_CC="$CC" 
2087         BUILD_CFLAGS="$CFLAGS" 
2088         BUILD_CPPFLAGS="$CPPFLAGS $GEN_NEED_OPTARG"
2089         BUILD_LDFLAGS="$LDFLAGS"
2090         BUILD_LIBS="$LIBS"
2091 fi
2092
2093 AC_SUBST(BUILD_CC)
2094 AC_SUBST(BUILD_CFLAGS)
2095 AC_SUBST(BUILD_CPPFLAGS)
2096 AC_SUBST(BUILD_LDFLAGS)
2097 AC_SUBST(BUILD_LIBS)
2098
2099 AC_OUTPUT(
2100         make/rules
2101         make/includes
2102         Makefile
2103         make/Makefile
2104         make/mkdep
2105         lib/Makefile
2106         lib/isc/Makefile
2107         lib/isc/include/Makefile
2108         lib/isc/include/isc/Makefile
2109         lib/isc/include/isc/platform.h
2110         lib/isc/unix/Makefile
2111         lib/isc/unix/include/Makefile
2112         lib/isc/unix/include/isc/Makefile
2113         lib/isc/nls/Makefile
2114         lib/isc/$thread_dir/Makefile
2115         lib/isc/$thread_dir/include/Makefile
2116         lib/isc/$thread_dir/include/isc/Makefile
2117         lib/isccc/Makefile
2118         lib/isccc/include/Makefile
2119         lib/isccc/include/isccc/Makefile
2120         lib/isccfg/Makefile
2121         lib/isccfg/include/Makefile
2122         lib/isccfg/include/isccfg/Makefile
2123         lib/dns/Makefile
2124         lib/dns/include/Makefile
2125         lib/dns/include/dns/Makefile
2126         lib/dns/include/dst/Makefile
2127         lib/bind9/Makefile
2128         lib/bind9/include/Makefile
2129         lib/bind9/include/bind9/Makefile
2130         lib/lwres/Makefile
2131         lib/lwres/include/Makefile
2132         lib/lwres/include/lwres/Makefile
2133         lib/lwres/include/lwres/netdb.h
2134         lib/lwres/include/lwres/platform.h
2135         lib/lwres/man/Makefile
2136         lib/lwres/unix/Makefile
2137         lib/lwres/unix/include/Makefile
2138         lib/lwres/unix/include/lwres/Makefile
2139         lib/tests/Makefile
2140         lib/tests/include/Makefile
2141         lib/tests/include/tests/Makefile
2142         bin/Makefile
2143         bin/check/Makefile
2144         bin/named/Makefile
2145         bin/named/unix/Makefile
2146         bin/rndc/Makefile
2147         bin/rndc/unix/Makefile
2148         bin/dig/Makefile
2149         bin/nsupdate/Makefile
2150         bin/tests/Makefile
2151         bin/tests/names/Makefile
2152         bin/tests/master/Makefile
2153         bin/tests/rbt/Makefile
2154         bin/tests/db/Makefile
2155         bin/tests/tasks/Makefile
2156         bin/tests/timers/Makefile
2157         bin/tests/dst/Makefile
2158         bin/tests/mem/Makefile
2159         bin/tests/net/Makefile
2160         bin/tests/sockaddr/Makefile
2161         bin/tests/system/Makefile
2162         bin/tests/system/conf.sh
2163         bin/tests/system/lwresd/Makefile
2164         bin/tests/system/tkey/Makefile
2165         bin/tests/headerdep_test.sh
2166         bin/dnssec/Makefile
2167         doc/Makefile
2168         doc/arm/Makefile
2169         doc/misc/Makefile
2170         doc/xsl/Makefile
2171         isc-config.sh
2172         doc/xsl/isc-docbook-chunk.xsl
2173         doc/xsl/isc-docbook-html.xsl
2174         doc/xsl/isc-docbook-latex.xsl
2175         doc/xsl/isc-manpage.xsl
2176 )
2177 chmod a+x isc-config.sh
2178
2179 if test "X$OPENSSL_WARNING" != "X"; then
2180 cat << \EOF
2181 WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
2182 WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
2183 WARNING                                                                 WARNING
2184 WARNING         Your OpenSSL crypto library may be vulnerable to        WARNING
2185 WARNING         one or more of the the following known security         WARNING
2186 WARNING         flaws:                                                  WARNING
2187 WARNING                                                                 WARNING
2188 WARNING         CAN-2002-0659, CAN-2006-4339, CVE-2006-2937 and         WARNING
2189 WARNING         CVE-2006-2940.                                          WARNING
2190 WARNING                                                                 WARNING
2191 WARNING         It is recommended that you upgrade to OpenSSL           WARNING
2192 WARNING         version 0.9.8d/0.9.7l (or greater).                     WARNING
2193 WARNING                                                                 WARNING
2194 WARNING         You can disable this warning by specifying:             WARNING
2195 WARNING                                                                 WARNING
2196 WARNING               --disable-openssl-version-check                   WARNING
2197 WARNING                                                                 WARNING
2198 WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
2199 WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
2200 EOF
2201 fi
2202
2203 # Tell Emacs to edit this file in shell mode.
2204 # Local Variables:
2205 # mode: sh
2206 # End: