]> git.proxmox.com Git - mirror_qemu.git/blob - Makefile.objs
qapi: Generate separate .h, .c for each module
[mirror_qemu.git] / Makefile.objs
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-builtin-types.o
6 util-obj-y += 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-net.o
15 util-obj-y += qapi/qapi-types-rocker.o
16 util-obj-y += qapi/qapi-types-run-state.o
17 util-obj-y += qapi/qapi-types-sockets.o
18 util-obj-y += qapi/qapi-types-tpm.o
19 util-obj-y += qapi/qapi-types-trace.o
20 util-obj-y += qapi/qapi-types-transaction.o
21 util-obj-y += qapi/qapi-types-ui.o
22 util-obj-y += qapi-builtin-visit.o
23 util-obj-y += qapi-visit.o
24 util-obj-y += qapi/qapi-visit-block-core.o
25 util-obj-y += qapi/qapi-visit-block.o
26 util-obj-y += qapi/qapi-visit-char.o
27 util-obj-y += qapi/qapi-visit-common.o
28 util-obj-y += qapi/qapi-visit-crypto.o
29 util-obj-y += qapi/qapi-visit-introspect.o
30 util-obj-y += qapi/qapi-visit-migration.o
31 util-obj-y += qapi/qapi-visit-net.o
32 util-obj-y += qapi/qapi-visit-rocker.o
33 util-obj-y += qapi/qapi-visit-run-state.o
34 util-obj-y += qapi/qapi-visit-sockets.o
35 util-obj-y += qapi/qapi-visit-tpm.o
36 util-obj-y += qapi/qapi-visit-trace.o
37 util-obj-y += qapi/qapi-visit-transaction.o
38 util-obj-y += qapi/qapi-visit-ui.o
39 util-obj-y += qapi-event.o
40 util-obj-y += qapi/qapi-events-block-core.o
41 util-obj-y += qapi/qapi-events-block.o
42 util-obj-y += qapi/qapi-events-char.o
43 util-obj-y += qapi/qapi-events-common.o
44 util-obj-y += qapi/qapi-events-crypto.o
45 util-obj-y += qapi/qapi-events-introspect.o
46 util-obj-y += qapi/qapi-events-migration.o
47 util-obj-y += qapi/qapi-events-net.o
48 util-obj-y += qapi/qapi-events-rocker.o
49 util-obj-y += qapi/qapi-events-run-state.o
50 util-obj-y += qapi/qapi-events-sockets.o
51 util-obj-y += qapi/qapi-events-tpm.o
52 util-obj-y += qapi/qapi-events-trace.o
53 util-obj-y += qapi/qapi-events-transaction.o
54 util-obj-y += qapi/qapi-events-ui.o
55 util-obj-y += qmp-introspect.o
56
57 chardev-obj-y = chardev/
58
59 #######################################################################
60 # block-obj-y is code used by both qemu system emulation and qemu-img
61
62 block-obj-y += nbd/
63 block-obj-y += block.o blockjob.o
64 block-obj-y += block/ scsi/
65 block-obj-y += qemu-io-cmds.o
66 block-obj-$(CONFIG_REPLICATION) += replication.o
67
68 block-obj-m = block/
69
70 #######################################################################
71 # crypto-obj-y is code used by both qemu system emulation and qemu-img
72
73 crypto-obj-y = crypto/
74 crypto-aes-obj-y = crypto/
75
76 #######################################################################
77 # qom-obj-y is code used by both qemu system emulation and qemu-img
78
79 qom-obj-y = qom/
80
81 #######################################################################
82 # io-obj-y is code used by both qemu system emulation and qemu-img
83
84 io-obj-y = io/
85
86 ######################################################################
87 # Target independent part of system emulation. The long term path is to
88 # suppress *all* target specific code in case of system emulation, i.e. a
89 # single QEMU executable should support all CPUs and machines.
90
91 ifeq ($(CONFIG_SOFTMMU),y)
92 common-obj-y = blockdev.o blockdev-nbd.o block/
93 common-obj-y += bootdevice.o iothread.o
94 common-obj-y += net/
95 common-obj-y += qdev-monitor.o device-hotplug.o
96 common-obj-$(CONFIG_WIN32) += os-win32.o
97 common-obj-$(CONFIG_POSIX) += os-posix.o
98
99 common-obj-$(CONFIG_LINUX) += fsdev/
100
101 common-obj-y += migration/
102
103 common-obj-y += audio/
104 common-obj-y += hw/
105
106 common-obj-y += replay/
107
108 common-obj-y += ui/
109 common-obj-y += bt-host.o bt-vhci.o
110 bt-host.o-cflags := $(BLUEZ_CFLAGS)
111
112 common-obj-y += dma-helpers.o
113 common-obj-y += vl.o
114 vl.o-cflags := $(GPROF_CFLAGS) $(SDL_CFLAGS)
115 common-obj-$(CONFIG_TPM) += tpm.o
116
117 common-obj-$(CONFIG_SLIRP) += slirp/
118
119 common-obj-y += backends/
120 common-obj-y += chardev/
121
122 common-obj-$(CONFIG_SECCOMP) += qemu-seccomp.o
123 qemu-seccomp.o-cflags := $(SECCOMP_CFLAGS)
124 qemu-seccomp.o-libs := $(SECCOMP_LIBS)
125
126 common-obj-$(CONFIG_FDT) += device_tree.o
127
128 ######################################################################
129 # qapi
130
131 common-obj-y += qmp-commands.o
132 common-obj-y += qapi/qapi-commands-block-core.o
133 common-obj-y += qapi/qapi-commands-block.o
134 common-obj-y += qapi/qapi-commands-char.o
135 common-obj-y += qapi/qapi-commands-common.o
136 common-obj-y += qapi/qapi-commands-crypto.o
137 common-obj-y += qapi/qapi-commands-introspect.o
138 common-obj-y += qapi/qapi-commands-migration.o
139 common-obj-y += qapi/qapi-commands-net.o
140 common-obj-y += qapi/qapi-commands-rocker.o
141 common-obj-y += qapi/qapi-commands-run-state.o
142 common-obj-y += qapi/qapi-commands-sockets.o
143 common-obj-y += qapi/qapi-commands-tpm.o
144 common-obj-y += qapi/qapi-commands-trace.o
145 common-obj-y += qapi/qapi-commands-transaction.o
146 common-obj-y += qapi/qapi-commands-ui.o
147 common-obj-y += qmp-introspect.o
148 common-obj-y += qmp.o hmp.o
149 endif
150
151 #######################################################################
152 # Target-independent parts used in system and user emulation
153 common-obj-y += cpus-common.o
154 common-obj-y += hw/
155 common-obj-y += qom/
156 common-obj-y += disas/
157
158 ######################################################################
159 # Resource file for Windows executables
160 version-obj-$(CONFIG_WIN32) += $(BUILD_DIR)/version.o
161
162 ######################################################################
163 # tracing
164 util-obj-y += trace/
165 target-obj-y += trace/
166
167 ######################################################################
168 # guest agent
169
170 # FIXME: a few definitions from qapi-types.o/qapi-visit.o are needed
171 # by libqemuutil.a. These should be moved to a separate .json schema.
172 qga-obj-y = qga/
173 qga-vss-dll-obj-y = qga/
174
175 ######################################################################
176 # contrib
177 ivshmem-client-obj-$(CONFIG_IVSHMEM) = contrib/ivshmem-client/
178 ivshmem-server-obj-$(CONFIG_IVSHMEM) = contrib/ivshmem-server/
179 libvhost-user-obj-y = contrib/libvhost-user/
180 vhost-user-scsi.o-cflags := $(LIBISCSI_CFLAGS)
181 vhost-user-scsi.o-libs := $(LIBISCSI_LIBS)
182 vhost-user-scsi-obj-y = contrib/vhost-user-scsi/
183 vhost-user-blk-obj-y = contrib/vhost-user-blk/
184
185 ######################################################################
186 trace-events-subdirs =
187 trace-events-subdirs += util
188 trace-events-subdirs += crypto
189 trace-events-subdirs += io
190 trace-events-subdirs += migration
191 trace-events-subdirs += block
192 trace-events-subdirs += chardev
193 trace-events-subdirs += hw/block
194 trace-events-subdirs += hw/block/dataplane
195 trace-events-subdirs += hw/char
196 trace-events-subdirs += hw/intc
197 trace-events-subdirs += hw/net
198 trace-events-subdirs += hw/rdma
199 trace-events-subdirs += hw/rdma/vmw
200 trace-events-subdirs += hw/virtio
201 trace-events-subdirs += hw/audio
202 trace-events-subdirs += hw/misc
203 trace-events-subdirs += hw/misc/macio
204 trace-events-subdirs += hw/usb
205 trace-events-subdirs += hw/scsi
206 trace-events-subdirs += hw/nvram
207 trace-events-subdirs += hw/display
208 trace-events-subdirs += hw/input
209 trace-events-subdirs += hw/timer
210 trace-events-subdirs += hw/dma
211 trace-events-subdirs += hw/sparc
212 trace-events-subdirs += hw/sparc64
213 trace-events-subdirs += hw/sd
214 trace-events-subdirs += hw/isa
215 trace-events-subdirs += hw/mem
216 trace-events-subdirs += hw/i386
217 trace-events-subdirs += hw/i386/xen
218 trace-events-subdirs += hw/9pfs
219 trace-events-subdirs += hw/ppc
220 trace-events-subdirs += hw/pci
221 trace-events-subdirs += hw/pci-host
222 trace-events-subdirs += hw/s390x
223 trace-events-subdirs += hw/vfio
224 trace-events-subdirs += hw/acpi
225 trace-events-subdirs += hw/arm
226 trace-events-subdirs += hw/alpha
227 trace-events-subdirs += hw/hppa
228 trace-events-subdirs += hw/xen
229 trace-events-subdirs += hw/ide
230 trace-events-subdirs += ui
231 trace-events-subdirs += audio
232 trace-events-subdirs += net
233 trace-events-subdirs += target/arm
234 trace-events-subdirs += target/i386
235 trace-events-subdirs += target/mips
236 trace-events-subdirs += target/sparc
237 trace-events-subdirs += target/s390x
238 trace-events-subdirs += target/ppc
239 trace-events-subdirs += qom
240 trace-events-subdirs += linux-user
241 trace-events-subdirs += qapi
242 trace-events-subdirs += accel/tcg
243 trace-events-subdirs += accel/kvm
244 trace-events-subdirs += nbd
245 trace-events-subdirs += scsi
246
247 trace-events-files = $(SRC_PATH)/trace-events $(trace-events-subdirs:%=$(SRC_PATH)/%/trace-events)
248
249 trace-obj-y = trace-root.o
250 trace-obj-y += $(trace-events-subdirs:%=%/trace.o)
251 trace-obj-$(CONFIG_TRACE_UST) += trace-ust-all.o
252 trace-obj-$(CONFIG_TRACE_DTRACE) += trace-dtrace-root.o
253 trace-obj-$(CONFIG_TRACE_DTRACE) += $(trace-events-subdirs:%=%/trace-dtrace.o)