c589b24972
This provides built-in support for iSCSI to QEMU. This has the advantage that the iSCSI devices need not be made visible to the host, which is useful if you have very many virtual machines and very many iscsi devices. It also has the benefit that non-root users of QEMU can access iSCSI devices across the network without requiring root privilege on the host. This driver interfaces with the multiplatform posix library for iscsi initiator/client access to iscsi devices hosted at git://github.com/sahlberg/libiscsi.git The patch adds the driver to interface with the iscsi library. It also updated the configure script to * by default, probe is libiscsi is available and if so, build qemu against libiscsi. * --enable-libiscsi Force a build against libiscsi. If libiscsi is not available the build will fail. * --disable-libiscsi Do not link against libiscsi, even if it is available. When linked with libiscsi, qemu gains support to access iscsi resources such as disks and cdrom directly, without having to make the devices visible to the host. You can specify devices using a iscsi url of the form : iscsi://[<username>[:<password>@]]<host>[:<port]/<target-iqn-name>/<lun> When using authentication, the password can optionally be set with LIBISCSI_CHAP_PASSWORD="password" to avoid it showing up in the process list Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com> Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
429 lines
15 KiB
Makefile
429 lines
15 KiB
Makefile
#######################################################################
|
|
# QObject
|
|
qobject-obj-y = qint.o qstring.o qdict.o qlist.o qfloat.o qbool.o
|
|
qobject-obj-y += qjson.o json-lexer.o json-streamer.o json-parser.o
|
|
qobject-obj-y += qerror.o error.o
|
|
|
|
#######################################################################
|
|
# oslib-obj-y is code depending on the OS (win32 vs posix)
|
|
oslib-obj-y = osdep.o
|
|
oslib-obj-$(CONFIG_WIN32) += oslib-win32.o qemu-thread-win32.o
|
|
oslib-obj-$(CONFIG_POSIX) += oslib-posix.o qemu-thread-posix.o
|
|
|
|
#######################################################################
|
|
# coroutines
|
|
coroutine-obj-y = qemu-coroutine.o qemu-coroutine-lock.o
|
|
ifeq ($(CONFIG_UCONTEXT_COROUTINE),y)
|
|
coroutine-obj-$(CONFIG_POSIX) += coroutine-ucontext.o
|
|
else
|
|
coroutine-obj-$(CONFIG_POSIX) += coroutine-gthread.o
|
|
endif
|
|
coroutine-obj-$(CONFIG_WIN32) += coroutine-win32.o
|
|
|
|
#######################################################################
|
|
# block-obj-y is code used by both qemu system emulation and qemu-img
|
|
|
|
block-obj-y = cutils.o cache-utils.o qemu-option.o module.o async.o
|
|
block-obj-y += nbd.o block.o aio.o aes.o qemu-config.o qemu-progress.o qemu-sockets.o
|
|
block-obj-y += $(coroutine-obj-y)
|
|
block-obj-$(CONFIG_POSIX) += posix-aio-compat.o
|
|
block-obj-$(CONFIG_LINUX_AIO) += linux-aio.o
|
|
|
|
block-nested-y += raw.o cow.o qcow.o vdi.o vmdk.o cloop.o dmg.o bochs.o vpc.o vvfat.o
|
|
block-nested-y += qcow2.o qcow2-refcount.o qcow2-cluster.o qcow2-snapshot.o qcow2-cache.o
|
|
block-nested-y += qed.o qed-gencb.o qed-l2-cache.o qed-table.o qed-cluster.o
|
|
block-nested-y += qed-check.o
|
|
block-nested-y += parallels.o nbd.o blkdebug.o sheepdog.o blkverify.o
|
|
block-nested-$(CONFIG_WIN32) += raw-win32.o
|
|
block-nested-$(CONFIG_POSIX) += raw-posix.o
|
|
block-nested-$(CONFIG_LIBISCSI) += iscsi.o
|
|
block-nested-$(CONFIG_CURL) += curl.o
|
|
block-nested-$(CONFIG_RBD) += rbd.o
|
|
|
|
block-obj-y += $(addprefix block/, $(block-nested-y))
|
|
|
|
net-obj-y = net.o
|
|
net-nested-y = queue.o checksum.o util.o
|
|
net-nested-y += socket.o
|
|
net-nested-y += dump.o
|
|
net-nested-$(CONFIG_POSIX) += tap.o
|
|
net-nested-$(CONFIG_LINUX) += tap-linux.o
|
|
net-nested-$(CONFIG_WIN32) += tap-win32.o
|
|
net-nested-$(CONFIG_BSD) += tap-bsd.o
|
|
net-nested-$(CONFIG_SOLARIS) += tap-solaris.o
|
|
net-nested-$(CONFIG_AIX) += tap-aix.o
|
|
net-nested-$(CONFIG_HAIKU) += tap-haiku.o
|
|
net-nested-$(CONFIG_SLIRP) += slirp.o
|
|
net-nested-$(CONFIG_VDE) += vde.o
|
|
net-obj-y += $(addprefix net/, $(net-nested-y))
|
|
|
|
ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
|
|
# Lots of the fsdev/9pcode is pulled in by vl.c via qemu_fsdev_add.
|
|
# only pull in the actual virtio-9p device if we also enabled virtio.
|
|
CONFIG_REALLY_VIRTFS=y
|
|
fsdev-nested-y = qemu-fsdev.o
|
|
else
|
|
fsdev-nested-y = qemu-fsdev-dummy.o
|
|
endif
|
|
fsdev-obj-$(CONFIG_VIRTFS) += $(addprefix fsdev/, $(fsdev-nested-y))
|
|
|
|
######################################################################
|
|
# libqemu_common.a: Target independent part of system emulation. The
|
|
# long term path is to suppress *all* target specific code in case of
|
|
# system emulation, i.e. a single QEMU executable should support all
|
|
# CPUs and machines.
|
|
|
|
common-obj-y = $(block-obj-y) blockdev.o
|
|
common-obj-y += $(net-obj-y)
|
|
common-obj-y += $(qobject-obj-y)
|
|
common-obj-$(CONFIG_LINUX) += $(fsdev-obj-$(CONFIG_LINUX))
|
|
common-obj-y += readline.o console.o cursor.o qemu-error.o
|
|
common-obj-y += $(oslib-obj-y)
|
|
common-obj-$(CONFIG_WIN32) += os-win32.o
|
|
common-obj-$(CONFIG_POSIX) += os-posix.o
|
|
|
|
common-obj-y += tcg-runtime.o host-utils.o main-loop.o
|
|
common-obj-y += irq.o input.o
|
|
common-obj-$(CONFIG_PTIMER) += ptimer.o
|
|
common-obj-$(CONFIG_MAX7310) += max7310.o
|
|
common-obj-$(CONFIG_WM8750) += wm8750.o
|
|
common-obj-$(CONFIG_TWL92230) += twl92230.o
|
|
common-obj-$(CONFIG_TSC2005) += tsc2005.o
|
|
common-obj-$(CONFIG_LM832X) += lm832x.o
|
|
common-obj-$(CONFIG_TMP105) += tmp105.o
|
|
common-obj-$(CONFIG_STELLARIS_INPUT) += stellaris_input.o
|
|
common-obj-$(CONFIG_SSD0303) += ssd0303.o
|
|
common-obj-$(CONFIG_SSD0323) += ssd0323.o
|
|
common-obj-$(CONFIG_ADS7846) += ads7846.o
|
|
common-obj-$(CONFIG_MAX111X) += max111x.o
|
|
common-obj-$(CONFIG_DS1338) += ds1338.o
|
|
common-obj-y += i2c.o smbus.o smbus_eeprom.o
|
|
common-obj-y += eeprom93xx.o
|
|
common-obj-y += scsi-disk.o cdrom.o
|
|
common-obj-y += scsi-generic.o scsi-bus.o
|
|
common-obj-y += hid.o
|
|
common-obj-y += usb.o usb-hub.o usb-$(HOST_USB).o usb-hid.o usb-msd.o usb-wacom.o
|
|
common-obj-y += usb-serial.o usb-net.o usb-bus.o usb-desc.o
|
|
common-obj-$(CONFIG_SSI) += ssi.o
|
|
common-obj-$(CONFIG_SSI_SD) += ssi-sd.o
|
|
common-obj-$(CONFIG_SD) += sd.o
|
|
common-obj-y += bt.o bt-host.o bt-vhci.o bt-l2cap.o bt-sdp.o bt-hci.o bt-hid.o usb-bt.o
|
|
common-obj-y += bt-hci-csr.o
|
|
common-obj-y += buffered_file.o migration.o migration-tcp.o
|
|
common-obj-y += qemu-char.o savevm.o #aio.o
|
|
common-obj-y += msmouse.o ps2.o
|
|
common-obj-y += qdev.o qdev-properties.o
|
|
common-obj-y += block-migration.o iohandler.o
|
|
common-obj-y += pflib.o
|
|
common-obj-y += bitmap.o bitops.o
|
|
|
|
common-obj-$(CONFIG_BRLAPI) += baum.o
|
|
common-obj-$(CONFIG_POSIX) += migration-exec.o migration-unix.o migration-fd.o
|
|
common-obj-$(CONFIG_WIN32) += version.o
|
|
|
|
common-obj-$(CONFIG_SPICE) += ui/spice-core.o ui/spice-input.o ui/spice-display.o spice-qemu-char.o
|
|
|
|
audio-obj-y = audio.o noaudio.o wavaudio.o mixeng.o
|
|
audio-obj-$(CONFIG_SDL) += sdlaudio.o
|
|
audio-obj-$(CONFIG_OSS) += ossaudio.o
|
|
audio-obj-$(CONFIG_SPICE) += spiceaudio.o
|
|
audio-obj-$(CONFIG_COREAUDIO) += coreaudio.o
|
|
audio-obj-$(CONFIG_ALSA) += alsaaudio.o
|
|
audio-obj-$(CONFIG_DSOUND) += dsoundaudio.o
|
|
audio-obj-$(CONFIG_FMOD) += fmodaudio.o
|
|
audio-obj-$(CONFIG_ESD) += esdaudio.o
|
|
audio-obj-$(CONFIG_PA) += paaudio.o
|
|
audio-obj-$(CONFIG_WINWAVE) += winwaveaudio.o
|
|
audio-obj-$(CONFIG_AUDIO_PT_INT) += audio_pt_int.o
|
|
audio-obj-$(CONFIG_AUDIO_WIN_INT) += audio_win_int.o
|
|
audio-obj-y += wavcapture.o
|
|
common-obj-y += $(addprefix audio/, $(audio-obj-y))
|
|
|
|
ui-obj-y += keymaps.o
|
|
ui-obj-$(CONFIG_SDL) += sdl.o sdl_zoom.o x_keymap.o
|
|
ui-obj-$(CONFIG_COCOA) += cocoa.o
|
|
ui-obj-$(CONFIG_CURSES) += curses.o
|
|
vnc-obj-y += vnc.o d3des.o
|
|
vnc-obj-y += vnc-enc-zlib.o vnc-enc-hextile.o
|
|
vnc-obj-y += vnc-enc-tight.o vnc-palette.o
|
|
vnc-obj-y += vnc-enc-zrle.o
|
|
vnc-obj-$(CONFIG_VNC_TLS) += vnc-tls.o vnc-auth-vencrypt.o
|
|
vnc-obj-$(CONFIG_VNC_SASL) += vnc-auth-sasl.o
|
|
ifdef CONFIG_VNC_THREAD
|
|
vnc-obj-y += vnc-jobs-async.o
|
|
else
|
|
vnc-obj-y += vnc-jobs-sync.o
|
|
endif
|
|
common-obj-y += $(addprefix ui/, $(ui-obj-y))
|
|
common-obj-$(CONFIG_VNC) += $(addprefix ui/, $(vnc-obj-y))
|
|
|
|
common-obj-y += iov.o acl.o
|
|
common-obj-$(CONFIG_POSIX) += compatfd.o
|
|
common-obj-y += notify.o event_notifier.o
|
|
common-obj-y += qemu-timer.o qemu-timer-common.o
|
|
|
|
slirp-obj-y = cksum.o if.o ip_icmp.o ip_input.o ip_output.o
|
|
slirp-obj-y += slirp.o mbuf.o misc.o sbuf.o socket.o tcp_input.o tcp_output.o
|
|
slirp-obj-y += tcp_subr.o tcp_timer.o udp.o bootp.o tftp.o arp_table.o
|
|
common-obj-$(CONFIG_SLIRP) += $(addprefix slirp/, $(slirp-obj-y))
|
|
|
|
# xen backend driver support
|
|
common-obj-$(CONFIG_XEN_BACKEND) += xen_backend.o xen_devconfig.o
|
|
common-obj-$(CONFIG_XEN_BACKEND) += xen_console.o xenfb.o xen_disk.o xen_nic.o
|
|
|
|
######################################################################
|
|
# libuser
|
|
|
|
user-obj-y =
|
|
user-obj-y += envlist.o path.o
|
|
user-obj-y += tcg-runtime.o host-utils.o
|
|
user-obj-y += cutils.o cache-utils.o
|
|
user-obj-y += $(trace-obj-y)
|
|
|
|
######################################################################
|
|
# libhw
|
|
|
|
hw-obj-y =
|
|
hw-obj-y += vl.o loader.o
|
|
hw-obj-$(CONFIG_VIRTIO) += virtio-console.o
|
|
hw-obj-y += usb-libhw.o
|
|
hw-obj-$(CONFIG_VIRTIO_PCI) += virtio-pci.o
|
|
hw-obj-y += fw_cfg.o
|
|
hw-obj-$(CONFIG_PCI) += pci.o pci_bridge.o
|
|
hw-obj-$(CONFIG_PCI) += msix.o msi.o
|
|
hw-obj-$(CONFIG_PCI) += pci_host.o pcie_host.o
|
|
hw-obj-$(CONFIG_PCI) += ioh3420.o xio3130_upstream.o xio3130_downstream.o
|
|
hw-obj-y += watchdog.o
|
|
hw-obj-$(CONFIG_ISA_MMIO) += isa_mmio.o
|
|
hw-obj-$(CONFIG_ECC) += ecc.o
|
|
hw-obj-$(CONFIG_NAND) += nand.o
|
|
hw-obj-$(CONFIG_PFLASH_CFI01) += pflash_cfi01.o
|
|
hw-obj-$(CONFIG_PFLASH_CFI02) += pflash_cfi02.o
|
|
|
|
hw-obj-$(CONFIG_M48T59) += m48t59.o
|
|
hw-obj-$(CONFIG_ESCC) += escc.o
|
|
hw-obj-$(CONFIG_EMPTY_SLOT) += empty_slot.o
|
|
|
|
hw-obj-$(CONFIG_SERIAL) += serial.o
|
|
hw-obj-$(CONFIG_PARALLEL) += parallel.o
|
|
hw-obj-$(CONFIG_I8254) += i8254.o
|
|
hw-obj-$(CONFIG_PCSPK) += pcspk.o
|
|
hw-obj-$(CONFIG_PCKBD) += pckbd.o
|
|
hw-obj-$(CONFIG_USB_UHCI) += usb-uhci.o
|
|
hw-obj-$(CONFIG_USB_OHCI) += usb-ohci.o
|
|
hw-obj-$(CONFIG_USB_EHCI) += usb-ehci.o
|
|
hw-obj-$(CONFIG_FDC) += fdc.o
|
|
hw-obj-$(CONFIG_ACPI) += acpi.o acpi_piix4.o
|
|
hw-obj-$(CONFIG_APM) += pm_smbus.o apm.o
|
|
hw-obj-$(CONFIG_DMA) += dma.o
|
|
hw-obj-$(CONFIG_HPET) += hpet.o
|
|
hw-obj-$(CONFIG_APPLESMC) += applesmc.o
|
|
hw-obj-$(CONFIG_SMARTCARD) += usb-ccid.o ccid-card-passthru.o
|
|
hw-obj-$(CONFIG_SMARTCARD_NSS) += ccid-card-emulated.o
|
|
hw-obj-$(CONFIG_USB_REDIR) += usb-redir.o
|
|
hw-obj-$(CONFIG_I8259) += i8259.o
|
|
|
|
# PPC devices
|
|
hw-obj-$(CONFIG_PREP_PCI) += prep_pci.o
|
|
# Mac shared devices
|
|
hw-obj-$(CONFIG_MACIO) += macio.o
|
|
hw-obj-$(CONFIG_CUDA) += cuda.o
|
|
hw-obj-$(CONFIG_ADB) += adb.o
|
|
hw-obj-$(CONFIG_MAC_NVRAM) += mac_nvram.o
|
|
hw-obj-$(CONFIG_MAC_DBDMA) += mac_dbdma.o
|
|
# OldWorld PowerMac
|
|
hw-obj-$(CONFIG_HEATHROW_PIC) += heathrow_pic.o
|
|
hw-obj-$(CONFIG_GRACKLE_PCI) += grackle_pci.o
|
|
# NewWorld PowerMac
|
|
hw-obj-$(CONFIG_UNIN_PCI) += unin_pci.o
|
|
hw-obj-$(CONFIG_DEC_PCI) += dec_pci.o
|
|
# PowerPC E500 boards
|
|
hw-obj-$(CONFIG_PPCE500_PCI) += ppce500_pci.o
|
|
|
|
# MIPS devices
|
|
hw-obj-$(CONFIG_PIIX4) += piix4.o
|
|
hw-obj-$(CONFIG_G364FB) += g364fb.o
|
|
|
|
# PCI watchdog devices
|
|
hw-obj-$(CONFIG_PCI) += wdt_i6300esb.o
|
|
|
|
hw-obj-$(CONFIG_PCI) += pcie.o pcie_aer.o pcie_port.o
|
|
|
|
# PCI network cards
|
|
hw-obj-$(CONFIG_NE2000_PCI) += ne2000.o
|
|
hw-obj-$(CONFIG_EEPRO100_PCI) += eepro100.o
|
|
hw-obj-$(CONFIG_PCNET_PCI) += pcnet-pci.o
|
|
hw-obj-$(CONFIG_PCNET_COMMON) += pcnet.o
|
|
hw-obj-$(CONFIG_E1000_PCI) += e1000.o
|
|
hw-obj-$(CONFIG_RTL8139_PCI) += rtl8139.o
|
|
|
|
hw-obj-$(CONFIG_SMC91C111) += smc91c111.o
|
|
hw-obj-$(CONFIG_LAN9118) += lan9118.o
|
|
hw-obj-$(CONFIG_NE2000_ISA) += ne2000-isa.o
|
|
hw-obj-$(CONFIG_OPENCORES_ETH) += opencores_eth.o
|
|
|
|
# IDE
|
|
hw-obj-$(CONFIG_IDE_CORE) += ide/core.o ide/atapi.o
|
|
hw-obj-$(CONFIG_IDE_QDEV) += ide/qdev.o
|
|
hw-obj-$(CONFIG_IDE_PCI) += ide/pci.o
|
|
hw-obj-$(CONFIG_IDE_ISA) += ide/isa.o
|
|
hw-obj-$(CONFIG_IDE_PIIX) += ide/piix.o
|
|
hw-obj-$(CONFIG_IDE_CMD646) += ide/cmd646.o
|
|
hw-obj-$(CONFIG_IDE_MACIO) += ide/macio.o
|
|
hw-obj-$(CONFIG_IDE_VIA) += ide/via.o
|
|
hw-obj-$(CONFIG_AHCI) += ide/ahci.o
|
|
hw-obj-$(CONFIG_AHCI) += ide/ich.o
|
|
|
|
# SCSI layer
|
|
hw-obj-$(CONFIG_LSI_SCSI_PCI) += lsi53c895a.o
|
|
hw-obj-$(CONFIG_ESP) += esp.o
|
|
|
|
hw-obj-y += dma-helpers.o sysbus.o isa-bus.o
|
|
hw-obj-y += qdev-addr.o
|
|
|
|
# VGA
|
|
hw-obj-$(CONFIG_VGA_PCI) += vga-pci.o
|
|
hw-obj-$(CONFIG_VGA_ISA) += vga-isa.o
|
|
hw-obj-$(CONFIG_VGA_ISA_MM) += vga-isa-mm.o
|
|
hw-obj-$(CONFIG_VMWARE_VGA) += vmware_vga.o
|
|
hw-obj-$(CONFIG_VMMOUSE) += vmmouse.o
|
|
|
|
hw-obj-$(CONFIG_RC4030) += rc4030.o
|
|
hw-obj-$(CONFIG_DP8393X) += dp8393x.o
|
|
hw-obj-$(CONFIG_DS1225Y) += ds1225y.o
|
|
hw-obj-$(CONFIG_MIPSNET) += mipsnet.o
|
|
|
|
# Sound
|
|
sound-obj-y =
|
|
sound-obj-$(CONFIG_SB16) += sb16.o
|
|
sound-obj-$(CONFIG_ES1370) += es1370.o
|
|
sound-obj-$(CONFIG_AC97) += ac97.o
|
|
sound-obj-$(CONFIG_ADLIB) += fmopl.o adlib.o
|
|
sound-obj-$(CONFIG_GUS) += gus.o gusemu_hal.o gusemu_mixer.o
|
|
sound-obj-$(CONFIG_CS4231A) += cs4231a.o
|
|
sound-obj-$(CONFIG_HDA) += intel-hda.o hda-audio.o
|
|
|
|
adlib.o fmopl.o: QEMU_CFLAGS += -DBUILD_Y8950=0
|
|
hw-obj-$(CONFIG_SOUND) += $(sound-obj-y)
|
|
|
|
9pfs-nested-$(CONFIG_VIRTFS) = virtio-9p.o
|
|
9pfs-nested-$(CONFIG_VIRTFS) += virtio-9p-local.o virtio-9p-xattr.o
|
|
9pfs-nested-$(CONFIG_VIRTFS) += virtio-9p-xattr-user.o virtio-9p-posix-acl.o
|
|
9pfs-nested-$(CONFIG_VIRTFS) += virtio-9p-coth.o cofs.o codir.o cofile.o
|
|
9pfs-nested-$(CONFIG_VIRTFS) += coxattr.o virtio-9p-handle.o
|
|
|
|
hw-obj-$(CONFIG_REALLY_VIRTFS) += $(addprefix 9pfs/, $(9pfs-nested-y))
|
|
$(addprefix 9pfs/, $(9pfs-nested-y)): QEMU_CFLAGS+=$(GLIB_CFLAGS)
|
|
|
|
|
|
######################################################################
|
|
# libdis
|
|
# NOTE: the disassembler code is only needed for debugging
|
|
|
|
libdis-y =
|
|
libdis-$(CONFIG_ALPHA_DIS) += alpha-dis.o
|
|
libdis-$(CONFIG_ARM_DIS) += arm-dis.o
|
|
libdis-$(CONFIG_CRIS_DIS) += cris-dis.o
|
|
libdis-$(CONFIG_HPPA_DIS) += hppa-dis.o
|
|
libdis-$(CONFIG_I386_DIS) += i386-dis.o
|
|
libdis-$(CONFIG_IA64_DIS) += ia64-dis.o
|
|
libdis-$(CONFIG_M68K_DIS) += m68k-dis.o
|
|
libdis-$(CONFIG_MICROBLAZE_DIS) += microblaze-dis.o
|
|
libdis-$(CONFIG_MIPS_DIS) += mips-dis.o
|
|
libdis-$(CONFIG_PPC_DIS) += ppc-dis.o
|
|
libdis-$(CONFIG_S390_DIS) += s390-dis.o
|
|
libdis-$(CONFIG_SH4_DIS) += sh4-dis.o
|
|
libdis-$(CONFIG_SPARC_DIS) += sparc-dis.o
|
|
|
|
######################################################################
|
|
# trace
|
|
|
|
ifeq ($(TRACE_BACKEND),dtrace)
|
|
trace.h: trace.h-timestamp trace-dtrace.h
|
|
else
|
|
trace.h: trace.h-timestamp
|
|
endif
|
|
trace.h-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak
|
|
$(call quiet-command,sh $(SRC_PATH)/scripts/tracetool --$(TRACE_BACKEND) -h < $< > $@," GEN trace.h")
|
|
@cmp -s $@ trace.h || cp $@ trace.h
|
|
|
|
trace.c: trace.c-timestamp
|
|
trace.c-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak
|
|
$(call quiet-command,sh $(SRC_PATH)/scripts/tracetool --$(TRACE_BACKEND) -c < $< > $@," GEN trace.c")
|
|
@cmp -s $@ trace.c || cp $@ trace.c
|
|
|
|
trace.o: trace.c $(GENERATED_HEADERS)
|
|
|
|
trace-dtrace.h: trace-dtrace.dtrace
|
|
$(call quiet-command,dtrace -o $@ -h -s $<, " GEN trace-dtrace.h")
|
|
|
|
# Normal practice is to name DTrace probe file with a '.d' extension
|
|
# but that gets picked up by QEMU's Makefile as an external dependency
|
|
# rule file. So we use '.dtrace' instead
|
|
trace-dtrace.dtrace: trace-dtrace.dtrace-timestamp
|
|
trace-dtrace.dtrace-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak
|
|
$(call quiet-command,sh $(SRC_PATH)/scripts/tracetool --$(TRACE_BACKEND) -d < $< > $@," GEN trace-dtrace.dtrace")
|
|
@cmp -s $@ trace-dtrace.dtrace || cp $@ trace-dtrace.dtrace
|
|
|
|
trace-dtrace.o: trace-dtrace.dtrace $(GENERATED_HEADERS)
|
|
$(call quiet-command,dtrace -o $@ -G -s $<, " GEN trace-dtrace.o")
|
|
|
|
ifeq ($(LIBTOOL),)
|
|
trace-dtrace.lo: trace-dtrace.dtrace
|
|
@echo "missing libtool. please install and rerun configure."; exit 1
|
|
else
|
|
trace-dtrace.lo: trace-dtrace.dtrace
|
|
$(call quiet-command,$(LIBTOOL) --mode=compile --tag=CC dtrace -o $@ -G -s $<, " lt GEN trace-dtrace.o")
|
|
endif
|
|
|
|
trace/simple.o: trace/simple.c $(GENERATED_HEADERS)
|
|
|
|
trace-obj-$(CONFIG_TRACE_DTRACE) += trace-dtrace.o
|
|
ifneq ($(TRACE_BACKEND),dtrace)
|
|
trace-obj-y = trace.o
|
|
endif
|
|
|
|
trace-nested-$(CONFIG_TRACE_DEFAULT) += default.o
|
|
|
|
trace-nested-$(CONFIG_TRACE_SIMPLE) += simple.o
|
|
trace-obj-$(CONFIG_TRACE_SIMPLE) += qemu-timer-common.o
|
|
|
|
trace-nested-$(CONFIG_TRACE_STDERR) += stderr.o
|
|
|
|
trace-nested-y += control.o
|
|
|
|
trace-obj-y += $(addprefix trace/, $(trace-nested-y))
|
|
|
|
$(trace-obj-y): $(GENERATED_HEADERS)
|
|
|
|
######################################################################
|
|
# smartcard
|
|
|
|
libcacard-y = cac.o event.o vcard.o vreader.o vcard_emul_nss.o vcard_emul_type.o card_7816.o
|
|
|
|
######################################################################
|
|
# qapi
|
|
|
|
qapi-nested-y = qapi-visit-core.o qmp-input-visitor.o qmp-output-visitor.o qapi-dealloc-visitor.o
|
|
qapi-nested-y += qmp-registry.o qmp-dispatch.o
|
|
qapi-obj-y = $(addprefix qapi/, $(qapi-nested-y))
|
|
|
|
common-obj-y += qmp-marshal.o qapi-visit.o qapi-types.o $(qapi-obj-y)
|
|
common-obj-y += qmp.o hmp.o
|
|
|
|
######################################################################
|
|
# guest agent
|
|
|
|
qga-nested-y = guest-agent-commands.o guest-agent-command-state.o
|
|
qga-obj-y = $(addprefix qga/, $(qga-nested-y))
|
|
qga-obj-y += qemu-ga.o qemu-tool.o qemu-error.o qemu-sockets.o module.o qemu-option.o cutils.o osdep.o
|
|
qga-obj-$(CONFIG_WIN32) += oslib-win32.o
|
|
qga-obj-$(CONFIG_POSIX) += oslib-posix.o
|
|
|
|
vl.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
|
|
|
|
vl.o: QEMU_CFLAGS+=$(SDL_CFLAGS)
|
|
|
|
QEMU_CFLAGS+=$(GLIB_CFLAGS)
|
|
|