configure.ac revision 1.1.1.1
1AC_INIT([DHCP],[4.4.1],[dhcp-users@isc.org]) 2 3 4# we specify "foreign" to avoid having to have the GNU mandated files, 5# like AUTHORS, COPYING, and such 6AM_INIT_AUTOMAKE([foreign]) 7 8# we specify AM_MAINTAINER_MODE to avoid problems with rebuilding 9# the configure and makefiles. Without it users doing things that 10# change the timestamps on the code, like checking it into a cvs 11# tree, could trigger a rebuild of the infrastructure files which 12# might fail if they don't have the correct tools. 13AM_MAINTAINER_MODE 14 15AC_CANONICAL_HOST 16 17# We want to turn on warnings if we are using gcc and the user did 18# not specify CFLAGS. The autoconf check for the C compiler sets the 19# CFLAGS if gcc is used, so we will save it before we run that check. 20SAVE_CFLAGS="$CFLAGS" 21 22# Now find our C compiler. 23AC_PROG_CC 24 25# Suppress warnings about --datarootdir 26AC_DEFUN([AC_DATAROOTDIR_CHECKED]) 27 28# If we have gcc, and AC_PROG_CC changed the flags, then we know the 29# user did not specify any flags. Add warnings in this case. 30if test "$GCC" = "yes"; then 31 if test "$CFLAGS" != "$SAVE_CFLAGS"; then 32 STD_CWARNINGS="$STD_CWARNINGS -Wall -Werror -fno-strict-aliasing" 33 fi 34fi 35 36# We can have some flags to pass to bind configure 37BINDCONFIG= 38if test "$cross_compiling" = "yes"; then 39 BINDCONFIG="--host=$host" 40fi 41# Pass CFLAGS and co. $ac_configure_args looks like "'arg1' 'arg2' ..." 42# and as there can be a space inside an argument some magic is required. 43# This sets $1 ... $N to my_configure_args, arg1 ... argN 44eval "set my_configure_args $ac_configure_args" 45# remove my_configure_args, i.e., the guard against empty $ac_configure_args 46shift 47# iterate on arguments and copying 'arg' when it begins by an upper case 48for a 49do 50 case $a in 51 [[A-Z]]*) BINDCONFIG="$BINDCONFIG '$a'" ;; 52 esac 53done 54AC_SUBST(BINDCONFIG) 55 56# POSIX doesn't include the IPv6 Advanced Socket API and glibc hides 57# parts of the IPv6 Advanced Socket API as a result. This is stupid 58# as it breaks how the two halves (Basic and Advanced) of the IPv6 59# Socket API were designed to be used but we have to live with it. 60# Use this to define _GNU_SOURCE to pull in the IPv6 Advanced Socket API. 61AC_USE_SYSTEM_EXTENSIONS 62 63AC_PROG_RANLIB 64 65AC_PATH_PROG(AR, ar) 66AC_SUBST(AR) 67 68if test "X$AR" = "X"; then 69 AC_MSG_ERROR([ 70ar program not found. Please fix your PATH to include the directory in 71which ar resides, or set AR in the environment with the full path to ar.]) 72fi 73 74AC_CONFIG_HEADERS([includes/config.h]) 75 76# we sometimes need to know byte order for building packets 77AC_C_BIGENDIAN(AC_SUBST(byte_order, BIG_ENDIAN), 78 AC_SUBST(byte_order, LITTLE_ENDIAN)) 79AC_DEFINE_UNQUOTED([DHCP_BYTE_ORDER], [$byte_order], 80 [Define to BIG_ENDIAN for MSB (Motorola or SPARC CPUs) 81 or LITTLE_ENDIAN for LSB (Intel CPUs).]) 82 83# Optional compile-time DEBUGging. 84AC_ARG_ENABLE(debug, 85 AS_HELP_STRING([--enable-debug],[create a debug-only version of the software (default is no).]), 86 [case "${enableval}" in 87 yes) enable_debug=yes 88 AC_DEFINE([DEBUG], [1], 89 [Define to compile debug-only DHCP software.]) 90 # Just override CFLAGS totally to remove optimization. 91 CFLAGS="-g";; 92 no) enable_debug=no ;; 93 *) AC_MSG_ERROR([bad value ${enableval} for --enable-debug]) ;; 94 esac],[enable_debug=no]) 95 96# XXX: there are actually quite a lot more DEBUG_ features we could enable, 97# but I don't want to pollute the --help space. 98# 99#/* #define DEBUG_TOKENS */ 100#/* #define DEBUG_PACKET */ 101#/* #define DEBUG_EXPRESSIONS */ 102#/* #define DEBUG_FIND_LEASE */ 103#/* #define DEBUG_EXPRESSION_PARSE */ 104#/* #define DEBUG_CLASS_MATCHING */ 105#/* #define DEBUG_MEMORY_LEAKAGE */ 106#/* #define DEBUG_MALLOC_POOL */ 107#/* #define DEBUG_LEASE_STATE_TRANSITIONS */ 108#/* #define DEBUG_RC_HISTORY */ 109#/* #define DEBUG_RC_HISTORY_EXHAUSTIVELY */ 110#/* #define RC_HISTORY_MAX 10240 */ 111#/* #define POINTER_DEBUG */ 112#/* #define DEBUG_FAILOVER_MESSAGES */ 113#/* #define DEBUG_FAILOVER_TIMING */ 114#/* #define DEBUG_DUMP_ALL_LEASES */ 115 116# Failover optional compile-time feature. 117AC_ARG_ENABLE(failover, 118 AS_HELP_STRING([--enable-failover],[enable support for failover (default is yes)])) 119# Failover is on by default, so define if it is not explicitly disabled. 120if test "$enable_failover" != "no"; then 121 enable_failover="yes" 122 AC_DEFINE([FAILOVER_PROTOCOL], [1], 123 [Define to include Failover Protocol support.]) 124fi 125 126# execute() support. 127AC_ARG_ENABLE(execute, 128 AS_HELP_STRING([--enable-execute],[enable support for execute() in config (default is yes)])) 129# execute() is on by default, so define if it is not explicitly disabled. 130if test "$enable_execute" != "no" ; then 131 enable_execute="yes" 132 AC_DEFINE([ENABLE_EXECUTE], [1], 133 [Define to include execute() config language support.]) 134fi 135 136# Server tracing support. 137AC_ARG_ENABLE(tracing, 138 AS_HELP_STRING([--enable-tracing],[enable support for server activity tracing (default is yes)])) 139# tracing is on by default, so define if it is not explicitly disabled. 140if test "$enable_tracing" != "no" ; then 141 AC_DEFINE([TRACING], [1], 142 [Define to include server activity tracing support.]) 143fi 144 145# Delayed-ack feature support. 146AC_ARG_ENABLE(delayed_ack, 147 AS_HELP_STRING([--enable-delayed-ack],[queues multiple DHCPACK replies (default is yes)])) 148if test "$enable_delayed_ack" != "no"; then 149 enable_delayed_ack="yes" 150 AC_DEFINE([DELAYED_ACK], [1], 151 [Define to queue multiple DHCPACK replies per fsync.]) 152fi 153 154# DHCPv6 optional compile-time feature. 155AC_ARG_ENABLE(dhcpv6, 156 AS_HELP_STRING([--enable-dhcpv6],[enable support for DHCPv6 (default is yes)])) 157# DHCPv6 is on by default, so define if it is not explicitly disabled. 158if test "$enable_dhcpv6" != "no"; then 159 enable_dhcpv6="yes" 160 AC_DEFINE([DHCPv6], [1], 161 [Define to 1 to include DHCPv6 support.]) 162fi 163 164# DHCPv4o6 optional compile-time feature. 165AC_ARG_ENABLE(dhcpv4o6, 166 AS_HELP_STRING([--enable-dhcpv4o6],[enable support for DHCPv4-over-DHCPv6 (default is no)])) 167# DHCPv4o6 is off by default, so define if it is explicitly enabled. 168if test "$enable_dhcpv4o6" = "yes"; then 169 # DHCPv4o6 requires DHCPv6 170 if test "$enable_dhcpv6" = "no"; then 171 AC_MSG_ERROR([dhcpv4o6 requires dhcpv6]) 172 fi 173 AC_DEFINE([DHCP4o6], [1], 174 [Define to 1 to include DHCPv4 over DHCPv6 support.]) 175else 176 # so we can report below 177 enable_dhcpv4o6="no" 178fi 179 180# Relay port (draft-ietf-dhc-relay-port-10.txt) optional compile-time feature. 181AC_ARG_ENABLE(relay-port, 182 AS_HELP_STRING([--enable-relay-port],[enable support for relay port (default is no)])) 183# Relay port is off by default (for now) 184if test "$enable_relay_port" = "yes"; then 185 AC_DEFINE([RELAY_PORT], [1], 186 [Define to 1 to include relay port support.]) 187else 188 # so we can report below 189 enable_relay_port="no" 190fi 191 192# PARANOIA is off by default (until we can test it with all features) 193AC_ARG_ENABLE(paranoia, 194 AS_HELP_STRING([--enable-paranoia],[enable support for chroot/setuid (default is no)])) 195AC_ARG_ENABLE(early_chroot, 196 AS_HELP_STRING([--enable-early-chroot],[enable chrooting prior to configuration (default is no)])) 197# If someone enables early chroot, but does not enable paranoia, do so for 198# them. 199if test "$enable_paranoia" != "yes" && \ 200 test "$enable_early_chroot" = "yes" ; then 201 enable_paranoia="yes" 202fi 203 204if test "$enable_paranoia" = "yes" ; then 205 AC_DEFINE([PARANOIA], [1], 206 [Define to any value to include Ari's PARANOIA patch.]) 207fi 208if test "$enable_early_chroot" = "yes" ; then 209 AC_DEFINE([EARLY_CHROOT], [1], 210 [Define to any value to chroot() prior to loading config.]) 211fi 212 213AC_ARG_ENABLE(ipv4_pktinfo, 214 AS_HELP_STRING([--enable-ipv4-pktinfo],[enable use of pktinfo on IPv4 sockets (default is no)])) 215 216if test "$enable_ipv4_pktinfo" = "yes"; then 217 AC_DEFINE([USE_V4_PKTINFO], [1], 218 [Define to 1 to enable IPv4 packet info support.]) 219fi 220 221AC_ARG_ENABLE(use_sockets, 222 AS_HELP_STRING([--enable-use-sockets],[use the standard BSD socket API (default is no)])) 223 224if test "$enable_use_sockets" = "yes"; then 225 AC_DEFINE([USE_SOCKETS], [1], 226 [Define to 1 to use the standard BSD socket API.]) 227fi 228 229# Include the PID in the log messages. This is useful when there may 230# be multiple instances of a program. 231# This is off by default 232AC_ARG_ENABLE(log_pid, 233 AS_HELP_STRING([--enable-log-pid],[Include PIDs in syslog messages (default is no).])) 234if test "$enable_log_pid" = "yes" ; then 235 AC_DEFINE([USE_LOG_PID], [1], 236 [Define to include PIDs in syslog messages.]) 237fi 238 239# Allow for binary search when inserting v4 leases into queues 240AC_ARG_ENABLE(binary_leases, 241 AS_HELP_STRING([--enable-binary-leases],[enable support for binary insertion of leases (default is no)])) 242# binary_leases is off by default. 243if test "$enable_binary_leases" = "yes"; then 244 AC_DEFINE([BINARY_LEASES], [1], 245 [Define to support binary insertion of leases into queues.]) 246else 247 enable_binary_leases="no" 248fi 249 250# Testing section 251 252DISTCHECK_ATF_CONFIGURE_FLAG= 253atf_path="no" 254AC_ARG_WITH([atf], 255 AS_HELP_STRING([--with-atf=PATH],[specify location where atf was installed (or "bind")]), 256 [atf_path="$withval"]) 257AM_CONDITIONAL(BIND_ATF, test "$atf_path" = "bind") 258if test "$atf_path" = "bind" ; then 259 DISTCHECK_ATF_CONFIGURE_FLAG="--with-atf=bind" 260 atf_pcp="bind" 261 atf_path="\${top_srcdir}/bind/atf" 262 ATF_CFLAGS="-I$atf_path/include -DUNIT_TEST" 263 ATF_LDFLAGS="-L$atf_path/lib -latf-c" 264 ATF_BIN=`cd $srcdir; pwd`/bind/atf/bin 265 AC_SUBST(ATF_CFLAGS) 266 AC_SUBST(ATF_LDFLAGS) 267 AC_SUBST(ATF_BIN) 268 BINDCONFIG="$BINDCONFIG --with-atf" 269elif test "$atf_path" != "no" ; then 270 DISTCHECK_ATF_CONFIGURE_FLAG="--with-atf=$atf_path" 271 # Config path for pkg-config 272 atf_pcp="" 273 if test "$atf_path" != "yes" ; then 274 if test -f $atf_path/lib/pkgconfig/atf-c.pc ; then 275 atf_pcp=$atf_path/lib/pkgconfig 276 elif test -f $atf_path/lib64/pkgconfig/atf-c.pc ; then 277 atf_pcp=$atf_path/lib64/pkgconfig 278 fi 279 else 280 # Not specified, try some common paths 281 atf_dirs="/usr /usr/local /usr/pkg /opt /opt/local" 282 for d in $atf_dirs 283 do 284 if test -f $d/lib/pkgconfig/atf-c.pc ; then 285 atf_pcp=$d/lib/pkgconfig 286 atf_path=$d 287 elif test -f $d/lib64/pkgconfig/atf-c.pc ; then 288 atf_pcp=$d/lib64/pkgconfig 289 atf_path=$d 290 fi 291 done 292 fi 293 294 if test "$atf_pcp" = "" ; then 295 AC_MSG_ERROR([Unable to find atf files in location specified]) 296 else 297 AC_CHECK_PROG([pkgcfg_found],[pkg-config],[pkg-config],[]) 298 if test "$pkgcfg_found" = ""; then 299 AC_MSG_ERROR([Could not locate ATF, pkg-config not installed]) 300 fi 301 ATF_CFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --cflags atf-c` -DUNIT_TEST" 302 ATF_LDFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --libs atf-c`" 303 if test -f $atf_pcp/atf-sh.pc ; then 304 ATF_BIN="`PKG_CONFIG_PATH=$atf_pcp pkg-config --variable=exec_prefix atf-sh`/bin" 305 else 306 # older versions don't have atf-sh, try usual place 307 ATF_BIN=$atf_path/bin 308 fi 309 310 UNITTESTS=tests 311 312 AC_SUBST(ATF_CFLAGS) 313 AC_SUBST(ATF_LDFLAGS) 314 AC_SUBST(ATF_BIN) 315 AC_SUBST(UNITTESTS) 316 fi 317fi 318 319AM_CONDITIONAL(HAVE_ATF, test "$atf_pcp" != "") 320AM_COND_IF([HAVE_ATF], [AC_DEFINE([HAVE_ATF], [1], [ATF framework specified?])]) 321AC_SUBST(DISTCHECK_ATF_CONFIGURE_FLAG) 322 323### 324### Path fun. Older versions of DHCP were installed in /usr/sbin, so we 325### need to look there and potentially overwrite by default (but not if 326### the user configures an alternate value). LOCALSTATEDIR is totally 327### braindead. No one uses /usr/local/var/db/ nor /usr/local/var/run, and 328### they would be insane for suggesting it. We need to look in /var/for 329### 'db' and 'state/dhcp' for db files, and /var/run for pid files by 330### default. 331### 332AC_PREFIX_PROGRAM(dhcpd) 333 334# XXX - isn't there SOME WAY to default autoconf to /var instead of 335# /usr/local/var/no/one/has/this/please/stop/trying? 336case "$localstatedir" in 337 '${prefix}/var') 338 localstatedir=/var 339 ;; 340esac 341 342# Default server configuration file. 343AC_ARG_WITH(srv-conf-file, 344 AS_HELP_STRING([--with-srv-conf-file=PATH],[Default file containing dhcpd configuration 345 (default is typically /etc/dhcpd.conf)]), 346 AC_DEFINE_UNQUOTED([_PATH_DHCPD_CONF], ["$withval"], 347 [Default file containing dhcpd configuration.])) 348 349# Allow specification of alternate state files 350AC_ARG_WITH(srv-lease-file, 351 AS_HELP_STRING([--with-srv-lease-file=PATH],[File for dhcpd leases 352 (default is LOCALSTATEDIR/db/dhcpd.leases)]), 353 AC_DEFINE_UNQUOTED([_PATH_DHCPD_DB], ["$withval"], 354 [File for dhcpd leases.])) 355 356AC_MSG_CHECKING([for dhcpd.leases location]) 357if [[ "x$with_srv_lease_file" = "x" ]] ; then 358 if [[ -d "${localstatedir}/db" ]] ; then 359 with_srv_lease_file="${localstatedir}/db/dhcpd.leases" 360 elif [[ -d "${localstatedir}/state" ]] ; then 361 if [[ -d "${localstatedir}/state/dhcp" ]] ; then 362 with_srv_lease_file="${localstatedir}/state/dhcp/dhcpd.leases" 363 else 364 with_srv_lease_file="${localstatedir}/state/dhcpd.leases" 365 fi 366 elif [[ -d "${localstatedir}/lib" ]] ; then 367 if [[ -d "${localstatedir}/lib/dhcp" ]] ; then 368 with_srv_lease_file="${localstatedir}/lib/dhcp/dhcpd.leases" 369 else 370 with_srv_lease_file="${localstatedir}/lib/dhcpd.leases" 371 fi 372 elif [[ -d "${localstatedir}/etc" ]] ; then 373 with_srv_lease_file="${localstatedir}/etc/dhcpd.leases" 374 else 375 with_srv_lease_file="/etc/dhcpd.leases" 376 fi 377fi 378AC_MSG_RESULT($with_srv_lease_file) 379 380AC_ARG_WITH(srv6-lease-file, 381 AS_HELP_STRING([--with-srv6-lease-file=PATH],[File for dhcpd6 leases 382 (default is LOCALSTATEDIR/db/dhcpd6.leases)]), 383 AC_DEFINE_UNQUOTED([_PATH_DHCPD6_DB], ["$withval"], 384 [File for dhcpd6 leases.])) 385 386AC_MSG_CHECKING([for dhcpd6.leases location]) 387if [[ "x$with_srv6_lease_file" = "x" ]] ; then 388 if [[ -d "${localstatedir}/db" ]] ; then 389 with_srv6_lease_file="${localstatedir}/db/dhcpd6.leases" 390 elif [[ -d "${localstatedir}/state" ]] ; then 391 if [[ -d "${localstatedir}/state/dhcp" ]] ; then 392 with_srv6_lease_file="${localstatedir}/state/dhcp/dhcpd6.leases" 393 else 394 with_srv6_lease_file="${localstatedir}/state/dhcpd6.leases" 395 fi 396 elif [[ -d "${localstatedir}/lib" ]] ; then 397 if [[ -d "${localstatedir}/lib/dhcp" ]] ; then 398 with_srv6_lease_file="${localstatedir}/lib/dhcp/dhcpd6.leases" 399 else 400 with_srv6_lease_file="${localstatedir}/lib/dhcpd6.leases" 401 fi 402 elif [[ -d "${localstatedir}/etc" ]] ; then 403 with_srv6_lease_file="${localstatedir}/etc/dhcpd6.leases" 404 else 405 with_srv6_lease_file="/etc/dhcpd6.leases" 406 fi 407fi 408AC_MSG_RESULT($with_srv6_lease_file) 409 410AC_ARG_WITH(cli-lease-file, 411 AS_HELP_STRING([--with-cli-lease-file=PATH],[File for dhclient leases 412 (default is LOCALSTATEDIR/db/dhclient.leases)]), 413 AC_DEFINE_UNQUOTED([_PATH_DHCLIENT_DB], ["$withval"], 414 [File for dhclient leases.])) 415 416AC_MSG_CHECKING([for dhclient.leases location]) 417if [[ "x$with_cli_lease_file" = "x" ]] ; then 418 if [[ -d "${localstatedir}/db" ]] ; then 419 with_cli_lease_file="${localstatedir}/db/dhclient.leases" 420 elif [[ -d "${localstatedir}/state" ]] ; then 421 if [[ -d "${localstatedir}/state/dhcp" ]] ; then 422 with_cli_lease_file="${localstatedir}/state/dhcp/dhclient.leases" 423 else 424 with_cli_lease_file="${localstatedir}/state/dhclient.leases" 425 fi 426 elif [[ -d "${localstatedir}/lib" ]] ; then 427 if [[ -d "${localstatedir}/lib/dhcp" ]] ; then 428 with_cli_lease_file="${localstatedir}/lib/dhcp/dhclient.leases" 429 else 430 with_cli_lease_file="${localstatedir}/lib/dhclient.leases" 431 fi 432 elif [[ -d "${localstatedir}/etc" ]] ; then 433 with_cli_lease_file="${localstatedir}/etc/dhclient.leases" 434 else 435 with_cli_lease_file="/etc/dhclient.leases" 436 fi 437fi 438AC_MSG_RESULT($with_cli_lease_file) 439 440AC_ARG_WITH(cli6-lease-file, 441 AS_HELP_STRING([--with-cli6-lease-file=PATH],[File for dhclient6 leases 442 (default is LOCALSTATEDIR/db/dhclient6.leases)]), 443 AC_DEFINE_UNQUOTED([_PATH_DHCLIENT6_DB], ["$withval"], 444 [File for dhclient6 leases.])) 445 446AC_MSG_CHECKING([for dhclient6.leases location]) 447if [[ "x$with_cli6_lease_file" = "x" ]] ; then 448 if [[ -d "${localstatedir}/db" ]] ; then 449 with_cli6_lease_file="${localstatedir}/db/dhclient6.leases" 450 elif [[ -d "${localstatedir}/state" ]] ; then 451 if [[ -d "${localstatedir}/state/dhcp" ]] ; then 452 with_cli6_lease_file="${localstatedir}/state/dhcp/dhclient6.leases" 453 else 454 with_cli6_lease_file="${localstatedir}/state/dhclient6.leases" 455 fi 456 elif [[ -d "${localstatedir}/lib" ]] ; then 457 if [[ -d "${localstatedir}/lib/dhcp" ]] ; then 458 with_cli6_lease_file="${localstatedir}/lib/dhcp/dhclient6.leases" 459 else 460 with_cli6_lease_file="${localstatedir}/lib/dhclient6.leases" 461 fi 462 elif [[ -d "${localstatedir}/etc" ]] ; then 463 with_cli6_lease_file="${localstatedir}/etc/dhclient6.leases" 464 else 465 with_cli6_lease_file="/etc/dhclient6.leases" 466 fi 467fi 468AC_MSG_RESULT($with_cli6_lease_file) 469 470AC_ARG_WITH(srv-pid-file, 471 AS_HELP_STRING([--with-srv-pid-file=PATH],[File for dhcpd process information 472 (default is LOCALSTATEDIR/run/dhcpd.pid)]), 473 AC_DEFINE_UNQUOTED([_PATH_DHCPD_PID], ["$withval"], 474 [File for dhcpd process information.])) 475AC_ARG_WITH(srv6-pid-file, 476 AS_HELP_STRING([--with-srv6-pid-file=PATH],[File for dhcpd6 process information 477 (default is LOCALSTATEDIR/run/dhcpd6.pid)]), 478 AC_DEFINE_UNQUOTED([_PATH_DHCPD6_PID], ["$withval"], 479 [File for dhcpd6 process information.])) 480AC_ARG_WITH(cli-pid-file, 481 AS_HELP_STRING([--with-cli-pid-file=PATH],[File for dhclient process information 482 (default is LOCALSTATEDIR/run/dhclient.pid)]), 483 AC_DEFINE_UNQUOTED([_PATH_DHCLIENT_PID], ["$withval"], 484 [File for dhclient process information.])) 485AC_ARG_WITH(cli6-pid-file, 486 AS_HELP_STRING([--with-cli6-pid-file=PATH],[File for dhclient6 process information 487 (default is LOCALSTATEDIR/run/dhclient6.pid)]), 488 AC_DEFINE_UNQUOTED([_PATH_DHCLIENT6_PID], ["$withval"], 489 [File for dhclient6 process information.])) 490AC_ARG_WITH(relay-pid-file, 491 AS_HELP_STRING([--with-relay-pid-file=PATH],[File for dhcrelay process information 492 (default is LOCALSTATEDIR/run/dhcrelay.pid)]), 493 AC_DEFINE_UNQUOTED([_PATH_DHCRELAY_PID], ["$withval"], 494 [File for dhcrelay process information.])) 495AC_ARG_WITH(relay6-pid-file, 496 AS_HELP_STRING([--with-relay6-pid-file=PATH],[File for dhcrelay6 process information 497 (default is LOCALSTATEDIR/run/dhcrelay6.pid)]), 498 AC_DEFINE_UNQUOTED([_PATH_DHCRELAY6_PID], ["$withval"], 499 [File for dhcrelay6 process information.])) 500 501# Check basic types. 502AC_TYPE_INT8_T 503AC_TYPE_INT16_T 504AC_TYPE_INT32_T 505AC_TYPE_INT64_T 506 507# Some systems need the u_intX_t types defined across. 508AC_CHECK_TYPE([u_int8_t], [], [ 509 AC_TYPE_UINT8_T 510 AC_DEFINE(u_int8_t, [uint8_t], [Define a type for 8-bit unsigned 511 integers.]) 512]) 513AC_CHECK_TYPE([u_int16_t], [], [ 514 AC_TYPE_UINT16_T 515 AC_DEFINE(u_int16_t, [uint16_t], [Define a type for 16-bit unsigned 516 integers.]) 517]) 518AC_CHECK_TYPE([u_int32_t], [], [ 519 AC_TYPE_UINT32_T 520 AC_DEFINE(u_int32_t, [uint32_t], [Define a type for 32-bit unsigned 521 integers.]) 522]) 523AC_CHECK_TYPE([u_int64_t], [], [ 524 AC_TYPE_UINT64_T 525 AC_DEFINE(u_int64_t, [uint64_t], [Define a type for 64-bit unsigned 526 integers.]) 527]) 528 529# see if ifaddrs.h is available 530AC_CHECK_HEADERS(ifaddrs.h) 531 532# figure out what IPv4 interface code to use 533AC_CHECK_HEADERS(linux/types.h) # needed for linux/filter.h on old systems 534 535relay_port_supported="no" 536AC_CHECK_HEADER(linux/filter.h, DO_LPF=1, , 537[ 538#ifdef HAVE_LINUX_TYPES_H 539#include <linux/types.h> 540#endif 541]) 542if test -n "$DO_LPF" 543then 544 AC_DEFINE([HAVE_LPF], [1], 545 [Define to 1 to use the Linux Packet Filter interface code.]) 546 relay_port_supported="yes" 547else 548 AC_CHECK_HEADER(sys/dlpi.h, DO_DLPI=1) 549 if test -n "$DO_DLPI" 550 then 551 AC_DEFINE([HAVE_DLPI], [1], 552 [Define to 1 to use DLPI interface code.]) 553 else 554 AC_CHECK_HEADER(net/bpf.h, DO_BPF=1) 555 if test -n "$DO_BPF" 556 then 557 AC_DEFINE([HAVE_BPF], [1], 558 [Define to 1 to use the 559 Berkeley Packet Filter interface code.]) 560 relay_port_supported="yes" 561 fi 562 fi 563fi 564 565if test "$enable_relay_port" = "yes"; then 566 if test "$relay_port_supported" != "yes"; then 567 AC_MSG_ERROR([--enable-relay-port requires BPF or LPF]) 568 fi 569fi 570 571# SIOCGLIFCONF uses some transport structures. Trick is not all platforms 572# use the same structures. We like to use 'struct lifconf' and 'struct 573# lifreq', but we'll use these other structures if they're present. HPUX 574# does not define 'struct lifnum', but does use SIOCGLIFNUM - they use an 575# int value. 576# 577AC_MSG_CHECKING([for struct lifnum]) 578AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <sys/types.h> 579 #include <sys/socket.h> 580 #include <net/if.h> 581]], [[ struct lifnum a; 582]])],[AC_MSG_RESULT(yes) 583 AC_DEFINE([ISC_PLATFORM_HAVELIFNUM], [1], 584 [Define to 1 if the system has 'struct lifnum'.])],[AC_MSG_RESULT(no)]) 585 586AC_MSG_CHECKING([for struct if_laddrconf]) 587AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <sys/types.h> 588 #include <net/if6.h> 589]], [[ struct if_laddrconf a; 590]])],[AC_MSG_RESULT(yes) 591 AC_DEFINE([ISC_PLATFORM_HAVEIF_LADDRCONF], [1], 592 [Define to 1 if the system has 'struct if_laddrconf'.])],[AC_MSG_RESULT(no)]) 593 594AC_MSG_CHECKING([for struct if_laddrreq]) 595AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> 596 #include <net/if6.h> 597]], [[ struct if_laddrreq a; 598]])],[AC_MSG_RESULT(yes) 599 AC_DEFINE([ISC_PLATFORM_HAVEIF_LADDRREQ], [1], 600 [Define to 1 if the system has 'struct if_laddrreq'.])],[AC_MSG_RESULT(no)]) 601 602# 603# check for GCC noreturn attribute 604# 605AC_MSG_CHECKING(for GCC noreturn attribute) 606AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[void foo() __attribute__((noreturn));]])],[AC_MSG_RESULT(yes) 607 AC_DEFINE([ISC_DHCP_NORETURN], [__attribute__((noreturn))], 608 [Define to the string for a noreturn attribute.])],[AC_MSG_RESULT(no) 609 AC_DEFINE([ISC_DHCP_NORETURN], [], 610 [Define to the string for a noreturn attribute.])]) 611 612# Look for optional headers. 613AC_CHECK_HEADERS(sys/socket.h net/if_dl.h net/if6.h regex.h) 614 615# Solaris needs some libraries for functions 616AC_SEARCH_LIBS(socket, [socket]) 617AC_SEARCH_LIBS(inet_ntoa, [nsl]) 618 619AC_SEARCH_LIBS(inet_aton, [socket nsl], , 620 AC_DEFINE([NEED_INET_ATON], [1], 621 [Define to 1 if the inet_aton() function is missing.])) 622 623# Check for a standalone regex library. 624AC_SEARCH_LIBS(regcomp, [regex]) 625 626AC_CHECK_FUNCS(strlcat) 627 628# For HP/UX we need -lipv6 for if_nametoindex, perhaps others. 629AC_SEARCH_LIBS(if_nametoindex, [ipv6]) 630 631# For some Solaris nanosleep is found by BIND in librt 632have_nanosleep="no" 633AC_CHECK_FUNC(nanosleep, have_nanosleep="yes") 634if test "$have_nanosleep" = "no"; then 635 AC_CHECK_LIB(rt, nanosleep, have_nanosleep="rt") 636fi 637if test "$have_nanosleep" = "rt"; then 638 LIBS="-lrt $LIBS" 639fi 640 641# check for /dev/random (declares HAVE_DEV_RANDOM) 642AC_MSG_CHECKING(for random device) 643AC_ARG_WITH(randomdev, 644 AS_HELP_STRING([--with-randomdev=PATH],[Path for random device 645 (default is /dev/random)]), 646 use_randomdev="$withval", use_randomdev="unspec") 647if test "$use_randomdev" = "unspec"; then 648 if test "$cross_compiling" = "yes"; then 649 AC_MSG_RESULT(unspecified) 650 AC_MSG_ERROR([ need --with-randomdev=PATH or --with-randomdev=no]) 651 fi 652 use_randomdev="/dev/random" 653elif test "$use_randomdev" = "yes"; then 654 use_randomdev="/dev/random" 655fi 656if test "$use_randomdev" = "no"; then 657 AC_MSG_RESULT(disabled) 658 BINDCONFIG="$BINDCONFIG --with-randomdev=no" 659else 660 if test "$cross_compiling" = "yes"; then 661 AC_MSG_RESULT($use_randomdev (unchecked)) 662 else 663 AC_MSG_RESULT($use_randomdev) 664 AC_CHECK_FILE($use_randomdev, 665 AC_DEFINE([HAVE_DEV_RANDOM], [1], 666 [Define to 1 if you have the /dev/random or other configured file.]), 667 AC_MSG_ERROR(cannot find $use_randomdev)) 668 fi 669 BINDCONFIG="$BINDCONFIG --with-randomdev=$use_randomdev" 670fi 671 672BINDIOMUX="--disable-kqueue --disable-epoll --disable-devpoll" 673# check kqueue/epoll/devpoll alternative to select 674AC_ARG_ENABLE(kqueue, 675 AS_HELP_STRING([--enable-kqueue],[use BSD kqueue (default is no)]), 676 want_kqueue="$enableval", want_kqueue="no") 677if test "$want_kqueue" = "yes"; then 678 BINDIOMUX="--enable-kqueue" 679 AC_MSG_WARN([--enable-kqueue is not supported: it may lead to issues such as server looping]) 680fi 681AC_ARG_ENABLE(epoll, 682 AS_HELP_STRING([--enable-epoll],[use Linux epoll (default is no)]), 683 want_epoll="$enableval", want_epoll="no") 684if test "$want_epoll" = "yes"; then 685 BINDIOMUX="--enable-epoll" 686 AC_MSG_WARN([--enable-epoll is not supported: it may lead to issues such as server looping]) 687fi 688AC_ARG_ENABLE(devpoll, 689 AS_HELP_STRING([--enable-devpoll],[use /dev/poll (default is no)]), 690 want_devpoll="$enableval", want_devpoll="no") 691if test "$want_devpoll" = "yes"; then 692 BINDIOMUX="--enable-devpoll" 693 AC_MSG_WARN([--enable-devpoll is not supported: it may lead to issues such as server looping]) 694fi 695AC_SUBST(BINDIOMUX) 696 697# general extra bind configure arguments 698AC_ARG_WITH(bind-extra-config, 699 AS_HELP_STRING([--with-bind-extra-config],[configure bind librairies 700 with some extra options (default is none)]), 701 use_xbindconfig="$withval", use_xbindconfig="") 702case "$use_xbindconfig" in 703yes|no|'') 704 ;; 705*) 706 BINDCONFIG="$BINDCONFIG $use_xbindconfig" 707 AC_MSG_WARN([Most options to bind configure are not supported when used by ISC DHCP]) 708 ;; 709esac 710 711# see if there is a "sa_len" field in our interface information structure 712AC_CHECK_MEMBER(struct sockaddr.sa_len, 713 AC_DEFINE([HAVE_SA_LEN], [], 714 [Define to 1 if the sockaddr structure has a length field.]), 715 , 716 [#include <sys/socket.h>]) 717 718# figure out pointer size 719SAVE_CFLAGS="$CFLAGS" 720CFLAGS="$CFLAGS -I$srcdir" 721AC_CHECK_SIZEOF(struct iaddr *, , [ 722#include "includes/inet.h" 723#include <stdio.h> 724]) 725CFLAGS="$SAVE_CFLAGS" 726 727# Solaris does not have the msg_control or msg_controlen members 728# in the msghdr structure unless you define: 729# 730# _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, and __EXTENSIONS__ 731# 732# See the "standards" man page for details. 733# 734# We check for the msg_control member, and if it is not found, we check 735# again with the appropriate defines added to the CFLAGS. (In order to 736# do this we have to remove the check from the cache, which is what the 737# "unset" is for.) 738AC_CHECK_MEMBER(struct msghdr.msg_control,, 739 [CFLAGS="$CFLAGS -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1" 740 CFLAGS="$CFLAGS -D__EXTENSIONS__" 741 unset ac_cv_member_struct_msghdr_msg_control 742 AC_CHECK_MEMBER(struct msghdr.msg_control,, 743 [AC_MSG_ERROR([Missing msg_control member in 744 msg_control structure.])], 745 [ 746#include <sys/types.h> 747#include <sys/socket.h> 748 ]) 749 ], 750 [ 751#include <sys/types.h> 752#include <sys/socket.h> 753 ]) 754 755AC_CHECK_MEMBER(struct tpacket_auxdata.tp_vlan_tci, 756 [AC_DEFINE([VLAN_TCI_PRESENT], [1], [tpacket_auxdata.tp_vlan_tci present])] 757 ,, [#include <linux/if_packet.h>]) 758 759# bind/Makefile.in is not from automake so we need 2 variables for bind dir 760BINDSUBDIR= 761BINDDIR= 762BINDSRCDIR= 763BINDLIBIRSDIR= 764BINDLIBDNSDIR= 765BINDLIBISCCFGDIR= 766BINDLIBISCDIR= 767DISTCHECK_LIBBIND_CONFIGURE_FLAG= 768AC_ARG_WITH(libbind, 769 AS_HELP_STRING([--with-libbind=PATH],[bind includes and libraries are in PATH]), 770 use_libbind="$withval", use_libbind="no") 771case "$use_libbind" in 772yes) 773 AC_MSG_ERROR([PATH is required in --with-libbind=PATH]) 774 ;; 775no) 776 BINDSUBDIR="\${top_srcdir}/bind" 777 my_abs_srcdir=`cd $srcdir && pwd` 778 BINDDIR="${my_abs_srcdir}/bind" 779 if test ! -d "$srcdir/bind"; then 780 AC_MSG_ERROR([Where to find or build bind includes and libraries must be specified]) 781 fi 782 if test -d "$srcdir/bind/bind9"; then 783 BINDSRCDIR="${my_abs_srcdir}/bind/bind9" 784 else 785 if test ! -f "$srcdir/bind/version.tmp"; then 786 AC_MSG_ERROR([Cannot find $srcdir/bind/version.tmp]) 787 fi 788 . "$srcdir/bind/version.tmp" 789 bindversion=${MAJORVER}.${MINORVER}.${PATCHVER}${RELEASETYPE}${RELEASEVER} 790 BINDSRCDIR="${my_abs_srcdir}/bind/bind-$bindversion" 791 fi 792 AC_CONFIG_FILES([$srcdir/bind/Makefile]) 793 794 BINDLIBIRSDIR="$BINDSRCDIR/lib/irs" 795 BINDLIBDNSDIR="$BINDSRCDIR/lib/dns" 796 BINDLIBISCCFGDIR="$BINDSRCDIR/lib/isccfg" 797 BINDLIBISCDIR="$BINDSRCDIR/lib/isc" 798 ;; 799*) 800 if test ! -d "$use_libbind"; then 801 AC_MSG_ERROR([Cannot find bind directory at $use_libbind]) 802 fi 803 if test ! -d "$use_libbind/include" -o \ 804 ! -f "$use_libbind/include/isc/buffer.h" 805 then 806 AC_MSG_ERROR([Cannot find bind includes at $use_libbind/include]) 807 fi 808 if test ! -d "$use_libbind/lib" -o \ 809 \( ! -f "$use_libbind/lib/libisc.a" -a \ 810 ! -f "$use_libbind/lib/libisc.la" \) 811 then 812 AC_MSG_ERROR([Cannot find bind libraries at $use_libbind/lib]) 813 fi 814 BINDDIR="$use_libbind" 815 BINDLIBIRSDIR="$BINDDIR/lib" 816 BINDLIBDNSDIR="$BINDDIR/lib" 817 BINDLIBISCCFGDIR="$BINDDIR/lib" 818 BINDLIBISCDIR="$BINDDIR/lib" 819 DISTCHECK_LIBBIND_CONFIGURE_FLAG="--with-libbind=$use_libbind" 820 ;; 821esac 822AC_SUBST(BINDSUBDIR) 823AC_SUBST(BINDDIR) 824AC_SUBST(BINDSRCDIR) 825AC_SUBST(BINDLIBIRSDIR) 826AC_SUBST(BINDLIBDNSDIR) 827AC_SUBST(BINDLIBISCCFGDIR) 828AC_SUBST(BINDLIBISCDIR) 829AC_SUBST(DISTCHECK_LIBBIND_CONFIGURE_FLAG) 830AM_CONDITIONAL(HAVE_BINDDIR, test "$use_libbind" = "no") 831 832# 833# GNU libtool support 834# 835case "$build_os" in 836 sunos*) 837 # Just set the maximum command line length for sunos 838 # as it otherwise takes a exceptionally long time to 839 # work it out. Required for libtool. 840 841 lt_cv_sys_max_cmd_len=4096 842 ;; 843esac 844 845want_libtool="no" 846 847BINDLT= 848DISTCHECK_LIBTOOL_CONFIGURE_FLAG= 849AC_ARG_ENABLE(libtool, 850 AS_HELP_STRING([--enable-libtool], 851[use GNU libtool for dynamic shared libraries (default is no).]), 852 want_libtool="$enableval") 853 854if test "$use_libbind" != "no"; then 855 if test "$want_libtool" = "yes" -a \ 856 ! -f "$use_libbind/lib/libisc.la" 857 then 858 AC_MSG_ERROR([Cannot find dynamic libraries at $use_libbind/lib]) 859 fi 860 if test "$want_libtool" = "no" -a \ 861 ! -f "$use_libbind/lib/libisc.a" 862 then 863 AC_MSG_ERROR([Cannot find static libraries at $use_libbind/lib]) 864 fi 865fi 866 867 868if test "$want_libtool" = "yes"; then 869 AC_MSG_WARN([legacy configure is used but libtool is enabled. Trying to recover...]) 870 # expand $ac_configure_args 871 eval "set my_configure_args $ac_configure_args" 872 shift 873 cd $srcdir; exec ./config+lt "$@" 874 AC_MSG_ERROR([Recovering failed]) 875fi 876 877DHLIBS=LIBRARIES 878A=a 879 880AC_SUBST(DHLIBS) 881AC_SUBST(A) 882AC_SUBST(BINDLT) 883AC_SUBST(DISTCHECK_LIBTOOL_CONFIGURE_FLAG) 884 885# quoting in Makefile.am.in 886Q=@ 887AC_SUBST(Q) 888 889# install bind includes and libraries 890 891want_install_bind="no" 892if test "$want_libtool" = "yes"; then 893 want_install_bind="yes" 894fi 895if test "$use_libbind" != "no"; then 896 want_install_bind="no" 897fi 898AC_ARG_ENABLE(bind_install, 899 AS_HELP_STRING([--enable-bind-install], 900[install bind includes and libraries (default is no).]), 901 want_install_bind="$enableval") 902if test "$want_install_bind" = "yes"; then 903 if test "$use_libbind" != "no"; then 904 AC_MSG_WARN([--enable-bind-install does nothing when --with-libbind is set]) 905 fi 906elif test "$want_libtool" = "yes" -a "$use_libbind" = "no"; then 907 AC_MSG_WARN([embedded dynamic bind libraries must be installed]) 908fi 909AM_CONDITIONAL(INSTALL_BIND, test "$want_install_bind" = "yes") 910 911# OpenLDAP support. 912AC_ARG_WITH(ldap, 913 AS_HELP_STRING([--with-ldap],[enable OpenLDAP support in dhcpd (default is no)]), 914 [ldap=$withval], 915 [ldap=no]) 916 917# OpenLDAP with SSL support. 918AC_ARG_WITH(ldapcrypto, 919 AS_HELP_STRING([--with-ldapcrypto],[enable OpenLDAP crypto support in dhcpd (default is no)]), 920 [ldapcrypto=$withval], 921 [ldapcrypto=no]) 922 923# Gssapi to allow LDAP to authenticate with a keytab 924AC_ARG_WITH(ldap-gssapi, 925 AC_HELP_STRING([--with-ldap-gssapi], 926 [enable krb5/gssapi authentication for OpenLDAP in dhcpd (default is no)]), 927 [ldap_gssapi=$withval], 928 [ldap_gssapi=no]) 929 930 931# LDAP CASA auth support. 932AC_ARG_WITH(ldapcasa, 933 AC_HELP_STRING([--with-ldapcasa], 934 [enable LDAP CASA auth support in dhcpd (default is no)]), 935 [ldapcasa=$withval], 936 [ldapcasa=no]) 937 938# OpenLDAP support is disabled by default, if enabled then SSL support is an 939# extra optional that is also disabled by default. Enabling LDAP SSL support 940# implies enabling LDAP support. Similarly, KRB5 support implies LDAP support, 941# but doesn't include SSL. The two are not dependant. 942if test x$ldap = xyes || test x$ldapcrypto = xyes || test x$ldap_gssapi = xyes; then 943 saved_LIBS="$LIBS" 944 LIBS="" 945 AC_SEARCH_LIBS(ldap_initialize, [ldap], , 946 AC_MSG_FAILURE([*** Cannot find ldap_initialize with -lldap - do you need to install an OpenLDAP2 Devel package?])) 947 AC_SEARCH_LIBS(ber_pvt_opt_on, [lber], , 948 AC_MSG_FAILURE([*** Cannot find ber_pvt_opt_on with -llber - do you need to install an OpenLDAP2 Devel package?])) 949 if test x$ldap_gssapi = xyes ; then 950 AC_SEARCH_LIBS(krb5_init_context, [krb5], , 951 AC_MSG_FAILURE([*** Cannot find krb5_init_context with -lkrb5 - do you need to install a Kerberos Devel package?])) 952 fi 953 954 # Create LDAP_LIBS which we specify them explicitly rather than lumping them in with LIBS 955 AC_SUBST(LDAP_LIBS, [$LIBS]) 956 LIBS="$saved_LIBS" 957 958 959 AC_CHECK_HEADERS([ldap.h]) 960 AC_CHECK_FUNCS([inet_pton inet_ntop]) 961 962 963 LDAP_CFLAGS="-DLDAP_CONFIGURATION" 964 965 if test x$ldapcasa = xyes ; then 966 AC_CHECK_HEADERS([micasa_mgmd.h],[ 967 LDAP_CFLAGS="$LDAP_CFLAGS -DLDAP_CASA_AUTH" 968 ], AC_MSG_FAILURE([*** Cannot find micasa_mgmd.h for ldap casa auth support])) 969 fi 970 971 if test x$ldapcrypto = xyes ; then 972 LDAP_CFLAGS="$LDAP_CFLAGS -DLDAP_USE_SSL" 973 fi 974 975 if test x$ldap_gssapi = xyes; then 976 LDAP_CFLAGS="$LDAP_CFLAGS -DLDAP_USE_GSSAPI" 977 fi 978 979 AC_SUBST(LDAP_CFLAGS, [$LDAP_CFLAGS]) 980fi 981 982# Append selected warning levels to CFLAGS before substitution (but after 983# AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[],[]) & etc). 984CFLAGS="$CFLAGS $STD_CWARNINGS" 985 986# Try to add the bind and dhcp include directories 987CFLAGS="$CFLAGS -I\$(top_srcdir)/includes -I$BINDDIR/include" 988 989case "$host" in 990*-darwin*) 991 CFLAGS="$CFLAGS -D__APPLE_USE_RFC_3542";; 992*-solaris*) 993 # As of Solaris 11, ethernet dev files are in /dev/net 994 AC_CHECK_FILE(/dev/net, 995 [AC_DEFINE([USE_DEV_NET], [1], 996 [Define to 1 if ethernet devices are in /dev/net])]) 997 ;; 998esac 999 1000AC_C_FLEXIBLE_ARRAY_MEMBER 1001 1002AC_CONFIG_FILES([ 1003 Makefile 1004 client/Makefile 1005 client/tests/Makefile 1006 common/Makefile.am 1007 common/Makefile 1008 common/tests/Makefile 1009 dhcpctl/Makefile.am 1010 dhcpctl/Makefile 1011 includes/Makefile 1012 omapip/Makefile.am 1013 omapip/Makefile 1014 relay/Makefile 1015 server/Makefile 1016 tests/Makefile.am 1017 tests/Makefile 1018 tests/unittest.sh 1019 server/tests/Makefile 1020 doc/devel/doxyfile 1021]) 1022AC_OUTPUT 1023 1024 1025if test "$enable_dhcpv4o6" = "yes"; then 1026 DHCP_VERSIONS="DHCPv4, DHCPv6 and DHCPv4-over-DHCPv6" 1027elif test "$enable_dhcpv6" != "no"; then 1028 DHCP_VERSIONS="DHCPv4 and DHCPv6" 1029else 1030 DHCP_VERSIONS="DHCPv4" 1031fi 1032 1033cat > config.report << END 1034 1035 ISC DHCP source configure results: 1036 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 1037 1038Package: 1039 Name: $PACKAGE_NAME 1040 Version: $PACKAGE_VERSION 1041 1042C Compiler: $CC 1043 1044Flags: 1045 DEFS: $DEFS 1046 CFLAGS: $CFLAGS 1047 1048DHCP versions: $DHCP_VERSIONS 1049 1050Features: 1051 debug: $enable_debug 1052 failover: $enable_failover 1053 execute: $enable_execute 1054 binary-leases: $enable_binary_leases 1055 dhcpv6: $enable_dhcpv6 1056 delayed-ack: $enable_delayed_ack 1057 dhcpv4o6: $enable_dhcpv4o6 1058 relay-port: $enable_relay_port 1059 1060Developer: 1061 ATF unittests : $atf_path 1062 1063END 1064# TODO: Add Perl system tests 1065 1066if test "$atf_path" != "no" 1067then 1068echo "ATF_CFLAGS : $ATF_CFLAGS" >> config.report 1069echo "ATF_LDFLAGS : $ATF_LDFLAGS" >> config.report 1070echo "ATF_BIN : $ATF_BIN" >> config.report 1071echo 1072fi 1073 1074cat config.report 1075 1076echo 1077echo Now you can type "make" to build ISC DHCP 1078echo 1079