[libvirt] [PATCH] virkeymaps.h: Fix VPATH build with --disable-dependency-tracking

Peter Krempa pkrempa at redhat.com
Tue Nov 3 09:40:50 UTC 2015

On Tue, Nov 03, 2015 at 09:08:04 +0100, Michal Privoznik wrote:
> Funny things happen when you try to do a VPATH build and pass
> --disable-dependency-tracking argument to the configure script.
> Not only the directory structure is not created at the end of
> configure phase, but also contradictory to others, virkeymaps.h

Maybe that's the actual problem.

> does not depend on src/utils dirstamp. I don't know how to force
> automake to generate that rule, but this is the diff that makes
> things work for me again. Yes, as you can see it more or less
> reverts a9fe620372144db3e432bd7506cb909cc3179ef8. More than less.

I don't think anything you wrote here really justifies the change below.
It hints that the problem is probably elsewhere.

> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
> Steps to reproduce:
> 1) mkdir /tmp/test_libvirt && cd $_
> 2) $OLDPWD/configure --disable-dependency-tracking
> 3) make

The actual output for the lazy:

make[2]: Entering directory '/tmp/build/src'
  GEN      util/virkeymaps.h
/bin/sh: util/virkeymaps.h: No such file or directory
  GEN      locking/lock_protocol.h

It looks like the reason for the failure is that this is run right away
so the shell can't do the redirect.

By the way, a simple "mkdir /tmp/test_libvirt/src/util" is sufficient to
make the build pass.

>  src/Makefile.am | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> diff --git a/src/Makefile.am b/src/Makefile.am
> index 99b4993..f98912f 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -181,7 +181,7 @@ MAINTAINERCLEANFILES += util/virkeymaps.h
>  util/virkeymaps.h: $(srcdir)/util/keymaps.csv	\
>  		$(srcdir)/util/virkeycode-mapgen.py
>  	$(AM_V_GEN)$(PYTHON) $(srcdir)/util/virkeycode-mapgen.py \
> -	  <$(srcdir)/util/keymaps.csv >util/virkeymaps.h
> +	  <$(srcdir)/util/keymaps.csv >$(srcdir)/util/virkeymaps.h

It doesn't seem right to do stuff in the source dir when building.
Remember it might be read-only.

NACK to this approach.

Should we perpahs create the directory if it doesn't exist in the
process of generating it?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20151103/f28b3b33/attachment-0001.sig>

More information about the libvir-list mailing list