Annotation of embedaddon/dhcp/configure.ac, revision 1.1

1.1     ! misho       1: AC_INIT([DHCP], [4.1-ESV-R4], [dhcp-users@isc.org])
        !             2: 
        !             3: # we specify "foreign" to avoid having to have the GNU mandated files,
        !             4: # like AUTHORS, COPYING, and such
        !             5: AM_INIT_AUTOMAKE([foreign])
        !             6: 
        !             7: # we specify AM_MAINTAINER_MODE to avoid problems with rebuilding
        !             8: # the configure and makefiles.  Without it users doing things that
        !             9: # change the timestamps on the code, like checking it into a cvs
        !            10: # tree, could trigger a rebuild of the infrastructure files which
        !            11: # might fail if they don't have the correct tools.
        !            12: AM_MAINTAINER_MODE 
        !            13: 
        !            14: # We want to turn on warnings if we are using gcc and the user did 
        !            15: # not specify CFLAGS. The autoconf check for the C compiler sets the
        !            16: # CFLAGS if gcc is used, so we will save it before we run that check.
        !            17: SAVE_CFLAGS="$CFLAGS"
        !            18: 
        !            19: # Now find our C compiler.
        !            20: AC_PROG_CC
        !            21: 
        !            22: # Suppress warnings about --datarootdir
        !            23: AC_DEFUN([AC_DATAROOTDIR_CHECKED])
        !            24: 
        !            25: # If we have gcc, and AC_PROG_CC changed the flags, then we know the
        !            26: # user did not specify any flags. Add warnings in this case.
        !            27: if test "$GCC" = "yes"; then
        !            28:        if test "$CFLAGS" != "$SAVE_CFLAGS"; then
        !            29:                STD_CWARNINGS="$STD_CWARNINGS -Wall -Werror -fno-strict-aliasing"
        !            30:        fi
        !            31: fi
        !            32: 
        !            33: # POSIX doesn't include the IPv6 Advanced Socket API and glibc hides
        !            34: # parts of the IPv6 Advanced Socket API as a result.  This is stupid
        !            35: # as it breaks how the two halves (Basic and Advanced) of the IPv6
        !            36: # Socket API were designed to be used but we have to live with it.
        !            37: # Use this to define _GNU_SOURCE to pull in the IPv6 Advanced Socket API.
        !            38: AC_USE_SYSTEM_EXTENSIONS
        !            39: 
        !            40: AC_PROG_RANLIB
        !            41: AC_CONFIG_HEADERS([includes/config.h])
        !            42: 
        !            43: # we sometimes need to know byte order for building packets
        !            44: AC_C_BIGENDIAN(AC_SUBST(byte_order, BIG_ENDIAN), 
        !            45:               AC_SUBST(byte_order, LITTLE_ENDIAN))
        !            46: AC_DEFINE_UNQUOTED([DHCP_BYTE_ORDER], [$byte_order], 
        !            47:                   [Define to BIG_ENDIAN for MSB (Motorola or SPARC CPUs)
        !            48:                    or LITTLE_ENDIAN for LSB (Intel CPUs).])
        !            49: 
        !            50: # Optional compile-time DEBUGging.
        !            51: AC_ARG_ENABLE(debug,
        !            52:        AC_HELP_STRING([--enable-debug],
        !            53:                [create a debug-only version of the software (default is no).]))
        !            54: # This is very much off by default.
        !            55: if test "$enable_debug" = "yes" ; then
        !            56:        AC_DEFINE([DEBUG], [1],
        !            57:                [Define to compile debug-only DHCP software.])
        !            58:        # Just override CFLAGS to totally to remove optimization.
        !            59:        CFLAGS="-g"
        !            60: fi
        !            61: # XXX: there are actually quite a lot more DEBUG_ features we could enable,
        !            62: # but I don't want to pollute the --help space.
        !            63: #
        !            64: #/* #define DEBUG_TOKENS */
        !            65: #/* #define DEBUG_PACKET */
        !            66: #/* #define DEBUG_EXPRESSIONS */
        !            67: #/* #define DEBUG_FIND_LEASE */
        !            68: #/* #define DEBUG_EXPRESSION_PARSE */
        !            69: #/* #define DEBUG_CLASS_MATCHING */
        !            70: #/* #define DEBUG_MEMORY_LEAKAGE */
        !            71: #/* #define DEBUG_MALLOC_POOL */
        !            72: #/* #define DEBUG_LEASE_STATE_TRANSITIONS */
        !            73: #/* #define DEBUG_RC_HISTORY */
        !            74: #/* #define DEBUG_RC_HISTORY_EXHAUSTIVELY */
        !            75: #/* #define RC_HISTORY_MAX 10240 */
        !            76: #/* #define POINTER_DEBUG */
        !            77: #/* #define DEBUG_FAILOVER_MESSAGES */
        !            78: #/* #define DEBUG_FAILOVER_TIMING */
        !            79: #/* #define DEBUG_DUMP_ALL_LEASES */
        !            80: 
        !            81: # Failover optional compile-time feature.
        !            82: AC_ARG_ENABLE(failover,
        !            83:        AC_HELP_STRING([--enable-failover],
        !            84:                [enable support for failover (default is yes)]))
        !            85: # Failover is on by default, so define if it is not explicitly disabled.
        !            86: if test "$enable_failover" != "no"; then
        !            87:        AC_DEFINE([FAILOVER_PROTOCOL], [1],
        !            88:                  [Define to include Failover Protocol support.])
        !            89: fi
        !            90: 
        !            91: # execute() support.
        !            92: AC_ARG_ENABLE(execute,
        !            93:        AC_HELP_STRING([--enable-execute],
        !            94:                [enable support for execute() in config (default is yes)]))
        !            95: # execute() is on by default, so define if it is not explicitly disabled.
        !            96: if test "$enable_execute" != "no" ; then
        !            97:        AC_DEFINE([ENABLE_EXECUTE], [1],
        !            98:                  [Define to include execute() config language support.])
        !            99: fi
        !           100: 
        !           101: # Server tracing support.
        !           102: AC_ARG_ENABLE(tracing,
        !           103:        AC_HELP_STRING([--enable-tracing],
        !           104:                [enable support for server activity tracing (default is yes)]))
        !           105: # tracing is on by default, so define if it is not explicitly disabled.
        !           106: if test "$enable_tracing" != "no" ; then
        !           107:        AC_DEFINE([TRACING], [1],
        !           108:                  [Define to include server activity tracing support.])
        !           109: fi
        !           110: 
        !           111: # Delayed-ack feature support (experimental).
        !           112: AC_ARG_ENABLE(delayed_ack,
        !           113:        AC_HELP_STRING([--enable-delayed-ack],
        !           114:                       [queues multiple DHCPACK replies (default is no)]))
        !           115: if test "$enable_delayed_ack" = "yes"; then
        !           116:        AC_DEFINE([DELAYED_ACK], [1],
        !           117:                  [Define to queue multiple DHCPACK replies per fsync.])
        !           118: fi
        !           119: 
        !           120: # DHCPv6 optional compile-time feature.
        !           121: AC_ARG_ENABLE(dhcpv6,
        !           122:        AC_HELP_STRING([--enable-dhcpv6],
        !           123:                       [enable support for DHCPv6 (default is yes)]))
        !           124: # DHCPv6 is on by default, so define if it is not explicitly disabled.
        !           125: if test "$enable_dhcpv6" != "no"; then
        !           126:        AC_DEFINE([DHCPv6], [1], 
        !           127:                  [Define to 1 to include DHCPv6 support.])
        !           128: fi
        !           129: 
        !           130: # PARANOIA is off by default (until we can test it with all features)
        !           131: AC_ARG_ENABLE(paranoia,
        !           132:        AC_HELP_STRING([--enable-paranoia],
        !           133:                [enable support for chroot/setuid (default is no)]))
        !           134: AC_ARG_ENABLE(early_chroot,
        !           135:        AC_HELP_STRING([--enable-early-chroot],
        !           136:                [enable chrooting prior to configuration (default is no)]))
        !           137: # If someone enables early chroot, but does not enable paranoia, do so for
        !           138: # them.
        !           139: if test "$enable_paranoia" != "yes" && \
        !           140:    test "$enable_early_chroot" = "yes" ; then
        !           141:        enable_paranoia="yes"
        !           142: fi
        !           143: 
        !           144: if test "$enable_paranoia" = "yes" ; then
        !           145:        AC_DEFINE([PARANOIA], [1],
        !           146:                  [Define to any value to include Ari's PARANOIA patch.])
        !           147: fi
        !           148: if test "$enable_early_chroot" = "yes" ; then
        !           149:        AC_DEFINE([EARLY_CHROOT], [1],
        !           150:                  [Define to any value to chroot() prior to loading config.])
        !           151: fi
        !           152: 
        !           153: AC_ARG_ENABLE(IPv4_PKTINFO,
        !           154:        AC_HELP_STRING([--enable-ipv4-pktinfo],
        !           155:                [enable use of pktinfo on IPv4 sockets (default is no)]))
        !           156: 
        !           157: if test "$enable_ipv4_pktinfo" = "yes"; then
        !           158:        AC_DEFINE([USE_V4_PKTINFO], [1],
        !           159:                [Define to 1 to enable IPv4 packet info support.])
        !           160: fi
        !           161: 
        !           162: AC_ARG_ENABLE(USE_SOCKETS,
        !           163:        AC_HELP_STRING([--enable-use-sockets],
        !           164:                [use the standard BSD socket API (default is no)]))
        !           165: 
        !           166: if test "$enable_use_sockets" = "yes"; then
        !           167:        AC_DEFINE([USE_SOCKETS], [1],
        !           168:                [Define to 1 to use the standard BSD socket API.])
        !           169: fi
        !           170: 
        !           171: ###
        !           172: ### Path fun.  Older versions of DHCP were installed in /usr/sbin, so we
        !           173: ### need to look there and potentially overwrite by default (but not if
        !           174: ### the user configures an alternate value).  LOCALSTATEDIR is totally
        !           175: ### braindead.  No one uses /usr/local/var/db/ nor /usr/local/var/run, and
        !           176: ### they would be insane for suggesting it.  We need to look in /var/for
        !           177: ### 'db' and 'state/dhcp' for db files, and /var/run for pid files by
        !           178: ### default.
        !           179: ###
        !           180: AC_PREFIX_PROGRAM(dhcpd)
        !           181: 
        !           182: # XXX - isn't there SOME WAY to default autoconf to /var instead of
        !           183: # /usr/local/var/no/one/has/this/please/stop/trying?
        !           184: case "$localstatedir" in
        !           185:        '${prefix}/var')
        !           186:                localstatedir=/var
        !           187:                ;;
        !           188: esac
        !           189: 
        !           190: # Allow specification of alternate state files
        !           191: AC_ARG_WITH(srv-lease-file,
        !           192:        AC_HELP_STRING([--with-srv-lease-file=PATH],
        !           193:                       [File for dhcpd leases 
        !           194:                        (default is LOCALSTATEDIR/db/dhcpd.leases)]),
        !           195:        AC_DEFINE_UNQUOTED([_PATH_DHCPD_DB], ["$withval"],
        !           196:                           [File for dhcpd leases.]))
        !           197: 
        !           198: echo -n "checking for dhcpd.leases location..."
        !           199: if [[ "x$with_srv_lease_file" = "x" ]] ; then
        !           200:        if [[ -d "${localstatedir}/db" ]] ; then
        !           201:                with_srv_lease_file="${localstatedir}/db/dhcpd.leases"
        !           202:        elif [[ -d "${localstatedir}/state" ]] ; then
        !           203:                if [[ -d "${localstatedir}/state/dhcp" ]] ; then
        !           204:                        with_srv_lease_file="${localstatedir}/state/dhcp/dhcpd.leases"
        !           205:                else
        !           206:                        with_srv_lease_file="${localstatedir}/state/dhcpd.leases"
        !           207:                fi
        !           208:        elif [[ -d "${localstatedir}/lib" ]] ; then
        !           209:                if [[ -d "${localstatedir}/lib/dhcp" ]] ; then
        !           210:                        with_srv_lease_file="${localstatedir}/lib/dhcp/dhcpd.leases"
        !           211:                else
        !           212:                        with_srv_lease_file="${localstatedir}/lib/dhcpd.leases"
        !           213:                fi
        !           214:        elif [[ -d "${localstatedir}/etc" ]] ; then
        !           215:                with_srv_lease_file="${localstatedir}/etc/dhcpd.leases"
        !           216:        else
        !           217:                with_srv_lease_file="/etc/dhcpd.leases"
        !           218:        fi
        !           219: fi
        !           220: echo "$with_srv_lease_file"
        !           221: 
        !           222: AC_ARG_WITH(srv6-lease-file,
        !           223:        AC_HELP_STRING([--with-srv6-lease-file=PATH],
        !           224:                       [File for dhcpd6 leases 
        !           225:                        (default is LOCALSTATEDIR/db/dhcpd6.leases)]),
        !           226:        AC_DEFINE_UNQUOTED([_PATH_DHCPD6_DB], ["$withval"],
        !           227:                           [File for dhcpd6 leases.]))
        !           228: 
        !           229: echo -n "checking for dhcpd6.leases location..."
        !           230: if [[ "x$with_srv6_lease_file" = "x" ]] ; then
        !           231:        if [[ -d "${localstatedir}/db" ]] ; then
        !           232:                with_srv6_lease_file="${localstatedir}/db/dhcpd6.leases"
        !           233:        elif [[ -d "${localstatedir}/state" ]] ; then
        !           234:                if [[ -d "${localstatedir}/state/dhcp" ]] ; then
        !           235:                        with_srv6_lease_file="${localstatedir}/state/dhcp/dhcpd6.leases"
        !           236:                else
        !           237:                        with_srv6_lease_file="${localstatedir}/state/dhcpd6.leases"
        !           238:                fi
        !           239:        elif [[ -d "${localstatedir}/lib" ]] ; then
        !           240:                if [[ -d "${localstatedir}/lib/dhcp" ]] ; then
        !           241:                        with_srv6_lease_file="${localstatedir}/lib/dhcp/dhcpd6.leases"
        !           242:                else
        !           243:                        with_srv6_lease_file="${localstatedir}/lib/dhcpd6.leases"
        !           244:                fi
        !           245:        elif [[ -d "${localstatedir}/etc" ]] ; then
        !           246:                with_srv6_lease_file="${localstatedir}/etc/dhcpd6.leases"
        !           247:        else
        !           248:                with_srv6_lease_file="/etc/dhcpd6.leases"
        !           249:        fi
        !           250: fi
        !           251: echo "$with_srv6_lease_file"
        !           252: 
        !           253: AC_ARG_WITH(cli-lease-file,
        !           254:        AC_HELP_STRING([--with-cli-lease-file=PATH],
        !           255:                       [File for dhclient leases 
        !           256:                        (default is LOCALSTATEDIR/db/dhclient.leases)]),
        !           257:        AC_DEFINE_UNQUOTED([_PATH_DHCLIENT_DB], ["$withval"],
        !           258:                           [File for dhclient leases.]))
        !           259: 
        !           260: echo -n "checking for dhclient.leases location..."
        !           261: if [[ "x$with_cli_lease_file" = "x" ]] ; then
        !           262:        if [[ -d "${localstatedir}/db" ]] ; then
        !           263:                with_cli_lease_file="${localstatedir}/db/dhclient.leases"
        !           264:        elif [[ -d "${localstatedir}/state" ]] ; then
        !           265:                if [[ -d "${localstatedir}/state/dhcp" ]] ; then
        !           266:                        with_cli_lease_file="${localstatedir}/state/dhcp/dhclient.leases"
        !           267:                else
        !           268:                        with_cli_lease_file="${localstatedir}/state/dhclient.leases"
        !           269:                fi
        !           270:        elif [[ -d "${localstatedir}/lib" ]] ; then
        !           271:                if [[ -d "${localstatedir}/lib/dhcp" ]] ; then
        !           272:                        with_cli_lease_file="${localstatedir}/lib/dhcp/dhclient.leases"
        !           273:                else
        !           274:                        with_cli_lease_file="${localstatedir}/lib/dhclient.leases"
        !           275:                fi
        !           276:        elif [[ -d "${localstatedir}/etc" ]] ; then
        !           277:                with_cli_lease_file="${localstatedir}/etc/dhclient.leases"
        !           278:        else
        !           279:                with_cli_lease_file="/etc/dhclient.leases"
        !           280:        fi
        !           281: fi
        !           282: echo "$with_cli_lease_file"
        !           283: 
        !           284: AC_ARG_WITH(cli6-lease-file,
        !           285:        AC_HELP_STRING([--with-cli6-lease-file=PATH],
        !           286:                       [File for dhclient6 leases 
        !           287:                        (default is LOCALSTATEDIR/db/dhclient6.leases)]),
        !           288:        AC_DEFINE_UNQUOTED([_PATH_DHCLIENT6_DB], ["$withval"],
        !           289:                           [File for dhclient6 leases.]))
        !           290: 
        !           291: echo -n "checking for dhclient6.leases location..."
        !           292: if [[ "x$with_cli6_lease_file" = "x" ]] ; then
        !           293:        if [[ -d "${localstatedir}/db" ]] ; then
        !           294:                with_cli6_lease_file="${localstatedir}/db/dhclient6.leases"
        !           295:        elif [[ -d "${localstatedir}/state" ]] ; then
        !           296:                if [[ -d "${localstatedir}/state/dhcp" ]] ; then
        !           297:                        with_cli6_lease_file="${localstatedir}/state/dhcp/dhclient6.leases"
        !           298:                else
        !           299:                        with_cli6_lease_file="${localstatedir}/state/dhclient6.leases"
        !           300:                fi
        !           301:        elif [[ -d "${localstatedir}/lib" ]] ; then
        !           302:                if [[ -d "${localstatedir}/lib/dhcp" ]] ; then
        !           303:                        with_cli6_lease_file="${localstatedir}/lib/dhcp/dhclient6.leases"
        !           304:                else
        !           305:                        with_cli6_lease_file="${localstatedir}/lib/dhclient6.leases"
        !           306:                fi
        !           307:        elif [[ -d "${localstatedir}/etc" ]] ; then
        !           308:                with_cli6_lease_file="${localstatedir}/etc/dhclient6.leases"
        !           309:        else
        !           310:                with_cli6_lease_file="/etc/dhclient6.leases"
        !           311:        fi
        !           312: fi
        !           313: echo "$with_cli6_lease_file"
        !           314: 
        !           315: AC_ARG_WITH(srv-pid-file,
        !           316:        AC_HELP_STRING([--with-srv-pid-file=PATH],
        !           317:                       [File for dhcpd process information
        !           318:                        (default is LOCALSTATEDIR/run/dhcpd.pid)]),
        !           319:        AC_DEFINE_UNQUOTED([_PATH_DHCPD_PID], ["$withval"],
        !           320:                           [File for dhcpd process information.]))
        !           321: AC_ARG_WITH(srv6-pid-file,
        !           322:        AC_HELP_STRING([--with-srv6-pid-file=PATH],
        !           323:                       [File for dhcpd6 process information
        !           324:                        (default is LOCALSTATEDIR/run/dhcpd6.pid)]),
        !           325:        AC_DEFINE_UNQUOTED([_PATH_DHCPD6_PID], ["$withval"],
        !           326:                           [File for dhcpd6 process information.]))
        !           327: AC_ARG_WITH(cli-pid-file,
        !           328:        AC_HELP_STRING([--with-cli-pid-file=PATH],
        !           329:                       [File for dhclient process information
        !           330:                        (default is LOCALSTATEDIR/run/dhclient.pid)]),
        !           331:        AC_DEFINE_UNQUOTED([_PATH_DHCLIENT_PID], ["$withval"],
        !           332:                           [File for dhclient process information.]))
        !           333: AC_ARG_WITH(cli6-pid-file,
        !           334:        AC_HELP_STRING([--with-cli6-pid-file=PATH],
        !           335:                       [File for dhclient6 process information
        !           336:                        (default is LOCALSTATEDIR/run/dhclient6.pid)]),
        !           337:        AC_DEFINE_UNQUOTED([_PATH_DHCLIENT6_PID], ["$withval"],
        !           338:                           [File for dhclient6 process information.]))
        !           339: AC_ARG_WITH(relay-pid-file,
        !           340:        AC_HELP_STRING([--with-relay-pid-file=PATH],
        !           341:                       [File for dhcrelay process information
        !           342:                        (default is LOCALSTATEDIR/run/dhcrelay.pid)]),
        !           343:        AC_DEFINE_UNQUOTED([_PATH_DHCRELAY_PID], ["$withval"],
        !           344:                           [File for dhcrelay process information.]))
        !           345: AC_ARG_WITH(relay6-pid-file,
        !           346:        AC_HELP_STRING([--with-relay6-pid-file=PATH],
        !           347:                       [File for dhcrelay6 process information
        !           348:                        (default is LOCALSTATEDIR/run/dhcrelay6.pid)]),
        !           349:        AC_DEFINE_UNQUOTED([_PATH_DHCRELAY6_PID], ["$withval"],
        !           350:                           [File for dhcrelay6 process information.]))
        !           351: 
        !           352: # Check basic types.
        !           353: AC_TYPE_INT8_T
        !           354: AC_TYPE_INT16_T
        !           355: AC_TYPE_INT32_T
        !           356: AC_TYPE_INT64_T
        !           357: 
        !           358: # Some systems need the u_intX_t types defined across.
        !           359: AC_CHECK_TYPE([u_int8_t], [], [
        !           360:   AC_TYPE_UINT8_T
        !           361:   AC_DEFINE(u_int8_t, [uint8_t], [Define a type for 8-bit unsigned
        !           362:                                  integers.])
        !           363: ])
        !           364: AC_CHECK_TYPE([u_int16_t], [], [
        !           365:   AC_TYPE_UINT16_T
        !           366:   AC_DEFINE(u_int16_t, [uint16_t], [Define a type for 16-bit unsigned
        !           367:                                    integers.])
        !           368: ])
        !           369: AC_CHECK_TYPE([u_int32_t], [], [
        !           370:   AC_TYPE_UINT32_T
        !           371:   AC_DEFINE(u_int32_t, [uint32_t], [Define a type for 32-bit unsigned
        !           372:                                    integers.])
        !           373: ])
        !           374: AC_CHECK_TYPE([u_int64_t], [], [
        !           375:   AC_TYPE_UINT64_T
        !           376:   AC_DEFINE(u_int64_t, [uint64_t], [Define a type for 64-bit unsigned
        !           377:                                    integers.])
        !           378: ])
        !           379: 
        !           380: # see if ifaddrs.h is available
        !           381: AC_CHECK_HEADERS(ifaddrs.h)
        !           382: 
        !           383: # figure out what IPv4 interface code to use
        !           384: AC_CHECK_HEADERS(linux/types.h)  # needed for linux/filter.h on old systems
        !           385: 
        !           386: AC_CHECK_HEADER(linux/filter.h, DO_LPF=1, ,
        !           387: [
        !           388: #ifdef HAVE_LINUX_TYPES_H
        !           389: #include <linux/types.h>
        !           390: #endif
        !           391: ])
        !           392: if test -n "$DO_LPF"
        !           393: then
        !           394:        AC_DEFINE([HAVE_LPF], [1], 
        !           395:                  [Define to 1 to use the Linux Packet Filter interface code.])
        !           396: else
        !           397:        AC_CHECK_HEADER(sys/dlpi.h, DO_DLPI=1)
        !           398:        if test -n "$DO_DLPI"
        !           399:        then
        !           400:                AC_DEFINE([HAVE_DLPI], [1], 
        !           401:                          [Define to 1 to use DLPI interface code.])
        !           402:        else
        !           403:                AC_CHECK_HEADER(net/bpf.h, DO_BPF=1)
        !           404:                if test -n "$DO_BPF"
        !           405:                then
        !           406:                        AC_DEFINE([HAVE_BPF], [""],
        !           407:                                  [Define to 1 to use the 
        !           408:                                   Berkeley Packet Filter interface code.])
        !           409:                fi
        !           410:        fi
        !           411: fi
        !           412: 
        !           413: # SIOCGLIFCONF uses some transport structures.  Trick is not all platforms
        !           414: # use the same structures.  We like to use 'struct lifconf' and 'struct
        !           415: # lifreq', but we'll use these other structures if they're present.  HPUX
        !           416: # does not define 'struct lifnum', but does use SIOCGLIFNUM - they use an
        !           417: # int value.
        !           418: #
        !           419: AC_MSG_CHECKING([for struct lifnum])
        !           420: AC_TRY_COMPILE(
        !           421: [ #include <sys/types.h>
        !           422:   #include <sys/socket.h>
        !           423:   #include <net/if.h>
        !           424: ],
        !           425: [ struct lifnum a;
        !           426: ],
        !           427:        [AC_MSG_RESULT(yes)
        !           428:         AC_DEFINE([ISC_PLATFORM_HAVELIFNUM], [1],
        !           429:                   [Define to 1 if the system has 'struct lifnum'.])],
        !           430:        [AC_MSG_RESULT(no)])
        !           431: 
        !           432: AC_MSG_CHECKING([for struct if_laddrconf])
        !           433: AC_TRY_COMPILE(
        !           434: [ #include <sys/types.h>
        !           435:   #include <net/if6.h>
        !           436: ],
        !           437: [ struct if_laddrconf a;
        !           438: ],
        !           439:        [AC_MSG_RESULT(yes)
        !           440:         AC_DEFINE([ISC_PLATFORM_HAVEIF_LADDRCONF], [1],
        !           441:                   [Define to 1 if the system has 'struct if_laddrconf'.])],
        !           442:        [AC_MSG_RESULT(no)])
        !           443: 
        !           444: AC_MSG_CHECKING([for struct if_laddrreq])
        !           445: AC_TRY_LINK(
        !           446: [#include <sys/types.h>
        !           447:  #include <net/if6.h>
        !           448: ],
        !           449: [ struct if_laddrreq a;
        !           450: ],
        !           451:        [AC_MSG_RESULT(yes)
        !           452:         AC_DEFINE([ISC_PLATFORM_HAVEIF_LADDRREQ], [1],
        !           453:                   [Define to 1 if the system has 'struct if_laddrreq'.])],
        !           454:        [AC_MSG_RESULT(no)])
        !           455: 
        !           456: # Look for optional headers.
        !           457: AC_CHECK_HEADERS(sys/socket.h net/if_dl.h net/if6.h regex.h)
        !           458: 
        !           459: # Solaris needs some libraries for functions
        !           460: AC_SEARCH_LIBS(socket, [socket])
        !           461: AC_SEARCH_LIBS(inet_ntoa, [nsl])
        !           462: 
        !           463: AC_SEARCH_LIBS(inet_aton, [socket nsl], , 
        !           464:        AC_DEFINE([NEED_INET_ATON], [1], 
        !           465:                  [Define to 1 if the inet_aton() function is missing.]))
        !           466: 
        !           467: # Check for a standalone regex library.
        !           468: AC_SEARCH_LIBS(regcomp, [regex])
        !           469: 
        !           470: # For HP/UX we need -lipv6 for if_nametoindex, perhaps others.
        !           471: AC_SEARCH_LIBS(if_nametoindex, [ipv6])
        !           472: 
        !           473: # check for /dev/random (declares HAVE_DEV_RANDOM)
        !           474: AC_CHECK_FILE(/dev/random,
        !           475:        AC_DEFINE([HAVE_DEV_RANDOM], [1], 
        !           476:                  [Define to 1 if you have the /dev/random file.]))
        !           477: 
        !           478: # see if there is a "sa_len" field in our interface information structure
        !           479: AC_CHECK_MEMBER(struct sockaddr.sa_len,
        !           480:        AC_DEFINE([HAVE_SA_LEN], [], 
        !           481:                  [Define to 1 if the sockaddr structure has a length field.]),
        !           482:        ,
        !           483:        [#include <sys/socket.h>])
        !           484: 
        !           485: # figure out pointer size
        !           486: AC_CHECK_SIZEOF(struct iaddr *, , [
        !           487: #include "includes/inet.h"
        !           488: #include <stdio.h>
        !           489: ])
        !           490: 
        !           491: # Solaris does not have the msg_control or msg_controlen members in 
        !           492: # in the msghdr structure unless you define:
        !           493: #
        !           494: #   _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, and __EXTENSIONS__
        !           495: # 
        !           496: # See the "standards" man page for details.
        !           497: # 
        !           498: # We check for the msg_control member, and if it is not found, we check
        !           499: # again with the appropriate defines added to the CFLAGS. (In order to
        !           500: # do this we have to remove the check from the cache, which is what the
        !           501: # "unset" is for.)
        !           502: AC_CHECK_MEMBER(struct msghdr.msg_control,,
        !           503:        [CFLAGS="$CFLAGS -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
        !           504:         CFLAGS="$CFLAGS -D__EXTENSIONS__"
        !           505:         unset ac_cv_member_struct_msghdr_msg_control
        !           506:         AC_CHECK_MEMBER(struct msghdr.msg_control,,
        !           507:                [AC_MSG_ERROR([Missing msg_control member in 
        !           508:                               msg_control structure.])],
        !           509:                [
        !           510: #include <sys/types.h>
        !           511: #include <sys/socket.h>
        !           512:                ])
        !           513:        ],
        !           514:        [
        !           515: #include <sys/types.h>
        !           516: #include <sys/socket.h>
        !           517:        ])
        !           518: 
        !           519: # Append selected warning levels to CFLAGS before substitution (but after
        !           520: # AC_TRY_COMPILE & etc).
        !           521: CFLAGS="$CFLAGS $STD_CWARNINGS"
        !           522: 
        !           523: AC_C_FLEXIBLE_ARRAY_MEMBER
        !           524: 
        !           525: AC_OUTPUT([
        !           526:   Makefile
        !           527:   client/Makefile
        !           528:   common/Makefile
        !           529:   common/tests/Makefile
        !           530:   dhcpctl/Makefile
        !           531:   dst/Makefile
        !           532:   includes/Makefile
        !           533:   minires/Makefile
        !           534:   omapip/Makefile
        !           535:   relay/Makefile
        !           536:   server/Makefile
        !           537:   tests/Makefile
        !           538: ])
        !           539: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>