From: Daniel P. Berrange Date: Wed, 2 Sep 2015 10:18:16 +0000 (+0100) Subject: qom: allow QOM to be linked into tools binaries X-Git-Tag: v2.5.0-rc0~125^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0c7012e0558e4312e575fd4c70652d8ef2265ff7;p=thirdparty%2Fqemu.git 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 --- diff --git a/Makefile b/Makefile index 9c08b11ca8e..36943da15c7 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 655c1f0abaa..3df2efca1c7 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 3d97966e75c..edd136fed6a 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 985003bd034..516349eec32 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 d77ccee3ab3..ddd5148988f 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)