On Sat, Sep 11, 2010 at 10:53 PM, Andreas Färber <andreas.faer...@web.de> wrote: > Am 06.09.2010 um 17:13 schrieb Stefan Hajnoczi: > >> diff --git a/Makefile b/Makefile >> index f95cc2f..3c5e6a0 100644 >> --- a/Makefile >> +++ b/Makefile >> @@ -1,6 +1,6 @@ >> # Makefile for QEMU. >> >> -GENERATED_HEADERS = config-host.h >> +GENERATED_HEADERS = config-host.h trace.h >> >> ifneq ($(wildcard config-host.mak),) >> # Put the all: rule here so that config-host.mak can contain dependencies. >> @@ -104,16 +104,24 @@ ui/vnc.o: QEMU_CFLAGS += $(VNC_TLS_CFLAGS) >> >> bt-host.o: QEMU_CFLAGS += $(BLUEZ_CFLAGS) >> >> +trace.h: $(SRC_PATH)/trace-events config-host.mak >> + $(call quiet-command,sh $(SRC_PATH)/tracetool --$(TRACE_BACKEND) >> -h < $< > $@," GEN $@") >> + >> +trace.c: $(SRC_PATH)/trace-events config-host.mak >> + $(call quiet-command,sh $(SRC_PATH)/tracetool --$(TRACE_BACKEND) >> -c < $< > $@," GEN $@") >> + >> +trace.o: trace.c $(GENERATED_HEADERS) > > There's a dependency issue hidden here: The user emulators recurse into > *-user with just a dependency on trace.h. The build then fails because the > target Makefile does not know how to build ../trace.o since the rule is in > this Makefile instead. > > I noticed it with ppc-haiku-user but this should be visible with linux-user > on a clean build, too. > > Adding trace.o or $(trace-obj-y) somewhere before subdir-libuser seems to > help. I'll post a patch later on if no one beats me.
Your patch would be appreciated. For the record, in order to reproduce it: $ make distclean $ ./configure --target-list=i386-linux-user $ make make[1]: *** No rule to make target `../trace.o', needed by `qemu-i386'. Stop. If one of the targets does build trace.o then the build completes successfully. That's why all targets build works fine. Stefan