qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH 08/24] move rules for nesting to Makefile.objs
Date: Sun,  3 Jun 2012 14:25:42 +0200	[thread overview]
Message-ID: <1338726358-30681-9-git-send-email-pbonzini@redhat.com> (raw)
In-Reply-To: <1338726358-30681-1-git-send-email-pbonzini@redhat.com>

At this point we will start adding nesting behavior to other files
than Makefile.target.  Because Makefile.objs is included by
Makefile.target, it is simpler to move the processing of
subdirectories there.

To enable this, only add per-target files to obj-y.  Use a separate
variable for the linker dependencies, all-obj-y.  This variable includes
obj-y and also all objects that are taken from other directories.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 Makefile.objs   |    2 ++
 Makefile.target |   47 ++++++++++++++++++++++-------------------------
 2 files changed, 24 insertions(+), 25 deletions(-)

diff --git a/Makefile.objs b/Makefile.objs
index 1daa92c..2eed180 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -468,3 +468,5 @@ vl.o: QEMU_CFLAGS+=$(SDL_CFLAGS)
 
 QEMU_CFLAGS+=$(GLIB_CFLAGS)
 
+nested-vars += # ...
+dummy := $(foreach var, $(nested-vars), $(call unnest-var,$(var)))
diff --git a/Makefile.target b/Makefile.target
index ce9296d..e4bc550 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -19,8 +19,6 @@ QEMU_CFLAGS += -I../linux-headers
 endif
 QEMU_CFLAGS += -I.. -I$(TARGET_PATH) -DNEED_CPU_H
 
-include $(SRC_PATH)/Makefile.objs
-
 QEMU_CFLAGS+=-I$(SRC_PATH)/include
 
 ifdef CONFIG_USER_ONLY
@@ -106,10 +104,6 @@ QEMU_CFLAGS+=-I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR) -I$(SRC_PATH)/linux-user
 obj-y += linux-user/
 obj-y += gdbstub.o thunk.o user-exec.o $(oslib-obj-y)
 
-obj-y += $(addprefix ../, $(universal-obj-y))
-obj-y += $(addprefix ../libuser/, $(user-obj-y))
-obj-y += $(addprefix ../libdis-user/, $(libdis-y))
-
 endif #CONFIG_LINUX_USER
 
 #########################################################
@@ -122,10 +116,6 @@ QEMU_CFLAGS+=-I$(SRC_PATH)/bsd-user -I$(SRC_PATH)/bsd-user/$(TARGET_ARCH)
 obj-y += bsd-user/
 obj-y += gdbstub.o user-exec.o
 
-obj-y += $(addprefix ../, $(universal-obj-y))
-obj-y += $(addprefix ../libuser/, $(user-obj-y))
-obj-y += $(addprefix ../libdis-user/, $(libdis-y))
-
 endif #CONFIG_BSD_USER
 
 #########################################################
@@ -186,33 +176,40 @@ main.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
 
 GENERATED_HEADERS += hmp-commands.h qmp-commands-old.h
 
-obj-y += $(addprefix ../, $(universal-obj-y))
-obj-y += $(addprefix ../, $(common-obj-y))
-obj-y += $(addprefix ../libdis/, $(libdis-y))
-obj-y += $(addprefix $(HWDIR)/, $(hw-obj-y))
-obj-y += $(addprefix ../, $(trace-obj-y))
-
 endif # CONFIG_SOFTMMU
 
-ifndef CONFIG_LINUX_USER
-ifndef CONFIG_BSD_USER
+nested-vars += obj-y
+
+# This resolves all nested paths, so it must come last
+include $(SRC_PATH)/Makefile.objs
+
+all-obj-y = $(obj-y)
+all-obj-y += $(addprefix ../, $(universal-obj-y))
+
+ifdef CONFIG_SOFTMMU
+
+all-obj-y += $(addprefix ../, $(common-obj-y))
+all-obj-y += $(addprefix ../libdis/, $(libdis-y))
+all-obj-y += $(addprefix $(HWDIR)/, $(hw-obj-y))
+all-obj-y += $(addprefix ../, $(trace-obj-y))
+
 # libcacard needs qemu-thread support, and besides is only needed by devices
 # so not requires with linux-user / bsd-user targets
-obj-$(CONFIG_SMARTCARD_NSS) += $(addprefix ../libcacard/, $(libcacard-y))
-endif # CONFIG_BSD_USER
-endif # CONFIG_LINUX_USER
+all-obj-$(CONFIG_SMARTCARD_NSS) += $(addprefix ../libcacard/, $(libcacard-y))
 
-nested-vars = obj-y
-dummy := $(foreach var, $(nested-vars), $(call unnest-var,$(var)))
+else
+all-obj-y += $(addprefix ../libuser/, $(user-obj-y))
+all-obj-y += $(addprefix ../libdis-user/, $(libdis-y))
+endif #CONFIG_LINUX_USER
 
 ifdef QEMU_PROGW
 # The linker builds a windows executable. Make also a console executable.
-$(QEMU_PROGW): $(obj-y)
+$(QEMU_PROGW): $(all-obj-y)
 	$(call LINK,$^)
 $(QEMU_PROG): $(QEMU_PROGW)
 	$(call quiet-command,$(OBJCOPY) --subsystem console $(QEMU_PROGW) $(QEMU_PROG),"  GEN   $(TARGET_DIR)$(QEMU_PROG)")
 else
-$(QEMU_PROG): $(obj-y)
+$(QEMU_PROG): $(all-obj-y)
 	$(call LINK,$^)
 endif
 
-- 
1.7.10.1

  parent reply	other threads:[~2012-06-03 12:26 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-03 12:25 [Qemu-devel] [PATCH 00/24] per-directory Makefile snippets, limit vpath abuse Paolo Bonzini
2012-06-03 12:25 ` [Qemu-devel] [PATCH 01/24] remove trace-nested-y Paolo Bonzini
2012-06-03 12:25 ` [Qemu-devel] [PATCH 02/24] do not sprinkle around GENERATED_HEADERS dependencies Paolo Bonzini
2012-06-03 12:25 ` [Qemu-devel] [PATCH 03/24] add rules for nesting Paolo Bonzini
2012-06-03 12:25 ` [Qemu-devel] [PATCH 04/24] move *-user/ objects to nested Makefile Paolo Bonzini
2012-06-03 12:25 ` [Qemu-devel] [PATCH 05/24] move obj-TARGET-y variables " Paolo Bonzini
2012-06-03 12:25 ` [Qemu-devel] [PATCH 06/24] move libobj-y variable " Paolo Bonzini
2012-06-03 13:42   ` Blue Swirl
2012-06-03 17:32     ` Paolo Bonzini
2012-06-03 12:25 ` [Qemu-devel] [PATCH 07/24] move other target-*/ objects to nested Makefiles Paolo Bonzini
2012-06-03 12:25 ` Paolo Bonzini [this message]
2012-06-03 12:25 ` [Qemu-devel] [PATCH 09/24] use nested Makefile rules for qom/ objects Paolo Bonzini
2012-06-03 12:25 ` [Qemu-devel] [PATCH 10/24] move block/ objects to nested Makefile Paolo Bonzini
2012-06-03 12:25 ` [Qemu-devel] [PATCH 11/24] move net/ " Paolo Bonzini
2012-06-03 13:44   ` Blue Swirl
2012-06-03 12:25 ` [Qemu-devel] [PATCH 12/24] move fsdev/ " Paolo Bonzini
2012-06-03 13:32   ` Blue Swirl
2012-06-03 12:25 ` [Qemu-devel] [PATCH 13/24] move ui/ " Paolo Bonzini
2012-06-03 12:25 ` [Qemu-devel] [PATCH 14/24] move audio/ " Paolo Bonzini
2012-06-03 13:33   ` Blue Swirl
2012-06-03 12:25 ` [Qemu-devel] [PATCH 15/24] move slirp/ " Paolo Bonzini
2012-06-03 12:25 ` [Qemu-devel] [PATCH 16/24] move qapi/ " Paolo Bonzini
2012-06-03 12:25 ` [Qemu-devel] [PATCH 17/24] move qga/ " Paolo Bonzini
2012-06-03 12:25 ` [Qemu-devel] [PATCH 18/24] move target-independent hw/ objects to nested Makefiles Paolo Bonzini
2012-06-03 12:25 ` [Qemu-devel] [PATCH 19/24] convert libhw " Paolo Bonzini
2012-06-04 18:08   ` Andreas Färber
2012-06-05  6:30     ` Gerd Hoffmann
2012-06-03 12:25 ` [Qemu-devel] [PATCH 20/24] move per-target hw/ objects " Paolo Bonzini
2012-06-03 12:25 ` [Qemu-devel] [PATCH 21/24] move device tree to per-target Makefile Paolo Bonzini
2012-06-03 12:25 ` [Qemu-devel] [PATCH 22/24] libcacard Makefile cleanups Paolo Bonzini
2012-06-03 12:25 ` [Qemu-devel] [PATCH 23/24] limit usage of vpath Paolo Bonzini
2012-06-03 12:25 ` [Qemu-devel] [PATCH 24/24] compile oslib-obj-y once Paolo Bonzini
2012-06-03 13:31 ` [Qemu-devel] [PATCH 00/24] per-directory Makefile snippets, limit vpath abuse Blue Swirl
2012-06-03 17:34   ` Paolo Bonzini
2012-06-03 22:40 ` Andreas Färber
2012-06-03 22:57   ` Anthony Liguori
2012-06-04  6:36     ` Paolo Bonzini
2012-06-04 18:52       ` Lluís Vilanova
2012-06-04 18:58         ` Eric Blake
2012-06-05 14:05           ` Paolo Bonzini
2012-06-03 22:55 ` Anthony Liguori
2012-06-04 16:02 ` Lluís Vilanova

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1338726358-30681-9-git-send-email-pbonzini@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).