On a clean build, after generating trace.h, make would recurse into *-*-user without a clue how to build ../trace.o (added to $(obj-y) in Makefile.target) since its generation rule is in the main Makefile. The softmmus are seemingly unaffected because the $(TOOLS), which each have a dependency on $(trace-obj-y), are built first for the build-all target.
Add a dependency on $(trace-obj-y) for %-user, as done for the qemu-* tools. Let's be paranoid and do the same for %-softmmu while at it, just in case someone messes with $(TOOLS) or calls the Makefile target directly. Signed-off-by: Andreas Färber <andreas.faer...@web.de> Cc: Stefan Hajnoczi <stefa...@linux.vnet.ibm.com> Cc: Prerna Saxena <pre...@linux.vnet.ibm.com> Cc: Blue Swirl <blauwir...@gmail.com> Cc: Anthony Liguori <aligu...@us.ibm.com> --- Makefile | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index ab91d42..090d632 100644 --- a/Makefile +++ b/Makefile @@ -80,9 +80,9 @@ include $(SRC_PATH)/Makefile.objs endif $(common-obj-y): $(GENERATED_HEADERS) -$(filter %-softmmu,$(SUBDIR_RULES)): $(common-obj-y) subdir-libdis +$(filter %-softmmu,$(SUBDIR_RULES)): $(trace-obj-y) $(common-obj-y) subdir-libdis -$(filter %-user,$(SUBDIR_RULES)): $(GENERATED_HEADERS) subdir-libdis-user subdir-libuser +$(filter %-user,$(SUBDIR_RULES)): $(GENERATED_HEADERS) $(trace-obj-y) subdir-libdis-user subdir-libuser ROMSUBDIR_RULES=$(patsubst %,romsubdir-%, $(ROMS)) romsubdir-%: -- 1.7.2.2