qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] trace: ensure $(tracetool-y) is defined in top level makefile
@ 2017-03-15 10:56 Daniel P. Berrange
  2017-03-15 11:44 ` Eric Blake
  0 siblings, 1 reply; 3+ messages in thread
From: Daniel P. Berrange @ 2017-03-15 10:56 UTC (permalink / raw)
  To: qemu-devel; +Cc: Eric Blake, Stefan Hajnoczi, Daniel P. Berrange

The build rules for trace files have a dependancy on $(tracetool-y).
This variable populated in the trace/Makefile.objs file and thus its
definition gets pulled into the top level makefile. This happens too
late in the process though, so by the time $(tracetool-y) is defined,
make has already evaluated $(tracetool-y) in the dependancies and
found it to be empty. The result is that when the tracetool source
is changed, the generated files are not rebuilt. The solution is to
define the variable in the top level makefile too

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
 Makefile | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/Makefile b/Makefile
index 1c4c04f..dffc74b 100644
--- a/Makefile
+++ b/Makefile
@@ -85,6 +85,9 @@ GENERATED_SOURCES += $(TRACE_SOURCES)
 
 trace-group-name = $(shell dirname $1 | sed -e 's/[^a-zA-Z0-9]/_/g')
 
+tracetool-y = $(SRC_PATH)/scripts/tracetool.py
+tracetool-y += $(shell find $(SRC_PATH)/scripts/tracetool -name "*.py")
+
 %/trace.h: %/trace.h-timestamp
 	@cmp $< $@ >/dev/null 2>&1 || cp $< $@
 %/trace.h-timestamp: $(SRC_PATH)/%/trace-events $(tracetool-y)
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH] trace: ensure $(tracetool-y) is defined in top level makefile
  2017-03-15 10:56 [Qemu-devel] [PATCH] trace: ensure $(tracetool-y) is defined in top level makefile Daniel P. Berrange
@ 2017-03-15 11:44 ` Eric Blake
  2017-03-15 11:46   ` Daniel P. Berrange
  0 siblings, 1 reply; 3+ messages in thread
From: Eric Blake @ 2017-03-15 11:44 UTC (permalink / raw)
  To: Daniel P. Berrange, qemu-devel; +Cc: Stefan Hajnoczi

[-- Attachment #1: Type: text/plain, Size: 1695 bytes --]

On 03/15/2017 05:56 AM, Daniel P. Berrange wrote:
> The build rules for trace files have a dependancy on $(tracetool-y).
> This variable populated in the trace/Makefile.objs file and thus its
> definition gets pulled into the top level makefile. This happens too
> late in the process though, so by the time $(tracetool-y) is defined,
> make has already evaluated $(tracetool-y) in the dependancies and
> found it to be empty. The result is that when the tracetool source
> is changed, the generated files are not rebuilt. The solution is to
> define the variable in the top level makefile too
> 
> Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
> ---
>  Makefile | 3 +++
>  1 file changed, 3 insertions(+)

Does this mean the definitions in trace/Makefile.objs are now redundant
and can be omitted?

> 
> diff --git a/Makefile b/Makefile
> index 1c4c04f..dffc74b 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -85,6 +85,9 @@ GENERATED_SOURCES += $(TRACE_SOURCES)
>  
>  trace-group-name = $(shell dirname $1 | sed -e 's/[^a-zA-Z0-9]/_/g')
>  
> +tracetool-y = $(SRC_PATH)/scripts/tracetool.py
> +tracetool-y += $(shell find $(SRC_PATH)/scripts/tracetool -name "*.py")

Should this also include the comment currently in trace/Makefile.objs:

######################################################################
# tracetool source files
# Every rule that invokes tracetool must depend on this so code is
regenerated
# if tracetool itself changes.

But it certainly looks like you're on the right track for fixing the
issue I ran into.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH] trace: ensure $(tracetool-y) is defined in top level makefile
  2017-03-15 11:44 ` Eric Blake
@ 2017-03-15 11:46   ` Daniel P. Berrange
  0 siblings, 0 replies; 3+ messages in thread
From: Daniel P. Berrange @ 2017-03-15 11:46 UTC (permalink / raw)
  To: Eric Blake; +Cc: qemu-devel, Stefan Hajnoczi

On Wed, Mar 15, 2017 at 06:44:25AM -0500, Eric Blake wrote:
> On 03/15/2017 05:56 AM, Daniel P. Berrange wrote:
> > The build rules for trace files have a dependancy on $(tracetool-y).
> > This variable populated in the trace/Makefile.objs file and thus its
> > definition gets pulled into the top level makefile. This happens too
> > late in the process though, so by the time $(tracetool-y) is defined,
> > make has already evaluated $(tracetool-y) in the dependancies and
> > found it to be empty. The result is that when the tracetool source
> > is changed, the generated files are not rebuilt. The solution is to
> > define the variable in the top level makefile too
> > 
> > Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
> > ---
> >  Makefile | 3 +++
> >  1 file changed, 3 insertions(+)
> 
> Does this mean the definitions in trace/Makefile.objs are now redundant
> and can be omitted?

Hmm, I'm not sure, but quite possibly true.

> 
> > 
> > diff --git a/Makefile b/Makefile
> > index 1c4c04f..dffc74b 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -85,6 +85,9 @@ GENERATED_SOURCES += $(TRACE_SOURCES)
> >  
> >  trace-group-name = $(shell dirname $1 | sed -e 's/[^a-zA-Z0-9]/_/g')
> >  
> > +tracetool-y = $(SRC_PATH)/scripts/tracetool.py
> > +tracetool-y += $(shell find $(SRC_PATH)/scripts/tracetool -name "*.py")
> 
> Should this also include the comment currently in trace/Makefile.objs:
> 
> ######################################################################
> # tracetool source files
> # Every rule that invokes tracetool must depend on this so code is
> regenerated
> # if tracetool itself changes.
> 
> But it certainly looks like you're on the right track for fixing the
> issue I ran into.

IMHO such comments are pointless - they're just stating the obvious.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://entangle-photo.org       -o-    http://search.cpan.org/~danberr/ :|

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-03-15 11:46 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-03-15 10:56 [Qemu-devel] [PATCH] trace: ensure $(tracetool-y) is defined in top level makefile Daniel P. Berrange
2017-03-15 11:44 ` Eric Blake
2017-03-15 11:46   ` Daniel P. Berrange

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).