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