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