1# -*- Autoconf -*- 2# Process this file with autoconf to produce a configure script. 3AC_PREREQ(2.56) 4sinclude(acx_nlnetlabs.m4) 5 6# must be numbers. ac_defun because of later processing. 7m4_define([VERSION_MAJOR],[1]) 8m4_define([VERSION_MINOR],[6]) 9m4_define([VERSION_MICRO],[16]) 10AC_INIT(ldns, m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]), libdns@nlnetlabs.nl, libdns) 11AC_CONFIG_SRCDIR([packet.c]) 12# needed to build correct soname 13AC_SUBST(LIBTOOL_VERSION_INFO, VERSION_MAJOR:VERSION_MINOR:VERSION_MICRO) 14AC_SUBST(LDNS_VERSION_MAJOR, [VERSION_MAJOR]) 15AC_SUBST(LDNS_VERSION_MINOR, [VERSION_MINOR]) 16AC_SUBST(LDNS_VERSION_MICRO, [VERSION_MICRO]) 17 18OURCPPFLAGS='' 19CPPFLAGS=${CPPFLAGS:-${OURCPPFLAGS}} 20CFLAGS="$CFLAGS" 21 22AC_AIX 23# Checks for programs. 24AC_PROG_CC 25ACX_DEPFLAG 26AC_PROG_MAKE_SET 27 28# Extra (sp)lint flags for NetBSD 29AC_CANONICAL_HOST 30case "$host_os" in 31 netbsd*) LINTFLAGS="'-D__RENAME(x)=' -D_NETINET_IN_H_ $LINTFLAGS" 32 ;; 33 *) LINTFLAGS="$LINTFLAGS" 34 ;; 35esac 36AC_SUBST(LINTFLAGS) 37 38AC_DEFINE(WINVER, 0x0502, [the version of the windows API enabled]) 39 40ACX_CHECK_COMPILER_FLAG(std=c99, [C99FLAG="-std=c99"]) 41ACX_CHECK_COMPILER_FLAG(xc99, [C99FLAG="-xc99"]) 42 43# routine to copy files 44# argument 1 is a list of files (relative to the source dir) 45# argument 2 is a destination directory (relative to the current 46# working directory 47AC_DEFUN([COPY_FILES], 48[ 49for file in $1; do 50 sh $srcdir/install-sh -m 644 $file $2 51done 52]) 53 54# copy all .h files in the dir at argument 1 55# (relative to source) to the dir at argument 2 56# (relative to current dir) 57AC_DEFUN([COPY_HEADER_FILES], 58[ 59echo "copying header files" 60COPY_FILES($srcdir/$1/*.h, $2) 61]) 62 63# Checks for typedefs, structures, and compiler characteristics. 64AC_C_CONST 65AC_LANG_C 66if test "x$CFLAGS" = "x" ; then 67ACX_CHECK_COMPILER_FLAG(g, [CFLAGS="-g"]) 68ACX_CHECK_COMPILER_FLAG(O2, [CFLAGS="-O2 $CFLAGS"]) 69fi 70ACX_CHECK_COMPILER_FLAG(Wall, [CFLAGS="-Wall $CFLAGS"]) 71ACX_CHECK_COMPILER_FLAG(W, [CFLAGS="-W $CFLAGS"]) 72ACX_CHECK_COMPILER_FLAG(Wwrite-strings, [CFLAGS="-Wwrite-strings $CFLAGS"]) 73 74 75AC_CHECK_HEADERS([getopt.h time.h],,, [AC_INCLUDES_DEFAULT]) 76 77# MinGW32 tests 78AC_CHECK_HEADERS([winsock2.h ws2tcpip.h],,, [AC_INCLUDES_DEFAULT]) 79# end mingw32 tests 80 81ACX_DETERMINE_EXT_FLAGS_UNBOUND 82 83AC_C_INLINE 84AC_CHECK_TYPE(int8_t, char) 85AC_CHECK_TYPE(int16_t, short) 86AC_CHECK_TYPE(int32_t, int) 87AC_CHECK_TYPE(int64_t, long long) 88AC_CHECK_TYPE(uint8_t, unsigned char) 89AC_CHECK_TYPE(uint16_t, unsigned short) 90AC_CHECK_TYPE(uint32_t, unsigned int) 91AC_CHECK_TYPE(uint64_t, unsigned long long) 92 93# my own checks 94AC_CHECK_PROG(doxygen, doxygen, doxygen) 95 96# check to see if libraries are needed for these functions. 97AC_SEARCH_LIBS([socket], [socket]) 98AC_SEARCH_LIBS([inet_pton], [nsl]) 99 100 101AC_ARG_WITH(drill, AC_HELP_STRING([--with-drill], 102 [Also build drill.]), 103 [],[with_drill="no"]) 104if test x_$with_drill != x_no ; then 105 AC_SUBST(DRILL,[drill]) 106 AC_SUBST(INSTALL_DRILL,[install-drill]) 107 AC_SUBST(UNINSTALL_DRILL,[uninstall-drill]) 108 AC_SUBST(CLEAN_DRILL,[clean-drill]) 109 AC_SUBST(LINT_DRILL,[lint-drill]) 110 if test -e $srcdir/drill/config.h -o -e drill/config.h ; then 111 AC_MSG_ERROR([ 112A config.h was detected in the drill subdirectory. 113This does not work with the --with-drill option. 114Please remove the config.h from the drill subdirectory 115or do not use the --with-drill option.]) 116 fi 117 DRILL_CONFIG=" drill/drill.1" 118else 119 AC_SUBST(DRILL,[""]) 120 AC_SUBST(INSTALL_DRILL,[""]) 121 AC_SUBST(UNINSTALL_DRILL,[""]) 122 AC_SUBST(CLEAN_DRILL,[""]) 123 AC_SUBST(LINT_DRILL,[""]) 124 DRILL_CONFIG="" 125fi 126 127 128AC_ARG_WITH(examples, AC_HELP_STRING([--with-examples], 129 [Also build examples.]), 130 [],[with_examples="no"]) 131if test x_$with_examples != x_no ; then 132 AC_SUBST(EXAMPLES,[examples]) 133 AC_SUBST(INSTALL_EXAMPLES,[install-examples]) 134 AC_SUBST(UNINSTALL_EXAMPLES,[uninstall-examples]) 135 AC_SUBST(CLEAN_EXAMPLES,[clean-examples]) 136 AC_SUBST(LINT_EXAMPLES,[lint-examples]) 137 if test -e $srcdir/examples/config.h -o -e examples/config.h ; then 138 AC_MSG_ERROR([ 139A config.h was detected in the examples subdirectory. 140This does not work with the --with-examples option. 141Please remove the config.h from the examples subdirectory 142or do not use the --with-examples option.]) 143 fi 144 EXAMPLES_CONFIG=" examples/ldns-dane.1 examples/ldns-verify-zone.1" 145else 146 AC_SUBST(EXAMPLES,[""]) 147 AC_SUBST(INSTALL_EXAMPLES,[""]) 148 AC_SUBST(UNINSTALL_EXAMPLES,[""]) 149 AC_SUBST(CLEAN_EXAMPLES,[""]) 150 AC_SUBST(LINT_EXAMPLES,[""]) 151 EXAMPLES_CONFIG="" 152fi 153 154# add option to disable installation of ldns-config script 155AC_ARG_ENABLE(ldns-config, [ --disable-ldns-config disable installation of ldns-config (default=enabled)], 156 enable_ldns_config=$enableval, enable_ldns_config=yes) 157if test "x$enable_ldns_config" = xyes; then 158 AC_SUBST(INSTALL_CONFIG, [install-config]) 159 AC_SUBST(INSTALL_CONFIG_MANPAGE, [install-config-manpage]) 160 AC_SUBST(UNINSTALL_CONFIG, [uninstall-config]) 161 AC_SUBST(UNINSTALL_CONFIG_MANPAGE, [uninstall-config-manpage]) 162else 163 AC_SUBST(INSTALL_CONFIG, [""]) 164 AC_SUBST(INSTALL_CONFIG_MANPAGE, [""]) 165 AC_SUBST(UNINSTALL_CONFIG, [""]) 166 AC_SUBST(UNINSTALL_CONFIG_MANPAGE, [""]) 167fi 168 169# check for python 170PYTHON_X_CFLAGS="" 171ldns_with_pyldns=no 172ldns_with_pyldnsx=no 173AC_ARG_WITH(pyldns, AC_HELP_STRING([--with-pyldns], 174 [generate python library, or --without-pyldns to disable Python support.]), 175 [],[ withval="no" ]) 176ldns_have_python=no 177if test x_$withval != x_no; then 178 sinclude(ax_python_devel.m4) 179 ac_save_LIBS="$LIBS" dnl otherwise AC_PYTHON_DEVEL thrashes $LIBS 180 181 AX_PYTHON_DEVEL([>= '2.4.0']) 182 if test ! -z "$ac_python_version"; then 183 ldns_have_python=yes 184 fi 185 186 # pass additional Python 3 option to SWIG 187 if test `$PYTHON -c "import sys; \ 188 ver = sys.version.split()[[0]]; \ 189 print(ver >= '3')"` = "True"; then 190 AC_SUBST(SWIGPY3, ["-py3 -DPY3"]) 191 fi 192 193 # check for SWIG 194 if test x_$ldns_have_python != x_no; then 195 sinclude(ax_pkg_swig.m4) 196 197 # check for >=SWIG-2.0.4 if Python 3.2 used 198 if test `$PYTHON -c "import sys; \ 199 ver = sys.version.split()[[0]]; \ 200 print(ver >= '3.2')"` = "True"; then 201 AX_PKG_SWIG(2.0.4, [], [AC_MSG_ERROR([SWIG-2.0.4 is required to build pyldns for Python 3.2 and greater.])]) 202 else 203 AX_PKG_SWIG 204 fi 205 206 if test ! -x "$SWIG"; then 207 AC_MSG_ERROR([failed to find SWIG tool, install it, or do not build pyldns]) 208 else 209 AC_DEFINE(HAVE_SWIG,1,[Define if you have SWIG libraries and header files.]) 210 AC_SUBST(PYLDNS, "pyldns") 211 AC_SUBST(swig, "$SWIG") 212 ldns_with_pyldns=yes 213 fi 214 else 215 AC_MSG_RESULT([*** don't have Python, skipping SWIG, no pyldns ***]) # ' 216 fi 217 218 # xtra cflags for pyldns 219 if test x_$ldns_have_python != x_no; then 220 ACX_CHECK_COMPILER_FLAG(fno-strict-aliasing, [PYTHON_X_CFLAGS="-fno-strict-aliasing"]) 221 ACX_CHECK_COMPILER_FLAG(Wno-missing-field-initializers, [PYTHON_X_CFLAGS="-Wno-missing-field-initializers $PYTHON_X_CFLAGS"]) 222 ACX_CHECK_COMPILER_FLAG(Wno-unused-parameter, [PYTHON_X_CFLAGS="-Wno-unused-parameter $PYTHON_X_CFLAGS"]) 223 ACX_CHECK_COMPILER_FLAG(Wno-unused-variable, [PYTHON_X_CFLAGS="-Wno-unused-variable $PYTHON_X_CFLAGS"]) 224 fi 225fi 226AC_SUBST(PYTHON_X_CFLAGS) 227 228# Check for pyldnsx 229AC_ARG_WITH(pyldnsx, AC_HELP_STRING([--without-pyldnsx], 230 [Do not install the ldnsx python module, or --with-pyldnsx to install it.]), 231 [],[ withval="with_pyldns" ]) 232if test x_$withval != x_no; then 233 if test x_$ldns_with_pyldns != x_no; then 234 AC_SUBST(PYLDNSX, "pyldnsx") 235 ldns_with_pyldnsx=yes 236 else 237 if test x_$withval != x_with_pyldns; then 238 AC_MSG_ERROR([--with-pyldns is needed for the ldnsx python module]) 239 fi 240 fi 241fi 242 243if test x_$ldns_with_pyldns != x_no; then 244 AC_SUBST(PYLDNSINST, "install-pyldns")dnl 245 AC_SUBST(PYLDNSUNINST, "uninstall-pyldns") 246else 247 AC_SUBST(PYLDNSINST, "")dnl 248 AC_SUBST(PYLDNSUNINST, "") 249fi 250if test x_$ldns_with_pyldnsx != x_no; then 251 AC_SUBST(PYLDNSXINST, "install-pyldnsx")dnl 252 AC_SUBST(PYLDNSXUNINST, "uninstall-pyldnsx") 253else 254 AC_SUBST(PYLDNSXINST, "")dnl 255 AC_SUBST(PYLDNSXUNINST, "") 256fi 257 258# Use libtool 259ACX_LIBTOOL_C_ONLY 260 261tmp_CPPFLAGS=$CPPFLAGS 262tmp_LDFLAGS=$LDFLAGS 263tmp_LIBS=$LIBS 264 265ACX_WITH_SSL_OPTIONAL 266 267AC_CHECK_FUNCS([EVP_sha256]) 268 269# for macosx, see if glibtool exists and use that 270# BSD's need to know the version... 271#AC_CHECK_PROG(glibtool, glibtool, [glibtool], ) 272#AC_CHECK_PROGS(libtool, [libtool15 libtool], [./libtool]) 273 274AC_ARG_ENABLE(sha2, AC_HELP_STRING([--disable-sha2], [Disable SHA256 and SHA512 RRSIG support])) 275case "$enable_sha2" in 276 no) 277 ;; 278 yes|*) 279 if test "x$HAVE_SSL" != "xyes"; then 280 AC_MSG_ERROR([SHA2 enabled, but no SSL support]) 281 fi 282 AC_MSG_CHECKING(for SHA256 and SHA512) 283 AC_CHECK_FUNC(SHA256_Init, [], [ 284 AC_MSG_ERROR([No SHA2 functions found in OpenSSL: please upgrade OpenSSL or rerun with --disable-sha2]) 285 ]) 286 AC_DEFINE_UNQUOTED([USE_SHA2], [1], [Define this to enable SHA256 and SHA512 support.]) 287 ;; 288esac 289 290AC_ARG_ENABLE(gost, AC_HELP_STRING([--disable-gost], [Disable GOST support])) 291case "$enable_gost" in 292 no) 293 ;; 294 *) dnl default 295 if test "x$HAVE_SSL" != "xyes"; then 296 AC_MSG_ERROR([GOST enabled, but no SSL support]) 297 fi 298 AC_MSG_CHECKING(for GOST) 299 AC_CHECK_FUNC(EVP_PKEY_set_type_str, [],[AC_MSG_ERROR([OpenSSL >= 1.0.0 is needed for GOST support or rerun with --disable-gost])]) 300 AC_CHECK_FUNC(EC_KEY_new, [], [AC_MSG_ERROR([No ECC functions found in OpenSSL: please upgrade OpenSSL or rerun with --disable-gost])]) 301 AC_DEFINE_UNQUOTED([USE_GOST], [1], [Define this to enable GOST support.]) 302 ;; 303esac 304 305AC_ARG_ENABLE(ecdsa, AC_HELP_STRING([--disable-ecdsa], [Disable ECDSA support])) 306case "$enable_ecdsa" in 307 no) 308 ;; 309 *) dnl default 310 if test "x$HAVE_SSL" != "xyes"; then 311 AC_MSG_ERROR([ECDSA enabled, but no SSL support]) 312 fi 313 AC_CHECK_FUNC(ECDSA_sign, [], [AC_MSG_ERROR([OpenSSL does not support ECDSA: please upgrade OpenSSL or rerun with --disable-ecdsa])]) 314 AC_CHECK_FUNC(SHA384_Init, [], [AC_MSG_ERROR([OpenSSL does not support SHA384: please upgrade OpenSSL or rerun with --disable-ecdsa])]) 315 AC_CHECK_DECLS([NID_X9_62_prime256v1, NID_secp384r1], [], [AC_MSG_ERROR([OpenSSL does not support the ECDSA curves: please upgrade OpenSSL or rerun with --disable-ecdsa])], [AC_INCLUDES_DEFAULT 316#include <openssl/evp.h> 317 ]) 318 # we now know we have ECDSA and the required curves. 319 AC_DEFINE_UNQUOTED([USE_ECDSA], [1], [Define this to enable ECDSA support.]) 320 ;; 321esac 322 323AC_SUBST(LIBSSL_CPPFLAGS) 324AC_SUBST(LIBSSL_LDFLAGS) 325AC_SUBST(LIBSSL_LIBS) 326if test "x$HAVE_SSL" = "xyes"; then 327AC_SUBST(LIBSSL_SSL_LIBS, ["$LIBSSL_LIBS -lssl"]) 328fi 329CPPFLAGS=$tmp_CPPFLAGS 330LDFLAGS=$tmp_LDFLAGS 331LIBS=$tmp_LIBS 332 333 334# add option to disable the evil rpath 335ACX_ARG_RPATH 336 337#AC_RUN_IFELSE([AC_LANG_SOURCE( 338#[ 339#int main() 340#{ 341#short one = 1; 342#char *cp = (char*)&one; 343#if ( *cp == 0 ) 344#return(0); 345#else 346#return(1); 347#} 348#])], [],[ 349#AC_DEFINE(CONFCHECK_LITTLE_ENDIAN, 1, [system appears to be little-endian]) 350#],[]) 351 352# should define WORDS_BIGENDIAN if the system is big-endian 353AC_C_BIGENDIAN 354 355# Checks for header files. 356AC_HEADER_STDC 357AC_HEADER_STDBOOL 358#AC_HEADER_SYS_WAIT 359#AC_CHECK_HEADERS([getopt.h fcntl.h stdlib.h string.h strings.h unistd.h]) 360# do the very minimum - we can always extend this 361AC_CHECK_HEADERS([getopt.h stdarg.h openssl/ssl.h netinet/in.h time.h arpa/inet.h netdb.h],,, [AC_INCLUDES_DEFAULT]) 362AC_CHECK_HEADERS(sys/param.h sys/mount.h,,, 363[AC_INCLUDES_DEFAULT 364 [ 365 #if HAVE_SYS_PARAM_H 366 # include <sys/param.h> 367 #endif 368 ] 369]) 370AC_CHECK_HEADER(sys/socket.h, 371[ 372include_sys_socket_h='#include <sys/socket.h>' 373AC_DEFINE(HAVE_SYS_SOCKET_H, 1, [define if you have sys/socket.h]) 374],[ 375include_sys_socket_h='' 376],[AC_INCLUDES_DEFAULT 377 [ 378 #if HAVE_SYS_PARAM_H 379 # include <sys/param.h> 380 #endif 381 ] 382]) 383AC_SUBST(include_sys_socket_h) 384AC_CHECK_HEADER(inttypes.h, 385[ 386include_inttypes_h='#include <inttypes.h>' 387AC_DEFINE(HAVE_INTTYPES_H, 1, [define if you have inttypes.h]) 388AC_SUBST(ldns_build_config_have_inttypes_h, 1) 389],[ 390include_inttypes_h='' 391AC_SUBST(ldns_build_config_have_inttypes_h, 0) 392],[AC_INCLUDES_DEFAULT 393]) 394AC_SUBST(include_inttypes_h) 395AC_CHECK_HEADER(sys/types.h, 396[ 397include_systypes_h='#include <sys/types.h>' 398AC_DEFINE(HAVE_SYS_TYPES_H, 1, [define if you have sys/types.h]) 399],[ 400include_systypes_h='' 401],[AC_INCLUDES_DEFAULT 402]) 403AC_SUBST(include_systypes_h) 404AC_CHECK_HEADER(unistd.h, 405[ 406include_unistd_h='#include <unistd.h>' 407AC_DEFINE(HAVE_UNISTD_H, 1, [define if you have unistd.h]) 408],[ 409include_unistd_h='' 410],[AC_INCLUDES_DEFAULT 411]) 412AC_SUBST(include_unistd_h) 413 414AC_CHECK_SIZEOF(time_t,,[ 415AC_INCLUDES_DEFAULT 416#ifdef TIME_WITH_SYS_TIME 417# include <sys/time.h> 418# include <time.h> 419#else 420# ifdef HAVE_SYS_TIME_H 421# include <sys/time.h> 422# else 423# include <time.h> 424# endif 425#endif 426]) 427 428if test x_$with_examples != x_no; then 429AC_CHECK_HEADERS([pcap.h],, [AC_INCLUDES_DEFAULT]) 430AC_CHECK_LIB(pcap, pcap_open_offline, [ 431 AC_DEFINE([HAVE_LIBPCAP], [1], [Define to 1 if you have the `pcap' library (-lpcap).])dnl` 432 AC_SUBST([LIBPCAP_LIBS], [-lpcap]) 433 ], [ 434 AC_MSG_WARN([Can't find pcap library (needed for ldns-dpa, will not build dpa now.)])dnl' 435 AC_SUBST([LIBPCAP_LIBS], []) 436 ] 437) 438AC_CHECK_HEADERS([netinet/in_systm.h net/if.h netinet/ip.h netinet/udp.h netinet/igmp.h netinet/if_ether.h netinet/ip6.h net/ethernet.h netinet/ip_compat.h],,, [ 439AC_INCLUDES_DEFAULT 440#ifdef HAVE_NETINET_IN_SYSTM_H 441#include <netinet/in_systm.h> 442#endif 443#ifdef HAVE_NETINET_IN_H 444#include <netinet/in.h> 445#endif 446#ifdef HAVE_SYS_SOCKET_H 447#include <sys/socket.h> 448#endif 449#ifdef HAVE_NET_IF_H 450#include <net/if.h> 451#endif]) 452fi 453 454ACX_TYPE_SOCKLEN_T 455if test "x$ac_cv_type_socklen_t" = xyes; then 456 AC_SUBST(ldns_build_config_have_socklen_t, 1) 457else 458 AC_SUBST(ldns_build_config_have_socklen_t, 0) 459fi 460AC_TYPE_SIZE_T 461AC_TYPE_SSIZE_T 462AC_TYPE_INTPTR_T 463AC_CHECK_TYPE(in_addr_t, [], [AC_DEFINE([in_addr_t], [uint32_t], [in_addr_t])], [ 464#if HAVE_SYS_TYPES_H 465# include <sys/types.h> 466#endif 467#if HAVE_NETINET_IN_H 468# include <netinet/in.h> 469#endif]) 470AC_CHECK_TYPE(in_port_t, [], [AC_DEFINE([in_port_t], [uint16_t], [in_port_t])], [ 471#if HAVE_SYS_TYPES_H 472# include <sys/types.h> 473#endif 474#if HAVE_NETINET_IN_H 475# include <netinet/in.h> 476#endif]) 477ACX_CHECK_SS_FAMILY 478 479AC_FUNC_MALLOC 480AC_FUNC_REALLOC 481 482AC_REPLACE_FUNCS(b64_pton) 483AC_REPLACE_FUNCS(b64_ntop) 484AC_REPLACE_FUNCS(b32_pton) 485AC_REPLACE_FUNCS(b32_ntop) 486AC_REPLACE_FUNCS(calloc) 487AC_REPLACE_FUNCS(timegm) 488AC_REPLACE_FUNCS(gmtime_r) 489AC_REPLACE_FUNCS(ctime_r) 490AC_REPLACE_FUNCS(localtime_r) 491AC_REPLACE_FUNCS(isblank) 492AC_REPLACE_FUNCS(isascii) 493AC_REPLACE_FUNCS(inet_aton) 494AC_REPLACE_FUNCS(inet_pton) 495AC_REPLACE_FUNCS(inet_ntop) 496AC_REPLACE_FUNCS(snprintf) 497AC_REPLACE_FUNCS(strlcpy) 498AC_REPLACE_FUNCS(memmove) 499AC_FUNC_FORK 500AC_CHECK_FUNCS([endprotoent endservent sleep random fcntl strtoul bzero memset]) 501 502ACX_CHECK_GETADDRINFO_WITH_INCLUDES 503if test $ac_cv_func_getaddrinfo = no; then 504 AC_LIBOBJ([fake-rfc2553]) 505fi 506if test "$USE_WINSOCK" = 1; then 507 AC_CHECK_TOOL(WINDRES, windres) 508fi 509ACX_FUNC_IOCTLSOCKET 510 511#AC_SEARCH_LIBS(RSA_new, [crypto]) 512 513ACX_CHECK_FORMAT_ATTRIBUTE 514ACX_CHECK_UNUSED_ATTRIBUTE 515 516# check OSX deployment target which is needed 517if echo $build_os | grep darwin > /dev/null; then 518 export MACOSX_DEPLOYMENT_TARGET="10.4" 519fi 520 521AC_DEFINE([SYSCONFDIR], [sysconfdir], [System configuration dir]) 522 523AC_ARG_WITH(trust-anchor, AC_HELP_STRING([--with-trust-anchor=KEYFILE], [Default location of the trust anchor file for drill and ldns-dane. [default=SYSCONFDIR/unbound/root.key]]), [ 524 LDNS_TRUST_ANCHOR_FILE="$withval" 525],[ 526 if test "x$LDNS_TRUST_ANCHOR_FILE" = "x"; then 527 if test "x$sysconfdir" = 'x${prefix}/etc' ; then 528 if test "x$prefix" = 'xNONE' ; then 529 LDNS_TRUST_ANCHOR_FILE="/etc/unbound/root.key" 530 else 531 LDNS_TRUST_ANCHOR_FILE="${prefix}/etc/unbound/root.key" 532 fi 533 else 534 LDNS_TRUST_ANCHOR_FILE="${sysconfdir}/unbound/root.key" 535 fi 536 fi 537]) 538AC_DEFINE_UNQUOTED([LDNS_TRUST_ANCHOR_FILE], ["$LDNS_TRUST_ANCHOR_FILE"], [Default trust anchor file]) 539AC_SUBST(LDNS_TRUST_ANCHOR_FILE) 540AC_MSG_NOTICE([Default trust anchor: $LDNS_TRUST_ANCHOR_FILE]) 541 542AC_ARG_WITH(ca-file, AC_HELP_STRING([--with-ca-file=CAFILE], [File containing CA certificates for ldns-dane]), [ 543 AC_DEFINE([HAVE_DANE_CA_FILE], [1], [Is a CAFILE given at configure time]) 544 AC_DEFINE_UNQUOTED([LDNS_DANE_CA_FILE], ["$withval"], [Is a CAFILE given at configure time]) 545 AC_MSG_NOTICE([Using CAfile: $withval]) 546 AC_SUBST(DEFAULT_CAFILE, ["Default is $withval"]) 547],[ 548 AC_DEFINE([HAVE_DANE_CA_FILE], [0], [Is a CAFILE given at configure time]) 549 AC_SUBST(DEFAULT_CAFILE, []) 550]) 551 552AC_ARG_WITH(ca-path, AC_HELP_STRING([--with-ca-path=CAPATH], [Directory containing CA certificate files for ldns-dane]), [ 553 AC_DEFINE([HAVE_DANE_CA_PATH], [1], [Is a CAPATH given at configure time]) 554 AC_DEFINE_UNQUOTED([LDNS_DANE_CA_PATH], ["$withval"], [Is a CAPATH given at configure time]) 555 AC_MSG_NOTICE([Using CApath: $withval]) 556 AC_SUBST(DEFAULT_CAPATH, ["Default is $withval"]) 557],[ 558 AC_DEFINE([HAVE_DANE_CA_PATH], [0], [Is a CAPATH given at configure time]) 559 AC_SUBST(DEFAULT_CAPATH, []) 560]) 561 562AH_BOTTOM([ 563#include <stdio.h> 564#include <string.h> 565#include <unistd.h> 566#include <assert.h> 567 568#ifndef LITTLE_ENDIAN 569#define LITTLE_ENDIAN 1234 570#endif 571 572#ifndef BIG_ENDIAN 573#define BIG_ENDIAN 4321 574#endif 575 576#ifndef BYTE_ORDER 577#ifdef WORDS_BIGENDIAN 578#define BYTE_ORDER BIG_ENDIAN 579#else 580#define BYTE_ORDER LITTLE_ENDIAN 581#endif /* WORDS_BIGENDIAN */ 582#endif /* BYTE_ORDER */ 583 584#if STDC_HEADERS 585#include <stdlib.h> 586#include <stddef.h> 587#endif 588 589#ifdef HAVE_STDINT_H 590#include <stdint.h> 591#endif 592 593#ifdef HAVE_SYS_SOCKET_H 594#include <sys/socket.h> 595#endif 596 597#ifdef HAVE_NETINET_IN_H 598#include <netinet/in.h> 599#endif 600 601#ifdef HAVE_ARPA_INET_H 602#include <arpa/inet.h> 603#endif 604 605#ifdef HAVE_WINSOCK2_H 606#include <winsock2.h> 607#endif 608 609#ifdef HAVE_WS2TCPIP_H 610#include <ws2tcpip.h> 611#endif 612] 613AHX_CONFIG_W32_FD_SET_T 614) 615 616AH_BOTTOM([ 617#ifdef __cplusplus 618extern "C" { 619#endif 620 621#ifndef B64_PTON 622int ldns_b64_ntop(uint8_t const *src, size_t srclength, 623 char *target, size_t targsize); 624/** 625 * calculates the size needed to store the result of b64_ntop 626 */ 627/*@unused@*/ 628static inline size_t ldns_b64_ntop_calculate_size(size_t srcsize) 629{ 630 return ((((srcsize + 2) / 3) * 4) + 1); 631} 632#endif /* !B64_PTON */ 633#ifndef B64_NTOP 634int ldns_b64_pton(char const *src, uint8_t *target, size_t targsize); 635/** 636 * calculates the size needed to store the result of ldns_b64_pton 637 */ 638/*@unused@*/ 639static inline size_t ldns_b64_pton_calculate_size(size_t srcsize) 640{ 641 return (((((srcsize + 3) / 4) * 3)) + 1); 642} 643#endif /* !B64_NTOP */ 644 645#ifndef HAVE_SLEEP 646/* use windows sleep, in millisecs, instead */ 647#define sleep(x) Sleep((x)*1000) 648#endif 649 650#ifndef HAVE_RANDOM 651#define srandom(x) srand(x) 652#define random(x) rand(x) 653#endif 654 655#ifndef HAVE_TIMEGM 656#include <time.h> 657time_t timegm (struct tm *tm); 658#endif /* !TIMEGM */ 659#ifndef HAVE_GMTIME_R 660struct tm *gmtime_r(const time_t *timep, struct tm *result); 661#endif 662#ifndef HAVE_LOCALTIME_R 663struct tm *localtime_r(const time_t *timep, struct tm *result); 664#endif 665#ifndef HAVE_ISBLANK 666int isblank(int c); 667#endif /* !HAVE_ISBLANK */ 668#ifndef HAVE_ISASCII 669int isascii(int c); 670#endif /* !HAVE_ISASCII */ 671#ifndef HAVE_SNPRINTF 672#include <stdarg.h> 673int snprintf (char *str, size_t count, const char *fmt, ...); 674int vsnprintf (char *str, size_t count, const char *fmt, va_list arg); 675#endif /* HAVE_SNPRINTF */ 676#ifndef HAVE_INET_PTON 677int inet_pton(int af, const char* src, void* dst); 678#endif /* HAVE_INET_PTON */ 679#ifndef HAVE_INET_NTOP 680const char *inet_ntop(int af, const void *src, char *dst, size_t size); 681#endif 682#ifndef HAVE_INET_ATON 683int inet_aton(const char *cp, struct in_addr *addr); 684#endif 685#ifndef HAVE_MEMMOVE 686void *memmove(void *dest, const void *src, size_t n); 687#endif 688#ifndef HAVE_STRLCPY 689size_t strlcpy(char *dst, const char *src, size_t siz); 690#endif 691#ifdef __cplusplus 692} 693#endif 694#ifndef HAVE_GETADDRINFO 695#include "compat/fake-rfc2553.h" 696#endif 697#ifndef HAVE_STRTOUL 698#define strtoul (unsigned long)strtol 699#endif 700]) 701 702if test "x$HAVE_SSL" = "xyes"; then 703 AC_SUBST(ldns_build_config_have_ssl, 1) 704else 705 AC_SUBST(ldns_build_config_have_ssl, 0) 706fi 707if test "x$ac_cv_c_format_attribute" = "xyes"; then 708 AC_SUBST(ldns_build_config_have_attr_format, 1) 709else 710 AC_SUBST(ldns_build_config_have_attr_format, 0) 711fi 712if test "x$ac_cv_c_unused_attribute" = "xyes"; then 713 AC_SUBST(ldns_build_config_have_attr_unused, 1) 714else 715 AC_SUBST(ldns_build_config_have_attr_unused, 0) 716fi 717 718CONFIG_FILES="Makefile ldns/common.h ldns/net.h ldns/util.h packaging/libldns.pc packaging/ldns-config $DRILL_CONFIG $EXAMPLES_CONFIG" 719AC_SUBST(CONFIG_FILES) 720AC_CONFIG_FILES([$CONFIG_FILES]) 721 722AC_CONFIG_HEADER([ldns/config.h]) 723AC_OUTPUT 724COPY_HEADER_FILES(ldns/, ldns/) 725 726dnl AC_CONFIG_SUBDIRS([drill]) 727 728 729