summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Markwalder <tmark@isc.org>2016-01-07 09:53:39 -0500
committerThomas Markwalder <tmark@isc.org>2016-01-07 09:53:39 -0500
commitcacce092a434cf5a8d581ada72c7b12217dbe10b (patch)
tree565f57470b2f6f8d7a77d85b3def79d0e4a6b6e2
parent825c459c4b71c89bc746ccc8a2c8a8148dc3ecd9 (diff)
downloadisc-dhcp-cacce092a434cf5a8d581ada72c7b12217dbe10b.tar.gz
[master] Added make tool and pkg-config tests to configure script
Merges in rt40371.
-rw-r--r--Makefile.in1
-rw-r--r--RELNOTES11
-rw-r--r--client/Makefile.in1
-rw-r--r--client/tests/Makefile.in1
-rw-r--r--common/Makefile.in1
-rw-r--r--common/tests/Makefile.in1
-rwxr-xr-xconfigure44
-rw-r--r--configure.ac51
-rw-r--r--dhcpctl/Makefile.in1
-rw-r--r--includes/Makefile.in1
-rw-r--r--omapip/Makefile.in1
-rw-r--r--relay/Makefile.in1
-rw-r--r--server/Makefile.in1
-rw-r--r--server/tests/Makefile.in1
-rw-r--r--tests/Makefile.in1
-rw-r--r--util/bindvar.sh13
16 files changed, 106 insertions, 25 deletions
diff --git a/Makefile.in b/Makefile.in
index 5a0d5595..59b219c6 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -327,6 +327,7 @@ mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgcfg_found = @pkgcfg_found@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
diff --git a/RELNOTES b/RELNOTES
index 500314d3..aa72b1b8 100644
--- a/RELNOTES
+++ b/RELNOTES
@@ -136,6 +136,13 @@ by Eric Young (eay@cryptsoft.com).
to the usage string. This may be disabled by editing includes/site.h.
[ISC-Bugs #40321]
+- The configure script will now exit with an error message if it cannot find
+ a GNU-style make tool (needed when building BIND libraries) or pkg-config
+ (needed to locate ATF used for building unit tests). Prior to this the
+ script would exit indicating success causing subsequent attempts to build
+ the software to fail.
+ [ISC-Bugs #40371]
+
Changes since 4.3.3b1
- None
@@ -182,7 +189,7 @@ by Eric Young (eay@cryptsoft.com).
[ISC-Buts #39019]
- Write out the DUID server id on startup in all cases, previously if it
- was read in from server-duid option in the config or lease files for
+ was read in from server-duid option in the config or lease files for
DHCPv4 it would not be written to the new lease file.
[ISC-Bugs #37791]
@@ -232,7 +239,7 @@ by Eric Young (eay@cryptsoft.com).
declaring the lease file corrupt and incorrectly skipping over the subsequent
entry in the file. The server will now emit a log message indicating that
no pool was found for the address (or prefix) and correctly resume parsing
- with the next entry in the lease file. Our thanks to Michal Žejdl for
+ with the next entry in the lease file. Our thanks to Michal Žejdl for
reporting the issue.
[ISC-Bugs #39314]
diff --git a/client/Makefile.in b/client/Makefile.in
index a6590829..cfc2f5cc 100644
--- a/client/Makefile.in
+++ b/client/Makefile.in
@@ -335,6 +335,7 @@ mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgcfg_found = @pkgcfg_found@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
diff --git a/client/tests/Makefile.in b/client/tests/Makefile.in
index 82daa79a..840d85c9 100644
--- a/client/tests/Makefile.in
+++ b/client/tests/Makefile.in
@@ -307,6 +307,7 @@ mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgcfg_found = @pkgcfg_found@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
diff --git a/common/Makefile.in b/common/Makefile.in
index 7c49bed2..0a60686f 100644
--- a/common/Makefile.in
+++ b/common/Makefile.in
@@ -341,6 +341,7 @@ mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgcfg_found = @pkgcfg_found@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
diff --git a/common/tests/Makefile.in b/common/tests/Makefile.in
index 7b648a4b..5bfe96cd 100644
--- a/common/tests/Makefile.in
+++ b/common/tests/Makefile.in
@@ -345,6 +345,7 @@ mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgcfg_found = @pkgcfg_found@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
diff --git a/configure b/configure
index 08dfc51b..fc9fc648 100755
--- a/configure
+++ b/configure
@@ -631,6 +631,7 @@ BINDDIR
ac_prefix_program
HAVE_ATF_FALSE
HAVE_ATF_TRUE
+pkgcfg_found
ATF_BIN
ATF_LDFLAGS
ATF_CFLAGS
@@ -5525,6 +5526,46 @@ elif test "$atf_path" != "no" ; then
if test "$atf_pcp" = "" ; then
as_fn_error $? "Unable to find atf files in location specified" "$LINENO" 5
else
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_pkgcfg_found+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$pkgcfg_found"; then
+ ac_cv_prog_pkgcfg_found="$pkgcfg_found" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_pkgcfg_found="pkg-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+pkgcfg_found=$ac_cv_prog_pkgcfg_found
+if test -n "$pkgcfg_found"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pkgcfg_found" >&5
+$as_echo "$pkgcfg_found" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "$pkgcfg_found" = ""; then
+ as_fn_error $? "Could not locate ATF, pkg-config not installed" "$LINENO" 5
+ fi
ATF_CFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --cflags atf-c` -DUNIT_TEST"
ATF_LDFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --libs atf-c`"
if test -f $atf_pcp/atf-sh.pc ; then
@@ -8498,6 +8539,9 @@ fi
sh util/bindvar.sh
+if test $? -ne 0; then
+ as_fn_error $? "*** util/bindvar.sh failed" "$LINENO" 5
+fi
cat > config.report << END
diff --git a/configure.ac b/configure.ac
index b6bf9c87..9fe247ca 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,11 +9,11 @@ AM_INIT_AUTOMAKE([foreign])
# change the timestamps on the code, like checking it into a cvs
# tree, could trigger a rebuild of the infrastructure files which
# might fail if they don't have the correct tools.
-AM_MAINTAINER_MODE
+AM_MAINTAINER_MODE
AC_CANONICAL_HOST
-# We want to turn on warnings if we are using gcc and the user did
+# We want to turn on warnings if we are using gcc and the user did
# not specify CFLAGS. The autoconf check for the C compiler sets the
# CFLAGS if gcc is used, so we will save it before we run that check.
SAVE_CFLAGS="$CFLAGS"
@@ -51,9 +51,9 @@ AC_PROG_RANLIB
AC_CONFIG_HEADERS([includes/config.h])
# we sometimes need to know byte order for building packets
-AC_C_BIGENDIAN(AC_SUBST(byte_order, BIG_ENDIAN),
+AC_C_BIGENDIAN(AC_SUBST(byte_order, BIG_ENDIAN),
AC_SUBST(byte_order, LITTLE_ENDIAN))
-AC_DEFINE_UNQUOTED([DHCP_BYTE_ORDER], [$byte_order],
+AC_DEFINE_UNQUOTED([DHCP_BYTE_ORDER], [$byte_order],
[Define to BIG_ENDIAN for MSB (Motorola or SPARC CPUs)
or LITTLE_ENDIAN for LSB (Intel CPUs).])
@@ -135,7 +135,7 @@ AC_ARG_ENABLE(dhcpv6,
# DHCPv6 is on by default, so define if it is not explicitly disabled.
if test "$enable_dhcpv6" != "no"; then
enable_dhcpv6="yes"
- AC_DEFINE([DHCPv6], [1],
+ AC_DEFINE([DHCPv6], [1],
[Define to 1 to include DHCPv6 support.])
fi
@@ -251,6 +251,10 @@ elif test "$atf_path" != "no" ; then
if test "$atf_pcp" = "" ; then
AC_MSG_ERROR([Unable to find atf files in location specified])
else
+ AC_CHECK_PROG([pkgcfg_found],[pkg-config],[pkg-config],[])
+ if test "$pkgcfg_found" = ""; then
+ AC_MSG_ERROR([Could not locate ATF, pkg-config not installed])
+ fi
ATF_CFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --cflags atf-c` -DUNIT_TEST"
ATF_LDFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --libs atf-c`"
if test -f $atf_pcp/atf-sh.pc ; then
@@ -294,7 +298,7 @@ esac
# Allow specification of alternate state files
AC_ARG_WITH(srv-lease-file,
- AS_HELP_STRING([--with-srv-lease-file=PATH],[File for dhcpd leases
+ AS_HELP_STRING([--with-srv-lease-file=PATH],[File for dhcpd leases
(default is LOCALSTATEDIR/db/dhcpd.leases)]),
AC_DEFINE_UNQUOTED([_PATH_DHCPD_DB], ["$withval"],
[File for dhcpd leases.]))
@@ -324,7 +328,7 @@ fi
AC_MSG_RESULT($with_srv_lease_file)
AC_ARG_WITH(srv6-lease-file,
- AS_HELP_STRING([--with-srv6-lease-file=PATH],[File for dhcpd6 leases
+ AS_HELP_STRING([--with-srv6-lease-file=PATH],[File for dhcpd6 leases
(default is LOCALSTATEDIR/db/dhcpd6.leases)]),
AC_DEFINE_UNQUOTED([_PATH_DHCPD6_DB], ["$withval"],
[File for dhcpd6 leases.]))
@@ -354,7 +358,7 @@ fi
AC_MSG_RESULT($with_srv6_lease_file)
AC_ARG_WITH(cli-lease-file,
- AS_HELP_STRING([--with-cli-lease-file=PATH],[File for dhclient leases
+ AS_HELP_STRING([--with-cli-lease-file=PATH],[File for dhclient leases
(default is LOCALSTATEDIR/db/dhclient.leases)]),
AC_DEFINE_UNQUOTED([_PATH_DHCLIENT_DB], ["$withval"],
[File for dhclient leases.]))
@@ -384,7 +388,7 @@ fi
AC_MSG_RESULT($with_cli_lease_file)
AC_ARG_WITH(cli6-lease-file,
- AS_HELP_STRING([--with-cli6-lease-file=PATH],[File for dhclient6 leases
+ AS_HELP_STRING([--with-cli6-lease-file=PATH],[File for dhclient6 leases
(default is LOCALSTATEDIR/db/dhclient6.leases)]),
AC_DEFINE_UNQUOTED([_PATH_DHCLIENT6_DB], ["$withval"],
[File for dhclient6 leases.]))
@@ -486,20 +490,20 @@ AC_CHECK_HEADER(linux/filter.h, DO_LPF=1, ,
])
if test -n "$DO_LPF"
then
- AC_DEFINE([HAVE_LPF], [1],
+ AC_DEFINE([HAVE_LPF], [1],
[Define to 1 to use the Linux Packet Filter interface code.])
else
AC_CHECK_HEADER(sys/dlpi.h, DO_DLPI=1)
if test -n "$DO_DLPI"
then
- AC_DEFINE([HAVE_DLPI], [1],
+ AC_DEFINE([HAVE_DLPI], [1],
[Define to 1 to use DLPI interface code.])
else
AC_CHECK_HEADER(net/bpf.h, DO_BPF=1)
if test -n "$DO_BPF"
then
AC_DEFINE([HAVE_BPF], [1],
- [Define to 1 to use the
+ [Define to 1 to use the
Berkeley Packet Filter interface code.])
fi
fi
@@ -553,8 +557,8 @@ AC_CHECK_HEADERS(sys/socket.h net/if_dl.h net/if6.h regex.h)
AC_SEARCH_LIBS(socket, [socket])
AC_SEARCH_LIBS(inet_ntoa, [nsl])
-AC_SEARCH_LIBS(inet_aton, [socket nsl], ,
- AC_DEFINE([NEED_INET_ATON], [1],
+AC_SEARCH_LIBS(inet_aton, [socket nsl], ,
+ AC_DEFINE([NEED_INET_ATON], [1],
[Define to 1 if the inet_aton() function is missing.]))
# Check for a standalone regex library.
@@ -567,12 +571,12 @@ AC_SEARCH_LIBS(if_nametoindex, [ipv6])
# check for /dev/random (declares HAVE_DEV_RANDOM)
AC_CHECK_FILE(/dev/random,
- AC_DEFINE([HAVE_DEV_RANDOM], [1],
+ AC_DEFINE([HAVE_DEV_RANDOM], [1],
[Define to 1 if you have the /dev/random file.]))
# see if there is a "sa_len" field in our interface information structure
AC_CHECK_MEMBER(struct sockaddr.sa_len,
- AC_DEFINE([HAVE_SA_LEN], [],
+ AC_DEFINE([HAVE_SA_LEN], [],
[Define to 1 if the sockaddr structure has a length field.]),
,
[#include <sys/socket.h>])
@@ -583,13 +587,13 @@ AC_CHECK_SIZEOF(struct iaddr *, , [
#include <stdio.h>
])
-# Solaris does not have the msg_control or msg_controlen members
+# Solaris does not have the msg_control or msg_controlen members
# in the msghdr structure unless you define:
#
# _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, and __EXTENSIONS__
-#
+#
# See the "standards" man page for details.
-#
+#
# We check for the msg_control member, and if it is not found, we check
# again with the appropriate defines added to the CFLAGS. (In order to
# do this we have to remove the check from the cache, which is what the
@@ -599,7 +603,7 @@ AC_CHECK_MEMBER(struct msghdr.msg_control,,
CFLAGS="$CFLAGS -D__EXTENSIONS__"
unset ac_cv_member_struct_msghdr_msg_control
AC_CHECK_MEMBER(struct msghdr.msg_control,,
- [AC_MSG_ERROR([Missing msg_control member in
+ [AC_MSG_ERROR([Missing msg_control member in
msg_control structure.])],
[
#include <sys/types.h>
@@ -617,10 +621,10 @@ AC_CHECK_MEMBER(struct tpacket_auxdata.tp_vlan_tci,
BINDDIR=
AC_ARG_WITH(libbind,
- AS_HELP_STRING([--with-libbind=PATH],[bind includes and libraries are in PATH
+ AS_HELP_STRING([--with-libbind=PATH],[bind includes and libraries are in PATH
(default is ./bind)]),
use_libbind="$withval", use_libbind="no")
-case "$use_libbind" in
+case "$use_libbind" in
yes)
BINDDIR="\${top_srcdir}/bind"
;;
@@ -749,6 +753,9 @@ AC_CONFIG_FILES([
AC_OUTPUT
sh util/bindvar.sh
+if test $? -ne 0; then
+ AC_MSG_ERROR([*** util/bindvar.sh failed])
+fi
cat > config.report << END
diff --git a/dhcpctl/Makefile.in b/dhcpctl/Makefile.in
index 96725abd..37481015 100644
--- a/dhcpctl/Makefile.in
+++ b/dhcpctl/Makefile.in
@@ -311,6 +311,7 @@ mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgcfg_found = @pkgcfg_found@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
diff --git a/includes/Makefile.in b/includes/Makefile.in
index deb0ac80..1c1a590c 100644
--- a/includes/Makefile.in
+++ b/includes/Makefile.in
@@ -264,6 +264,7 @@ mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgcfg_found = @pkgcfg_found@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
diff --git a/omapip/Makefile.in b/omapip/Makefile.in
index b3cdff84..ae49faac 100644
--- a/omapip/Makefile.in
+++ b/omapip/Makefile.in
@@ -306,6 +306,7 @@ mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgcfg_found = @pkgcfg_found@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
diff --git a/relay/Makefile.in b/relay/Makefile.in
index 27dd989d..9a0451fe 100644
--- a/relay/Makefile.in
+++ b/relay/Makefile.in
@@ -287,6 +287,7 @@ mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgcfg_found = @pkgcfg_found@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
diff --git a/server/Makefile.in b/server/Makefile.in
index 9778464f..dc880e7d 100644
--- a/server/Makefile.in
+++ b/server/Makefile.in
@@ -351,6 +351,7 @@ mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgcfg_found = @pkgcfg_found@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
diff --git a/server/tests/Makefile.in b/server/tests/Makefile.in
index a4fa2adb..9c37fc50 100644
--- a/server/tests/Makefile.in
+++ b/server/tests/Makefile.in
@@ -367,6 +367,7 @@ mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgcfg_found = @pkgcfg_found@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 22a5ea0a..792a2186 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -259,6 +259,7 @@ mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgcfg_found = @pkgcfg_found@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
diff --git a/util/bindvar.sh b/util/bindvar.sh
index 30ecd906..184a4cc0 100644
--- a/util/bindvar.sh
+++ b/util/bindvar.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2009,2015 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
@@ -20,6 +20,9 @@
# use by the bind/Makefile, we do this to minimize portability
# concerns.
+# Bind requires a GNU style make to compile, if we can't find one
+# exit with a non-zero status, otherwise exit with success (i.e. 0)
+
binddir=`pwd`
gmake=
for x in gmake gnumake make; do
@@ -29,7 +32,15 @@ for x in gmake gnumake make; do
fi
done
+if [ -z $gmake ]
+then
+ echo "$0: Building Bind requires a GNU style make tool and none were found in your path. We tried gmake, gnumake, and make."
+ exit 1
+fi
+
cat <<EOF > bind/bindvar.tmp
binddir=$binddir/bind
GMAKE=$gmake
EOF
+
+exit 0