diff mbox

[4/4] Makefile: fix qga dependencies

Message ID 20111116215829.GA767@redhat.com
State New
Headers show

Commit Message

Michael S. Tsirkin Nov. 16, 2011, 9:58 p.m. UTC
.c files include .h files, so .o depends on .h,
and the linked result depends on .o.
We got it wrong for qga rules, fix it up.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 Makefile |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

Comments

Paolo Bonzini Nov. 17, 2011, 9:31 a.m. UTC | #1
On 11/16/2011 10:58 PM, Michael S. Tsirkin wrote:
> .c files include .h files, so .o depends on .h,
> and the linked result depends on .o.
> We got it wrong for qga rules, fix it up.

Another possible option is to make the "all" target depend on 
GENERATED_HEADERS and GENERATED_SOURCES, like

all: $(GENERATED_HEADERS) $(GENERATED_SOURCES)
	@$(MAKE) build-all

and drop the dependency everywhere else.  This will check the dependency 
at the beginning of the build (should be fine since the generated files 
change rarely) and rely on automatic dependency generation for the 
.o->.h dependencies.

Paolo
Andreas Färber Nov. 17, 2011, 12:22 p.m. UTC | #2
Am 17.11.2011 10:31, schrieb Paolo Bonzini:
> On 11/16/2011 10:58 PM, Michael S. Tsirkin wrote:
>> .c files include .h files, so .o depends on .h,
>> and the linked result depends on .o.
>> We got it wrong for qga rules, fix it up.
> 
> Another possible option is to make the "all" target depend on
> GENERATED_HEADERS and GENERATED_SOURCES, like
> 
> all: $(GENERATED_HEADERS) $(GENERATED_SOURCES)
>     @$(MAKE) build-all
> 
> and drop the dependency everywhere else.

Please don't. `make qemu-img`, for example, should work, too. That
bypasses the "all" target IIUC.

Andreas
diff mbox

Patch

diff --git a/Makefile b/Makefile
index c7f2cbd..7c93739 100644
--- a/Makefile
+++ b/Makefile
@@ -208,11 +208,12 @@  test-visitor: test-visitor.o $(qobject-obj-y) $(qapi-obj-y) $(tools-obj-y) $(qap
 test-qmp-commands.o: $(addprefix $(qapi-dir)/, test-qapi-types.c test-qapi-types.h test-qapi-visit.c test-qapi-visit.h test-qmp-marshal.c test-qmp-commands.h) $(qapi-obj-y)
 test-qmp-commands: test-qmp-commands.o $(qobject-obj-y) $(qapi-obj-y) $(tools-obj-y) $(qapi-dir)/test-qapi-visit.o $(qapi-dir)/test-qapi-types.o $(qapi-dir)/test-qmp-marshal.o module.o
 
-QGALIB_GEN=$(addprefix $(qapi-dir)/, qga-qapi-types.c qga-qapi-types.h qga-qapi-visit.c qga-qmp-marshal.c qga-qmp-commands.h)
-$(QGALIB_GEN): $(GENERATED_HEADERS)
-$(qga-obj-y) qemu-ga.o: $(QGALIB_GEN)
+QGALIB_OBJ=$(addprefix $(qapi-dir)/, qga-qapi-types.o qga-qapi-visit.o qga-qmp-marshal.o)
+QGALIB_GEN=$(addprefix $(qapi-dir)/, qga-qapi-types.h qga-qapi-visit.h qga-qmp-commands.h)
+$(QGALIB_OBJ): $(QGALIB_GEN) $(GENERATED_HEADERS)
+$(qga-obj-y) qemu-ga.o: $(QGALIB_GEN) $(GENERATED_HEADERS)
 
-qemu-ga$(EXESUF): qemu-ga.o $(qga-obj-y) $(qapi-obj-y) $(tools-obj-y) $(qobject-obj-y) $(version-obj-y) $(addprefix $(qapi-dir)/, qga-qapi-visit.o qga-qapi-types.o qga-qmp-marshal.o)
+qemu-ga$(EXESUF): qemu-ga.o $(qga-obj-y) $(qapi-obj-y) $(tools-obj-y) $(qobject-obj-y) $(version-obj-y) $(QGALIB_OBJ)
 
 QEMULIBS=libhw32 libhw64 libuser libdis libdis-user