Annotation of embedaddon/ntp/sntp/configure.ac, revision 1.1
1.1 ! misho 1: # -*- Autoconf -*-
! 2: # Process this file with autoconf to produce a configure script.
! 3: m4_include([../version.m4])
! 4: AC_PREREQ([2.61])
! 5: AC_INIT([sntp], [VERSION_NUMBER])
! 6: AC_CONFIG_MACRO_DIR([../m4])
! 7: AC_CONFIG_AUX_DIR([.])
! 8:
! 9: # Increment sntp_configure_cache_version by one for each change to
! 10: # configure.ac or .m4 files which invalidates cached values from
! 11: # previous versions.
! 12: #
! 13: # If the change affects cache variables used only by the main NTP
! 14: # configure.ac, then only its version number should be bumped, while
! 15: # the subdir configure.ac version numbers should be unchanged. The
! 16: # same is true for a test/variable that is used only by one subdir
! 17: # being changed incompatibly; only that subdir's cache version needs
! 18: # bumping.
! 19: #
! 20: # If a change affects variables shared by all NTP configure scripts,
! 21: # please bump the version numbers of all three. If you are not sure,
! 22: # the safe choice is to bump all three on any cache-invalidating change.
! 23: #
! 24: # In order to avoid the risk of version stamp collision between -stable
! 25: # and -dev branches, do not simply increment the version, instead use
! 26: # the date YYYYMMDD optionally with -HHMM if there is more than one
! 27: # bump in a day.
! 28:
! 29: sntp_configure_cache_version=20091117
! 30:
! 31: # When the version of config.cache and configure do not
! 32: # match, NTP_CACHEVERSION will flush the cache.
! 33:
! 34: NTP_CACHEVERSION([sntp], [$sntp_configure_cache_version])
! 35:
! 36: AM_INIT_AUTOMAKE
! 37: AC_CANONICAL_BUILD
! 38: AC_CANONICAL_HOST
! 39: dnl the 'build' machine is where we run configure and compile
! 40: dnl the 'host' machine is where the resulting stuff runs.
! 41: AC_DEFINE_UNQUOTED([STR_SYSTEM], "$host", [canonical system (cpu-vendor-os) of where we should run])
! 42: AC_CONFIG_HEADER([config.h])
! 43: dnl AC_ARG_PROGRAM
! 44:
! 45: # Checks for programs.
! 46: AM_PROG_CC_C_O
! 47: AC_PROG_CPP
! 48:
! 49: # AC_PROG_CC_STDC has two functions. It attempts to find a compiler
! 50: # capable of C99, or failing that, for C89. CC is set afterward with
! 51: # the selected invocation, such as "gcc --std=gnu99". Also, the
! 52: # ac_cv_prog_cc_stdc variable is no if the compiler selected for CC
! 53: # does not accept C89.
! 54:
! 55: AC_PROG_CC_STDC
! 56:
! 57: case "$ac_cv_prog_cc_stdc" in
! 58: no)
! 59: AC_MSG_WARN([ANSI C89/ISO C90 is the minimum to compile SNTP ]
! 60: [version 4.2.5 and higher.])
! 61: esac
! 62:
! 63: AC_CACHE_CHECK(
! 64: [if $CC can handle @%:@warning],
! 65: [ntp_cv_cpp_warning],
! 66: [AC_COMPILE_IFELSE(
! 67: [AC_LANG_PROGRAM([[]], [[#warning foo]])],
! 68: [ntp_cv_cpp_warning=yes],
! 69: [ntp_cv_cpp_warning=no]
! 70: )]
! 71: )
! 72: case "$ntp_cv_cpp_warning" in
! 73: no)
! 74: AC_DEFINE([NO_OPTION_NAME_WARNINGS], [1],
! 75: [Should we avoid @%:@warning on option name collisions?])
! 76: esac
! 77:
! 78: case "$GCC" in
! 79: yes)
! 80: SAVED_CFLAGS_NTP="$CFLAGS"
! 81: CFLAGS="$CFLAGS -Wstrict-overflow"
! 82: AC_CACHE_CHECK(
! 83: [if $CC can handle -Wstrict-overflow],
! 84: [ntp_cv_gcc_Wstrict_overflow],
! 85: [AC_COMPILE_IFELSE(
! 86: [AC_LANG_PROGRAM([[]], [[]])],
! 87: [ntp_cv_gcc_Wstrict_overflow=yes],
! 88: [ntp_cv_gcc_Wstrict_overflow=no]
! 89: ) ]
! 90: )
! 91: #
! 92: # $ntp_cv_gcc_Wstrict_overflow is tested later to add the
! 93: # flag to CFLAGS.
! 94: #
! 95: CFLAGS="$SAVED_CFLAGS_NTP -Winit-self"
! 96: AC_CACHE_CHECK(
! 97: [if $CC can handle -Winit-self],
! 98: [ntp_cv_gcc_Winit_self],
! 99: [
! 100: AC_COMPILE_IFELSE(
! 101: [AC_LANG_PROGRAM([[]], [[]])],
! 102: [ntp_cv_gcc_Winit_self=yes],
! 103: [ntp_cv_gcc_Winit_self=no]
! 104: )
! 105: ]
! 106: )
! 107: CFLAGS="$SAVED_CFLAGS_NTP"
! 108: AS_UNSET([SAVED_CFLAGS_NTP])
! 109: #
! 110: # $ntp_cv_gcc_Winit_self is tested later to add the
! 111: # flag to CFLAGS.
! 112: #
! 113: esac
! 114:
! 115: # HMS: These need to be moved to AM_CPPFLAGS and/or AM_CFLAGS
! 116: case "$host" in
! 117: *-*-solaris*)
! 118: # see "man standards".
! 119: # -D_XOPEN_SOURCE=500 is probably OK for c89 and before
! 120: # -D_XOPEN_SOURCE=600 seems OK for c99
! 121: #CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500 -D__EXTENSIONS__"
! 122: CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
! 123: libxnet=-lxnet
! 124: ;;
! 125: esac
! 126:
! 127: AC_DISABLE_SHARED
! 128:
! 129: # NTP has (so far) been relying on leading-edge autogen.
! 130: # Therefore, by default:
! 131: # - use the version we ship with
! 132: # - do not install it
! 133: # - build a static copy (AC_DISABLE_SHARED - done earlier)
! 134: case "${enable_local_libopts+set}" in
! 135: set) ;;
! 136: *) enable_local_libopts=yes ;;
! 137: esac
! 138: case "${enable_libopts_install+set}" in
! 139: set) ;;
! 140: *) enable_libopts_install=no ;;
! 141: esac
! 142: LIBOPTS_CHECK
! 143:
! 144: AC_PROG_LIBTOOL
! 145: NTP_DIR_SEP
! 146:
! 147: # Checks for libraries.
! 148: NTP_LIB_M
! 149:
! 150: case "$GCC" in
! 151: yes)
! 152: CFLAGS="$CFLAGS -Wall"
! 153: # CFLAGS="$CFLAGS -Wcast-align"
! 154: CFLAGS="$CFLAGS -Wcast-qual"
! 155: # CFLAGS="$CFLAGS -Wconversion"
! 156: # CFLAGS="$CFLAGS -Werror"
! 157: # CFLAGS="$CFLAGS -Wextra"
! 158: # CFLAGS="$CFLAGS -Wfloat-equal"
! 159: CFLAGS="$CFLAGS -Wmissing-prototypes"
! 160: CFLAGS="$CFLAGS -Wpointer-arith"
! 161: CFLAGS="$CFLAGS -Wshadow"
! 162: # CFLAGS="$CFLAGS -Wtraditional"
! 163: # CFLAGS="$CFLAGS -Wwrite-strings"
! 164: case "$ntp_cv_gcc_Winit_self" in
! 165: yes)
! 166: CFLAGS="$CFLAGS -Winit-self"
! 167: esac
! 168: case "$ntp_cv_gcc_Wstrict_overflow" in
! 169: yes)
! 170: CFLAGS="$CFLAGS -Wstrict-overflow"
! 171: esac
! 172: # -W[no-]strict-prototypes is added later depending on OpenSSL
! 173: esac
! 174:
! 175: AC_CHECK_FUNC([gethostent], ,
! 176: [AC_SEARCH_LIBS([gethostent], [nsl], , , [$libxnet -lsocket])])
! 177: AC_CHECK_FUNC([openlog], ,
! 178: [AC_SEARCH_LIBS([openlog], [gen], ,
! 179: [AC_SEARCH_LIBS([openlog], [syslog], , , [$libxnet -lsocket])])])
! 180:
! 181: AC_SEARCH_LIBS([setsockopt], [socket xnet])
! 182:
! 183: # Checks for header files.
! 184: AC_HEADER_STDC
! 185:
! 186: dnl HP-UX 11.31 on HPPA has a net/if.h that can't be compiled with gcc4
! 187: dnl due to an incomplete type (a union) mpinfou used in an array. gcc3
! 188: dnl compiles it without complaint. The mpinfou union is defined later
! 189: dnl in the resulting preprocessed source than the spu_info array in
! 190: dnl /usr/include/machine/sys/getppdp.h:
! 191: dnl extern union mpinfou spu_info[];
! 192: dnl triggering the error. Our strategy is on HP-UX only, test for
! 193: dnl net/netmp.h, which is the file included by net/if.h that leads to
! 194: dnl getppdp.h. If it is present but can't be compiled, try adding
! 195: dnl a duplicate definition of mpinfou, which should then allow the
! 196: dnl following net/if.h and net/if6.h tests to proceed normally.
! 197: dnl Using net/netmp.h allows us to avoid polluting test results for
! 198: dnl net/if.h.
! 199: #
! 200: case "$host" in
! 201: *-hp-hpux*)
! 202: AC_CHECK_HEADERS(
! 203: [net/netmp.h],
! 204: [netmp_h_works=yes],
! 205: [netmp_h_works=no]
! 206: )
! 207: case "$netmp_h_works" in
! 208: no)
! 209: cat >>confdefs.h <<_ACEOF
! 210: #ifndef MPINFOU_PREDECLARED
! 211: # define MPINFOU_PREDECLARED
! 212: typedef union mpinfou { /* For lint */
! 213: struct pdk_mpinfo *pdkptr;
! 214: struct mpinfo *pikptr;
! 215: } mpinfou_t;
! 216: #endif
! 217: _ACEOF
! 218: AH_BOTTOM([
! 219: #ifndef MPINFOU_PREDECLARED
! 220: # define MPINFOU_PREDECLARED
! 221: typedef union mpinfou { /* For lint */
! 222: struct pdk_mpinfo *pdkptr;
! 223: struct mpinfo *pikptr;
! 224: } mpinfou_t;
! 225: #endif
! 226: ])
! 227: ;;
! 228: esac
! 229: ;;
! 230: esac
! 231:
! 232: AC_CHECK_HEADERS([netdb.h netinet/in.h stdlib.h string.h strings.h syslog.h])
! 233: AC_CHECK_HEADERS([sys/socket.h sys/time.h])
! 234: AC_HEADER_TIME
! 235:
! 236: # Checks for typedefs, structures, and compiler characteristics.
! 237: AC_HEADER_STDBOOL
! 238: AC_C_CONST
! 239: AC_TYPE_SIZE_T
! 240: AC_CHECK_SIZEOF([time_t])
! 241:
! 242: AC_C_INLINE
! 243:
! 244: case "$ac_cv_c_inline" in
! 245: '')
! 246: ;;
! 247: *)
! 248: AC_DEFINE(HAVE_INLINE,1,[inline keyword or macro available])
! 249: AC_SUBST(HAVE_INLINE)
! 250: esac
! 251:
! 252: AC_C_CHAR_UNSIGNED dnl CROSS_COMPILE?
! 253: AC_CHECK_SIZEOF([signed char])
! 254: AC_CHECK_SIZEOF([int])
! 255: AC_CHECK_SIZEOF([long])
! 256:
! 257: AC_CHECK_TYPES([s_char])
! 258: case "$ac_cv_c_char_unsigned$ac_cv_sizeof_signed_char$ac_cv_type_s_char" in
! 259: *yes)
! 260: # We have a typedef for s_char. Might as well believe it...
! 261: ;;
! 262: no0no)
! 263: # We have signed chars, can't say 'signed char', no s_char typedef.
! 264: AC_DEFINE([NEED_S_CHAR_TYPEDEF], 1, [Do we need an s_char typedef?])
! 265: ;;
! 266: no1no)
! 267: # We have signed chars, can say 'signed char', no s_char typedef.
! 268: AC_DEFINE([NEED_S_CHAR_TYPEDEF])
! 269: ;;
! 270: yes0no)
! 271: # We have unsigned chars, can't say 'signed char', no s_char typedef.
! 272: AC_MSG_ERROR([No way to specify a signed character!])
! 273: ;;
! 274: yes1no)
! 275: # We have unsigned chars, can say 'signed char', no s_char typedef.
! 276: AC_DEFINE([NEED_S_CHAR_TYPEDEF])
! 277: ;;
! 278: esac
! 279: AC_TYPE_UID_T
! 280:
! 281: NTP_OPENSSL
! 282:
! 283: AC_CACHE_CHECK(
! 284: [type of socklen arg for getsockname()],
! 285: [ntp_cv_getsockname_socklen_type],
! 286: [
! 287: getsockname_socklen_type_found=no
! 288: for getsockname_arg2 in 'struct sockaddr *' 'void *'; do
! 289: for ntp_cv_getsockname_socklen_type in 'socklen_t' 'size_t' 'unsigned int' 'int'; do
! 290: AC_COMPILE_IFELSE(
! 291: [AC_LANG_PROGRAM(
! 292: [[
! 293: #ifdef HAVE_SYS_TYPES_H
! 294: # include <sys/types.h>
! 295: #endif
! 296: #ifdef HAVE_SYS_SOCKET_H
! 297: # include <sys/socket.h>
! 298: #endif
! 299: ]], [[
! 300: extern
! 301: getsockname(int, $getsockname_arg2,
! 302: $ntp_cv_getsockname_socklen_type *);
! 303: ]]
! 304: )],
! 305: [getsockname_socklen_type_found=yes ; break 2],
! 306: []
! 307: )
! 308: done
! 309: done
! 310: case "$getsockname_socklen_type_found" in
! 311: no)
! 312: ntp_cv_getsockname_socklen_type='socklen_t'
! 313: esac
! 314: AS_UNSET([getsockname_arg2])
! 315: AS_UNSET([getsockname_socklen_type_found])
! 316: ]
! 317: )
! 318: AC_DEFINE_UNQUOTED([GETSOCKNAME_SOCKLEN_TYPE],
! 319: $ntp_cv_getsockname_socklen_type,
! 320: [What is getsockname()'s socklen type?])
! 321:
! 322: AC_CACHE_CHECK(
! 323: [for struct sockaddr_storage],
! 324: [ntp_cv_sockaddr_storage],
! 325: [AC_COMPILE_IFELSE(
! 326: [AC_LANG_PROGRAM(
! 327: [[
! 328: #ifdef HAVE_SYS_TYPES_H
! 329: # include <sys/types.h>
! 330: #endif
! 331: #ifdef HAVE_SYS_SOCKET_H
! 332: # include <sys/socket.h>
! 333: #endif
! 334: #ifdef HAVE_NETINET_IN_H
! 335: # include <netinet/in.h>
! 336: #endif
! 337: ]],
! 338: [[
! 339: struct sockaddr_storage n;
! 340: ]]
! 341: )],
! 342: [ntp_cv_sockaddr_storage=yes],
! 343: [ntp_cv_sockaddr_storage=no]
! 344: )]
! 345: )
! 346: case "$ntp_cv_sockaddr_storage" in
! 347: yes)
! 348: AC_DEFINE([HAVE_STRUCT_SOCKADDR_STORAGE], [1],
! 349: [Does a system header define struct sockaddr_storage?])
! 350: esac
! 351:
! 352: AC_CACHE_CHECK(
! 353: [for sockaddr_storage.ss_family],
! 354: [ntp_cv_have_ss_family],
! 355: [AC_COMPILE_IFELSE(
! 356: [AC_LANG_PROGRAM(
! 357: [[
! 358: #ifdef HAVE_SYS_TYPES_H
! 359: # include <sys/types.h>
! 360: #endif
! 361: #ifdef HAVE_SYS_SOCKET_H
! 362: # include <sys/socket.h>
! 363: #endif
! 364: #ifdef HAVE_NETINET_IN_H
! 365: # include <netinet/in.h>
! 366: #endif
! 367: ]],
! 368: [[
! 369: struct sockaddr_storage s;
! 370: s.ss_family = 1;
! 371: ]]
! 372: )],
! 373: [ntp_cv_have_ss_family=yes],
! 374: [ntp_cv_have_ss_family=no]
! 375: )]
! 376: )
! 377:
! 378: case "$ntp_cv_have_ss_family" in
! 379: no)
! 380: AC_CACHE_CHECK(
! 381: [for sockaddr_storage.__ss_family],
! 382: [ntp_cv_have___ss_family],
! 383: [AC_COMPILE_IFELSE(
! 384: [AC_LANG_PROGRAM(
! 385: [[
! 386: #ifdef HAVE_SYS_TYPES_H
! 387: # include <sys/types.h>
! 388: #endif
! 389: #ifdef HAVE_SYS_SOCKET_H
! 390: # include <sys/socket.h>
! 391: #endif
! 392: #ifdef HAVE_NETINET_IN_H
! 393: # include <netinet/in.h>
! 394: #endif
! 395: ]],
! 396: [[
! 397: struct sockaddr_storage s;
! 398: s.__ss_family = 1;
! 399: ]]
! 400: )],
! 401: [ntp_cv_have___ss_family=yes],
! 402: [ntp_cv_have___ss_family=no]
! 403: )]
! 404: )
! 405: case "$ntp_cv_have___ss_family" in
! 406: yes)
! 407: AC_DEFINE([HAVE___SS_FAMILY_IN_SS], [1],
! 408: [Does struct sockaddr_storage have __ss_family?])
! 409: esac
! 410: esac
! 411:
! 412: AH_VERBATIM(
! 413: [HAVE___SS_FAMILY_IN_SS_VERBATIM],
! 414: [
! 415: /* Handle sockaddr_storage.__ss_family */
! 416: #ifdef HAVE___SS_FAMILY_IN_SS
! 417: # define ss_family __ss_family
! 418: #endif /* HAVE___SS_FAMILY_IN_SS */
! 419: ]
! 420: )
! 421:
! 422: AC_CACHE_CHECK(
! 423: [for sockaddr_storage.ss_len],
! 424: [ntp_cv_have_ss_len],
! 425: [AC_COMPILE_IFELSE(
! 426: [AC_LANG_PROGRAM(
! 427: [[
! 428: #ifdef HAVE_SYS_TYPES_H
! 429: # include <sys/types.h>
! 430: #endif
! 431: #ifdef HAVE_SYS_SOCKET_H
! 432: # include <sys/socket.h>
! 433: #endif
! 434: #ifdef HAVE_NETINET_IN_H
! 435: # include <netinet/in.h>
! 436: #endif
! 437: ]],
! 438: [[
! 439: struct sockaddr_storage s;
! 440: s.ss_len = 1;
! 441: ]]
! 442: )],
! 443: [ntp_cv_have_ss_len=yes],
! 444: [ntp_cv_have_ss_len=no]
! 445: )]
! 446: )
! 447:
! 448: case "$ntp_cv_have_ss_len" in
! 449: no)
! 450: AC_CACHE_CHECK(
! 451: [for sockaddr_storage.__ss_len],
! 452: [ntp_cv_have___ss_len],
! 453: [AC_COMPILE_IFELSE(
! 454: [AC_LANG_PROGRAM(
! 455: [[
! 456: #ifdef HAVE_SYS_TYPES_H
! 457: # include <sys/types.h>
! 458: #endif
! 459: #ifdef HAVE_SYS_SOCKET_H
! 460: # include <sys/socket.h>
! 461: #endif
! 462: #ifdef HAVE_NETINET_IN_H
! 463: # include <netinet/in.h>
! 464: #endif
! 465: ]],
! 466: [[
! 467: struct sockaddr_storage s;
! 468: s.__ss_len = 1;
! 469: ]]
! 470: )],
! 471: [ntp_cv_have___ss_len=yes],
! 472: [ntp_cv_have___ss_len=no]
! 473: )]
! 474: )
! 475: case "$ntp_cv_have___ss_len" in
! 476: yes)
! 477: AC_DEFINE([HAVE___SS_LEN_IN_SS], [1],
! 478: [Does struct sockaddr_storage have __ss_len?])
! 479: esac
! 480: esac
! 481:
! 482: AH_VERBATIM(
! 483: [HAVE___SS_LEN_IN_SS_VERBATIM],
! 484: [
! 485: /* Handle sockaddr_storage.__ss_len */
! 486: #ifdef HAVE___SS_LEN_IN_SS
! 487: # define ss_len __ss_len
! 488: #endif /* HAVE___SS_LEN_IN_SS */
! 489: ]
! 490: )
! 491:
! 492: #
! 493: # Look for in_port_t.
! 494: #
! 495: AC_CACHE_CHECK(
! 496: [for in_port_t],
! 497: [isc_cv_have_in_port_t],
! 498: [AC_COMPILE_IFELSE(
! 499: [AC_LANG_PROGRAM(
! 500: [[
! 501: #include <sys/types.h>
! 502: #include <netinet/in.h>
! 503: ]],
! 504: [[
! 505: in_port_t port = 25;
! 506: return (0);
! 507: ]]
! 508: )],
! 509: [isc_cv_have_in_port_t=yes],
! 510: [isc_cv_have_in_port_t=no]
! 511: )]
! 512: )
! 513: case "$isc_cv_have_in_port_t" in
! 514: no)
! 515: AC_DEFINE([ISC_PLATFORM_NEEDPORTT], [1],
! 516: [Declare in_port_t?])
! 517: esac
! 518:
! 519: AC_CACHE_CHECK(
! 520: [for multicast IP support],
! 521: [ntp_cv_multicast],
! 522: [
! 523: ntp_cv_multicast=no
! 524: case "$host" in
! 525: i386-sequent-sysv4)
! 526: ;;
! 527: *)
! 528: AC_COMPILE_IFELSE(
! 529: [AC_LANG_PROGRAM(
! 530: [[
! 531: #ifdef HAVE_NETINET_IN_H
! 532: #include <netinet/in.h>
! 533: #endif
! 534: ]],
! 535: [[
! 536: struct ip_mreq ipmr;
! 537: ipmr.imr_interface.s_addr = 0;
! 538: ]]
! 539: )],
! 540: [ntp_cv_multicast=yes],
! 541: []
! 542: )
! 543: esac
! 544: ]
! 545: )
! 546: case "$ntp_cv_multicast" in
! 547: yes)
! 548: AC_DEFINE([MCAST], [1], [Does the target support multicast IP?])
! 549: AC_CACHE_CHECK(
! 550: [arg type needed for setsockopt() IP*_MULTICAST_LOOP],
! 551: [ntp_cv_typeof_ip_multicast_loop],
! 552: [
! 553: case "$host" in
! 554: *-*-netbsd*|*-*-*linux*)
! 555: ntp_cv_typeof_ip_multicast_loop=u_int
! 556: ;;
! 557: *)
! 558: ntp_cv_typeof_ip_multicast_loop=u_char
! 559: esac
! 560: ]
! 561: )
! 562: AC_DEFINE_UNQUOTED([TYPEOF_IP_MULTICAST_LOOP],
! 563: $ntp_cv_typeof_ip_multicast_loop,
! 564: [What type to use for setsockopt])
! 565: esac
! 566:
! 567: # HMS: We don't need res_init, but since we may be using cached
! 568: # values from ntpd we need to test the same way
! 569: AC_SEARCH_LIBS([res_init], [resolv], , , [-lsocket -lnsl])
! 570: AC_SEARCH_LIBS([inet_ntop], [resolv], , , [-lsocket -lnsl])
! 571: AC_CHECK_FUNC([inet_ntop], [],
! 572: [AC_DEFINE([ISC_PLATFORM_NEEDNTOP], [1], [ISC: provide inet_ntop()])])
! 573: AC_CHECK_FUNC([inet_pton], [],
! 574: [AC_DEFINE([ISC_PLATFORM_NEEDPTON], [1], [ISC: provide inet_pton()])])
! 575:
! 576: AC_CACHE_CHECK(
! 577: [struct sockaddr for sa_len],
! 578: [isc_cv_platform_havesalen],
! 579: [AC_COMPILE_IFELSE(
! 580: [AC_LANG_PROGRAM(
! 581: [[
! 582: #include <sys/types.h>
! 583: #include <sys/socket.h>
! 584: ]],
! 585: [[
! 586: extern struct sockaddr *ps;
! 587: return ps->sa_len;
! 588: ]]
! 589: )],
! 590: [isc_cv_platform_havesalen=yes],
! 591: [isc_cv_platform_havesalen=no]
! 592: )]
! 593: )
! 594: case "$isc_cv_platform_havesalen" in
! 595: yes)
! 596: AC_DEFINE([ISC_PLATFORM_HAVESALEN], [1],
! 597: [struct sockaddr has sa_len?])
! 598: esac
! 599:
! 600: AC_ARG_ENABLE(
! 601: [ipv6],
! 602: [AS_HELP_STRING(
! 603: [--enable-ipv6],
! 604: [s use IPv6?]
! 605: )]
! 606: )
! 607:
! 608: case "$enable_ipv6" in
! 609: yes|''|autodetect)
! 610: case "$host" in
! 611: powerpc-ibm-aix4*)
! 612: ;;
! 613: *)
! 614: AC_DEFINE([WANT_IPV6], [1], [configure --enable-ipv6])
! 615: ;;
! 616: esac
! 617: ;;
! 618: no)
! 619: ;;
! 620: esac
! 621:
! 622:
! 623: dnl [Bug 1984] ntp/libisc fails to compile on OS X 10.7 (Lion)
! 624: case "$host" in
! 625: *-*-darwin*)
! 626: AC_DEFINE([__APPLE_USE_RFC_3542], [1], [Are we _special_?])
! 627: esac
! 628:
! 629:
! 630: AC_CACHE_CHECK(
! 631: [for IPv6 structures],
! 632: [isc_cv_found_ipv6],
! 633: [AC_COMPILE_IFELSE(
! 634: [AC_LANG_PROGRAM(
! 635: [[
! 636: #include <sys/types.h>
! 637: #include <sys/socket.h>
! 638: #include <netinet/in.h>
! 639: ]],
! 640: [[
! 641: struct sockaddr_in6 sin6;
! 642: ]]
! 643: )],
! 644: [isc_cv_found_ipv6=yes],
! 645: [isc_cv_found_ipv6=no]
! 646: )]
! 647: )
! 648:
! 649: #
! 650: # See whether IPv6 support is provided via a Kame add-on.
! 651: # This is done before other IPv6 linking tests so LIBS is properly set.
! 652: #
! 653: AC_MSG_CHECKING([for Kame IPv6 support])
! 654: AC_ARG_WITH(
! 655: [kame],
! 656: [AS_HELP_STRING(
! 657: [--with-kame],
! 658: [- =/usr/local/v6]
! 659: )],
! 660: [use_kame="$withval"],
! 661: [use_kame="no"]
! 662: )
! 663: case "$use_kame" in
! 664: no)
! 665: ;;
! 666: yes)
! 667: kame_path=/usr/local/v6
! 668: ;;
! 669: *)
! 670: kame_path="$use_kame"
! 671: ;;
! 672: esac
! 673: case "$use_kame" in
! 674: no)
! 675: AC_MSG_RESULT([no])
! 676: ;;
! 677: *)
! 678: if test -f $kame_path/lib/libinet6.a; then
! 679: AC_MSG_RESULT([$kame_path/lib/libinet6.a])
! 680: LIBS="-L$kame_path/lib -linet6 $LIBS"
! 681: else
! 682: AC_MSG_ERROR([$kame_path/lib/libinet6.a not found.
! 683:
! 684: Please choose the proper path with the following command:
! 685:
! 686: configure --with-kame=PATH
! 687: ])
! 688: fi
! 689: ;;
! 690: esac
! 691:
! 692: #
! 693: # Whether netinet6/in6.h is needed has to be defined in isc/platform.h.
! 694: # Including it on Kame-using platforms is very bad, though, because
! 695: # Kame uses #error against direct inclusion. So include it on only
! 696: # the platform that is otherwise broken without it -- BSD/OS 4.0 through 4.1.
! 697: # This is done before the in6_pktinfo check because that's what
! 698: # netinet6/in6.h is needed for.
! 699: #
! 700: case "$host" in
! 701: *-bsdi4.[[01]]*)
! 702: AC_DEFINE([ISC_PLATFORM_NEEDNETINET6IN6H], [1],
! 703: [Do we need netinet6/in6.h?])
! 704: isc_netinet6in6_hack="#include <netinet6/in6.h>"
! 705: ;;
! 706: *)
! 707: isc_netinet6in6_hack=""
! 708: ;;
! 709: esac
! 710:
! 711: #
! 712: # This is similar to the netinet6/in6.h issue.
! 713: #
! 714: case "$host" in
! 715: *-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
! 716: AC_DEFINE([ISC_PLATFORM_FIXIN6ISADDR], [1],
! 717: [Do we need to fix in6isaddr?])
! 718: isc_netinetin6_hack="#include <netinet/in6.h>"
! 719: ;;
! 720: *)
! 721: isc_netinetin6_hack=""
! 722: ;;
! 723: esac
! 724:
! 725:
! 726: case "$isc_cv_found_ipv6" in
! 727: yes)
! 728: AC_DEFINE([ISC_PLATFORM_HAVEIPV6], [1], [have IPv6?])
! 729: AC_CACHE_CHECK(
! 730: [for in6_pktinfo],
! 731: [isc_cv_have_in6_pktinfo],
! 732: [AC_COMPILE_IFELSE(
! 733: [AC_LANG_PROGRAM(
! 734: [[
! 735: #include <sys/types.h>
! 736: #include <sys/socket.h>
! 737: #include <netinet/in.h>
! 738: $isc_netinetin6_hack
! 739: $isc_netinet6in6_hack
! 740: ]],
! 741: [[
! 742: struct in6_pktinfo xyzzy;
! 743: ]]
! 744: )],
! 745: [isc_cv_have_in6_pktinfo=yes],
! 746: [isc_cv_have_in6_pktinfo=no]
! 747: )]
! 748: )
! 749: case "$isc_cv_have_in6_pktinfo" in
! 750: yes)
! 751: AC_DEFINE([ISC_PLATFORM_HAVEIN6PKTINFO], [1],
! 752: [have struct in6_pktinfo?])
! 753: esac
! 754:
! 755:
! 756: # HMS: Use HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID instead?
! 757: AC_CACHE_CHECK(
! 758: [for sockaddr_in6.sin6_scope_id],
! 759: [isc_cv_have_sin6_scope_id],
! 760: [AC_COMPILE_IFELSE(
! 761: [AC_LANG_PROGRAM(
! 762: [[
! 763: #include <sys/types.h>
! 764: #include <sys/socket.h>
! 765: #include <netinet/in.h>
! 766: $isc_netinetin6_hack
! 767: $isc_netinet6in6_hack
! 768: ]],
! 769: [[
! 770: struct sockaddr_in6 xyzzy;
! 771: xyzzy.sin6_scope_id = 0;
! 772: ]]
! 773: )],
! 774: [isc_cv_have_sin6_scope_id=yes],
! 775: [isc_cv_have_sin6_scope_id=no]
! 776: )]
! 777: )
! 778:
! 779: case "$isc_cv_have_sin6_scope_id" in
! 780: yes)
! 781: AC_DEFINE([ISC_PLATFORM_HAVESCOPEID], [1], [sin6_scope_id?])
! 782: esac
! 783: esac
! 784:
! 785:
! 786: # We need this check run even without isc_cv_found_ipv6=yes
! 787:
! 788: AC_CACHE_CHECK(
! 789: [for in6addr_any],
! 790: [isc_cv_have_in6addr_any],
! 791: [AC_LINK_IFELSE(
! 792: [AC_LANG_PROGRAM(
! 793: [[
! 794: #include <sys/types.h>
! 795: #include <sys/socket.h>
! 796: #include <netinet/in.h>
! 797: $isc_netinetin6_hack
! 798: $isc_netinet6in6_hack
! 799: ]],
! 800: [[
! 801: struct in6_addr in6;
! 802: in6 = in6addr_any;
! 803: ]]
! 804: )],
! 805: [isc_cv_have_in6addr_any=yes],
! 806: [isc_cv_have_in6addr_any=no]
! 807: )]
! 808: )
! 809:
! 810: case "$isc_cv_have_in6addr_any" in
! 811: no)
! 812: AC_DEFINE([ISC_PLATFORM_NEEDIN6ADDRANY], [1], [missing in6addr_any?])
! 813: esac
! 814:
! 815:
! 816: AC_CACHE_CHECK(
! 817: [for struct if_laddrconf],
! 818: [isc_cv_struct_if_laddrconf],
! 819: [AC_COMPILE_IFELSE(
! 820: [AC_LANG_PROGRAM(
! 821: [[
! 822: #include <sys/types.h>
! 823: #include <net/if6.h>
! 824: ]],
! 825: [[
! 826: struct if_laddrconf a;
! 827: ]]
! 828: )],
! 829: [isc_cv_struct_if_laddrconf=yes],
! 830: [isc_cv_struct_if_laddrconf=no]
! 831: )]
! 832: )
! 833:
! 834: case "$isc_cv_struct_if_laddrconf" in
! 835: yes)
! 836: AC_DEFINE([ISC_PLATFORM_HAVEIF_LADDRCONF], [1],
! 837: [have struct if_laddrconf?])
! 838: esac
! 839:
! 840: AC_CACHE_CHECK(
! 841: [for struct if_laddrreq],
! 842: isc_cv_struct_if_laddrreq,
! 843: [AC_COMPILE_IFELSE(
! 844: [AC_LANG_PROGRAM(
! 845: [[
! 846: #include <sys/types.h>
! 847: #include <net/if6.h>
! 848: ]],
! 849: [[
! 850: struct if_laddrreq a;
! 851: ]]
! 852: )],
! 853: [isc_cv_struct_if_laddrreq=yes],
! 854: [isc_cv_struct_if_laddrreq=no]
! 855: )]
! 856: )
! 857:
! 858: case "$isc_cv_struct_if_laddrreq" in
! 859: yes)
! 860: AC_DEFINE([ISC_PLATFORM_HAVEIF_LADDRREQ], [1],
! 861: [have struct if_laddrreq?])
! 862: esac
! 863:
! 864:
! 865: ###
! 866:
! 867: # Hacks
! 868: # these need work if we're to move libntp under sntp
! 869: AC_DEFINE([HAVE_NO_NICE], 1, [sntp does not care about 'nice'])
! 870: AC_DEFINE([HAVE_TERMIOS], 1, [sntp does not care about TTY stuff])
! 871:
! 872: # Checks for library functions.
! 873: AC_CHECK_FUNCS([socket vsnprintf vsprintf])
! 874:
! 875: AC_MSG_CHECKING([for bin subdirectory])
! 876: AC_ARG_WITH(
! 877: [binsubdir],
! 878: [AS_HELP_STRING(
! 879: [--with-binsubdir],
! 880: [bin ={bin,sbin}]
! 881: )],
! 882: [use_binsubdir="$withval"],
! 883: [use_binsubdir="bin"]
! 884: )
! 885: case "$use_binsubdir" in
! 886: bin)
! 887: ;;
! 888: sbin)
! 889: ;;
! 890: *)
! 891: AC_MSG_ERROR([<$use_binsubdir> is illegal - must be "bin" or "sbin"])
! 892: ;;
! 893: esac
! 894: AC_MSG_RESULT([$use_binsubdir])
! 895:
! 896: BINSUBDIR=$use_binsubdir
! 897: AC_SUBST([BINSUBDIR])
! 898: AM_CONDITIONAL([NTP_BINSUBDIR_IS_BIN], [test "bin" = "$BINSUBDIR"])
! 899:
! 900: AC_CONFIG_FILES([Makefile])
! 901: AC_OUTPUT
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>