diff options
author | Eric Blake <eblake@redhat.com> | 2014-06-04 15:48:20 -0600 |
---|---|---|
committer | Eric Blake <eblake@redhat.com> | 2014-06-04 16:06:55 -0600 |
commit | 3cbd3b8e3a1f9c881234116f90efad473d942a24 (patch) | |
tree | 41b978dd6b4931c2d4f66117499f948f4b0c828f | |
parent | d804a58a15fa79cb5a4f0aa7d98d45cb690ce637 (diff) | |
download | libvirt-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--------- | .gnulib | 0 | ||||
-rwxr-xr-x | autogen.sh | 2 | ||||
-rw-r--r-- | cfg.mk | 4 |
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 @@ -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$$'`; \ |