File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / ntp / sntp / configure.ac
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:08:38 2012 UTC (12 years, 1 month ago) by misho
Branches: ntp, MAIN
CVS tags: v4_2_6p5p0, v4_2_6p5, HEAD
ntp 4.2.6p5

    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>