qcow2: try load bitmaps only once
[qemu/kevin.git] / Makefile.objs
blobc6c9b8fc2177a3f6e26c364112e3fc1bbba90b3e
1 #######################################################################
2 # Common libraries for tools and emulators
3 stub-obj-y = stubs/ crypto/
4 util-obj-y = util/ qobject/ qapi/
5 util-obj-y += qapi/qapi-builtin-types.o
6 util-obj-y += qapi/qapi-types.o
7 util-obj-y += qapi/qapi-types-block-core.o
8 util-obj-y += qapi/qapi-types-block.o
9 util-obj-y += qapi/qapi-types-char.o
10 util-obj-y += qapi/qapi-types-common.o
11 util-obj-y += qapi/qapi-types-crypto.o
12 util-obj-y += qapi/qapi-types-introspect.o
13 util-obj-y += qapi/qapi-types-migration.o
14 util-obj-y += qapi/qapi-types-misc.o
15 util-obj-y += qapi/qapi-types-net.o
16 util-obj-y += qapi/qapi-types-rocker.o
17 util-obj-y += qapi/qapi-types-run-state.o
18 util-obj-y += qapi/qapi-types-sockets.o
19 util-obj-y += qapi/qapi-types-tpm.o
20 util-obj-y += qapi/qapi-types-trace.o
21 util-obj-y += qapi/qapi-types-transaction.o
22 util-obj-y += qapi/qapi-types-ui.o
23 util-obj-y += qapi/qapi-builtin-visit.o
24 util-obj-y += qapi/qapi-visit.o
25 util-obj-y += qapi/qapi-visit-block-core.o
26 util-obj-y += qapi/qapi-visit-block.o
27 util-obj-y += qapi/qapi-visit-char.o
28 util-obj-y += qapi/qapi-visit-common.o
29 util-obj-y += qapi/qapi-visit-crypto.o
30 util-obj-y += qapi/qapi-visit-introspect.o
31 util-obj-y += qapi/qapi-visit-migration.o
32 util-obj-y += qapi/qapi-visit-misc.o
33 util-obj-y += qapi/qapi-visit-net.o
34 util-obj-y += qapi/qapi-visit-rocker.o
35 util-obj-y += qapi/qapi-visit-run-state.o
36 util-obj-y += qapi/qapi-visit-sockets.o
37 util-obj-y += qapi/qapi-visit-tpm.o
38 util-obj-y += qapi/qapi-visit-trace.o
39 util-obj-y += qapi/qapi-visit-transaction.o
40 util-obj-y += qapi/qapi-visit-ui.o
41 util-obj-y += qapi/qapi-events.o
42 util-obj-y += qapi/qapi-events-block-core.o
43 util-obj-y += qapi/qapi-events-block.o
44 util-obj-y += qapi/qapi-events-char.o
45 util-obj-y += qapi/qapi-events-common.o
46 util-obj-y += qapi/qapi-events-crypto.o
47 util-obj-y += qapi/qapi-events-introspect.o
48 util-obj-y += qapi/qapi-events-migration.o
49 util-obj-y += qapi/qapi-events-misc.o
50 util-obj-y += qapi/qapi-events-net.o
51 util-obj-y += qapi/qapi-events-rocker.o
52 util-obj-y += qapi/qapi-events-run-state.o
53 util-obj-y += qapi/qapi-events-sockets.o
54 util-obj-y += qapi/qapi-events-tpm.o
55 util-obj-y += qapi/qapi-events-trace.o
56 util-obj-y += qapi/qapi-events-transaction.o
57 util-obj-y += qapi/qapi-events-ui.o
58 util-obj-y += qapi/qapi-introspect.o
60 chardev-obj-y = chardev/
62 #######################################################################
63 # block-obj-y is code used by both qemu system emulation and qemu-img
65 block-obj-y += nbd/
66 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
71 block-obj-m = block/
73 #######################################################################
74 # crypto-obj-y is code used by both qemu system emulation and qemu-img
76 crypto-obj-y = crypto/
77 crypto-aes-obj-y = crypto/
79 #######################################################################
80 # qom-obj-y is code used by both qemu system emulation and qemu-img
82 qom-obj-y = qom/
84 #######################################################################
85 # io-obj-y is code used by both qemu system emulation and qemu-img
87 io-obj-y = io/
89 ######################################################################
90 # Target independent part of system emulation. The long term path is to
91 # suppress *all* target specific code in case of system emulation, i.e. a
92 # single QEMU executable should support all CPUs and machines.
94 ifeq ($(CONFIG_SOFTMMU),y)
95 common-obj-y = blockdev.o blockdev-nbd.o block/
96 common-obj-y += bootdevice.o iothread.o
97 common-obj-y += net/
98 common-obj-y += qdev-monitor.o device-hotplug.o
99 common-obj-$(CONFIG_WIN32) += os-win32.o
100 common-obj-$(CONFIG_POSIX) += os-posix.o
102 common-obj-$(CONFIG_LINUX) += fsdev/
104 common-obj-y += migration/
106 common-obj-y += audio/
107 common-obj-m += audio/
108 common-obj-y += hw/
110 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)
117 common-obj-y += dma-helpers.o
118 common-obj-y += vl.o
119 vl.o-cflags := $(GPROF_CFLAGS) $(SDL_CFLAGS)
120 common-obj-$(CONFIG_TPM) += tpm.o
122 common-obj-$(CONFIG_SLIRP) += slirp/
124 common-obj-y += backends/
125 common-obj-y += chardev/
127 common-obj-$(CONFIG_SECCOMP) += qemu-seccomp.o
128 qemu-seccomp.o-cflags := $(SECCOMP_CFLAGS)
129 qemu-seccomp.o-libs := $(SECCOMP_LIBS)
131 common-obj-$(CONFIG_FDT) += device_tree.o
133 ######################################################################
134 # qapi
136 common-obj-y += qapi/qapi-commands.o
137 common-obj-y += qapi/qapi-commands-block-core.o
138 common-obj-y += qapi/qapi-commands-block.o
139 common-obj-y += qapi/qapi-commands-char.o
140 common-obj-y += qapi/qapi-commands-common.o
141 common-obj-y += qapi/qapi-commands-crypto.o
142 common-obj-y += qapi/qapi-commands-introspect.o
143 common-obj-y += qapi/qapi-commands-migration.o
144 common-obj-y += qapi/qapi-commands-misc.o
145 common-obj-y += qapi/qapi-commands-net.o
146 common-obj-y += qapi/qapi-commands-rocker.o
147 common-obj-y += qapi/qapi-commands-run-state.o
148 common-obj-y += qapi/qapi-commands-sockets.o
149 common-obj-y += qapi/qapi-commands-tpm.o
150 common-obj-y += qapi/qapi-commands-trace.o
151 common-obj-y += qapi/qapi-commands-transaction.o
152 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
157 #######################################################################
158 # Target-independent parts used in system and user emulation
159 common-obj-y += cpus-common.o
160 common-obj-y += hw/
161 common-obj-y += qom/
162 common-obj-y += disas/
164 ######################################################################
165 # Resource file for Windows executables
166 version-obj-$(CONFIG_WIN32) += $(BUILD_DIR)/version.o
168 ######################################################################
169 # tracing
170 util-obj-y +=  trace/
171 target-obj-y += trace/
173 ######################################################################
174 # guest agent
176 # FIXME: a few definitions from qapi/qapi-types.o and
177 # qapi/qapi-visit.o are needed by libqemuutil.a.  These should be
178 # extracted into a QAPI schema module, or perhaps a separate schema.
179 qga-obj-y = qga/
180 qga-vss-dll-obj-y = qga/
182 ######################################################################
183 # contrib
184 ivshmem-client-obj-$(CONFIG_IVSHMEM) = contrib/ivshmem-client/
185 ivshmem-server-obj-$(CONFIG_IVSHMEM) = contrib/ivshmem-server/
186 libvhost-user-obj-y = contrib/libvhost-user/
187 vhost-user-scsi.o-cflags := $(LIBISCSI_CFLAGS)
188 vhost-user-scsi.o-libs := $(LIBISCSI_LIBS)
189 vhost-user-scsi-obj-y = contrib/vhost-user-scsi/
190 vhost-user-blk-obj-y = contrib/vhost-user-blk/
192 ######################################################################
193 trace-events-subdirs =
194 trace-events-subdirs += util
195 trace-events-subdirs += crypto
196 trace-events-subdirs += io
197 trace-events-subdirs += migration
198 trace-events-subdirs += block
199 trace-events-subdirs += chardev
200 trace-events-subdirs += hw/block
201 trace-events-subdirs += hw/block/dataplane
202 trace-events-subdirs += hw/char
203 trace-events-subdirs += hw/intc
204 trace-events-subdirs += hw/net
205 trace-events-subdirs += hw/rdma
206 trace-events-subdirs += hw/rdma/vmw
207 trace-events-subdirs += hw/virtio
208 trace-events-subdirs += hw/audio
209 trace-events-subdirs += hw/misc
210 trace-events-subdirs += hw/misc/macio
211 trace-events-subdirs += hw/usb
212 trace-events-subdirs += hw/scsi
213 trace-events-subdirs += hw/nvram
214 trace-events-subdirs += hw/display
215 trace-events-subdirs += hw/input
216 trace-events-subdirs += hw/timer
217 trace-events-subdirs += hw/dma
218 trace-events-subdirs += hw/sparc
219 trace-events-subdirs += hw/sparc64
220 trace-events-subdirs += hw/sd
221 trace-events-subdirs += hw/isa
222 trace-events-subdirs += hw/mem
223 trace-events-subdirs += hw/i386
224 trace-events-subdirs += hw/i386/xen
225 trace-events-subdirs += hw/9pfs
226 trace-events-subdirs += hw/ppc
227 trace-events-subdirs += hw/pci
228 trace-events-subdirs += hw/pci-host
229 trace-events-subdirs += hw/s390x
230 trace-events-subdirs += hw/vfio
231 trace-events-subdirs += hw/acpi
232 trace-events-subdirs += hw/arm
233 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 trace-events-subdirs += ui
239 trace-events-subdirs += audio
240 trace-events-subdirs += net
241 trace-events-subdirs += target/arm
242 trace-events-subdirs += target/i386
243 trace-events-subdirs += target/mips
244 trace-events-subdirs += target/sparc
245 trace-events-subdirs += target/s390x
246 trace-events-subdirs += target/ppc
247 trace-events-subdirs += qom
248 trace-events-subdirs += linux-user
249 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
255 trace-events-files = $(SRC_PATH)/trace-events $(trace-events-subdirs:%=$(SRC_PATH)/%/trace-events)
257 trace-obj-y = trace-root.o
258 trace-obj-y += $(trace-events-subdirs:%=%/trace.o)
259 trace-obj-$(CONFIG_TRACE_UST) += trace-ust-all.o
260 trace-obj-$(CONFIG_TRACE_DTRACE) += trace-dtrace-root.o
261 trace-obj-$(CONFIG_TRACE_DTRACE) += $(trace-events-subdirs:%=%/trace-dtrace.o)