Commit 0c7012e0 authored by Daniel P. Berrangé's avatar Daniel P. Berrangé
Browse files

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: default avatarDaniel P. Berrange <berrange@redhat.com>
parent fb37726d
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -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

+5 −0
Original line number Diff line number Diff line
@@ -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

+2 −0
Original line number Diff line number Diff line
@@ -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)
+4 −3
Original line number Diff line number Diff line
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
+1 −3
Original line number Diff line number Diff line
@@ -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)