summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2014-06-04 15:48:20 -0600
committerEric Blake <eblake@redhat.com>2014-06-04 16:06:55 -0600
commit3cbd3b8e3a1f9c881234116f90efad473d942a24 (patch)
tree41b978dd6b4931c2d4f66117499f948f4b0c828f
parentd804a58a15fa79cb5a4f0aa7d98d45cb690ce637 (diff)
downloadlibvirt-3cbd3b8e3a1f9c881234116f90efad473d942a24.tar.gz
maint: detect VPATH builds when checking for gnulib update
I accidentally typed 'make' in the srcdir of a VPATH build, and was surprised to see this: $ make /bin/sh: s/^[ +-]//;s/ .*//: No such file or directory INFO: gnulib update required; running ./autogen.sh first make: -n: Command not found ./autogen.sh I am going to run ./configure with no arguments - if you wish to pass any to it, please specify them on the ./autogen.sh command line. running bootstrap... ./bootstrap: Bootstrapping from checked-out libvirt sources... ./bootstrap: getting gnulib files... Oops - we're trying to execute some fairly bogus command names, and then trying to configure in-tree (which breaks all existing VPATH builds, since automake refuses to do a VPATH build if it detects an in-tree configure). The third line (executing "-n") is fixed by updating to the latest gnulib; the rest of the problem is fixed by copying the same filtering in our cfg.mk as what gnulib just added, so that we avoid any $(shell) invocations which in turn depend on variables that are only populated by a working Makefile. With that in place, we are back to the much nicer: $ make There seems to be no Makefile in this directory. You must run ./configure before running 'make'. make: *** [abort-due-to-no-makefile] Error 1 Additionally, although harder to see - there was a trailing space in the message warning us that autogen would run an in-tree configure. * .gnulib: Update to latest, in part for maint.mk improvements. * cfg.mk (_update_required): Don't check for update in unconfigured directory. * autogen.sh (no_git): Drop trailing space. Signed-off-by: Eric Blake <eblake@redhat.com>
m---------.gnulib0
-rwxr-xr-xautogen.sh2
-rw-r--r--cfg.mk4
3 files changed, 5 insertions, 1 deletions
diff --git a/.gnulib b/.gnulib
-Subproject e8e0eb6bfb728685ec8d5afd924e41b18e9d928
+Subproject d55899fd2c5794ac85ecb14d5e2f646a89e4b4d
diff --git a/autogen.sh b/autogen.sh
index 5aa1990fde..1965f64689 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -35,7 +35,7 @@ if test -z "$NOCONFIGURE" ; then
echo "Running ./configure with $EXTRA_ARGS $@"
else
if test -z "$*" && test ! -f "$THEDIR/config.status"; then
- echo "I am going to run ./configure with no arguments - if you wish "
+ echo "I am going to run ./configure with no arguments - if you wish"
echo "to pass any to it, please specify them on the $0 command line."
fi
fi
diff --git a/cfg.mk b/cfg.mk
index 4601b3533d..b5f1fa20d0 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -939,6 +939,7 @@ sc_require_locale_h:
# We don't use this feature of maint.mk.
prev_version_file = /dev/null
+ifneq ($(_gl-Makefile),)
ifeq (0,$(MAKELEVEL))
_curr_status = .git-module-status
# The sed filter accommodates those who check out on a commit from which
@@ -971,6 +972,7 @@ ifeq (0,$(MAKELEVEL))
maint.mk Makefile: _autogen
endif
endif
+endif
# It is necessary to call autogen any time gnulib changes. Autogen
# reruns configure, then we regenerate all Makefiles at once.
@@ -980,7 +982,9 @@ _autogen:
./config.status
# regenerate HACKING as part of the syntax-check
+ifneq ($(_gl-Makefile),)
syntax-check: $(top_srcdir)/HACKING bracket-spacing-check
+endif
bracket-spacing-check:
$(AM_V_GEN)files=`$(VC_LIST) | grep '\.c$$'`; \