[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 02/25] build: do not sprinkle around GENERATED_HE
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH v2 02/25] build: do not sprinkle around GENERATED_HEADERS dependencies |
Date: |
Wed, 6 Jun 2012 08:36:09 +0200 |
Keeping GENERATED_HEADERS dependencies up-to-date everywhere is complex.
We can simply make the Makefile depend on them, and they will be built
before all other targets.
Signed-off-by: Paolo Bonzini <address@hidden>
---
Makefile | 18 +++++++++---------
Makefile.target | 14 ++++----------
tests/Makefile | 1 -
3 files changed, 13 insertions(+), 20 deletions(-)
diff --git a/Makefile b/Makefile
index 9b7a85e..c0ab97a 100644
--- a/Makefile
+++ b/Makefile
@@ -91,19 +91,18 @@ qemu-options.def: $(SRC_PATH)/qemu-options.hx
SUBDIR_RULES=$(patsubst %,subdir-%, $(TARGET_DIRS))
-subdir-%: $(GENERATED_HEADERS)
+subdir-%:
$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)"
TARGET_DIR="$*/" all,)
ifneq ($(wildcard config-host.mak),)
include $(SRC_PATH)/Makefile.objs
endif
-$(universal-obj-y) $(common-obj-y): $(GENERATED_HEADERS)
subdir-libcacard: $(oslib-obj-y) $(trace-obj-y) qemu-timer-common.o
$(filter %-softmmu,$(SUBDIR_RULES)): $(universal-obj-y) $(trace-obj-y)
$(common-obj-y) subdir-libdis
-$(filter %-user,$(SUBDIR_RULES)): $(GENERATED_HEADERS) $(universal-obj-y)
$(trace-obj-y) subdir-libdis-user subdir-libuser
+$(filter %-user,$(SUBDIR_RULES)): $(universal-obj-y) $(trace-obj-y)
subdir-libdis-user subdir-libuser
ROMSUBDIR_RULES=$(patsubst %,romsubdir-%, $(ROMS))
romsubdir-%:
@@ -142,7 +141,7 @@ libcacard.la:
install-libcacard:
@echo "libtool is missing, please install and rerun configure"; exit 1
else
-libcacard.la: $(GENERATED_HEADERS) $(oslib-obj-y) qemu-timer-common.o
$(addsuffix .lo, $(basename $(trace-obj-y)))
+libcacard.la: $(oslib-obj-y) qemu-timer-common.o $(addsuffix .lo, $(basename
$(trace-obj-y)))
$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C libcacard V="$(V)"
TARGET_DIR="$*/" libcacard.la,)
install-libcacard: libcacard.la
@@ -151,7 +150,6 @@ endif
######################################################################
qemu-img.o: qemu-img-cmds.h
-qemu-img.o qemu-tool.o qemu-nbd.o qemu-io.o cmd.o qemu-ga.o:
$(GENERATED_HEADERS)
tools-obj-y = $(oslib-obj-y) $(trace-obj-y) qemu-tool.o qemu-timer.o \
qemu-timer-common.o main-loop.o notify.o iohandler.o cutils.o async.o
@@ -162,7 +160,6 @@ qemu-nbd$(EXESUF): qemu-nbd.o $(tools-obj-y) $(block-obj-y)
qemu-io$(EXESUF): qemu-io.o cmd.o $(tools-obj-y) $(block-obj-y)
qemu-bridge-helper$(EXESUF): qemu-bridge-helper.o
-qemu-bridge-helper.o: $(GENERATED_HEADERS)
fsdev/virtfs-proxy-helper$(EXESUF): fsdev/virtfs-proxy-helper.o
fsdev/virtio-9p-marshal.o oslib-posix.o $(trace-obj-y)
fsdev/virtfs-proxy-helper$(EXESUF): LIBS += -lcap
@@ -170,7 +167,6 @@ fsdev/virtfs-proxy-helper$(EXESUF): LIBS += -lcap
qemu-img-cmds.h: $(SRC_PATH)/qemu-img-cmds.hx
$(call quiet-command,sh $(SRC_PATH)/scripts/hxtool -h < $< > $@," GEN
$@")
-$(qapi-obj-y): $(GENERATED_HEADERS)
qapi-dir := $(BUILD_DIR)/qapi-generated
qemu-ga$(EXESUF): LIBS = $(LIBS_QGA)
qemu-ga$(EXESUF): QEMU_CFLAGS += -I $(qapi-dir)
@@ -203,8 +199,8 @@ $(SRC_PATH)/qapi-schema.json
$(SRC_PATH)/scripts/qapi-commands.py
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)
+$(QGALIB_OBJ): $(QGALIB_GEN)
+$(qga-obj-y) qemu-ga.o: $(QGALIB_GEN)
qemu-ga$(EXESUF): qemu-ga.o $(qga-obj-y) $(tools-obj-y) $(qapi-obj-y)
$(qobject-obj-y) $(version-obj-y) $(QGALIB_OBJ)
@@ -399,5 +395,9 @@ tar:
cd /tmp && tar zcvf ~/$(FILE).tar.gz $(FILE) --exclude CVS --exclude
.git --exclude .svn
rm -rf /tmp/$(FILE)
+# Add a dependency on the generated files, so that they are always
+# rebuilt before other object files
+Makefile: $(GENERATED_HEADERS)
+
# Include automatically generated dependency files
-include $(wildcard *.d audio/*.d slirp/*.d block/*.d net/*.d ui/*.d qapi/*.d
qga/*.d)
diff --git a/Makefile.target b/Makefile.target
index 1582904..95a82be 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -1,6 +1,5 @@
# -*- Mode: makefile -*-
-GENERATED_HEADERS = config-target.h
CONFIG_NO_PCI = $(if $(subst n,,$(CONFIG_PCI)),n,y)
CONFIG_NO_KVM = $(if $(subst n,,$(CONFIG_KVM)),n,y)
CONFIG_NO_XEN = $(if $(subst n,,$(CONFIG_XEN)),n,y)
@@ -105,8 +104,6 @@ libobj-$(CONFIG_TCI_DIS) += tci-dis.o
tci-dis.o: QEMU_CFLAGS += -I$(SRC_PATH)/tcg -I$(SRC_PATH)/tcg/tci
-$(libobj-y): $(GENERATED_HEADERS)
-
# HELPER_CFLAGS is used for all the legacy code compiled with static register
# variables
ifneq ($(TARGET_BASE_ARCH), sparc)
@@ -143,8 +140,6 @@ obj-arm-y += arm-semi.o
obj-m68k-y += m68k-sim.o m68k-semi.o
-$(obj-y) $(obj-$(TARGET_BASE_ARCH)-y): $(GENERATED_HEADERS)
-
obj-y += $(addprefix ../, $(universal-obj-y))
obj-y += $(addprefix ../libuser/, $(user-obj-y))
obj-y += $(addprefix ../libdis-user/, $(libdis-y))
@@ -166,8 +161,6 @@ obj-y = main.o bsdload.o elfload.o mmap.o signal.o strace.o
syscall.o \
obj-i386-y += ioport-user.o
-$(obj-y) $(obj-$(TARGET_BASE_ARCH)-y): $(GENERATED_HEADERS)
-
obj-y += $(addprefix ../, $(universal-obj-y))
obj-y += $(addprefix ../libuser/, $(user-obj-y))
obj-y += $(addprefix ../libdis-user/, $(libdis-y))
@@ -389,9 +382,7 @@ obj-xtensa-y += core-fsf.o
main.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
-monitor.o: hmp-commands.h qmp-commands-old.h
-
-$(obj-y) $(obj-$(TARGET_BASE_ARCH)-y): $(GENERATED_HEADERS)
+GENERATED_HEADERS += hmp-commands.h qmp-commands-old.h
obj-y += $(addprefix ../, $(universal-obj-y))
obj-y += $(addprefix ../, $(common-obj-y))
@@ -452,5 +443,8 @@ ifdef CONFIG_TRACE_SYSTEMTAP
$(INSTALL_DATA) $(QEMU_PROG).stp
"$(DESTDIR)$(qemu_datadir)/../systemtap/tapset"
endif
+GENERATED_HEADERS += config-target.h
+Makefile: $(GENERATED_HEADERS)
+
# Include automatically generated dependency files
-include $(wildcard *.d */*.d)
diff --git a/tests/Makefile b/tests/Makefile
index ab7f667..2e754c3 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -37,7 +37,6 @@ test-qapi-obj-y = $(qobject-obj-y) $(qapi-obj-y)
$(tools-obj-y)
test-qapi-obj-y += tests/test-qapi-visit.o tests/test-qapi-types.o
test-qapi-obj-y += module.o
-$(test-obj-y): $(GENERATED_HEADERS)
$(test-obj-y): QEMU_INCLUDES += -Itests
tests/check-qint$(EXESUF): tests/check-qint.o qint.o $(tools-obj-y)
--
1.7.10.1
- [Qemu-devel] [PATCH v2 22/25] build: libcacard Makefile cleanups, (continued)
- [Qemu-devel] [PATCH v2 22/25] build: libcacard Makefile cleanups, Paolo Bonzini, 2012/06/06
- [Qemu-devel] [PATCH v2 25/25] build: do not create directories at configure time, Paolo Bonzini, 2012/06/06
- [Qemu-devel] [PATCH v2 09/25] build: put qom/ rules in a Makefile.objs file, Paolo Bonzini, 2012/06/06
- [Qemu-devel] [PATCH v2 21/25] build: move device tree to per-target Makefile, Paolo Bonzini, 2012/06/06
- [Qemu-devel] [PATCH v2 04/25] build: move *-user/ objects to nested Makefile.objs, Paolo Bonzini, 2012/06/06
- [Qemu-devel] [PATCH v2 19/25] build: convert libhw to nested Makefile.objs, Paolo Bonzini, 2012/06/06
- [Qemu-devel] [PATCH v2 08/25] build: move rules for nesting to Makefile.objs, Paolo Bonzini, 2012/06/06
- [Qemu-devel] [PATCH v2 03/25] build: add rules for nesting, Paolo Bonzini, 2012/06/06
- [Qemu-devel] [PATCH v2 13/25] build: move ui/ objects to nested Makefile.objs, Paolo Bonzini, 2012/06/06
- [Qemu-devel] [PATCH v2 07/25] build: move other target-*/ objects to nested Makefile.objs, Paolo Bonzini, 2012/06/06
- [Qemu-devel] [PATCH v2 02/25] build: do not sprinkle around GENERATED_HEADERS dependencies,
Paolo Bonzini <=
- [Qemu-devel] [PATCH v2 05/25] build: move obj-TARGET-y variables to nested Makefile.objs, Paolo Bonzini, 2012/06/06
- [Qemu-devel] [PATCH v2 12/25] build: move fsdev/ objects to nested Makefile.objs, Paolo Bonzini, 2012/06/06
- [Qemu-devel] [PATCH v2 20/25] build: move per-target hw/ objects to nested Makefile.objs, Paolo Bonzini, 2012/06/06
- [Qemu-devel] [PATCH v2 15/25] build: move slirp/ objects to nested Makefile.objs, Paolo Bonzini, 2012/06/06
- [Qemu-devel] [PATCH v2 18/25] build: move target-independent hw/ objects to nested Makefiles, Paolo Bonzini, 2012/06/06
- [Qemu-devel] [PATCH v2 17/25] build: move qga/ objects to nested Makefile.objs, Paolo Bonzini, 2012/06/06
- [Qemu-devel] [PATCH v2 16/25] build: move qapi/ objects to nested Makefile.objs, Paolo Bonzini, 2012/06/06
- [Qemu-devel] [PATCH v2 10/25] build: move block/ objects to nested Makefile.objs, Paolo Bonzini, 2012/06/06
- [Qemu-devel] [PATCH v2 14/25] build: move audio/ objects to nested Makefile.objs, Paolo Bonzini, 2012/06/06
- [Qemu-devel] [PATCH v2 06/25] build: move libobj-y variable to nested Makefile.objs, Paolo Bonzini, 2012/06/06