From: Francis Dupont Date: Mon, 19 Sep 2016 12:12:07 +0000 (+0200) Subject: Tentative (works with distcheck, with-libbind to be checked X-Git-Tag: v4_4_0b1_f1~132^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7a6146d8bf879ee181e6aa6ae6704a7b004e12ad;p=thirdparty%2Fdhcp.git Tentative (works with distcheck, with-libbind to be checked --- diff --git a/Makefile.am b/Makefile.am index 1f31e6a20..2371e1de9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -22,7 +22,7 @@ EXTRA_DIST = RELNOTES LICENSE \ doc/examples/dhclient-dhcpv6.conf doc/examples/dhcpd-dhcpv6.conf \ doc/devel/arch.dox doc/devel/atf.dox doc/devel/contrib.dox \ doc/devel/debug.dox doc/devel/isc-logo.jpg doc/devel/mainpage.dox \ - doc/devel/omapi.dox doc/devel/qa.dox util/bindvar.sh \ + doc/devel/omapi.dox doc/devel/qa.dox \ bind/Makefile.in bind/bind.tar.gz bind/version.tmp \ common/tests/Atffile server/tests/Atffile diff --git a/Makefile.in b/Makefile.in index b914a8367..2dac656d4 100644 --- a/Makefile.in +++ b/Makefile.in @@ -362,7 +362,7 @@ EXTRA_DIST = RELNOTES LICENSE \ doc/examples/dhclient-dhcpv6.conf doc/examples/dhcpd-dhcpv6.conf \ doc/devel/arch.dox doc/devel/atf.dox doc/devel/contrib.dox \ doc/devel/debug.dox doc/devel/isc-logo.jpg doc/devel/mainpage.dox \ - doc/devel/omapi.dox doc/devel/qa.dox util/bindvar.sh \ + doc/devel/omapi.dox doc/devel/qa.dox \ bind/Makefile.in bind/bind.tar.gz bind/version.tmp \ common/tests/Atffile server/tests/Atffile diff --git a/configure b/configure index 4f4552f09..c0d8cd46d 100755 --- a/configure +++ b/configure @@ -627,6 +627,8 @@ LTLIBOBJS LIBOBJS LDAP_CFLAGS LDAP_LIBS +BINDVERSION +BINDBIND BINDSRCDIR BINDDIR ac_prefix_program @@ -1473,8 +1475,7 @@ Optional Packages: File for dhcrelay6 process information (default is LOCALSTATEDIR/run/dhcrelay6.pid) --with-randomdev=PATH Path for random device (default is /dev/random) - --with-libbind=PATH bind includes and libraries are in PATH (default is - ./bind) + --with-libbind=PATH bind includes and libraries are in PATH --with-ldap enable OpenLDAP support in dhcpd (default is no) --with-ldapcrypto enable OpenLDAP crypto support in dhcpd (default is no) @@ -6822,8 +6823,11 @@ $as_echo "#define VLAN_TCI_PRESENT 1" >>confdefs.h fi +# bind/Makefile.in is not from automake so we need 2 sets of variables BINDDIR= BINDSRCDIR= +BINDBIND= +BINDVERSION= # Check whether --with-libbind was given. if test "${with_libbind+set}" = set; then : @@ -6834,31 +6838,33 @@ fi case "$use_libbind" in yes) - BINDDIR="\${top_srcdir}/bind" - BINDSRCDIR="\${top_srcdir}/bind" + as_fn_error $? "PATH is required in --with-libbind=PATH" "$LINENO" 5 ;; no) BINDDIR="\${top_srcdir}/bind" BINDSRCDIR="\${top_srcdir}/bind" + if test ! -d "$srcdir/bind"; then + as_fn_error $? "Where to find or build bind includes and libraries must be specified" "$LINENO" 5 + fi + if test ! -f "$srcdir/bind/version.tmp"; then + as_fn_error $? "Cannot find $srcdir/bind/version.tmp" "$LINENO" 5 + fi + my_abs_srcdir=`cd $srcdir && pwd` + BINDBIND="${my_abs_srcdir}/bind" + . "$srcdir/bind/version.tmp" + BINDVERSION=${MAJORVER}.${MINORVER}.${PATCHVER}${RELEASETYPE}${RELEASEVER} + ac_config_files="$ac_config_files $srcdir/bind/Makefile" + ;; *) BINDDIR="$use_libbind" - if test ! -d "$srcdir/bind"; then - # no bind directory, create it with a fake Makefile.in - # (AC_CONFIG_FILES and top Makefile refer to it so - # it must exits) - mkdir $srcdir/bind - cat > $srcdir/bind/Makefile.in << EOF -# placeholder -all check clean distclean distdir install uninstall: - -EOF - fi ;; esac + + # OpenLDAP support. # Check whether --with-ldap was given. @@ -7240,7 +7246,7 @@ $as_echo "#define FLEXIBLE_ARRAY_MEMBER /**/" >>confdefs.h fi -ac_config_files="$ac_config_files Makefile $srcdir/bind/Makefile client/Makefile client/tests/Makefile common/Makefile common/tests/Makefile dhcpctl/Makefile includes/Makefile omapip/Makefile relay/Makefile server/Makefile tests/Makefile tests/unittest.sh server/tests/Makefile doc/devel/doxyfile" +ac_config_files="$ac_config_files Makefile client/Makefile client/tests/Makefile common/Makefile common/tests/Makefile dhcpctl/Makefile includes/Makefile omapip/Makefile relay/Makefile server/Makefile tests/Makefile tests/unittest.sh server/tests/Makefile doc/devel/doxyfile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -7986,8 +7992,8 @@ do case $ac_config_target in "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "includes/config.h") CONFIG_HEADERS="$CONFIG_HEADERS includes/config.h" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "$srcdir/bind/Makefile") CONFIG_FILES="$CONFIG_FILES $srcdir/bind/Makefile" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "client/Makefile") CONFIG_FILES="$CONFIG_FILES client/Makefile" ;; "client/tests/Makefile") CONFIG_FILES="$CONFIG_FILES client/tests/Makefile" ;; "common/Makefile") CONFIG_FILES="$CONFIG_FILES common/Makefile" ;; @@ -8697,16 +8703,6 @@ else DHCP_VERSIONS="DHCPv4" fi -(cd $srcdir - sh util/bindvar.sh - if test $? -ne 0; then - as_fn_error $? "*** util/bindvar.sh failed" "$LINENO" 5 - fi -) -if test $? -ne 0; then - exit $? -fi - cat > config.report << END ISC DHCP source configure results: diff --git a/configure.ac b/configure.ac index 8b58835c4..abf2475b9 100644 --- a/configure.ac +++ b/configure.ac @@ -679,38 +679,41 @@ AC_CHECK_MEMBER(struct tpacket_auxdata.tp_vlan_tci, [AC_DEFINE([VLAN_TCI_PRESENT], [1], [tpacket_auxdata.tp_vlan_tci present])] ,, [#include ]) +# bind/Makefile.in is not from automake so we need 2 sets of variables BINDDIR= BINDSRCDIR= +BINDBIND= +BINDVERSION= AC_ARG_WITH(libbind, - AS_HELP_STRING([--with-libbind=PATH],[bind includes and libraries are in PATH - (default is ./bind)]), + AS_HELP_STRING([--with-libbind=PATH],[bind includes and libraries are in PATH]), use_libbind="$withval", use_libbind="no") case "$use_libbind" in yes) - BINDDIR="\${top_srcdir}/bind" - BINDSRCDIR="\${top_srcdir}/bind" + AC_MSG_ERROR([PATH is required in --with-libbind=PATH]) ;; no) BINDDIR="\${top_srcdir}/bind" BINDSRCDIR="\${top_srcdir}/bind" + if test ! -d "$srcdir/bind"; then + AC_MSG_ERROR([Where to find or build bind includes and libraries must be specified]) + fi + if test ! -f "$srcdir/bind/version.tmp"; then + AC_MSG_ERROR([Cannot find $srcdir/bind/version.tmp]) + fi + my_abs_srcdir=`cd $srcdir && pwd` + BINDBIND="${my_abs_srcdir}/bind" + . "$srcdir/bind/version.tmp" + BINDVERSION=${MAJORVER}.${MINORVER}.${PATCHVER}${RELEASETYPE}${RELEASEVER} + AC_CONFIG_FILES([$srcdir/bind/Makefile]) ;; *) BINDDIR="$use_libbind" - if test ! -d "$srcdir/bind"; then - # no bind directory, create it with a fake Makefile.in - # (AC_CONFIG_FILES and top Makefile refer to it so - # it must exits) - mkdir $srcdir/bind - cat > $srcdir/bind/Makefile.in << EOF -# placeholder -all check clean distclean distdir install uninstall: - -EOF - fi ;; esac AC_SUBST(BINDDIR) AC_SUBST(BINDSRCDIR) +AC_SUBST(BINDBIND) +AC_SUBST(BINDVERSION) # OpenLDAP support. AC_ARG_WITH(ldap, @@ -805,7 +808,6 @@ AC_C_FLEXIBLE_ARRAY_MEMBER AC_CONFIG_FILES([ Makefile - $srcdir/bind/Makefile client/Makefile client/tests/Makefile common/Makefile @@ -830,16 +832,6 @@ else DHCP_VERSIONS="DHCPv4" fi -(cd $srcdir - sh util/bindvar.sh - if test $? -ne 0; then - AC_MSG_ERROR([*** util/bindvar.sh failed]) - fi -) -if test $? -ne 0; then - exit $? -fi - cat > config.report << END ISC DHCP source configure results: diff --git a/util/Makefile.bind.in b/util/Makefile.bind.in index 495e3919e..25cf5c321 100644 --- a/util/Makefile.bind.in +++ b/util/Makefile.bind.in @@ -15,15 +15,8 @@ # Configure and build the bind libraries for use by DHCP -include ./version.tmp -version=${MAJORVER}.${MINORVER}.${PATCHVER}${RELEASETYPE}${RELEASEVER} - -# bindvar.tmp is constructed by configure, it has the paths for bind -# if GMAKE is blank the shell script couldn't find a gmake to use. -# binddir= -# GMAKE= -include ./bindvar.tmp - +binddir=@BINDBIND@ +version=@BINDVERSION@ bindsrcdir=bind-${version} bindconfig = --disable-kqueue --disable-epoll --disable-devpoll \ @@ -47,11 +40,6 @@ bind1: gunzip -c bind.tar.gz | tar xf - ; \ fi - @if test -z "${GMAKE}"; then \ - echo "unable to find gmake" 1>&2 ; \ - exit 1; \ - fi - # Configure the export libraries # Currently disable the epoll, devpoll and kqueue options as they # don't interact well with the DHCP code. @@ -74,7 +62,7 @@ atf: else \ echo Building ATF support ; \ (cd ${bindsrcdir}/unit; \ - MAKE=${GMAKE} ${GMAKE} atf > ${binddir}/build.log ; \ + $(MAKE) atf > ${binddir}/build.log ; \ cp -rp atf ${binddir}) ; \ fi @@ -90,11 +78,11 @@ bind2-noguest: echo Building BIND Export libraries - this takes some time. ;\ (cd ${bindsrcdir}/lib/export ; \ echo building in `pwd` ; \ - MAKE=${GMAKE} ${GMAKE} >> ${binddir}/build.log) ; \ + $(MAKE) >> ${binddir}/build.log) ; \ \ echo Installing BIND Export libraries to ${binddir}. ; \ (cd ${bindsrcdir}/lib/export ; \ - MAKE=${GMAKE} ${GMAKE} install > ${binddir}/install.log) ; \ + $(MAKE) install > ${binddir}/install.log) ; \ fi bind2-hostgen: @@ -104,16 +92,16 @@ bind2-hostgen: echo Bind export libraries already installed ; \ else \ echo Building BIND Export libraries - this takes some time. ;\ - (cd ${bindsrcdir}/lib/export/dns ; \ - echo building gen using ${BUILD_CC} in `pwd` ; \ - MAKE=${GMAKE} ${GMAKE} CC=${BUILD_CC} CFLAGS=${BUILD_CFLAGS} CPPFLAGS=${BUILD_CPPFLAGS} LDFLAGS=${BUILD_LDFLAGS} LIBS=${BUILD_LIBS} gen >> ${binddir}/build.log) ; \ + (cd ${bindsrcdir}/lib/export/dns ; \ + echo building gen using ${BUILD_CC} in `pwd` ; \ + $(MAKE) CC=${BUILD_CC} CFLAGS=${BUILD_CFLAGS} CPPFLAGS=${BUILD_CPPFLAGS} LDFLAGS=${BUILD_LDFLAGS} LIBS=${BUILD_LIBS} gen >> ${binddir}/build.log) ; \ (cd ${bindsrcdir}/lib/export ; \ echo building in `pwd` ; \ - MAKE=${GMAKE} ${GMAKE} >> ${binddir}/build.log) ; \ + $(MAKE) >> ${binddir}/build.log) ; \ \ echo Installing BIND Export libraries to ${binddir}. ; \ (cd ${bindsrcdir}/lib/export ; \ - MAKE=${GMAKE} ${GMAKE} install > ${binddir}/install.log) ; \ + $(MAKE) install > ${binddir}/install.log) ; \ fi clean: diff --git a/util/bindvar.sh b/util/bindvar.sh deleted file mode 100644 index 184a4cc08..000000000 --- a/util/bindvar.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh -# -# 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 -# copyright notice and this permission notice appear in all copies. -# -# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH -# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, -# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE -# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -# PERFORMANCE OF THIS SOFTWARE. - -# $Id: bindvar.sh,v 1.2 2009/12/02 20:43:52 sar Exp $ - -# Create a file with the base directory and gmake path for -# 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 - if $x --version 2>/dev/null | grep GNU > /dev/null; then - gmake=$x - break; - 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 < bind/bindvar.tmp -binddir=$binddir/bind -GMAKE=$gmake -EOF - -exit 0