1####################################################################### 2# Common libraries for tools and emulators 3stub-obj-y = stubs/ 4util-obj-y = crypto/ util/ qobject/ qapi/ 5qom-obj-y = qom/ 6 7####################################################################### 8# code used by both qemu system emulation and qemu-img 9 10ifeq ($(call lor,$(CONFIG_SOFTMMU),$(CONFIG_TOOLS)),y) 11 12chardev-obj-y = chardev/ 13 14authz-obj-y = authz/ 15 16block-obj-y = block/ nbd/ scsi/ 17block-obj-y += block.o blockjob.o job.o 18block-obj-y += qemu-io-cmds.o 19block-obj-$(CONFIG_REPLICATION) += replication.o 20 21block-obj-m = block/ 22 23crypto-obj-y = crypto/ 24 25io-obj-y = io/ 26 27endif # CONFIG_SOFTMMU or CONFIG_TOOLS 28 29####################################################################### 30# storage-daemon-obj-y is code used by qemu-storage-daemon (these objects are 31# used for system emulation, too, but specified separately there) 32 33storage-daemon-obj-y = block/ monitor/ qapi/ qom/ storage-daemon/ 34storage-daemon-obj-y += blockdev.o blockdev-nbd.o iothread.o job-qmp.o 35storage-daemon-obj-$(CONFIG_WIN32) += os-win32.o 36storage-daemon-obj-$(CONFIG_POSIX) += os-posix.o 37 38###################################################################### 39# Target independent part of system emulation. The long term path is to 40# suppress *all* target specific code in case of system emulation, i.e. a 41# single QEMU executable should support all CPUs and machines. 42 43ifeq ($(CONFIG_SOFTMMU),y) 44common-obj-y = blockdev.o blockdev-nbd.o block/ 45common-obj-y += bootdevice.o iothread.o 46common-obj-y += dump/ 47common-obj-y += job-qmp.o 48common-obj-y += monitor/ 49common-obj-y += net/ 50common-obj-y += qdev-monitor.o 51common-obj-$(CONFIG_WIN32) += os-win32.o 52common-obj-$(CONFIG_POSIX) += os-posix.o 53 54common-obj-$(CONFIG_LINUX) += fsdev/ 55 56common-obj-y += accel/ 57common-obj-y += migration/ 58 59common-obj-y += audio/ 60common-obj-m += audio/ 61common-obj-y += hw/ 62common-obj-m += hw/ 63 64common-obj-y += replay/ 65 66common-obj-y += ui/ 67common-obj-m += ui/ 68 69common-obj-y += dma-helpers.o 70common-obj-$(CONFIG_TPM) += tpm.o 71 72common-obj-y += backends/ 73common-obj-y += chardev/ 74common-obj-m += chardev/ 75 76common-obj-$(CONFIG_SECCOMP) += qemu-seccomp.o 77qemu-seccomp.o-cflags := $(SECCOMP_CFLAGS) 78qemu-seccomp.o-libs := $(SECCOMP_LIBS) 79 80common-obj-$(CONFIG_FDT) += device_tree.o 81 82common-obj-y += qapi/ 83 84endif # CONFIG_SOFTMMU 85 86####################################################################### 87# Target-independent parts used in system and user emulation 88common-obj-y += cpus-common.o 89common-obj-y += hw/ 90common-obj-y += qom/ 91common-obj-y += disas/ 92 93###################################################################### 94# Resource file for Windows executables 95version-obj-$(CONFIG_WIN32) += $(BUILD_DIR)/version.o 96 97###################################################################### 98# tracing 99util-obj-y += trace/ 100 101###################################################################### 102# guest agent 103 104# FIXME: a few definitions from qapi/qapi-types.o and 105# qapi/qapi-visit.o are needed by libqemuutil.a. These should be 106# extracted into a QAPI schema module, or perhaps a separate schema. 107qga-obj-y = qga/ 108qga-vss-dll-obj-y = qga/ 109 110###################################################################### 111# contrib 112elf2dmp-obj-y = contrib/elf2dmp/ 113ivshmem-client-obj-$(CONFIG_IVSHMEM) = contrib/ivshmem-client/ 114ivshmem-server-obj-$(CONFIG_IVSHMEM) = contrib/ivshmem-server/ 115libvhost-user-obj-y = contrib/libvhost-user/ 116vhost-user-scsi.o-cflags := $(LIBISCSI_CFLAGS) 117vhost-user-scsi.o-libs := $(LIBISCSI_LIBS) 118vhost-user-scsi-obj-y = contrib/vhost-user-scsi/ 119vhost-user-blk-obj-y = contrib/vhost-user-blk/ 120rdmacm-mux-obj-y = contrib/rdmacm-mux/ 121vhost-user-input-obj-y = contrib/vhost-user-input/ 122vhost-user-gpu-obj-y = contrib/vhost-user-gpu/ 123virtiofsd-obj-y = tools/virtiofsd/ 124 125###################################################################### 126trace-events-subdirs = 127trace-events-subdirs += accel/kvm 128trace-events-subdirs += accel/tcg 129trace-events-subdirs += backends 130trace-events-subdirs += backends/tpm 131trace-events-subdirs += crypto 132trace-events-subdirs += monitor 133ifeq ($(CONFIG_USER_ONLY),y) 134trace-events-subdirs += linux-user 135endif 136ifeq ($(CONFIG_BLOCK),y) 137trace-events-subdirs += authz 138trace-events-subdirs += block 139trace-events-subdirs += io 140trace-events-subdirs += nbd 141trace-events-subdirs += scsi 142endif 143ifeq ($(CONFIG_SOFTMMU),y) 144trace-events-subdirs += audio 145trace-events-subdirs += chardev 146trace-events-subdirs += hw/9pfs 147trace-events-subdirs += hw/acpi 148trace-events-subdirs += hw/alpha 149trace-events-subdirs += hw/arm 150trace-events-subdirs += hw/audio 151trace-events-subdirs += hw/block 152trace-events-subdirs += hw/block/dataplane 153trace-events-subdirs += hw/char 154trace-events-subdirs += hw/dma 155trace-events-subdirs += hw/hppa 156trace-events-subdirs += hw/hyperv 157trace-events-subdirs += hw/i2c 158trace-events-subdirs += hw/i386 159trace-events-subdirs += hw/i386/xen 160trace-events-subdirs += hw/ide 161trace-events-subdirs += hw/input 162trace-events-subdirs += hw/intc 163trace-events-subdirs += hw/isa 164trace-events-subdirs += hw/mem 165trace-events-subdirs += hw/mips 166trace-events-subdirs += hw/misc 167trace-events-subdirs += hw/misc/macio 168trace-events-subdirs += hw/net 169trace-events-subdirs += hw/nvram 170trace-events-subdirs += hw/pci 171trace-events-subdirs += hw/pci-host 172trace-events-subdirs += hw/ppc 173trace-events-subdirs += hw/rdma 174trace-events-subdirs += hw/rdma/vmw 175trace-events-subdirs += hw/rtc 176trace-events-subdirs += hw/s390x 177trace-events-subdirs += hw/scsi 178trace-events-subdirs += hw/sd 179trace-events-subdirs += hw/sparc 180trace-events-subdirs += hw/sparc64 181trace-events-subdirs += hw/ssi 182trace-events-subdirs += hw/timer 183trace-events-subdirs += hw/tpm 184trace-events-subdirs += hw/usb 185trace-events-subdirs += hw/vfio 186trace-events-subdirs += hw/virtio 187trace-events-subdirs += hw/watchdog 188trace-events-subdirs += hw/xen 189trace-events-subdirs += hw/gpio 190trace-events-subdirs += hw/riscv 191trace-events-subdirs += migration 192trace-events-subdirs += net 193trace-events-subdirs += ui 194endif 195trace-events-subdirs += hw/core 196trace-events-subdirs += hw/display 197trace-events-subdirs += qapi 198trace-events-subdirs += qom 199trace-events-subdirs += target/arm 200trace-events-subdirs += target/hppa 201trace-events-subdirs += target/i386 202trace-events-subdirs += target/mips 203trace-events-subdirs += target/ppc 204trace-events-subdirs += target/riscv 205trace-events-subdirs += target/s390x 206trace-events-subdirs += target/sparc 207trace-events-subdirs += util 208 209trace-events-files = $(SRC_PATH)/trace-events $(trace-events-subdirs:%=$(SRC_PATH)/%/trace-events) 210 211trace-obj-y = trace-root.o 212trace-obj-y += $(trace-events-subdirs:%=%/trace.o) 213trace-obj-$(CONFIG_TRACE_UST) += trace-ust-all.o 214trace-obj-$(CONFIG_TRACE_DTRACE) += trace-dtrace-root.o 215trace-obj-$(CONFIG_TRACE_DTRACE) += $(trace-events-subdirs:%=%/trace-dtrace.o) 216