# Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2001, 2003 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
# The POSIX ln(1) program. Non-POSIX systems may substitute
# "copy" or something.
LN=ln
AC_SUBST(LN)
case "$AR" in
"")
AC_MSG_ERROR([
ar program not found. Please fix your PATH to include the directory in
which ar resides, or set AR in the environment with the full path to ar.
])
#
# Some systems, e.g. RH7, have the Exuberant Ctags etags instead of
# GNU emacs etags, and it requires the -L flag.
#
if test "X$ETAGS" != "X"; then
AC_MSG_CHECKING(for Exuberant Ctags etags)
if $ETAGS --version 2>&1 | grep 'Exuberant Ctags' >/dev/null 2>&1; then
AC_MSG_RESULT(yes)
ETAGS="$ETAGS -L"
else
AC_MSG_RESULT(no)
fi
fi
AC_SUBST(ETAGS)
#
# Perl is optional; it is used only by some of the system test scripts.
#
AC_PATH_PROGS(PERL, perl5 perl)
AC_SUBST(PERL)
#
# isc/list.h and others clash with BIND 9 and system header files.
# Install into non-shared directory.
#
case "$includedir" in
'${prefix}/include')
includedir='${prefix}/include/bind'
;;
esac
#
# -lbind can clash with system version. Install into non-shared directory.
#
case "$libdir" in
'${prefix}/lib')
libdir='${prefix}/lib/bind'
;;
esac
#
# Make sure INSTALL uses an absolute path, else it will be wrong in all
# Makefiles, since they use make/rules.in and INSTALL will be adjusted by
# configure based on the location of the file where it is substituted.
# Since in BIND9 INSTALL is only substituted into make/rules.in, an immediate
# subdirectory of install-sh, This relative path will be wrong for all
# directories more than one level down from install-sh.
#
case "$INSTALL" in
/*)
;;
*)
#
# Not all systems have dirname.
#
changequote({, })
ac_dir="`echo $INSTALL | sed 's%/[^/]*$%%'`"
changequote([, ])
ac_prog="`echo $INSTALL | sed 's%.*/%%'`"
test "$ac_dir" = "$ac_prog" && ac_dir=.
test -d "$ac_dir" && ac_dir="`(cd \"$ac_dir\" && pwd)`"
INSTALL="$ac_dir/$ac_prog"
;;
esac
#
# On these hosts, we really want to use cc, not gcc, even if it is
# found. The gcc that these systems have will not correctly handle
# pthreads.
#
# However, if the user sets $CC to be something, let that override
# our change.
#
if test "X$CC" = "X" ; then
case "$host" in
*-dec-osf*)
CC="cc"
;;
*-solaris*)
# Use Sun's cc if it is available, but watch
# out for /usr/ucb/cc; it will never be the right
# compiler to use.
#
# If setting CC here fails, the AC_PROG_CC done
# below might still find gcc.
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
case "$ac_dir" in
/usr/ucb)
# exclude
;;
*)
if test -f "$ac_dir/cc"; then
CC="$ac_dir/cc"
break
fi
;;
esac
done
IFS="$ac_save_ifs"
;;
*-hp-hpux*)
CC="cc"
;;
mips-sgi-irix*)
CC="cc"
;;
esac
fi
#
# check for clock_gettime() in librt
#
AC_CHECK_LIB(rt, clock_gettime)
#
# check for MD5Init() in libmd5
#
AC_CHECK_LIB(md5, MD5Init)
#
# check if we need to #include sys/select.h explicitly
#
case $ac_cv_header_unistd_h in
yes)
AC_MSG_CHECKING(if unistd.h defines fd_set)
AC_TRY_COMPILE([
#include <unistd.h>],
[fd_set read_set; return (0);],
[AC_MSG_RESULT(yes)
ISC_PLATFORM_NEEDSYSSELECTH="#undef ISC_PLATFORM_NEEDSYSSELECTH"
],
[AC_MSG_RESULT(no)
case ac_cv_header_sys_select_h in
yes)
ISC_PLATFORM_NEEDSYSSELECTH="#define ISC_PLATFORM_NEEDSYSSELECTH 1"
;;
no)
AC_MSG_ERROR([need either working unistd.h or sys/select.h])
;;
esac
])
;;
no)
case ac_cv_header_sys_select_h in
yes)
ISC_PLATFORM_NEEDSYSSELECTH="#define ISC_PLATFORM_NEEDSYSSELECTH 1"
;;
no)
AC_MSG_ERROR([need either unistd.h or sys/select.h])
;;
esac
;;
esac
AC_SUBST(ISC_PLATFORM_NEEDSYSSELECTH)
#
# Find the machine's endian flavor.
#
AC_C_BIGENDIAN
AC_ARG_WITH(irs-gr,[ --with-irs-gr Build with WANT_IRS_GR],
want_irs_gr="$withval", want_irs_gr="no")
case "$want_irs_gr" in
yes) WANT_IRS_GR="#define WANT_IRS_GR 1"
WANT_IRS_GR_OBJS="\${WANT_IRS_GR_OBJS}"
;;
*) WANT_IRS_GR="#undef WANT_IRS_GR" WANT_IRS_GR_OBJS="";;
esac
AC_SUBST(WANT_IRS_GR)
AC_SUBST(WANT_IRS_GR_OBJS)
AC_ARG_WITH(irs-pw,[ --with-irs-pw Build with WANT_IRS_PW],
want_irs_pw="$withval", want_irs_pw="no")
case "$want_irs_pw" in
yes) WANT_IRS_PW="#define WANT_IRS_PW 1"
WANT_IRS_PW_OBJS="\${WANT_IRS_PW_OBJS}";;
*) WANT_IRS_PW="#undef WANT_IRS_PW" WANT_IRS_PW_OBJS="";;
esac
AC_SUBST(WANT_IRS_PW)
AC_SUBST(WANT_IRS_PW_OBJS)
AC_ARG_WITH(irs-nis,[ --with-irs-nis Build with WANT_IRS_NIS],
want_irs_nis="$withval", want_irs_nis="no")
case "$want_irs_nis" in
yes)
WANT_IRS_NIS="#define WANT_IRS_NIS 1"
WANT_IRS_NIS_OBJS="\${WANT_IRS_NIS_OBJS}"
case "$want_irs_gr" in
yes)
WANT_IRS_NISGR_OBJS="\${WANT_IRS_NISGR_OBJS}";;
*)
WANT_IRS_NISGR_OBJS="";;
esac
case "$want_irs_pw" in
yes)
WANT_IRS_NISPW_OBJS="\${WANT_IRS_NISPW_OBJS}";;
*)
WANT_IRS_NISPW_OBJS="";;
esac
;;
*)
WANT_IRS_NIS="#undef WANT_IRS_NIS"
WANT_IRS_NIS_OBJS=""
WANT_IRS_NISGR_OBJS=""
WANT_IRS_NISPW_OBJS="";;
esac
AC_SUBST(WANT_IRS_NIS)
AC_SUBST(WANT_IRS_NIS_OBJS)
AC_SUBST(WANT_IRS_NISGR_OBJS)
AC_SUBST(WANT_IRS_NISPW_OBJS)
AC_TRY_RUN([
#ifdef HAVE_DB_H
int have_db_h = 1;
#else
int have_db_h = 0;
#endif
main() { return(!have_db_h); }
],
WANT_IRS_DBPW_OBJS="\${WANT_IRS_DBPW_OBJS}"
,
WANT_IRS_DBPW_OBJS=""
,
WANT_IRS_DBPW_OBJS=""
)
AC_SUBST(WANT_IRS_DBPW_OBJS)
#
# was --with-randomdev specified?
#
AC_MSG_CHECKING(for random device)
AC_ARG_WITH(randomdev,
[ --with-randomdev=PATH Specify path for random device],
use_randomdev="$withval", use_randomdev="unspec")
case "$use_randomdev" in
unspec)
case "$host" in
*-openbsd*)
devrandom=/dev/srandom
;;
*)
devrandom=/dev/random
;;
esac
AC_MSG_RESULT($devrandom)
AC_CHECK_FILE($devrandom,
AC_DEFINE_UNQUOTED(PATH_RANDOMDEV,
"$devrandom"),)
;;
yes)
AC_MSG_ERROR([--with-randomdev must specify a path])
;;
*)
AC_DEFINE_UNQUOTED(PATH_RANDOMDEV, "$use_randomdev")
AC_MSG_RESULT(using "$use_randomdev")
;;
esac
sinclude(./config.threads.in)dnl
if $use_threads
then
if test "X$GCC" = "Xyes"; then
case "$host" in
*-freebsd*)
CC="$CC -pthread"
CCOPT="$CCOPT -pthread"
STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
;;
*-openbsd*)
CC="$CC -pthread"
CCOPT="$CCOPT -pthread"
;;
*-solaris*)
LIBS="$LIBS -lthread"
;;
*-ibm-aix*)
STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
;;
esac
else
case $host in
*-dec-osf*)
CC="$CC -pthread"
CCOPT="$CCOPT -pthread"
;;
*-solaris*)
CC="$CC -mt"
CCOPT="$CCOPT -mt"
;;
*-ibm-aix*)
STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
;;
*-UnixWare*)
CC="$CC -Kthread"
CCOPT="$CCOPT -Kthread"
;;
esac
fi
AC_DEFINE(_REENTRANT)
ALWAYS_DEFINES="-D_REENTRANT"
DO_PTHREADS="#define DO_PTHREADS 1"
WANT_IRS_THREADSGR_OBJS="\${WANT_IRS_THREADSGR_OBJS}"
WANT_IRS_THREADSPW_OBJS="\${WANT_IRS_THREADSPW_OBJS}"
case $host in
ia64-hp-hpux11.*)
WANT_IRS_THREADS_OBJS="";;
*)
WANT_IRS_THREADS_OBJS="\${WANT_IRS_THREADS_OBJS}";;
esac
WANT_THREADS_OBJS="\${WANT_THREADS_OBJS}"
thread_dir=pthreads
#
# We'd like to use sigwait() too
#
AC_CHECK_FUNC(sigwait,
AC_DEFINE(HAVE_SIGWAIT),
AC_CHECK_LIB(c, sigwait,
AC_DEFINE(HAVE_SIGWAIT),
AC_CHECK_LIB(pthread, sigwait,
AC_DEFINE(HAVE_SIGWAIT),
AC_CHECK_LIB(pthread, _Psigwait,
AC_DEFINE(HAVE_SIGWAIT),))))
#
# Additional OS-specific issues related to pthreads and sigwait.
#
case "$host" in
#
# One more place to look for sigwait.
#
*-freebsd*)
AC_CHECK_LIB(c_r, sigwait, AC_DEFINE(HAVE_SIGWAIT),)
;;
#
# BSDI 3.0 through 4.0.1 needs pthread_init() to be
# called before certain pthreads calls. This is deprecated
# in BSD/OS 4.1.
#
*-bsdi3.*|*-bsdi4.0*)
AC_DEFINE(NEED_PTHREAD_INIT)
;;
#
# LinuxThreads requires some changes to the way we
# deal with signals.
#
*-linux*)
AC_DEFINE(HAVE_LINUXTHREADS)
;;
#
# Ensure the right sigwait() semantics on Solaris and make
# sure we call pthread_setconcurrency.
#
*-solaris*)
AC_DEFINE(_POSIX_PTHREAD_SEMANTICS)
AC_CHECK_FUNC(pthread_setconcurrency,
AC_DEFINE(CALL_PTHREAD_SETCONCURRENCY))
AC_DEFINE(POSIX_GETPWUID_R)
AC_DEFINE(POSIX_GETPWNAM_R)
AC_DEFINE(POSIX_GETGRGID_R)
AC_DEFINE(POSIX_GETGRNAM_R)
;;
*hpux11*)
AC_DEFINE(NEED_ENDNETGRENT_R)
AC_DEFINE(_PTHREADS_DRAFT4)
;;
#
# UnixWare does things its own way.
#
*-UnixWare*)
AC_DEFINE(HAVE_UNIXWARE_SIGWAIT)
;;
esac
#
# Look for sysconf to allow detection of the number of processors.
#
AC_CHECK_FUNC(sysconf, AC_DEFINE(HAVE_SYSCONF),)
else
ALWAYS_DEFINES=""
DO_PTHREADS="#undef DO_PTHREADS"
WANT_IRS_THREADSGR_OBJS=""
WANT_IRS_THREADSPW_OBJS=""
WANT_IRS_THREADS_OBJS=""
WANT_THREADS_OBJS=""
thread_dir=nothreads
fi
if test -n "$NEED_STRERROR"
then
AC_MSG_CHECKING([for extern char * sys_errlist[]])
AC_TRY_LINK([ extern int sys_nerr; extern char *sys_errlist[]; ],
[ const char *p = sys_errlist[0]; ],
AC_MSG_RESULT(yes)
AC_DEFINE(USE_SYSERROR_LIST),
AC_MSG_RESULT(no))
fi
#
# flockfile is usually provided by pthreads, but we may want to use it
# even if compiled with --disable-threads.
#
AC_CHECK_FUNC(flockfile, AC_DEFINE(HAVE_FLOCKFILE),)
#
# Indicate what the final decision was regarding threads.
#
AC_MSG_CHECKING(whether to build with threads)
if $use_threads; then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
if test "X$GCC" = "Xyes"; then
AC_MSG_CHECKING(if "$CC" supports -fno-strict-aliasing)
SAVE_CFLAGS=$CFLAGS
CFLAGS=-fno-strict-aliasing
AC_TRY_COMPILE(,, [FNOSTRICTALIASING=yes],[FNOSTRICTALIASING=no])
CFLAGS=$SAVE_CFLAGS
if test "$FNOSTRICTALIASING" = "yes"; then
AC_MSG_RESULT(yes)
STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith -fno-strict-aliasing"
else
AC_MSG_RESULT(no)
STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith"
fi
else
case $host in
*-dec-osf*)
CC="$CC -std"
CCOPT="$CCOPT -std"
MKDEPCC="$CC"
;;
*-hp-hpux*)
CC="$CC -Ae -z"
# The version of the C compiler that constantly warns about
# 'const' as well as alignment issues is unfortunately not
# able to be discerned via the version of the operating
# system, nor does cc have a version flag.
case "`$CC +W 123 2>&1`" in
*Unknown?option*)
STD_CWARNINGS="+w1"
;;
*)
# Turn off the pointlessly noisy warnings.
STD_CWARNINGS="+w1 +W 474,530,2193,2236"
;;
esac
CCOPT="$CCOPT -Ae -z"
LIBS="-Wl,+vnocompatwarnings $LIBS"
MKDEPPROG='cc -Ae -E -Wp,-M >/dev/null 2>&1 | awk '"'"'BEGIN {colon=0; rec="";} { for (i = 0 ; i < NF; i++) { if (colon && a[$i]) continue; if ($i == "\\") continue; if (!colon) { rec = $i continue; } if ($i == ":") { rec = rec " :" colon = 1 continue; } if (length(rec $i) > 76) { print rec " \\"; rec = "\t" $i; a[$i] = 1; } else { rec = rec " " $i a[$i] = 1; } } } END {print rec}'"'"' >>$TMP'
MKDEPPROG='cc -Ae -E -Wp,-M >/dev/null 2>>$TMP'
;;
*-sgi-irix*)
STD_CWARNINGS="-fullwarn -woff 1209"
#
# Silence more than 250 instances of
# "prototyped function redeclared without prototype"
# and 11 instances of
# "variable ... was set but never used"
# from lib/dns/sec/openssl.
#
IRIX_DNSSEC_WARNINGS_HACK="-woff 1692,1552"
;;
*-solaris*)
MKDEPCFLAGS="-xM"
;;
*-UnixWare*)
CC="$CC -w"
;;
esac
fi
#
# _GNU_SOURCE is needed to access the fd_bits field of struct fd_set, which
# is supposed to be opaque.
#
case $host in
*linux*)
STD_CDEFINES="$STD_CDEFINES -D_GNU_SOURCE"
;;
esac
#
# -lxnet buys us one big porting headache... standards, gotta love 'em.
#
# AC_CHECK_LIB(xnet, socket, ,
# AC_CHECK_LIB(socket, socket)
# AC_CHECK_LIB(nsl, inet_ntoa)
# )
#
# Use this for now, instead:
#
case "$host" in
mips-sgi-irix*)
;;
ia64-hp-hpux11.*)
AC_CHECK_LIB(socket, socket)
AC_CHECK_LIB(nsl, inet_ntoa)
;;
*)
AC_CHECK_LIB(d4r, gethostbyname_r)
AC_CHECK_LIB(socket, socket)
AC_CHECK_FUNC(inet_ntoa, [], AC_CHECK_LIB(nsl, inet_ntoa))
;;
esac
#
# Purify support
#
AC_MSG_CHECKING(whether to use purify)
AC_ARG_WITH(purify,
[ --with-purify[=PATH] use Rational purify],
use_purify="$withval", use_purify="no")
case "$use_purify" in
no)
;;
yes)
AC_PATH_PROG(purify_path, purify, purify)
;;
*)
purify_path="$use_purify"
;;
esac
case "$use_purify" in
no)
AC_MSG_RESULT(no)
PURIFY=""
;;
*)
if test -f $purify_path || test $purify_path = purify; then
AC_MSG_RESULT($purify_path)
PURIFYFLAGS="`echo $PURIFYOPTIONS`"
PURIFY="$purify_path $PURIFYFLAGS"
else
AC_MSG_ERROR([$purify_path not found.
Please choose the proper path with the following command:
configure --with-purify=PATH
])
fi
;;
esac
AC_SUBST(PURIFY)
#
# GNU libtool support
#
case $host in
sunos*)
# Just set the maximum command line length for sunos as it otherwise
# takes a exceptionally long time to work it out. Required for libtool.
lt_cv_sys_max_cmd_len=4096;
;;
esac
AC_ARG_WITH(libtool,
[ --with-libtool use GNU libtool (following indented options supported)],
use_libtool="$withval", use_libtool="no")
#
# Here begins a very long section to determine the system's networking
# capabilities. The order of the tests is signficant.
#
#
# IPv6
#
AC_ARG_ENABLE(ipv6,
[ --enable-ipv6 use IPv6 [default=autodetect]])
case "$enable_ipv6" in
yes|''|autodetect)
AC_DEFINE(WANT_IPV6)
;;
no)
;;
esac
#
# We do the IPv6 compilation checking after libtool so that we can put
# the right suffix on the files.
#
AC_MSG_CHECKING(for IPv6 structures)
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>],
[struct sockaddr_in6 sin6; return (0);],
[AC_MSG_RESULT(yes)
found_ipv6=yes],
[AC_MSG_RESULT(no)
found_ipv6=no])
#
# See whether IPv6 support is provided via a Kame add-on.
# This is done before other IPv6 linking tests to LIBS is properly set.
#
AC_MSG_CHECKING(for Kame IPv6 support)
AC_ARG_WITH(kame,
[ --with-kame[=PATH] use Kame IPv6 [default path /usr/local/v6]],
use_kame="$withval", use_kame="no")
case "$use_kame" in
no)
;;
yes)
kame_path=/usr/local/v6
;;
*)
kame_path="$use_kame"
;;
esac
case "$use_kame" in
no)
AC_MSG_RESULT(no)
;;
*)
if test -f $kame_path/lib/libinet6.a; then
AC_MSG_RESULT($kame_path/lib/libinet6.a)
LIBS="-L$kame_path/lib -linet6 $LIBS"
else
AC_MSG_ERROR([$kame_path/lib/libinet6.a not found.
Please choose the proper path with the following command:
configure --with-kame=PATH
])
fi
;;
esac
#
# Whether netinet6/in6.h is needed has to be defined in isc/platform.h.
# Including it on Kame-using platforms is very bad, though, because
# Kame uses #error against direct inclusion. So include it on only
# the platform that is otherwise broken without it -- BSD/OS 4.0 through 4.1.
# This is done before the in6_pktinfo check because that's what
# netinet6/in6.h is needed for.
#
changequote({, })
case "$host" in
*-bsdi4.[01]*)
ISC_PLATFORM_NEEDNETINET6IN6H="#define ISC_PLATFORM_NEEDNETINET6IN6H 1"
isc_netinet6in6_hack="#include <netinet6/in6.h>"
;;
*)
ISC_PLATFORM_NEEDNETINET6IN6H="#undef ISC_PLATFORM_NEEDNETINET6IN6H"
isc_netinet6in6_hack=""
;;
esac
changequote([, ])
#
# This is similar to the netinet6/in6.h issue.
#
case "$host" in
*-UnixWare*)
ISC_PLATFORM_NEEDNETINETIN6H="#define ISC_PLATFORM_NEEDNETINETIN6H 1"
ISC_PLATFORM_FIXIN6ISADDR="#define ISC_PLATFORM_FIXIN6ISADDR 1"
isc_netinetin6_hack="#include <netinet/in6.h>"
;;
*)
ISC_PLATFORM_NEEDNETINETIN6H="#undef ISC_PLATFORM_NEEDNETINETIN6H"
ISC_PLATFORM_FIXIN6ISADDR="#undef ISC_PLATFORM_FIXIN6ISADDR"
isc_netinetin6_hack=""
;;
esac
#
# Now delve deeper into the suitability of the IPv6 support.
#
case "$found_ipv6" in
yes)
HAS_INET6_STRUCTS="#define HAS_INET6_STRUCTS 1"
#
# Check for network functions that are often missing. We do this
# after the libtool checking, so we can put the right suffix on
# the files. It also needs to come after checking for a Kame add-on,
# which provides some (all?) of the desired functions.
#
AC_MSG_CHECKING([for inet_ntop])
AC_TRY_LINK([
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>],
[inet_ntop(0, 0, 0, 0); return (0);],
[AC_MSG_RESULT(yes)
ISC_PLATFORM_NEEDNTOP="#undef ISC_PLATFORM_NEEDNTOP"],
#
# Look for a 4.4BSD-style sa_len member in struct sockaddr.
#
case "$host" in
*-dec-osf*)
# Tru64 broke send() by defining it to send_OBSOLETE
AC_DEFINE(REENABLE_SEND)
# Turn on 4.4BSD style sa_len support.
AC_DEFINE(_SOCKADDR_LEN)
;;
esac
#
# Look for a sysctl call to get the list of network interfaces.
#
AC_MSG_CHECKING(for interface list sysctl)
AC_EGREP_CPP(found_rt_iflist, [
#include <sys/param.h>
#include <sys/sysctl.h>
#include <sys/socket.h>
#ifdef NET_RT_IFLIST
found_rt_iflist
#endif
],
[AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_IFLIST_SYSCTL)],
[AC_MSG_RESULT(no)])
#
# Check for some other useful functions that are not ever-present.
#
AC_CHECK_FUNC(strsep,
[ISC_PLATFORM_NEEDSTRSEP="#undef ISC_PLATFORM_NEEDSTRSEP"],
[ISC_PLATFORM_NEEDSTRSEP="#define ISC_PLATFORM_NEEDSTRSEP 1"])
# Determine the printf format characters to use when printing
# values of type isc_int64_t. We make the assumption that platforms
# where a "long long" is the same size as a "long" (e.g., Alpha/OSF1)
# want "%ld" and everyone else can use "%lld". Win32 uses "%I64d",
# but that's defined elsewhere since we don't use configure on Win32.
#
AC_MSG_CHECKING(printf format modifier for 64-bit integers)
AC_TRY_RUN([main() { exit(!(sizeof(long long int) == sizeof(long int))); }],
[AC_MSG_RESULT(l)
ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "l"'],
[AC_MSG_RESULT(ll)
ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "ll"'],
[AC_MSG_RESULT(default ll)
ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "ll"'])
AC_SUBST(ISC_PLATFORM_QUADFORMAT)
#
# Random remaining OS-specific issues involving compiler warnings.
# XXXDCL print messages to indicate some compensation is being done?
#
BROKEN_IN6ADDR_INIT_MACROS="#undef BROKEN_IN6ADDR_INIT_MACROS"
case "$hack_shutup_pthreadmutexinit" in
yes)
#
# Shut up PTHREAD_MUTEX_INITIALIZER unbraced
# initializer warnings.
#
AC_DEFINE(SHUTUP_MUTEX_INITIALIZER)
;;
esac
case "$hack_shutup_sigwait" in
yes)
#
# Shut up a -Wmissing-prototypes warning for sigwait().
#
AC_DEFINE(SHUTUP_SIGWAIT)
;;
esac
case "$hack_shutup_sputaux" in
yes)
#
# Shut up a -Wmissing-prototypes warning from <stdio.h>.
#
AC_DEFINE(SHUTUP_SPUTAUX)
;;
esac
case "$hack_shutup_stdargcast" in
yes)
#
# Shut up a -Wcast-qual warning from va_start().
#
AC_DEFINE(SHUTUP_STDARG_CAST)
;;
esac
case "$hack_shutup_in6addr_init_macros" in
yes)
AC_DEFINE(BROKEN_IN6ADDR_INIT_MACROS, 1, [Defined if IN6ADDR_ANY_INIT and IN6ADDR_LOOPBACK_INIT need to be redefined.] )
;;
esac