mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-24 12:09:58 +00:00
bd023f953e
Implement a threaded VNC server using the producer-consumer model. The main thread will push encoding jobs (a list a rectangles to update) in a queue, and the VNC worker thread will consume that queue and send framebuffer updates to the output buffer. The threaded VNC server can be enabled with ./configure --enable-vnc-thread. If you don't want it, just use ./configure --disable-vnc-thread and a syncrhonous queue of job will be used (which as exactly the same behavior as the old queue). If you disable the VNC thread, all thread related code will not be built and there will be no overhead. Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
279 lines
9.4 KiB
Makefile
279 lines
9.4 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
|
|
|
|
#######################################################################
|
|
# block-obj-y is code used by both qemu system emulation and qemu-img
|
|
|
|
block-obj-y = cutils.o cache-utils.o qemu-malloc.o qemu-option.o module.o
|
|
block-obj-y += nbd.o block.o aio.o aes.o osdep.o qemu-config.o
|
|
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
|
|
block-nested-y += parallels.o nbd.o blkdebug.o sheepdog.o
|
|
block-nested-$(CONFIG_WIN32) += raw-win32.o
|
|
block-nested-$(CONFIG_POSIX) += raw-posix.o
|
|
block-nested-$(CONFIG_CURL) += curl.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_SLIRP) += slirp.o
|
|
net-nested-$(CONFIG_VDE) += vde.o
|
|
net-obj-y += $(addprefix net/, $(net-nested-y))
|
|
|
|
fsdev-nested-$(CONFIG_VIRTFS) = qemu-fsdev.o
|
|
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 async.o qemu-error.o
|
|
common-obj-$(CONFIG_WIN32) += os-win32.o
|
|
common-obj-$(CONFIG_POSIX) += os-posix.o
|
|
|
|
common-obj-y += tcg-runtime.o host-utils.o
|
|
common-obj-y += irq.o ioport.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 += 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
|
|
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 qemu-sockets.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
|
|
|
|
common-obj-$(CONFIG_BRLAPI) += baum.o
|
|
common-obj-$(CONFIG_POSIX) += migration-exec.o migration-unix.o migration-fd.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_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_CURSES) += curses.o
|
|
ui-obj-y += vnc.o d3des.o
|
|
ui-obj-y += vnc-enc-zlib.o vnc-enc-hextile.o
|
|
ui-obj-y += vnc-enc-tight.o vnc-palette.o
|
|
ui-obj-$(CONFIG_VNC_TLS) += vnc-tls.o vnc-auth-vencrypt.o
|
|
ui-obj-$(CONFIG_VNC_SASL) += vnc-auth-sasl.o
|
|
ui-obj-$(CONFIG_COCOA) += cocoa.o
|
|
ifdef CONFIG_VNC_THREAD
|
|
ui-obj-y += vnc-jobs-async.o
|
|
else
|
|
ui-obj-y += vnc-jobs-sync.o
|
|
endif
|
|
common-obj-y += $(addprefix ui/, $(ui-obj-y))
|
|
|
|
common-obj-y += iov.o acl.o
|
|
common-obj-$(CONFIG_THREAD) += qemu-thread.o
|
|
common-obj-y += notify.o event_notifier.o
|
|
common-obj-y += qemu-timer.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
|
|
common-obj-$(CONFIG_SLIRP) += $(addprefix slirp/, $(slirp-obj-y))
|
|
|
|
# xen backend driver support
|
|
common-obj-$(CONFIG_XEN) += xen_backend.o xen_devconfig.o
|
|
common-obj-$(CONFIG_XEN) += 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
|
|
|
|
######################################################################
|
|
# libhw
|
|
|
|
hw-obj-y =
|
|
hw-obj-y += vl.o loader.o
|
|
hw-obj-y += virtio.o virtio-console.o
|
|
hw-obj-y += fw_cfg.o pci.o pci_host.o pcie_host.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_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
|
|
|
|
# PPC devices
|
|
hw-obj-$(CONFIG_OPENPIC) += openpic.o
|
|
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
|
|
|
|
# PCI watchdog devices
|
|
hw-obj-y += wdt_i6300esb.o
|
|
|
|
hw-obj-y += msix.o
|
|
|
|
# PCI network cards
|
|
hw-obj-y += ne2000.o
|
|
hw-obj-y += eepro100.o
|
|
hw-obj-y += pcnet.o
|
|
|
|
hw-obj-$(CONFIG_SMC91C111) += smc91c111.o
|
|
hw-obj-$(CONFIG_LAN9118) += lan9118.o
|
|
hw-obj-$(CONFIG_NE2000_ISA) += ne2000-isa.o
|
|
|
|
# IDE
|
|
hw-obj-$(CONFIG_IDE_CORE) += ide/core.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
|
|
|
|
# SCSI layer
|
|
hw-obj-y += 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_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
|
|
|
|
adlib.o fmopl.o: QEMU_CFLAGS += -DBUILD_Y8950=0
|
|
hw-obj-$(CONFIG_SOUND) += $(sound-obj-y)
|
|
|
|
hw-obj-$(CONFIG_VIRTFS) += virtio-9p-debug.o virtio-9p-local.o
|
|
|
|
######################################################################
|
|
# 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
|
|
|
|
vl.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
|
|
|
|
vl.o: QEMU_CFLAGS+=$(SDL_CFLAGS)
|
|
|
|
vl.o: qemu-options.def
|
|
os-posix.o: qemu-options.def
|
|
os-win32.o: qemu-options.def
|
|
|
|
qemu-options.def: $(SRC_PATH)/qemu-options.hx
|
|
$(call quiet-command,sh $(SRC_PATH)/hxtool -h < $< > $@," GEN $(TARGET_DIR)$@")
|
|
|