File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / dhcp / configure.ac
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 22:30:18 2012 UTC (12 years, 4 months ago) by misho
CVS tags: MAIN, HEAD
Initial revision

    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>