diff mbox

[PULL,04/11] qom: allow QOM to be linked into tools binaries

Message ID 1441973427-8897-5-git-send-email-berrange@redhat.com
State New
Headers show

Commit Message

Daniel P. Berrangé Sept. 11, 2015, 12:10 p.m. UTC
The qom objects are currently added to common-obj-y
which is only linked into the system emulators. The
later crypto patches will depend on QOM infrastructure
and will also be used from tools binaries. Thus the QOM
objects are moved into a new qom-obj-y variable which
can be referenced when linking tools, system emulators
and tests.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
 Makefile          | 8 +++++---
 Makefile.objs     | 5 +++++
 Makefile.target   | 2 ++
 qom/Makefile.objs | 7 ++++---
 tests/Makefile    | 4 +---
 5 files changed, 17 insertions(+), 9 deletions(-)
diff mbox

Patch

diff --git a/Makefile b/Makefile
index bb06c4f..8c096a7 100644
--- a/Makefile
+++ b/Makefile
@@ -153,6 +153,7 @@  dummy := $(call unnest-vars,, \
                 block-obj-y \
                 block-obj-m \
                 crypto-obj-y \
+                qom-obj-y \
                 common-obj-y \
                 common-obj-m)
 
@@ -175,6 +176,7 @@  SOFTMMU_SUBDIR_RULES=$(filter %-softmmu,$(SUBDIR_RULES))
 
 $(SOFTMMU_SUBDIR_RULES): $(block-obj-y)
 $(SOFTMMU_SUBDIR_RULES): $(crypto-obj-y)
+$(SOFTMMU_SUBDIR_RULES): $(qom-obj-y)
 $(SOFTMMU_SUBDIR_RULES): config-all-devices.mak
 
 subdir-%:
@@ -229,9 +231,9 @@  util/module.o-cflags = -D'CONFIG_BLOCK_MODULES=$(block-modules)'
 
 qemu-img.o: qemu-img-cmds.h
 
-qemu-img$(EXESUF): qemu-img.o $(block-obj-y) $(crypto-obj-y) libqemuutil.a libqemustub.a
-qemu-nbd$(EXESUF): qemu-nbd.o $(block-obj-y) $(crypto-obj-y) libqemuutil.a libqemustub.a
-qemu-io$(EXESUF): qemu-io.o $(block-obj-y) $(crypto-obj-y) libqemuutil.a libqemustub.a
+qemu-img$(EXESUF): qemu-img.o $(block-obj-y) $(crypto-obj-y) $(qom-obj-y) libqemuutil.a libqemustub.a
+qemu-nbd$(EXESUF): qemu-nbd.o $(block-obj-y) $(crypto-obj-y) $(qom-obj-y) libqemuutil.a libqemustub.a
+qemu-io$(EXESUF): qemu-io.o $(block-obj-y) $(crypto-obj-y) $(qom-obj-y) libqemuutil.a libqemustub.a
 
 qemu-bridge-helper$(EXESUF): qemu-bridge-helper.o
 
diff --git a/Makefile.objs b/Makefile.objs
index c7ed989..2ff4224 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -25,6 +25,11 @@  block-obj-m = block/
 
 crypto-obj-y = crypto/
 
+#######################################################################
+# qom-obj-y is code used by both qemu system emulation and qemu-img
+
+qom-obj-y = qom/
+
 ######################################################################
 # smartcard
 
diff --git a/Makefile.target b/Makefile.target
index 2053ecd..0d968d6 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -171,6 +171,7 @@  dummy := $(call unnest-vars,.., \
                block-obj-y \
                block-obj-m \
                crypto-obj-y \
+               qom-obj-y \
                common-obj-y \
                common-obj-m)
 target-obj-y := $(target-obj-y-save)
@@ -178,6 +179,7 @@  all-obj-y += $(common-obj-y)
 all-obj-y += $(target-obj-y)
 all-obj-$(CONFIG_SOFTMMU) += $(block-obj-y)
 all-obj-$(CONFIG_SOFTMMU) += $(crypto-obj-y)
+all-obj-$(CONFIG_SOFTMMU) += $(qom-obj-y)
 
 $(QEMU_PROG_BUILD): config-devices.mak
 
diff --git a/qom/Makefile.objs b/qom/Makefile.objs
index 985003b..516349e 100644
--- a/qom/Makefile.objs
+++ b/qom/Makefile.objs
@@ -1,3 +1,4 @@ 
-common-obj-y = object.o container.o qom-qobject.o
-common-obj-y += cpu.o
-common-obj-y += object_interfaces.o
+qom-obj-y = object.o container.o qom-qobject.o
+qom-obj-y += object_interfaces.o
+
+common-obj-y = cpu.o
diff --git a/tests/Makefile b/tests/Makefile
index 3bed89d..c8f85cc 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -282,9 +282,7 @@  QEMU_CFLAGS += -I$(SRC_PATH)/tests
 
 # Deps that are common to various different sets of tests below
 test-util-obj-y = libqemuutil.a libqemustub.a
-test-qom-obj-y = qom/object.o qom/qom-qobject.o \
-	qom/container.o qom/object_interfaces.o \
-	$(test-util-obj-y)
+test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y)
 test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \
 	tests/test-qapi-event.o \
 	$(test-qom-obj-y)