aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel P. Berrange <berrange@redhat.com>2015-09-02 11:18:16 +0100
committerDaniel P. Berrange <berrange@redhat.com>2015-09-15 14:35:39 +0100
commit0c7012e0558e4312e575fd4c70652d8ef2265ff7 (patch)
tree94301efe545752426e5bab1a6f18abab31af3a4f
parentfb37726db77b21f3731b90693d2c93ade1777528 (diff)
downloadqemu-0c7012e0558e4312e575fd4c70652d8ef2265ff7.zip
qemu-0c7012e0558e4312e575fd4c70652d8ef2265ff7.tar.gz
qemu-0c7012e0558e4312e575fd4c70652d8ef2265ff7.tar.bz2
qom: allow QOM to be linked into tools binaries
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>
-rw-r--r--Makefile8
-rw-r--r--Makefile.objs5
-rw-r--r--Makefile.target2
-rw-r--r--qom/Makefile.objs7
-rw-r--r--tests/Makefile4
5 files changed, 17 insertions, 9 deletions
diff --git a/Makefile b/Makefile
index 9c08b11..36943da 100644
--- a/Makefile
+++ b/Makefile
@@ -154,6 +154,7 @@ dummy := $(call unnest-vars,, \
block-obj-m \
crypto-obj-y \
crypto-aes-obj-y \
+ qom-obj-y \
common-obj-y \
common-obj-m)
@@ -176,6 +177,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-%:
@@ -230,9 +232,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 655c1f0..3df2efc 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -26,6 +26,11 @@ block-obj-m = block/
crypto-obj-y = crypto/
crypto-aes-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 3d97966..edd136f 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -172,11 +172,13 @@ dummy := $(call unnest-vars,.., \
block-obj-m \
crypto-obj-y \
crypto-aes-obj-y \
+ qom-obj-y \
common-obj-y \
common-obj-m)
target-obj-y := $(target-obj-y-save)
all-obj-y += $(common-obj-y)
all-obj-y += $(target-obj-y)
+all-obj-y += $(qom-obj-y)
all-obj-$(CONFIG_SOFTMMU) += $(block-obj-y)
all-obj-$(CONFIG_USER_ONLY) += $(crypto-aes-obj-y)
all-obj-$(CONFIG_SOFTMMU) += $(crypto-obj-y)
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 d77ccee..ddd5148 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -284,9 +284,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)