Makefile.objs 8.74 KB
Newer Older
1
#######################################################################
2
# Common libraries for tools and emulators
3
stub-obj-y = stubs/ crypto/
4
util-obj-y = util/ qobject/ qapi/
5 6
util-obj-y += qapi/qapi-builtin-types.o
util-obj-y += qapi/qapi-types.o
7 8 9 10 11 12 13
util-obj-y += qapi/qapi-types-block-core.o
util-obj-y += qapi/qapi-types-block.o
util-obj-y += qapi/qapi-types-char.o
util-obj-y += qapi/qapi-types-common.o
util-obj-y += qapi/qapi-types-crypto.o
util-obj-y += qapi/qapi-types-introspect.o
util-obj-y += qapi/qapi-types-migration.o
14
util-obj-y += qapi/qapi-types-misc.o
15 16 17 18 19 20 21 22
util-obj-y += qapi/qapi-types-net.o
util-obj-y += qapi/qapi-types-rocker.o
util-obj-y += qapi/qapi-types-run-state.o
util-obj-y += qapi/qapi-types-sockets.o
util-obj-y += qapi/qapi-types-tpm.o
util-obj-y += qapi/qapi-types-trace.o
util-obj-y += qapi/qapi-types-transaction.o
util-obj-y += qapi/qapi-types-ui.o
23 24
util-obj-y += qapi/qapi-builtin-visit.o
util-obj-y += qapi/qapi-visit.o
25 26 27 28 29 30 31
util-obj-y += qapi/qapi-visit-block-core.o
util-obj-y += qapi/qapi-visit-block.o
util-obj-y += qapi/qapi-visit-char.o
util-obj-y += qapi/qapi-visit-common.o
util-obj-y += qapi/qapi-visit-crypto.o
util-obj-y += qapi/qapi-visit-introspect.o
util-obj-y += qapi/qapi-visit-migration.o
32
util-obj-y += qapi/qapi-visit-misc.o
33 34 35 36 37 38 39 40
util-obj-y += qapi/qapi-visit-net.o
util-obj-y += qapi/qapi-visit-rocker.o
util-obj-y += qapi/qapi-visit-run-state.o
util-obj-y += qapi/qapi-visit-sockets.o
util-obj-y += qapi/qapi-visit-tpm.o
util-obj-y += qapi/qapi-visit-trace.o
util-obj-y += qapi/qapi-visit-transaction.o
util-obj-y += qapi/qapi-visit-ui.o
41
util-obj-y += qapi/qapi-events.o
42 43 44 45 46 47 48
util-obj-y += qapi/qapi-events-block-core.o
util-obj-y += qapi/qapi-events-block.o
util-obj-y += qapi/qapi-events-char.o
util-obj-y += qapi/qapi-events-common.o
util-obj-y += qapi/qapi-events-crypto.o
util-obj-y += qapi/qapi-events-introspect.o
util-obj-y += qapi/qapi-events-migration.o
49
util-obj-y += qapi/qapi-events-misc.o
50 51 52 53 54 55 56 57
util-obj-y += qapi/qapi-events-net.o
util-obj-y += qapi/qapi-events-rocker.o
util-obj-y += qapi/qapi-events-run-state.o
util-obj-y += qapi/qapi-events-sockets.o
util-obj-y += qapi/qapi-events-tpm.o
util-obj-y += qapi/qapi-events-trace.o
util-obj-y += qapi/qapi-events-transaction.o
util-obj-y += qapi/qapi-events-ui.o
58
util-obj-y += qapi/qapi-introspect.o
59

60 61
chardev-obj-y = chardev/

62 63 64
#######################################################################
# block-obj-y is code used by both qemu system emulation and qemu-img

Fam Zheng's avatar
Fam Zheng committed
65 66
block-obj-y += nbd/
block-obj-y += block.o blockjob.o
67
block-obj-y += block/ scsi/
68
block-obj-y += qemu-io-cmds.o
69
block-obj-$(CONFIG_REPLICATION) += replication.o
70

71 72
block-obj-m = block/

73 74 75 76 77
#######################################################################
# crypto-obj-y is code used by both qemu system emulation and qemu-img

crypto-obj-y = crypto/
crypto-aes-obj-y = crypto/
78

79 80 81 82 83
#######################################################################
# qom-obj-y is code used by both qemu system emulation and qemu-img

qom-obj-y = qom/

84 85 86 87 88
#######################################################################
# io-obj-y is code used by both qemu system emulation and qemu-img

io-obj-y = io/

89
######################################################################
90 91 92
# Target independent part of system emulation. The long term path is to
# suppress *all* target specific code in case of system emulation, i.e. a
# single QEMU executable should support all CPUs and machines.
93

94
ifeq ($(CONFIG_SOFTMMU),y)
95
common-obj-y = blockdev.o blockdev-nbd.o block/
96
common-obj-y += bootdevice.o iothread.o
Paolo Bonzini's avatar
Paolo Bonzini committed
97
common-obj-y += net/
98
common-obj-y += qdev-monitor.o device-hotplug.o
99 100
common-obj-$(CONFIG_WIN32) += os-win32.o
common-obj-$(CONFIG_POSIX) += os-posix.o
101

102 103
common-obj-$(CONFIG_LINUX) += fsdev/

104
common-obj-y += migration/
105

106
common-obj-y += audio/
107
common-obj-m += audio/
108
common-obj-y += hw/
109

110 111
common-obj-y += replay/

112
common-obj-y += ui/
113
common-obj-m += ui/
114
common-obj-y += bt-host.o bt-vhci.o
115
bt-host.o-cflags := $(BLUEZ_CFLAGS)
116

Stefan Weil's avatar
Stefan Weil committed
117 118
common-obj-y += dma-helpers.o
common-obj-y += vl.o
119
vl.o-cflags := $(GPROF_CFLAGS) $(SDL_CFLAGS)
Philippe Mathieu-Daudé's avatar
Philippe Mathieu-Daudé committed
120
common-obj-$(CONFIG_TPM) += tpm.o
121

122
common-obj-$(CONFIG_SLIRP) += slirp/
123

124
common-obj-y += backends/
125
common-obj-y += chardev/
126

127
common-obj-$(CONFIG_SECCOMP) += qemu-seccomp.o
128 129
qemu-seccomp.o-cflags := $(SECCOMP_CFLAGS)
qemu-seccomp.o-libs := $(SECCOMP_LIBS)
130

131 132
common-obj-$(CONFIG_FDT) += device_tree.o

133 134 135
######################################################################
# qapi

136
common-obj-y += qapi/qapi-commands.o
137 138 139 140 141 142 143
common-obj-y += qapi/qapi-commands-block-core.o
common-obj-y += qapi/qapi-commands-block.o
common-obj-y += qapi/qapi-commands-char.o
common-obj-y += qapi/qapi-commands-common.o
common-obj-y += qapi/qapi-commands-crypto.o
common-obj-y += qapi/qapi-commands-introspect.o
common-obj-y += qapi/qapi-commands-migration.o
144
common-obj-y += qapi/qapi-commands-misc.o
145 146 147 148 149 150 151 152
common-obj-y += qapi/qapi-commands-net.o
common-obj-y += qapi/qapi-commands-rocker.o
common-obj-y += qapi/qapi-commands-run-state.o
common-obj-y += qapi/qapi-commands-sockets.o
common-obj-y += qapi/qapi-commands-tpm.o
common-obj-y += qapi/qapi-commands-trace.o
common-obj-y += qapi/qapi-commands-transaction.o
common-obj-y += qapi/qapi-commands-ui.o
153
common-obj-y += qapi/qapi-introspect.o
154
common-obj-y += qmp.o hmp.o
155
endif
156

157 158
#######################################################################
# Target-independent parts used in system and user emulation
159
common-obj-y += cpus-common.o
160 161 162
common-obj-y += hw/
common-obj-y += qom/
common-obj-y += disas/
163

164 165 166 167
######################################################################
# Resource file for Windows executables
version-obj-$(CONFIG_WIN32) += $(BUILD_DIR)/version.o

168 169 170 171 172
######################################################################
# tracing
util-obj-y +=  trace/
target-obj-y += trace/

173 174 175
######################################################################
# guest agent

176 177 178
# FIXME: a few definitions from qapi/qapi-types.o and
# qapi/qapi-visit.o are needed by libqemuutil.a.  These should be
# extracted into a QAPI schema module, or perhaps a separate schema.
179
qga-obj-y = qga/
180
qga-vss-dll-obj-y = qga/
181 182 183

######################################################################
# contrib
184 185
ivshmem-client-obj-$(CONFIG_IVSHMEM) = contrib/ivshmem-client/
ivshmem-server-obj-$(CONFIG_IVSHMEM) = contrib/ivshmem-server/
186
libvhost-user-obj-y = contrib/libvhost-user/
187 188 189
vhost-user-scsi.o-cflags := $(LIBISCSI_CFLAGS)
vhost-user-scsi.o-libs := $(LIBISCSI_LIBS)
vhost-user-scsi-obj-y = contrib/vhost-user-scsi/
190
vhost-user-blk-obj-y = contrib/vhost-user-blk/
191 192

######################################################################
193 194 195 196 197 198
trace-events-subdirs =
trace-events-subdirs += util
trace-events-subdirs += crypto
trace-events-subdirs += io
trace-events-subdirs += migration
trace-events-subdirs += block
199
trace-events-subdirs += chardev
200 201 202 203 204
trace-events-subdirs += hw/block
trace-events-subdirs += hw/block/dataplane
trace-events-subdirs += hw/char
trace-events-subdirs += hw/intc
trace-events-subdirs += hw/net
205
trace-events-subdirs += hw/rdma
206
trace-events-subdirs += hw/rdma/vmw
207 208 209
trace-events-subdirs += hw/virtio
trace-events-subdirs += hw/audio
trace-events-subdirs += hw/misc
210
trace-events-subdirs += hw/misc/macio
211 212 213 214 215 216 217 218
trace-events-subdirs += hw/usb
trace-events-subdirs += hw/scsi
trace-events-subdirs += hw/nvram
trace-events-subdirs += hw/display
trace-events-subdirs += hw/input
trace-events-subdirs += hw/timer
trace-events-subdirs += hw/dma
trace-events-subdirs += hw/sparc
219
trace-events-subdirs += hw/sparc64
220 221 222 223 224 225 226 227
trace-events-subdirs += hw/sd
trace-events-subdirs += hw/isa
trace-events-subdirs += hw/mem
trace-events-subdirs += hw/i386
trace-events-subdirs += hw/i386/xen
trace-events-subdirs += hw/9pfs
trace-events-subdirs += hw/ppc
trace-events-subdirs += hw/pci
228
trace-events-subdirs += hw/pci-host
229 230 231 232 233
trace-events-subdirs += hw/s390x
trace-events-subdirs += hw/vfio
trace-events-subdirs += hw/acpi
trace-events-subdirs += hw/arm
trace-events-subdirs += hw/alpha
234
trace-events-subdirs += hw/hppa
235
trace-events-subdirs += hw/xen
236
trace-events-subdirs += hw/ide
237
trace-events-subdirs += hw/tpm
238 239 240 241 242
trace-events-subdirs += ui
trace-events-subdirs += audio
trace-events-subdirs += net
trace-events-subdirs += target/arm
trace-events-subdirs += target/i386
243
trace-events-subdirs += target/mips
244 245 246 247 248 249
trace-events-subdirs += target/sparc
trace-events-subdirs += target/s390x
trace-events-subdirs += target/ppc
trace-events-subdirs += qom
trace-events-subdirs += linux-user
trace-events-subdirs += qapi
250
trace-events-subdirs += accel/tcg
251
trace-events-subdirs += accel/kvm
252
trace-events-subdirs += nbd
253
trace-events-subdirs += scsi
254 255 256 257 258 259 260 261

trace-events-files = $(SRC_PATH)/trace-events $(trace-events-subdirs:%=$(SRC_PATH)/%/trace-events)

trace-obj-y = trace-root.o
trace-obj-y += $(trace-events-subdirs:%=%/trace.o)
trace-obj-$(CONFIG_TRACE_UST) += trace-ust-all.o
trace-obj-$(CONFIG_TRACE_DTRACE) += trace-dtrace-root.o
trace-obj-$(CONFIG_TRACE_DTRACE) += $(trace-events-subdirs:%=%/trace-dtrace.o)