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>