Annotation of embedaddon/dhcp/configure.ac, revision 1.1.1.1
1.1.1.1 ! misho 1: AC_INIT([DHCP], [4.1-ESV-R7], [dhcp-users@isc.org])
1.1 misho 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],
1.1.1.1 ! misho 53: [create a debug-only version of the software (default is no).]),
! 54: [enable_debug=yes],[enable_debug=no])
1.1 misho 55: # This is very much off by default.
56: if test "$enable_debug" = "yes" ; then
57: AC_DEFINE([DEBUG], [1],
58: [Define to compile debug-only DHCP software.])
59: # Just override CFLAGS to totally to remove optimization.
60: CFLAGS="-g"
61: fi
62: # XXX: there are actually quite a lot more DEBUG_ features we could enable,
63: # but I don't want to pollute the --help space.
64: #
65: #/* #define DEBUG_TOKENS */
66: #/* #define DEBUG_PACKET */
67: #/* #define DEBUG_EXPRESSIONS */
68: #/* #define DEBUG_FIND_LEASE */
69: #/* #define DEBUG_EXPRESSION_PARSE */
70: #/* #define DEBUG_CLASS_MATCHING */
71: #/* #define DEBUG_MEMORY_LEAKAGE */
72: #/* #define DEBUG_MALLOC_POOL */
73: #/* #define DEBUG_LEASE_STATE_TRANSITIONS */
74: #/* #define DEBUG_RC_HISTORY */
75: #/* #define DEBUG_RC_HISTORY_EXHAUSTIVELY */
76: #/* #define RC_HISTORY_MAX 10240 */
77: #/* #define POINTER_DEBUG */
78: #/* #define DEBUG_FAILOVER_MESSAGES */
79: #/* #define DEBUG_FAILOVER_TIMING */
80: #/* #define DEBUG_DUMP_ALL_LEASES */
81:
82: # Failover optional compile-time feature.
83: AC_ARG_ENABLE(failover,
84: AC_HELP_STRING([--enable-failover],
85: [enable support for failover (default is yes)]))
86: # Failover is on by default, so define if it is not explicitly disabled.
87: if test "$enable_failover" != "no"; then
88: AC_DEFINE([FAILOVER_PROTOCOL], [1],
89: [Define to include Failover Protocol support.])
90: fi
91:
92: # execute() support.
93: AC_ARG_ENABLE(execute,
94: AC_HELP_STRING([--enable-execute],
95: [enable support for execute() in config (default is yes)]))
96: # execute() is on by default, so define if it is not explicitly disabled.
97: if test "$enable_execute" != "no" ; then
98: AC_DEFINE([ENABLE_EXECUTE], [1],
99: [Define to include execute() config language support.])
100: fi
101:
102: # Server tracing support.
103: AC_ARG_ENABLE(tracing,
104: AC_HELP_STRING([--enable-tracing],
105: [enable support for server activity tracing (default is yes)]))
106: # tracing is on by default, so define if it is not explicitly disabled.
107: if test "$enable_tracing" != "no" ; then
108: AC_DEFINE([TRACING], [1],
109: [Define to include server activity tracing support.])
110: fi
111:
112: # Delayed-ack feature support (experimental).
113: AC_ARG_ENABLE(delayed_ack,
114: AC_HELP_STRING([--enable-delayed-ack],
115: [queues multiple DHCPACK replies (default is no)]))
116: if test "$enable_delayed_ack" = "yes"; then
117: AC_DEFINE([DELAYED_ACK], [1],
118: [Define to queue multiple DHCPACK replies per fsync.])
119: fi
120:
121: # DHCPv6 optional compile-time feature.
122: AC_ARG_ENABLE(dhcpv6,
123: AC_HELP_STRING([--enable-dhcpv6],
124: [enable support for DHCPv6 (default is yes)]))
125: # DHCPv6 is on by default, so define if it is not explicitly disabled.
126: if test "$enable_dhcpv6" != "no"; then
127: AC_DEFINE([DHCPv6], [1],
128: [Define to 1 to include DHCPv6 support.])
129: fi
130:
131: # PARANOIA is off by default (until we can test it with all features)
132: AC_ARG_ENABLE(paranoia,
133: AC_HELP_STRING([--enable-paranoia],
134: [enable support for chroot/setuid (default is no)]))
135: AC_ARG_ENABLE(early_chroot,
136: AC_HELP_STRING([--enable-early-chroot],
137: [enable chrooting prior to configuration (default is no)]))
138: # If someone enables early chroot, but does not enable paranoia, do so for
139: # them.
140: if test "$enable_paranoia" != "yes" && \
141: test "$enable_early_chroot" = "yes" ; then
142: enable_paranoia="yes"
143: fi
144:
145: if test "$enable_paranoia" = "yes" ; then
146: AC_DEFINE([PARANOIA], [1],
147: [Define to any value to include Ari's PARANOIA patch.])
148: fi
149: if test "$enable_early_chroot" = "yes" ; then
150: AC_DEFINE([EARLY_CHROOT], [1],
151: [Define to any value to chroot() prior to loading config.])
152: fi
153:
1.1.1.1 ! misho 154: AC_ARG_ENABLE(ipv4_pktinfo,
1.1 misho 155: AC_HELP_STRING([--enable-ipv4-pktinfo],
156: [enable use of pktinfo on IPv4 sockets (default is no)]))
157:
158: if test "$enable_ipv4_pktinfo" = "yes"; then
159: AC_DEFINE([USE_V4_PKTINFO], [1],
160: [Define to 1 to enable IPv4 packet info support.])
161: fi
162:
1.1.1.1 ! misho 163: AC_ARG_ENABLE(use_sockets,
1.1 misho 164: AC_HELP_STRING([--enable-use-sockets],
165: [use the standard BSD socket API (default is no)]))
166:
167: if test "$enable_use_sockets" = "yes"; then
168: AC_DEFINE([USE_SOCKETS], [1],
169: [Define to 1 to use the standard BSD socket API.])
170: fi
171:
1.1.1.1 ! misho 172: # Testing section
! 173:
! 174: atf_path="no"
! 175: AC_ARG_WITH([atf],
! 176: AC_HELP_STRING([--with-atf=PATH],
! 177: [specify location where atf was installed]),
! 178: [atf_path="$withval"])
! 179: if test "$atf_path" != "no" ; then
! 180: # Config path for pkg-config
! 181: atf_pcp=""
! 182: if test "$atf_path" != "yes" ; then
! 183: if test -f $atf_path/lib/pkgconfig/atf-c.pc ; then
! 184: atf_pcp=$atf_path/lib/pkgconfig
! 185: fi
! 186: else
! 187: # Not specified, try some common paths
! 188: atf_dirs="/usr /usr/local /usr/pkg /opt /opt/local"
! 189: for d in $atf_dirs
! 190: do
! 191: if test -f $d/lib/pkgconfig/atf-c.pc ; then
! 192: atf_pcp=$d/lib/pkgconfig
! 193: fi
! 194: done
! 195: fi
! 196: if test "$atf_pcp" = "" ; then
! 197: AC_MSG_ERROR([Unable to find atf files in location specified])
! 198: else
! 199: ATF_CFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --cflags atf-c` -DUNIT_TEST"
! 200: ATF_LDFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --libs atf-c`"
! 201: AC_SUBST(ATF_CFLAGS)
! 202: AC_SUBST(ATF_LDFLAGS)
! 203: fi
! 204: fi
! 205:
! 206: AM_CONDITIONAL(HAVE_ATF, test "$atf_pcp" != "")
! 207: ### Uncomment this once docs.lab.isc.org upgrades to automake 1.11
! 208: ### AM_COND_IF([HAVE_ATF], [AC_DEFINE([HAVE_ATF], [1], [ATF framework specified?])])
! 209:
1.1 misho 210: ###
211: ### Path fun. Older versions of DHCP were installed in /usr/sbin, so we
212: ### need to look there and potentially overwrite by default (but not if
213: ### the user configures an alternate value). LOCALSTATEDIR is totally
214: ### braindead. No one uses /usr/local/var/db/ nor /usr/local/var/run, and
215: ### they would be insane for suggesting it. We need to look in /var/for
216: ### 'db' and 'state/dhcp' for db files, and /var/run for pid files by
217: ### default.
218: ###
219: AC_PREFIX_PROGRAM(dhcpd)
220:
221: # XXX - isn't there SOME WAY to default autoconf to /var instead of
222: # /usr/local/var/no/one/has/this/please/stop/trying?
223: case "$localstatedir" in
224: '${prefix}/var')
225: localstatedir=/var
226: ;;
227: esac
228:
229: # Allow specification of alternate state files
230: AC_ARG_WITH(srv-lease-file,
231: AC_HELP_STRING([--with-srv-lease-file=PATH],
232: [File for dhcpd leases
233: (default is LOCALSTATEDIR/db/dhcpd.leases)]),
234: AC_DEFINE_UNQUOTED([_PATH_DHCPD_DB], ["$withval"],
235: [File for dhcpd leases.]))
236:
237: echo -n "checking for dhcpd.leases location..."
238: if [[ "x$with_srv_lease_file" = "x" ]] ; then
239: if [[ -d "${localstatedir}/db" ]] ; then
240: with_srv_lease_file="${localstatedir}/db/dhcpd.leases"
241: elif [[ -d "${localstatedir}/state" ]] ; then
242: if [[ -d "${localstatedir}/state/dhcp" ]] ; then
243: with_srv_lease_file="${localstatedir}/state/dhcp/dhcpd.leases"
244: else
245: with_srv_lease_file="${localstatedir}/state/dhcpd.leases"
246: fi
247: elif [[ -d "${localstatedir}/lib" ]] ; then
248: if [[ -d "${localstatedir}/lib/dhcp" ]] ; then
249: with_srv_lease_file="${localstatedir}/lib/dhcp/dhcpd.leases"
250: else
251: with_srv_lease_file="${localstatedir}/lib/dhcpd.leases"
252: fi
253: elif [[ -d "${localstatedir}/etc" ]] ; then
254: with_srv_lease_file="${localstatedir}/etc/dhcpd.leases"
255: else
256: with_srv_lease_file="/etc/dhcpd.leases"
257: fi
258: fi
259: echo "$with_srv_lease_file"
260:
261: AC_ARG_WITH(srv6-lease-file,
262: AC_HELP_STRING([--with-srv6-lease-file=PATH],
263: [File for dhcpd6 leases
264: (default is LOCALSTATEDIR/db/dhcpd6.leases)]),
265: AC_DEFINE_UNQUOTED([_PATH_DHCPD6_DB], ["$withval"],
266: [File for dhcpd6 leases.]))
267:
268: echo -n "checking for dhcpd6.leases location..."
269: if [[ "x$with_srv6_lease_file" = "x" ]] ; then
270: if [[ -d "${localstatedir}/db" ]] ; then
271: with_srv6_lease_file="${localstatedir}/db/dhcpd6.leases"
272: elif [[ -d "${localstatedir}/state" ]] ; then
273: if [[ -d "${localstatedir}/state/dhcp" ]] ; then
274: with_srv6_lease_file="${localstatedir}/state/dhcp/dhcpd6.leases"
275: else
276: with_srv6_lease_file="${localstatedir}/state/dhcpd6.leases"
277: fi
278: elif [[ -d "${localstatedir}/lib" ]] ; then
279: if [[ -d "${localstatedir}/lib/dhcp" ]] ; then
280: with_srv6_lease_file="${localstatedir}/lib/dhcp/dhcpd6.leases"
281: else
282: with_srv6_lease_file="${localstatedir}/lib/dhcpd6.leases"
283: fi
284: elif [[ -d "${localstatedir}/etc" ]] ; then
285: with_srv6_lease_file="${localstatedir}/etc/dhcpd6.leases"
286: else
287: with_srv6_lease_file="/etc/dhcpd6.leases"
288: fi
289: fi
290: echo "$with_srv6_lease_file"
291:
292: AC_ARG_WITH(cli-lease-file,
293: AC_HELP_STRING([--with-cli-lease-file=PATH],
294: [File for dhclient leases
295: (default is LOCALSTATEDIR/db/dhclient.leases)]),
296: AC_DEFINE_UNQUOTED([_PATH_DHCLIENT_DB], ["$withval"],
297: [File for dhclient leases.]))
298:
299: echo -n "checking for dhclient.leases location..."
300: if [[ "x$with_cli_lease_file" = "x" ]] ; then
301: if [[ -d "${localstatedir}/db" ]] ; then
302: with_cli_lease_file="${localstatedir}/db/dhclient.leases"
303: elif [[ -d "${localstatedir}/state" ]] ; then
304: if [[ -d "${localstatedir}/state/dhcp" ]] ; then
305: with_cli_lease_file="${localstatedir}/state/dhcp/dhclient.leases"
306: else
307: with_cli_lease_file="${localstatedir}/state/dhclient.leases"
308: fi
309: elif [[ -d "${localstatedir}/lib" ]] ; then
310: if [[ -d "${localstatedir}/lib/dhcp" ]] ; then
311: with_cli_lease_file="${localstatedir}/lib/dhcp/dhclient.leases"
312: else
313: with_cli_lease_file="${localstatedir}/lib/dhclient.leases"
314: fi
315: elif [[ -d "${localstatedir}/etc" ]] ; then
316: with_cli_lease_file="${localstatedir}/etc/dhclient.leases"
317: else
318: with_cli_lease_file="/etc/dhclient.leases"
319: fi
320: fi
321: echo "$with_cli_lease_file"
322:
323: AC_ARG_WITH(cli6-lease-file,
324: AC_HELP_STRING([--with-cli6-lease-file=PATH],
325: [File for dhclient6 leases
326: (default is LOCALSTATEDIR/db/dhclient6.leases)]),
327: AC_DEFINE_UNQUOTED([_PATH_DHCLIENT6_DB], ["$withval"],
328: [File for dhclient6 leases.]))
329:
330: echo -n "checking for dhclient6.leases location..."
331: if [[ "x$with_cli6_lease_file" = "x" ]] ; then
332: if [[ -d "${localstatedir}/db" ]] ; then
333: with_cli6_lease_file="${localstatedir}/db/dhclient6.leases"
334: elif [[ -d "${localstatedir}/state" ]] ; then
335: if [[ -d "${localstatedir}/state/dhcp" ]] ; then
336: with_cli6_lease_file="${localstatedir}/state/dhcp/dhclient6.leases"
337: else
338: with_cli6_lease_file="${localstatedir}/state/dhclient6.leases"
339: fi
340: elif [[ -d "${localstatedir}/lib" ]] ; then
341: if [[ -d "${localstatedir}/lib/dhcp" ]] ; then
342: with_cli6_lease_file="${localstatedir}/lib/dhcp/dhclient6.leases"
343: else
344: with_cli6_lease_file="${localstatedir}/lib/dhclient6.leases"
345: fi
346: elif [[ -d "${localstatedir}/etc" ]] ; then
347: with_cli6_lease_file="${localstatedir}/etc/dhclient6.leases"
348: else
349: with_cli6_lease_file="/etc/dhclient6.leases"
350: fi
351: fi
352: echo "$with_cli6_lease_file"
353:
354: AC_ARG_WITH(srv-pid-file,
355: AC_HELP_STRING([--with-srv-pid-file=PATH],
356: [File for dhcpd process information
357: (default is LOCALSTATEDIR/run/dhcpd.pid)]),
358: AC_DEFINE_UNQUOTED([_PATH_DHCPD_PID], ["$withval"],
359: [File for dhcpd process information.]))
360: AC_ARG_WITH(srv6-pid-file,
361: AC_HELP_STRING([--with-srv6-pid-file=PATH],
362: [File for dhcpd6 process information
363: (default is LOCALSTATEDIR/run/dhcpd6.pid)]),
364: AC_DEFINE_UNQUOTED([_PATH_DHCPD6_PID], ["$withval"],
365: [File for dhcpd6 process information.]))
366: AC_ARG_WITH(cli-pid-file,
367: AC_HELP_STRING([--with-cli-pid-file=PATH],
368: [File for dhclient process information
369: (default is LOCALSTATEDIR/run/dhclient.pid)]),
370: AC_DEFINE_UNQUOTED([_PATH_DHCLIENT_PID], ["$withval"],
371: [File for dhclient process information.]))
372: AC_ARG_WITH(cli6-pid-file,
373: AC_HELP_STRING([--with-cli6-pid-file=PATH],
374: [File for dhclient6 process information
375: (default is LOCALSTATEDIR/run/dhclient6.pid)]),
376: AC_DEFINE_UNQUOTED([_PATH_DHCLIENT6_PID], ["$withval"],
377: [File for dhclient6 process information.]))
378: AC_ARG_WITH(relay-pid-file,
379: AC_HELP_STRING([--with-relay-pid-file=PATH],
380: [File for dhcrelay process information
381: (default is LOCALSTATEDIR/run/dhcrelay.pid)]),
382: AC_DEFINE_UNQUOTED([_PATH_DHCRELAY_PID], ["$withval"],
383: [File for dhcrelay process information.]))
384: AC_ARG_WITH(relay6-pid-file,
385: AC_HELP_STRING([--with-relay6-pid-file=PATH],
386: [File for dhcrelay6 process information
387: (default is LOCALSTATEDIR/run/dhcrelay6.pid)]),
388: AC_DEFINE_UNQUOTED([_PATH_DHCRELAY6_PID], ["$withval"],
389: [File for dhcrelay6 process information.]))
390:
391: # Check basic types.
392: AC_TYPE_INT8_T
393: AC_TYPE_INT16_T
394: AC_TYPE_INT32_T
395: AC_TYPE_INT64_T
396:
397: # Some systems need the u_intX_t types defined across.
398: AC_CHECK_TYPE([u_int8_t], [], [
399: AC_TYPE_UINT8_T
400: AC_DEFINE(u_int8_t, [uint8_t], [Define a type for 8-bit unsigned
401: integers.])
402: ])
403: AC_CHECK_TYPE([u_int16_t], [], [
404: AC_TYPE_UINT16_T
405: AC_DEFINE(u_int16_t, [uint16_t], [Define a type for 16-bit unsigned
406: integers.])
407: ])
408: AC_CHECK_TYPE([u_int32_t], [], [
409: AC_TYPE_UINT32_T
410: AC_DEFINE(u_int32_t, [uint32_t], [Define a type for 32-bit unsigned
411: integers.])
412: ])
413: AC_CHECK_TYPE([u_int64_t], [], [
414: AC_TYPE_UINT64_T
415: AC_DEFINE(u_int64_t, [uint64_t], [Define a type for 64-bit unsigned
416: integers.])
417: ])
418:
419: # see if ifaddrs.h is available
420: AC_CHECK_HEADERS(ifaddrs.h)
421:
422: # figure out what IPv4 interface code to use
423: AC_CHECK_HEADERS(linux/types.h) # needed for linux/filter.h on old systems
424:
425: AC_CHECK_HEADER(linux/filter.h, DO_LPF=1, ,
426: [
427: #ifdef HAVE_LINUX_TYPES_H
428: #include <linux/types.h>
429: #endif
430: ])
431: if test -n "$DO_LPF"
432: then
433: AC_DEFINE([HAVE_LPF], [1],
434: [Define to 1 to use the Linux Packet Filter interface code.])
435: else
436: AC_CHECK_HEADER(sys/dlpi.h, DO_DLPI=1)
437: if test -n "$DO_DLPI"
438: then
439: AC_DEFINE([HAVE_DLPI], [1],
440: [Define to 1 to use DLPI interface code.])
441: else
442: AC_CHECK_HEADER(net/bpf.h, DO_BPF=1)
443: if test -n "$DO_BPF"
444: then
1.1.1.1 ! misho 445: AC_DEFINE([HAVE_BPF], [1],
1.1 misho 446: [Define to 1 to use the
447: Berkeley Packet Filter interface code.])
448: fi
449: fi
450: fi
451:
452: # SIOCGLIFCONF uses some transport structures. Trick is not all platforms
453: # use the same structures. We like to use 'struct lifconf' and 'struct
454: # lifreq', but we'll use these other structures if they're present. HPUX
455: # does not define 'struct lifnum', but does use SIOCGLIFNUM - they use an
456: # int value.
457: #
458: AC_MSG_CHECKING([for struct lifnum])
459: AC_TRY_COMPILE(
460: [ #include <sys/types.h>
461: #include <sys/socket.h>
462: #include <net/if.h>
463: ],
464: [ struct lifnum a;
465: ],
466: [AC_MSG_RESULT(yes)
467: AC_DEFINE([ISC_PLATFORM_HAVELIFNUM], [1],
468: [Define to 1 if the system has 'struct lifnum'.])],
469: [AC_MSG_RESULT(no)])
470:
471: AC_MSG_CHECKING([for struct if_laddrconf])
472: AC_TRY_COMPILE(
473: [ #include <sys/types.h>
474: #include <net/if6.h>
475: ],
476: [ struct if_laddrconf a;
477: ],
478: [AC_MSG_RESULT(yes)
479: AC_DEFINE([ISC_PLATFORM_HAVEIF_LADDRCONF], [1],
480: [Define to 1 if the system has 'struct if_laddrconf'.])],
481: [AC_MSG_RESULT(no)])
482:
483: AC_MSG_CHECKING([for struct if_laddrreq])
484: AC_TRY_LINK(
485: [#include <sys/types.h>
486: #include <net/if6.h>
487: ],
488: [ struct if_laddrreq a;
489: ],
490: [AC_MSG_RESULT(yes)
491: AC_DEFINE([ISC_PLATFORM_HAVEIF_LADDRREQ], [1],
492: [Define to 1 if the system has 'struct if_laddrreq'.])],
493: [AC_MSG_RESULT(no)])
494:
1.1.1.1 ! misho 495: #
! 496: # check for GCC noreturn attribute
! 497: #
! 498: AC_MSG_CHECKING(for GCC noreturn attribute)
! 499: AC_TRY_COMPILE([],[void foo() __attribute__((noreturn));],
! 500: [AC_MSG_RESULT(yes)
! 501: AC_DEFINE([ISC_DHCP_NORETURN], [__attribute__((noreturn))],
! 502: [Define to the string for a noreturn attribute.])],
! 503: [AC_MSG_RESULT(no)
! 504: AC_DEFINE([ISC_DHCP_NORETURN], [],
! 505: [Define to the string for a noreturn attribute.])])
! 506:
1.1 misho 507: # Look for optional headers.
508: AC_CHECK_HEADERS(sys/socket.h net/if_dl.h net/if6.h regex.h)
509:
510: # Solaris needs some libraries for functions
511: AC_SEARCH_LIBS(socket, [socket])
512: AC_SEARCH_LIBS(inet_ntoa, [nsl])
513:
514: AC_SEARCH_LIBS(inet_aton, [socket nsl], ,
515: AC_DEFINE([NEED_INET_ATON], [1],
516: [Define to 1 if the inet_aton() function is missing.]))
517:
518: # Check for a standalone regex library.
519: AC_SEARCH_LIBS(regcomp, [regex])
520:
521: # For HP/UX we need -lipv6 for if_nametoindex, perhaps others.
522: AC_SEARCH_LIBS(if_nametoindex, [ipv6])
523:
524: # check for /dev/random (declares HAVE_DEV_RANDOM)
525: AC_CHECK_FILE(/dev/random,
526: AC_DEFINE([HAVE_DEV_RANDOM], [1],
527: [Define to 1 if you have the /dev/random file.]))
528:
529: # see if there is a "sa_len" field in our interface information structure
530: AC_CHECK_MEMBER(struct sockaddr.sa_len,
531: AC_DEFINE([HAVE_SA_LEN], [],
532: [Define to 1 if the sockaddr structure has a length field.]),
533: ,
534: [#include <sys/socket.h>])
535:
536: # figure out pointer size
537: AC_CHECK_SIZEOF(struct iaddr *, , [
538: #include "includes/inet.h"
539: #include <stdio.h>
540: ])
541:
1.1.1.1 ! misho 542: # Solaris does not have the msg_control or msg_controlen members
1.1 misho 543: # in the msghdr structure unless you define:
544: #
545: # _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, and __EXTENSIONS__
546: #
547: # See the "standards" man page for details.
548: #
549: # We check for the msg_control member, and if it is not found, we check
550: # again with the appropriate defines added to the CFLAGS. (In order to
551: # do this we have to remove the check from the cache, which is what the
552: # "unset" is for.)
553: AC_CHECK_MEMBER(struct msghdr.msg_control,,
554: [CFLAGS="$CFLAGS -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
555: CFLAGS="$CFLAGS -D__EXTENSIONS__"
556: unset ac_cv_member_struct_msghdr_msg_control
557: AC_CHECK_MEMBER(struct msghdr.msg_control,,
558: [AC_MSG_ERROR([Missing msg_control member in
559: msg_control structure.])],
560: [
561: #include <sys/types.h>
562: #include <sys/socket.h>
563: ])
564: ],
565: [
566: #include <sys/types.h>
567: #include <sys/socket.h>
568: ])
569:
570: # Append selected warning levels to CFLAGS before substitution (but after
571: # AC_TRY_COMPILE & etc).
572: CFLAGS="$CFLAGS $STD_CWARNINGS"
573:
574: AC_C_FLEXIBLE_ARRAY_MEMBER
575:
576: AC_OUTPUT([
577: Makefile
578: client/Makefile
579: common/Makefile
580: common/tests/Makefile
581: dhcpctl/Makefile
582: dst/Makefile
583: includes/Makefile
584: minires/Makefile
585: omapip/Makefile
586: relay/Makefile
587: server/Makefile
588: tests/Makefile
1.1.1.1 ! misho 589: server/tests/Makefile
! 590: doc/devel/doxyfile
1.1 misho 591: ])
592:
1.1.1.1 ! misho 593: cat > config.report << END
! 594:
! 595: ISC DHCP source configure results:
! 596: -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
! 597:
! 598: Package:
! 599: Name: $PACKAGE_NAME
! 600: Version: $PACKAGE_VERSION
! 601:
! 602: C Compiler: $CC
! 603:
! 604: Flags:
! 605: DEFS: $DEFS
! 606: CFLAGS: $CFLAGS
! 607:
! 608: Features:
! 609: debug: $enable_debug
! 610: failover: $enable_failover
! 611: execute: $enable_execute
! 612:
! 613: Developer:
! 614: ATF unittests : $atf_path
! 615:
! 616: END
! 617: # TODO: Add Perl system tests
! 618:
! 619: if test "$atf_path" != "no"
! 620: then
! 621: echo "ATF_CFLAGS : $ATF_CFLAGS" >> config.report
! 622: echo "ATF_LDFLAGS : $ATF_LDFLAGS" >> config.report
! 623: echo
! 624: fi
! 625:
! 626: cat config.report
! 627:
! 628: echo
! 629: echo Now you can type "make" to build ISC DHCP
! 630: echo
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>