2009-08-04 21:24:23 +08:00
|
|
|
# -*- Mode: makefile -*-
|
|
|
|
|
2009-11-23 00:25:30 +08:00
|
|
|
GENERATED_HEADERS = config-target.h
|
2010-12-22 18:54:48 +08:00
|
|
|
CONFIG_NO_PCI = $(if $(subst n,,$(CONFIG_PCI)),n,y)
|
2010-04-20 02:59:30 +08:00
|
|
|
CONFIG_NO_KVM = $(if $(subst n,,$(CONFIG_KVM)),n,y)
|
2009-11-06 00:19:57 +08:00
|
|
|
|
2009-10-07 08:40:57 +08:00
|
|
|
include ../config-host.mak
|
2009-10-07 08:41:02 +08:00
|
|
|
include config-devices.mak
|
2009-10-07 08:41:00 +08:00
|
|
|
include config-target.mak
|
2009-01-22 02:12:52 +08:00
|
|
|
include $(SRC_PATH)/rules.mak
|
2010-01-07 03:24:05 +08:00
|
|
|
ifneq ($(HWDIR),)
|
|
|
|
include $(HWDIR)/config.mak
|
|
|
|
endif
|
2003-08-11 05:39:31 +08:00
|
|
|
|
2005-01-04 07:38:40 +08:00
|
|
|
TARGET_PATH=$(SRC_PATH)/target-$(TARGET_BASE_ARCH)
|
2009-12-21 17:06:55 +08:00
|
|
|
$(call set-vpath, $(SRC_PATH):$(TARGET_PATH):$(SRC_PATH)/hw)
|
2009-08-03 20:46:23 +08:00
|
|
|
QEMU_CFLAGS+= -I.. -I$(TARGET_PATH) -DNEED_CPU_H
|
2008-01-31 19:32:10 +08:00
|
|
|
|
2010-01-07 03:24:05 +08:00
|
|
|
include $(SRC_PATH)/Makefile.objs
|
|
|
|
|
2008-01-31 19:32:10 +08:00
|
|
|
ifdef CONFIG_USER_ONLY
|
|
|
|
# user emulator name
|
|
|
|
QEMU_PROG=qemu-$(TARGET_ARCH2)
|
|
|
|
else
|
2003-10-01 04:54:24 +08:00
|
|
|
# system emulator name
|
2004-04-13 04:39:29 +08:00
|
|
|
ifeq ($(TARGET_ARCH), i386)
|
2008-01-31 19:32:10 +08:00
|
|
|
QEMU_PROG=qemu$(EXESUF)
|
2003-10-28 05:37:46 +08:00
|
|
|
else
|
2008-01-31 19:32:10 +08:00
|
|
|
QEMU_PROG=qemu-system-$(TARGET_ARCH2)$(EXESUF)
|
2004-04-13 04:39:29 +08:00
|
|
|
endif
|
2003-11-17 07:18:17 +08:00
|
|
|
endif
|
2003-08-11 05:39:31 +08:00
|
|
|
|
2008-01-31 19:32:10 +08:00
|
|
|
PROGS=$(QEMU_PROG)
|
2010-11-17 04:07:07 +08:00
|
|
|
STPFILES=
|
2003-08-11 05:39:31 +08:00
|
|
|
|
2010-09-20 06:50:45 +08:00
|
|
|
ifndef CONFIG_HAIKU
|
2003-08-11 05:39:31 +08:00
|
|
|
LIBS+=-lm
|
2010-09-20 06:50:45 +08:00
|
|
|
endif
|
2007-01-19 04:06:33 +08:00
|
|
|
|
2011-02-07 19:19:26 +08:00
|
|
|
kvm.o kvm-all.o vhost.o vhost_net.o kvmclock.o: QEMU_CFLAGS+=$(KVM_CFLAGS)
|
2008-11-06 00:04:33 +08:00
|
|
|
|
2009-10-07 08:41:01 +08:00
|
|
|
config-target.h: config-target.h-timestamp
|
|
|
|
config-target.h-timestamp: config-target.mak
|
|
|
|
|
2010-11-12 21:20:25 +08:00
|
|
|
ifdef CONFIG_SYSTEMTAP_TRACE
|
|
|
|
stap: $(QEMU_PROG).stp
|
|
|
|
|
|
|
|
ifdef CONFIG_USER_ONLY
|
|
|
|
TARGET_TYPE=user
|
|
|
|
else
|
|
|
|
TARGET_TYPE=system
|
|
|
|
endif
|
|
|
|
|
|
|
|
$(QEMU_PROG).stp:
|
2011-01-21 04:54:21 +08:00
|
|
|
$(call quiet-command,sh $(SRC_PATH)/scripts/tracetool \
|
2010-11-12 21:20:25 +08:00
|
|
|
--$(TRACE_BACKEND) \
|
|
|
|
--binary $(bindir)/$(QEMU_PROG) \
|
|
|
|
--target-arch $(TARGET_ARCH) \
|
|
|
|
--target-type $(TARGET_TYPE) \
|
|
|
|
--stap < $(SRC_PATH)/trace-events > $(QEMU_PROG).stp," GEN $(QEMU_PROG).stp")
|
|
|
|
else
|
|
|
|
stap:
|
|
|
|
endif
|
|
|
|
|
|
|
|
all: $(PROGS) stap
|
2009-10-07 08:41:01 +08:00
|
|
|
|
2009-05-26 01:54:53 +08:00
|
|
|
# Dummy command so that make thinks it has done something
|
|
|
|
@true
|
2003-08-11 05:39:31 +08:00
|
|
|
|
2008-01-31 19:32:10 +08:00
|
|
|
#########################################################
|
2003-08-11 05:39:31 +08:00
|
|
|
# cpu emulator library
|
2009-09-21 03:20:05 +08:00
|
|
|
libobj-y = exec.o translate-all.o cpu-exec.o translate.o
|
2009-09-21 03:06:34 +08:00
|
|
|
libobj-y += tcg/tcg.o
|
2009-08-03 20:46:42 +08:00
|
|
|
libobj-$(CONFIG_SOFTFLOAT) += fpu/softfloat.o
|
|
|
|
libobj-$(CONFIG_NOSOFTFLOAT) += fpu/softfloat-native.o
|
2009-06-25 06:08:00 +08:00
|
|
|
libobj-y += op_helper.o helper.o
|
2010-03-11 21:38:55 +08:00
|
|
|
ifeq ($(TARGET_BASE_ARCH), i386)
|
|
|
|
libobj-y += cpuid.o
|
|
|
|
endif
|
2009-08-03 20:46:52 +08:00
|
|
|
libobj-$(CONFIG_NEED_MMU) += mmu.o
|
2009-08-03 20:47:04 +08:00
|
|
|
libobj-$(TARGET_ARM) += neon_helper.o iwmmxt_helper.o
|
2007-04-06 04:46:02 +08:00
|
|
|
|
2009-06-25 06:08:00 +08:00
|
|
|
libobj-y += disas.o
|
2003-08-11 05:39:31 +08:00
|
|
|
|
2010-01-07 03:24:05 +08:00
|
|
|
$(libobj-y): $(GENERATED_HEADERS)
|
2008-01-31 19:32:10 +08:00
|
|
|
|
2010-01-07 03:24:05 +08:00
|
|
|
# libqemu
|
2008-01-31 19:32:10 +08:00
|
|
|
|
2008-12-07 23:21:23 +08:00
|
|
|
translate.o: translate.c cpu.h
|
2008-01-31 19:32:10 +08:00
|
|
|
|
2008-12-07 23:21:23 +08:00
|
|
|
translate-all.o: translate-all.c cpu.h
|
2008-01-31 19:32:10 +08:00
|
|
|
|
2008-12-07 23:21:23 +08:00
|
|
|
tcg/tcg.o: cpu.h
|
2008-01-31 19:32:10 +08:00
|
|
|
|
|
|
|
# HELPER_CFLAGS is used for all the code compiled with static register
|
|
|
|
# variables
|
2011-04-04 18:46:32 +08:00
|
|
|
%_helper.o cpu-exec.o: QEMU_CFLAGS += $(HELPER_CFLAGS)
|
2008-01-31 19:32:10 +08:00
|
|
|
|
2009-08-03 20:46:24 +08:00
|
|
|
# Note: this is a workaround. The real fix is to avoid compiling
|
|
|
|
# cpu_signal_handler() in cpu-exec.c.
|
|
|
|
signal.o: QEMU_CFLAGS += $(HELPER_CFLAGS)
|
|
|
|
|
2008-01-31 19:32:10 +08:00
|
|
|
#########################################################
|
|
|
|
# Linux user emulator target
|
|
|
|
|
|
|
|
ifdef CONFIG_LINUX_USER
|
|
|
|
|
2009-12-21 17:06:55 +08:00
|
|
|
$(call set-vpath, $(SRC_PATH)/linux-user:$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR))
|
|
|
|
|
2011-02-07 14:05:54 +08:00
|
|
|
QEMU_CFLAGS+=-I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR) -I$(SRC_PATH)/linux-user
|
2009-08-15 15:51:59 +08:00
|
|
|
obj-y = main.o syscall.o strace.o mmap.o signal.o thunk.o \
|
2010-05-22 01:37:52 +08:00
|
|
|
elfload.o linuxload.o uaccess.o gdbstub.o cpu-uname.o \
|
2010-10-26 16:39:26 +08:00
|
|
|
qemu-malloc.o $(oslib-obj-y)
|
2009-08-15 15:52:19 +08:00
|
|
|
|
2009-06-25 06:08:10 +08:00
|
|
|
obj-$(TARGET_HAS_BFLT) += flatload.o
|
2008-01-31 19:32:10 +08:00
|
|
|
|
2009-08-03 20:47:04 +08:00
|
|
|
obj-$(TARGET_I386) += vm86.o
|
2009-07-17 00:34:03 +08:00
|
|
|
|
2009-08-16 15:39:33 +08:00
|
|
|
obj-i386-y += ioport-user.o
|
2009-08-15 15:52:19 +08:00
|
|
|
|
2009-08-03 20:47:01 +08:00
|
|
|
nwfpe-obj-y = fpa11.o fpa11_cpdo.o fpa11_cpdt.o fpa11_cprt.o fpopcode.o
|
2009-07-16 23:57:04 +08:00
|
|
|
nwfpe-obj-y += single_cpdo.o double_cpdo.o extended_cpdo.o
|
2009-07-17 00:34:03 +08:00
|
|
|
obj-arm-y += $(addprefix nwfpe/, $(nwfpe-obj-y))
|
|
|
|
obj-arm-y += arm-semi.o
|
|
|
|
|
|
|
|
obj-m68k-y += m68k-sim.o m68k-semi.o
|
2008-01-31 19:32:10 +08:00
|
|
|
|
2010-01-07 03:24:05 +08:00
|
|
|
$(obj-y) $(obj-$(TARGET_BASE_ARCH)-y): $(GENERATED_HEADERS)
|
|
|
|
|
|
|
|
obj-y += $(addprefix ../libuser/, $(user-obj-y))
|
2010-03-21 16:28:47 +08:00
|
|
|
obj-y += $(addprefix ../libdis-user/, $(libdis-y))
|
2010-01-07 03:24:05 +08:00
|
|
|
obj-y += $(libobj-y)
|
2009-09-28 00:26:02 +08:00
|
|
|
|
2008-01-31 19:32:10 +08:00
|
|
|
endif #CONFIG_LINUX_USER
|
|
|
|
|
|
|
|
#########################################################
|
|
|
|
# Darwin user emulator target
|
|
|
|
|
|
|
|
ifdef CONFIG_DARWIN_USER
|
|
|
|
|
2009-12-21 17:06:55 +08:00
|
|
|
$(call set-vpath, $(SRC_PATH)/darwin-user)
|
|
|
|
|
2009-08-03 20:46:21 +08:00
|
|
|
QEMU_CFLAGS+=-I$(SRC_PATH)/darwin-user -I$(SRC_PATH)/darwin-user/$(TARGET_ARCH)
|
2008-01-31 19:32:10 +08:00
|
|
|
|
|
|
|
# Leave some space for the regular program loading zone
|
|
|
|
LDFLAGS+=-Wl,-segaddr,__STD_PROG_ZONE,0x1000 -image_base 0x0e000000
|
|
|
|
|
|
|
|
LIBS+=-lmx
|
|
|
|
|
2009-06-25 06:08:01 +08:00
|
|
|
obj-y = main.o commpage.o machload.o mmap.o signal.o syscall.o thunk.o \
|
2009-10-07 08:41:04 +08:00
|
|
|
gdbstub.o
|
2009-08-15 15:52:19 +08:00
|
|
|
|
2009-08-16 15:39:33 +08:00
|
|
|
obj-i386-y += ioport-user.o
|
2008-01-31 19:32:10 +08:00
|
|
|
|
2010-01-07 03:24:05 +08:00
|
|
|
$(obj-y) $(obj-$(TARGET_BASE_ARCH)-y): $(GENERATED_HEADERS)
|
|
|
|
|
|
|
|
obj-y += $(addprefix ../libuser/, $(user-obj-y))
|
2010-03-21 16:28:47 +08:00
|
|
|
obj-y += $(addprefix ../libdis-user/, $(libdis-y))
|
2010-01-07 03:24:05 +08:00
|
|
|
obj-y += $(libobj-y)
|
2008-01-31 19:32:10 +08:00
|
|
|
|
|
|
|
endif #CONFIG_DARWIN_USER
|
|
|
|
|
2008-10-27 04:33:16 +08:00
|
|
|
#########################################################
|
|
|
|
# BSD user emulator target
|
|
|
|
|
|
|
|
ifdef CONFIG_BSD_USER
|
|
|
|
|
2009-12-21 17:06:55 +08:00
|
|
|
$(call set-vpath, $(SRC_PATH)/bsd-user)
|
|
|
|
|
2009-08-03 20:46:21 +08:00
|
|
|
QEMU_CFLAGS+=-I$(SRC_PATH)/bsd-user -I$(SRC_PATH)/bsd-user/$(TARGET_ARCH)
|
2008-10-27 04:33:16 +08:00
|
|
|
|
2009-08-15 15:51:59 +08:00
|
|
|
obj-y = main.o bsdload.o elfload.o mmap.o signal.o strace.o syscall.o \
|
2009-10-07 08:41:04 +08:00
|
|
|
gdbstub.o uaccess.o
|
2009-08-15 15:52:19 +08:00
|
|
|
|
2009-08-16 15:39:33 +08:00
|
|
|
obj-i386-y += ioport-user.o
|
2008-10-27 04:33:16 +08:00
|
|
|
|
2010-01-07 03:24:05 +08:00
|
|
|
$(obj-y) $(obj-$(TARGET_BASE_ARCH)-y): $(GENERATED_HEADERS)
|
|
|
|
|
|
|
|
obj-y += $(addprefix ../libuser/, $(user-obj-y))
|
2010-03-21 16:28:47 +08:00
|
|
|
obj-y += $(addprefix ../libdis-user/, $(libdis-y))
|
2010-01-07 03:24:05 +08:00
|
|
|
obj-y += $(libobj-y)
|
2008-10-27 04:33:16 +08:00
|
|
|
|
|
|
|
endif #CONFIG_BSD_USER
|
|
|
|
|
2008-01-31 19:32:10 +08:00
|
|
|
#########################################################
|
|
|
|
# System emulator target
|
2009-08-03 20:46:41 +08:00
|
|
|
ifdef CONFIG_SOFTMMU
|
2008-01-31 19:32:10 +08:00
|
|
|
|
2010-04-20 03:46:13 +08:00
|
|
|
obj-y = arch_init.o cpus.o monitor.o machine.o gdbstub.o balloon.o
|
2008-12-18 09:56:22 +08:00
|
|
|
# virtio has to be here due to weird dependency between PCI and virtio-net.
|
|
|
|
# need to fix this properly
|
2010-12-22 18:54:48 +08:00
|
|
|
obj-$(CONFIG_NO_PCI) += pci-stub.o
|
2010-11-27 06:08:48 +08:00
|
|
|
obj-$(CONFIG_VIRTIO) += virtio-blk.o virtio-balloon.o virtio-net.o virtio-serial-bus.o
|
2010-04-06 18:11:43 +08:00
|
|
|
obj-$(CONFIG_VIRTIO_PCI) += virtio-pci.o
|
2010-03-17 19:08:17 +08:00
|
|
|
obj-y += vhost_net.o
|
|
|
|
obj-$(CONFIG_VHOST_NET) += vhost.o
|
2011-01-28 20:39:08 +08:00
|
|
|
obj-$(CONFIG_REALLY_VIRTFS) += 9pfs/virtio-9p.o
|
2010-02-20 17:27:38 +08:00
|
|
|
obj-y += rwhandler.o
|
2009-06-25 06:08:01 +08:00
|
|
|
obj-$(CONFIG_KVM) += kvm.o kvm-all.o
|
2010-04-20 02:59:30 +08:00
|
|
|
obj-$(CONFIG_NO_KVM) += kvm-stub.o
|
2008-01-31 19:32:10 +08:00
|
|
|
LIBS+=-lz
|
2007-11-08 03:24:02 +08:00
|
|
|
|
2009-08-03 20:46:21 +08:00
|
|
|
QEMU_CFLAGS += $(VNC_TLS_CFLAGS)
|
|
|
|
QEMU_CFLAGS += $(VNC_SASL_CFLAGS)
|
2010-07-08 02:57:49 +08:00
|
|
|
QEMU_CFLAGS += $(VNC_JPEG_CFLAGS)
|
2010-07-08 02:57:56 +08:00
|
|
|
QEMU_CFLAGS += $(VNC_PNG_CFLAGS)
|
Add SASL authentication support ("Daniel P. Berrange")
This patch adds the new SASL authentication protocol to the VNC server.
It is enabled by setting the 'sasl' flag when launching VNC. SASL can
optionally provide encryption via its SSF layer, if a suitable mechanism
is configured (eg, GSSAPI/Kerberos, or Digest-MD5). If an SSF layer is
not available, then it should be combined with the x509 VNC authentication
protocol which provides encryption.
eg, if using GSSAPI
qemu -vnc localhost:1,sasl
eg if using TLS/x509 for encryption
qemu -vnc localhost:1,sasl,tls,x509
By default the Cyrus SASL library will look for its configuration in
the file /etc/sasl2/qemu.conf. For non-root users, this can be overridden
by setting the SASL_CONF_PATH environment variable, eg to make it look in
$HOME/.sasl2. NB unprivileged users may not have access to the full range
of SASL mechanisms, since some of them require some administrative privileges
to configure. The patch includes an example SASL configuration file which
illustrates config for GSSAPI and Digest-MD5, though it should be noted that
the latter is not really considered secure any more.
Most of the SASL authentication code is located in a separate source file,
vnc-auth-sasl.c. The main vnc.c file only contains minimal integration
glue, specifically parsing of command line flags / setup, and calls to
start the SASL auth process, to do encoding/decoding for data.
There are several possible stacks for reading & writing of data, depending
on the combo of VNC authentication methods in use
- Clear. read/write straight to socket
- TLS. read/write via GNUTLS helpers
- SASL. encode/decode via SASL SSF layer, then read/write to socket
- SASL+TLS. encode/decode via SASL SSF layer, then read/write via GNUTLS
Hence, the vnc_client_read & vnc_client_write methods have been refactored
a little.
vnc_client_read: main entry point for reading, calls either
- vnc_client_read_plain reading, with no intermediate decoding
- vnc_client_read_sasl reading, with SASL SSF decoding
These two methods, then call vnc_client_read_buf(). This decides
whether to write to the socket directly or write via GNUTLS.
The situation is the same for writing data. More extensive comments
have been added in the code / patch. The vnc_client_read_sasl and
vnc_client_write_sasl method implementations live in the separate
vnc-auth-sasl.c file.
The state required for the SASL auth mechanism is kept in a separate
VncStateSASL struct, defined in vnc-auth-sasl.h and included in the
main VncState.
The configure script probes for SASL and automatically enables it
if found, unless --disable-vnc-sasl was given to override it.
Makefile | 7
Makefile.target | 5
b/qemu.sasl | 34 ++
b/vnc-auth-sasl.c | 626 ++++++++++++++++++++++++++++++++++++++++++++++++++++
b/vnc-auth-sasl.h | 67 +++++
configure | 34 ++
qemu-doc.texi | 97 ++++++++
vnc-auth-vencrypt.c | 12
vnc.c | 249 ++++++++++++++++++--
vnc.h | 31 ++
10 files changed, 1129 insertions(+), 33 deletions(-)
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6724 c046a42c-6fe2-441c-8c8c-71466251a162
2009-03-07 04:27:28 +08:00
|
|
|
|
2009-04-22 23:19:10 +08:00
|
|
|
# xen backend driver support
|
2009-06-25 06:08:10 +08:00
|
|
|
obj-$(CONFIG_XEN) += xen_machine_pv.o xen_domainbuild.o
|
2009-04-22 23:19:10 +08:00
|
|
|
|
RESEND: Inter-VM shared memory PCI device
resend for bug fix related to removal of irqfd
Support an inter-vm shared memory device that maps a shared-memory object as a
PCI device in the guest. This patch also supports interrupts between guest by
communicating over a unix domain socket. This patch applies to the qemu-kvm
repository.
-device ivshmem,size=<size in format accepted by -m>[,shm=<shm name>]
Interrupts are supported between multiple VMs by using a shared memory server
by using a chardev socket.
-device ivshmem,size=<size in format accepted by -m>[,shm=<shm name>]
[,chardev=<id>][,msi=on][,ioeventfd=on][,vectors=n][,role=peer|master]
-chardev socket,path=<path>,id=<id>
The shared memory server, sample programs and init scripts are in a git repo here:
www.gitorious.org/nahanni
Signed-off-by: Cam Macdonell <cam@cs.ualberta.ca>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-07-28 00:54:13 +08:00
|
|
|
# Inter-VM PCI shared memory
|
2011-03-29 21:29:28 +08:00
|
|
|
CONFIG_IVSHMEM =
|
|
|
|
ifeq ($(CONFIG_KVM), y)
|
|
|
|
ifeq ($(CONFIG_PCI), y)
|
|
|
|
CONFIG_IVSHMEM = y
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
obj-$(CONFIG_IVSHMEM) += ivshmem.o
|
RESEND: Inter-VM shared memory PCI device
resend for bug fix related to removal of irqfd
Support an inter-vm shared memory device that maps a shared-memory object as a
PCI device in the guest. This patch also supports interrupts between guest by
communicating over a unix domain socket. This patch applies to the qemu-kvm
repository.
-device ivshmem,size=<size in format accepted by -m>[,shm=<shm name>]
Interrupts are supported between multiple VMs by using a shared memory server
by using a chardev socket.
-device ivshmem,size=<size in format accepted by -m>[,shm=<shm name>]
[,chardev=<id>][,msi=on][,ioeventfd=on][,vectors=n][,role=peer|master]
-chardev socket,path=<path>,id=<id>
The shared memory server, sample programs and init scripts are in a git repo here:
www.gitorious.org/nahanni
Signed-off-by: Cam Macdonell <cam@cs.ualberta.ca>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-07-28 00:54:13 +08:00
|
|
|
|
2004-04-13 04:39:29 +08:00
|
|
|
# Hardware support
|
2010-03-22 03:47:03 +08:00
|
|
|
obj-i386-y += vga.o
|
2010-03-22 03:47:11 +08:00
|
|
|
obj-i386-y += mc146818rtc.o i8259.o pc.o
|
2010-03-30 03:23:52 +08:00
|
|
|
obj-i386-y += cirrus_vga.o apic.o ioapic.o piix_pci.o
|
2011-02-13 20:31:28 +08:00
|
|
|
obj-i386-y += vmport.o
|
2009-08-21 16:31:34 +08:00
|
|
|
obj-i386-y += device-hotplug.o pci-hotplug.o smbios.o wdt_ib700.o
|
2010-03-22 03:47:10 +08:00
|
|
|
obj-i386-y += debugcon.o multiboot.o
|
2011-02-07 19:19:26 +08:00
|
|
|
obj-i386-y += pc_piix.o kvmclock.o
|
2010-04-27 17:50:11 +08:00
|
|
|
obj-i386-$(CONFIG_SPICE) += qxl.o qxl-logger.o qxl-render.o
|
2009-07-17 00:33:58 +08:00
|
|
|
|
2007-10-29 07:42:18 +08:00
|
|
|
# shared objects
|
2010-03-30 03:23:57 +08:00
|
|
|
obj-ppc-y = ppc.o
|
2010-05-22 16:00:52 +08:00
|
|
|
obj-ppc-y += vga.o
|
2007-10-29 07:42:18 +08:00
|
|
|
# PREP target
|
2010-05-22 15:59:01 +08:00
|
|
|
obj-ppc-y += i8259.o mc146818rtc.o
|
2010-03-30 03:24:04 +08:00
|
|
|
obj-ppc-y += ppc_prep.o
|
2007-10-29 07:42:18 +08:00
|
|
|
# OldWorld PowerMac
|
2010-03-31 01:36:23 +08:00
|
|
|
obj-ppc-y += ppc_oldworld.o
|
2007-10-29 07:42:18 +08:00
|
|
|
# NewWorld PowerMac
|
2010-03-31 01:36:23 +08:00
|
|
|
obj-ppc-y += ppc_newworld.o
|
2011-04-01 12:15:21 +08:00
|
|
|
# IBM pSeries (sPAPR)
|
2011-04-01 12:15:20 +08:00
|
|
|
ifeq ($(CONFIG_FDT)$(TARGET_PPC64),yy)
|
2011-04-01 12:15:23 +08:00
|
|
|
obj-ppc-y += spapr.o spapr_hcall.o spapr_rtas.o spapr_vio.o
|
2011-04-01 12:15:31 +08:00
|
|
|
obj-ppc-y += xics.o spapr_vty.o spapr_llan.o spapr_vscsi.o
|
2011-04-01 12:15:20 +08:00
|
|
|
endif
|
2007-10-29 07:42:18 +08:00
|
|
|
# PowerPC 4xx boards
|
2010-03-30 03:23:55 +08:00
|
|
|
obj-ppc-y += ppc4xx_devs.o ppc4xx_pci.o ppc405_uc.o ppc405_boards.o
|
2009-07-17 00:33:58 +08:00
|
|
|
obj-ppc-y += ppc440.o ppc440_bamboo.o
|
2009-03-03 00:42:23 +08:00
|
|
|
# PowerPC E500 boards
|
2010-03-31 01:36:23 +08:00
|
|
|
obj-ppc-y += ppce500_mpc8544ds.o
|
2010-09-29 21:31:44 +08:00
|
|
|
# PowerPC 440 Xilinx ML507 reference board.
|
|
|
|
obj-ppc-y += virtex_ml507.o
|
2009-07-17 00:33:58 +08:00
|
|
|
obj-ppc-$(CONFIG_KVM) += kvm_ppc.o
|
2009-07-27 22:12:52 +08:00
|
|
|
obj-ppc-$(CONFIG_FDT) += device_tree.o
|
2009-07-17 00:33:58 +08:00
|
|
|
|
2010-09-29 21:31:44 +08:00
|
|
|
# Xilinx PPC peripherals
|
|
|
|
obj-ppc-y += xilinx_intc.o
|
|
|
|
obj-ppc-y += xilinx_timer.o
|
|
|
|
obj-ppc-y += xilinx_uartlite.o
|
|
|
|
obj-ppc-y += xilinx_ethlite.o
|
|
|
|
|
2011-02-18 06:45:14 +08:00
|
|
|
# LM32 boards
|
|
|
|
obj-lm32-y += lm32_boards.o
|
2011-03-08 06:32:44 +08:00
|
|
|
obj-lm32-y += milkymist.o
|
2011-02-18 06:45:14 +08:00
|
|
|
|
2011-02-18 06:45:02 +08:00
|
|
|
# LM32 peripherals
|
2011-02-18 06:45:07 +08:00
|
|
|
obj-lm32-y += lm32_pic.o
|
2011-02-18 06:45:08 +08:00
|
|
|
obj-lm32-y += lm32_juart.o
|
2011-02-18 06:45:10 +08:00
|
|
|
obj-lm32-y += lm32_timer.o
|
2011-02-18 06:45:11 +08:00
|
|
|
obj-lm32-y += lm32_uart.o
|
2011-02-18 06:45:12 +08:00
|
|
|
obj-lm32-y += lm32_sys.o
|
2011-03-08 06:32:32 +08:00
|
|
|
obj-lm32-y += milkymist-ac97.o
|
2011-03-08 06:32:33 +08:00
|
|
|
obj-lm32-y += milkymist-hpdmc.o
|
2011-03-08 06:32:34 +08:00
|
|
|
obj-lm32-y += milkymist-memcard.o
|
2011-04-13 06:29:36 +08:00
|
|
|
obj-lm32-y += milkymist-minimac2.o
|
2011-03-08 06:32:36 +08:00
|
|
|
obj-lm32-y += milkymist-pfpu.o
|
2011-03-08 06:32:37 +08:00
|
|
|
obj-lm32-y += milkymist-softusb.o
|
2011-03-08 06:32:38 +08:00
|
|
|
obj-lm32-y += milkymist-sysctl.o
|
2011-03-08 06:32:40 +08:00
|
|
|
obj-lm32-$(CONFIG_OPENGL) += milkymist-tmu2.o
|
2011-03-08 06:32:41 +08:00
|
|
|
obj-lm32-y += milkymist-uart.o
|
2011-03-08 06:32:42 +08:00
|
|
|
obj-lm32-y += milkymist-vgafb.o
|
|
|
|
obj-lm32-y += framebuffer.o
|
2011-02-18 06:45:02 +08:00
|
|
|
|
2009-07-17 00:33:58 +08:00
|
|
|
obj-mips-y = mips_r4k.o mips_jazz.o mips_malta.o mips_mipssim.o
|
2010-03-15 04:20:59 +08:00
|
|
|
obj-mips-y += mips_addr.o mips_timer.o mips_int.o
|
2010-05-22 16:00:52 +08:00
|
|
|
obj-mips-y += vga.o i8259.o
|
2010-03-27 15:26:16 +08:00
|
|
|
obj-mips-y += g364fb.o jazz_led.o
|
2010-05-22 15:59:01 +08:00
|
|
|
obj-mips-y += gt64xxx.o mc146818rtc.o
|
2010-07-03 14:49:47 +08:00
|
|
|
obj-mips-y += cirrus_vga.o
|
2010-06-29 10:50:43 +08:00
|
|
|
obj-mips-$(CONFIG_FULONG) += bonito.o vt82c686.o mips_fulong2e.o
|
2009-07-17 00:33:58 +08:00
|
|
|
|
|
|
|
obj-microblaze-y = petalogix_s3adsp1800_mmu.o
|
2011-03-14 18:29:19 +08:00
|
|
|
obj-microblaze-y += petalogix_ml605_mmu.o
|
2009-07-17 00:33:58 +08:00
|
|
|
|
|
|
|
obj-microblaze-y += microblaze_pic_cpu.o
|
|
|
|
obj-microblaze-y += xilinx_intc.o
|
|
|
|
obj-microblaze-y += xilinx_timer.o
|
|
|
|
obj-microblaze-y += xilinx_uartlite.o
|
|
|
|
obj-microblaze-y += xilinx_ethlite.o
|
2011-03-14 18:13:55 +08:00
|
|
|
obj-microblaze-y += xilinx_axidma.o
|
|
|
|
obj-microblaze-y += xilinx_axienet.o
|
2009-07-17 00:33:58 +08:00
|
|
|
|
2009-07-27 22:12:52 +08:00
|
|
|
obj-microblaze-$(CONFIG_FDT) += device_tree.o
|
2009-07-17 00:33:58 +08:00
|
|
|
|
2009-01-07 20:19:50 +08:00
|
|
|
# Boards
|
2010-06-10 20:45:46 +08:00
|
|
|
obj-cris-y = cris_pic_cpu.o
|
|
|
|
obj-cris-y += cris-boot.o
|
|
|
|
obj-cris-y += etraxfs.o axis_dev88.o
|
|
|
|
obj-cris-y += axis_dev88.o
|
2009-01-07 20:19:50 +08:00
|
|
|
|
|
|
|
# IO blocks
|
2009-07-17 00:33:58 +08:00
|
|
|
obj-cris-y += etraxfs_dma.o
|
|
|
|
obj-cris-y += etraxfs_pic.o
|
|
|
|
obj-cris-y += etraxfs_eth.o
|
|
|
|
obj-cris-y += etraxfs_timer.o
|
|
|
|
obj-cris-y += etraxfs_ser.o
|
|
|
|
|
2005-07-02 22:31:34 +08:00
|
|
|
ifeq ($(TARGET_ARCH), sparc64)
|
2010-05-22 15:59:01 +08:00
|
|
|
obj-sparc-y = sun4u.o apb_pci.o
|
2010-03-22 03:47:00 +08:00
|
|
|
obj-sparc-y += vga.o
|
2010-03-22 03:47:11 +08:00
|
|
|
obj-sparc-y += mc146818rtc.o
|
2010-03-22 03:47:01 +08:00
|
|
|
obj-sparc-y += cirrus_vga.o
|
2005-07-02 22:31:34 +08:00
|
|
|
else
|
2010-04-03 15:35:50 +08:00
|
|
|
obj-sparc-y = sun4m.o lance.o tcx.o sun4m_iommu.o slavio_intctl.o
|
2010-03-22 03:47:06 +08:00
|
|
|
obj-sparc-y += slavio_timer.o slavio_misc.o sparc32_dma.o
|
2011-01-24 19:56:55 +08:00
|
|
|
obj-sparc-y += cs4231.o eccmemctl.o sbi.o sun4c_intctl.o leon3.o
|
|
|
|
|
|
|
|
# GRLIB
|
|
|
|
obj-sparc-y += grlib_gptimer.o grlib_irqmp.o grlib_apbuart.o
|
2009-07-17 00:33:58 +08:00
|
|
|
endif
|
|
|
|
|
2009-11-20 00:42:45 +08:00
|
|
|
obj-arm-y = integratorcp.o versatilepb.o arm_pic.o arm_timer.o
|
2009-07-17 00:33:58 +08:00
|
|
|
obj-arm-y += arm_boot.o pl011.o pl031.o pl050.o pl080.o pl110.o pl181.o pl190.o
|
|
|
|
obj-arm-y += versatile_pci.o
|
2009-11-20 00:45:21 +08:00
|
|
|
obj-arm-y += realview_gic.o realview.o arm_sysctl.o arm11mpcore.o a9mpcore.o
|
2009-07-17 00:33:58 +08:00
|
|
|
obj-arm-y += armv7m.o armv7m_nvic.o stellaris.o pl022.o stellaris_enet.o
|
|
|
|
obj-arm-y += pl061.o
|
|
|
|
obj-arm-y += arm-semi.o
|
|
|
|
obj-arm-y += pxa2xx.o pxa2xx_pic.o pxa2xx_gpio.o pxa2xx_timer.o pxa2xx_dma.o
|
|
|
|
obj-arm-y += pxa2xx_lcd.o pxa2xx_mmci.o pxa2xx_pcmcia.o pxa2xx_keypad.o
|
2010-03-30 03:23:56 +08:00
|
|
|
obj-arm-y += gumstix.o
|
2010-03-27 14:20:53 +08:00
|
|
|
obj-arm-y += zaurus.o ide/microdrive.o spitz.o tosa.o tc6393xb.o
|
2010-05-31 23:54:23 +08:00
|
|
|
obj-arm-y += omap1.o omap_lcdc.o omap_dma.o omap_clk.o omap_mmc.o omap_i2c.o \
|
|
|
|
omap_gpio.o omap_intc.o omap_uart.o
|
2010-05-31 23:54:22 +08:00
|
|
|
obj-arm-y += omap2.o omap_dss.o soc_dma.o omap_gptimer.o omap_synctimer.o \
|
|
|
|
omap_gpmc.o omap_sdrc.o omap_spi.o omap_tap.o omap_l4.o
|
2009-07-17 00:33:58 +08:00
|
|
|
obj-arm-y += omap_sx1.o palm.o tsc210x.o
|
|
|
|
obj-arm-y += nseries.o blizzard.o onenand.o vga.o cbus.o tusb6010.o usb-musb.o
|
|
|
|
obj-arm-y += mst_fpga.o mainstone.o
|
2010-03-30 03:23:55 +08:00
|
|
|
obj-arm-y += musicpal.o bitbang_i2c.o marvell_88w8618_audio.o
|
2009-07-17 00:33:58 +08:00
|
|
|
obj-arm-y += framebuffer.o
|
|
|
|
obj-arm-y += syborg.o syborg_fb.o syborg_interrupt.o syborg_keyboard.o
|
|
|
|
obj-arm-y += syborg_serial.o syborg_timer.o syborg_pointer.o syborg_rtc.o
|
|
|
|
obj-arm-y += syborg_virtio.o
|
2011-03-07 19:10:32 +08:00
|
|
|
obj-arm-y += vexpress.o
|
2011-04-19 22:56:45 +08:00
|
|
|
obj-arm-y += strongarm.o
|
2011-04-19 22:56:46 +08:00
|
|
|
obj-arm-y += collie.o
|
2009-07-17 00:33:58 +08:00
|
|
|
|
|
|
|
obj-sh4-y = shix.o r2d.o sh7750.o sh7750_regnames.o tc58128.o
|
2010-03-22 03:47:11 +08:00
|
|
|
obj-sh4-y += sh_timer.o sh_serial.o sh_intc.o sh_pci.o sm501.o
|
2010-03-27 14:20:53 +08:00
|
|
|
obj-sh4-y += ide/mmio.o
|
2009-07-17 00:33:58 +08:00
|
|
|
|
|
|
|
obj-m68k-y = an5206.o mcf5206.o mcf_uart.o mcf_intc.o mcf5208.o mcf_fec.o
|
|
|
|
obj-m68k-y += m68k-semi.o dummy_m68k.o
|
|
|
|
|
2009-12-05 19:44:28 +08:00
|
|
|
obj-s390x-y = s390-virtio-bus.o s390-virtio.o
|
2009-12-05 19:44:27 +08:00
|
|
|
|
2009-12-28 10:30:03 +08:00
|
|
|
obj-alpha-y = alpha_palcode.o
|
|
|
|
|
2010-03-30 03:23:52 +08:00
|
|
|
main.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
|
2009-03-28 14:44:27 +08:00
|
|
|
|
2010-10-01 03:00:22 +08:00
|
|
|
monitor.o: hmp-commands.h qmp-commands.h
|
2009-06-06 16:22:04 +08:00
|
|
|
|
2010-01-07 03:24:05 +08:00
|
|
|
$(obj-y) $(obj-$(TARGET_BASE_ARCH)-y): $(GENERATED_HEADERS)
|
|
|
|
|
|
|
|
obj-y += $(addprefix ../, $(common-obj-y))
|
2010-03-21 16:28:47 +08:00
|
|
|
obj-y += $(addprefix ../libdis/, $(libdis-y))
|
2010-01-07 03:24:05 +08:00
|
|
|
obj-y += $(libobj-y)
|
|
|
|
obj-y += $(addprefix $(HWDIR)/, $(hw-obj-y))
|
2003-08-11 05:39:31 +08:00
|
|
|
|
2009-08-03 20:46:41 +08:00
|
|
|
endif # CONFIG_SOFTMMU
|
2006-10-28 20:19:07 +08:00
|
|
|
|
libcacard: initial commit
libcacard emulates a Common Access Card (CAC) which is a standard
for smartcards. It is used by the emulated ccid card introduced in
a following patch. Docs are available in docs/libcacard.txt
Signed-off-by: Alon Levy <alevy@redhat.com>
---
changes from v24->v25:
* Fix out of tree builds.
* Fix build with linux-user targets.
changes from v23->v24: (Jes Sorensen review 2)
* Makefile.target: use obj-$(CONFIG_*) +=
* remove unrequired includes, include qemu-common before qemu-thread
* required adding #define NO_NSPR_10_SUPPORT (harmless)
changes from v22->v23:
* configure fixes: (reported by Stefan Hajnoczi)
* test a = b, not a == b (second isn't portable)
* quote $source_path in case it contains spaces
- this doesn't really help since there are many other places
that need similar fixes, not introduced by this patch.
changes from v21->v22:
* fix configure to not link libcacard if nss not found
(reported by Stefan Hajnoczi)
* fix vscclient linkage with simpletrace backend
(reported by Stefan Hajnoczi)
* card_7816.c: add missing break in ERROR_DATA_NOT_FOUND
(reported by William van de Velde)
changes from v20->v21: (Jes Sorensen review)
* use qemu infrastructure: qemu-thread, qemu-common (qemu_malloc
and qemu_free), error_report
* assert instead of ASSERT
* cosmetic fixes
* use strpbrk and isspace
* add --disable-nss --enable-nss here, instead of in the final patch.
* split vscclient, passthru and docs to following patches.
changes from v19->v20:
* checkpatch.pl
changes from v15->v16:
Build:
* don't erase self with distclean
* fix make clean after make distclean
* Makefile: make vscclient link quiet
Behavioral:
* vcard_emul_nss: load coolkey in more situations
* vscclient:
* use hton,ntoh
* send init on connect, only start vevent thread on response
* read payload after header check, before type switch
* remove Reconnect
* update for vscard_common changes, empty Flush implementation
Style/Whitespace:
* fix wrong variable usage
* remove unused variable
* use only C style comments
* add copyright header
* fix tabulation
Signed-off-by: Alon Levy <alevy@redhat.com>
libcacard: fix out of tree builds
2010-11-28 22:36:38 +08:00
|
|
|
ifndef CONFIG_LINUX_USER
|
|
|
|
# libcacard needs qemu-thread support, and besides is only needed by devices
|
|
|
|
# so not requires with linux-user targets
|
|
|
|
obj-$(CONFIG_SMARTCARD_NSS) += $(addprefix ../libcacard/, $(libcacard-y))
|
|
|
|
endif # CONFIG_LINUX_USER
|
|
|
|
|
2010-05-23 00:52:39 +08:00
|
|
|
obj-y += $(addprefix ../, $(trace-obj-y))
|
2009-10-07 08:41:04 +08:00
|
|
|
obj-$(CONFIG_GDBSTUB_XML) += gdbstub-xml.o
|
|
|
|
|
2010-01-07 03:24:05 +08:00
|
|
|
$(QEMU_PROG): $(obj-y) $(obj-$(TARGET_BASE_ARCH)-y)
|
2009-07-17 00:34:04 +08:00
|
|
|
$(call LINK,$(obj-y) $(obj-$(TARGET_BASE_ARCH)-y))
|
|
|
|
|
|
|
|
|
2011-01-21 04:54:21 +08:00
|
|
|
gdbstub-xml.c: $(TARGET_XML_FILES) $(SRC_PATH)/scripts/feature_to_c.sh
|
|
|
|
$(call quiet-command,rm -f $@ && $(SHELL) $(SRC_PATH)/scripts/feature_to_c.sh $@ $(TARGET_XML_FILES)," GEN $(TARGET_DIR)$@")
|
2008-10-12 01:55:29 +08:00
|
|
|
|
2010-10-01 03:00:22 +08:00
|
|
|
hmp-commands.h: $(SRC_PATH)/hmp-commands.hx
|
2011-01-21 04:54:21 +08:00
|
|
|
$(call quiet-command,sh $(SRC_PATH)/scripts/hxtool -h < $< > $@," GEN $(TARGET_DIR)$@")
|
2009-06-06 16:22:04 +08:00
|
|
|
|
2010-09-16 04:17:45 +08:00
|
|
|
qmp-commands.h: $(SRC_PATH)/qmp-commands.hx
|
2011-01-21 04:54:21 +08:00
|
|
|
$(call quiet-command,sh $(SRC_PATH)/scripts/hxtool -h < $< > $@," GEN $(TARGET_DIR)$@")
|
2009-06-06 16:22:04 +08:00
|
|
|
|
2011-01-28 20:39:08 +08:00
|
|
|
9pfs/virtio-9p.o: CFLAGS += -I$(SRC_PATH)/hw/
|
|
|
|
|
2003-08-11 05:39:31 +08:00
|
|
|
clean:
|
2009-06-06 16:22:04 +08:00
|
|
|
rm -f *.o *.a *~ $(PROGS) nwfpe/*.o fpu/*.o
|
2011-01-28 20:39:08 +08:00
|
|
|
rm -f *.d */*.d tcg/*.o ide/*.o 9pfs/*.o
|
2010-10-01 03:00:22 +08:00
|
|
|
rm -f hmp-commands.h qmp-commands.h gdbstub-xml.c
|
2010-11-12 21:20:25 +08:00
|
|
|
ifdef CONFIG_SYSTEMTAP_TRACE
|
|
|
|
rm -f *.stp
|
|
|
|
endif
|
2003-10-01 04:54:24 +08:00
|
|
|
|
2007-09-17 05:08:06 +08:00
|
|
|
install: all
|
2004-03-27 06:43:34 +08:00
|
|
|
ifneq ($(PROGS),)
|
2010-08-05 08:21:34 +08:00
|
|
|
$(INSTALL) -m 755 $(PROGS) "$(DESTDIR)$(bindir)"
|
|
|
|
ifneq ($(STRIP),)
|
|
|
|
$(STRIP) $(patsubst %,"$(DESTDIR)$(bindir)/%",$(PROGS))
|
|
|
|
endif
|
2004-03-27 06:43:34 +08:00
|
|
|
endif
|
2010-11-12 21:20:25 +08:00
|
|
|
ifdef CONFIG_SYSTEMTAP_TRACE
|
|
|
|
$(INSTALL_DIR) "$(DESTDIR)$(datadir)/../systemtap/tapset"
|
|
|
|
$(INSTALL_DATA) $(QEMU_PROG).stp "$(DESTDIR)$(datadir)/../systemtap/tapset"
|
|
|
|
endif
|
2003-08-11 05:39:31 +08:00
|
|
|
|
2007-10-28 21:07:12 +08:00
|
|
|
# Include automatically generated dependency files
|
|
|
|
-include $(wildcard *.d */*.d)
|