Makefile.target 9.9 KB
Newer Older
1 2
# -*- Mode: makefile -*-

B
bellard 已提交
3
include config.mak
A
aliguori 已提交
4
include $(SRC_PATH)/rules.mak
B
bellard 已提交
5

B
bellard 已提交
6
TARGET_PATH=$(SRC_PATH)/target-$(TARGET_BASE_ARCH)
B
bellard 已提交
7
VPATH=$(SRC_PATH):$(TARGET_PATH):$(SRC_PATH)/hw
8
QEMU_CFLAGS+= -I.. -I$(TARGET_PATH) -DNEED_CPU_H
9 10 11 12 13

ifdef CONFIG_USER_ONLY
# user emulator name
QEMU_PROG=qemu-$(TARGET_ARCH2)
else
14
# system emulator name
15
ifeq ($(TARGET_ARCH), i386)
16
QEMU_PROG=qemu$(EXESUF)
17
else
18
QEMU_PROG=qemu-system-$(TARGET_ARCH2)$(EXESUF)
19
endif
B
bellard 已提交
20
endif
B
bellard 已提交
21

22
PROGS=$(QEMU_PROG)
B
bellard 已提交
23

M
malc 已提交
24
ifeq ($(subst ppc64,ppc,$(ARCH))$(TARGET_BASE_ARCH),ppcppc)
25
translate.o: QEMU_CFLAGS += $(call cc-option, $(QEMU_CFLAGS), -fno-unit-at-a-time,)
M
malc 已提交
26 27
endif

B
bellard 已提交
28
LIBS+=-lm
29

J
Juan Quintela 已提交
30
kvm.o kvm-all.o: QEMU_CFLAGS+=$(KVM_CFLAGS)
A
aliguori 已提交
31

32
all: $(PROGS)
P
Paul Brook 已提交
33 34
# Dummy command so that make thinks it has done something
	@true
B
bellard 已提交
35

36
#########################################################
B
bellard 已提交
37
# cpu emulator library
J
Juan Quintela 已提交
38
libobj-y = exec.o translate-all.o cpu-exec.o translate.o host-utils.o
39
libobj-$(CONFIG_KQEMU) += kqemu.o
J
Juan Quintela 已提交
40
libobj-y += tcg/tcg.o tcg/tcg-runtime.o
41 42
libobj-$(CONFIG_SOFTFLOAT) += fpu/softfloat.o
libobj-$(CONFIG_NOSOFTFLOAT) += fpu/softfloat-native.o
J
Juan Quintela 已提交
43
libobj-y += op_helper.o helper.o
44
libobj-$(CONFIG_NEED_MMU) += mmu.o
45 46
libobj-$(TARGET_ARM) += neon_helper.o iwmmxt_helper.o
libobj-$(TARGET_ALPHA) += alpha_palcode.o
47

B
bellard 已提交
48
# NOTE: the disassembler code is only needed for debugging
J
Juan Quintela 已提交
49
libobj-y += disas.o
50 51 52 53 54 55 56 57 58 59 60 61
libobj-$(CONFIG_ALPHA_DIS) += alpha-dis.o
libobj-$(CONFIG_ARM_DIS) += arm-dis.o
libobj-$(CONFIG_CRIS_DIS) += cris-dis.o
libobj-$(CONFIG_HPPA_DIS) += hppa-dis.o
libobj-$(CONFIG_I386_DIS) += i386-dis.o
libobj-$(CONFIG_M68K_DIS) += m68k-dis.o
libobj-$(CONFIG_MICROBLAZE_DIS) += microblaze-dis.o
libobj-$(CONFIG_MIPS_DIS) += mips-dis.o
libobj-$(CONFIG_PPC_DIS) += ppc-dis.o
libobj-$(CONFIG_S390_DIS) += s390-dis.o
libobj-$(CONFIG_SH4_DIS) += sh4-dis.o
libobj-$(CONFIG_SPARC_DIS) += sparc-dis.o
B
bellard 已提交
62

63 64
# libqemu

J
Juan Quintela 已提交
65
libqemu.a: $(libobj-y)
66

67
translate.o: translate.c cpu.h
68

69
translate-all.o: translate-all.c cpu.h
70

71
tcg/tcg.o: cpu.h
72 73 74

# HELPER_CFLAGS is used for all the code compiled with static register
# variables
J
Juan Quintela 已提交
75
op_helper.o cpu-exec.o: QEMU_CFLAGS += $(HELPER_CFLAGS)
76

J
Juan Quintela 已提交
77 78 79 80
# 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)

81 82 83 84 85
#########################################################
# Linux user emulator target

ifdef CONFIG_LINUX_USER

86
VPATH+=:$(SRC_PATH)/linux-user:$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR)
J
Juan Quintela 已提交
87
QEMU_CFLAGS+=-I$(SRC_PATH)/linux-user -I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR)
88

B
Blue Swirl 已提交
89
obj-y = main.o syscall.o strace.o mmap.o signal.o thunk.o \
90 91
      elfload.o linuxload.o uaccess.o envlist.o gdbstub.o gdbstub-xml.o \
      ioport-user.o
92 93
obj-$(TARGET_HAS_BFLT) += flatload.o
obj-$(TARGET_HAS_ELFLOAD32) += elfload32.o
94

95
obj-$(TARGET_I386) += vm86.o
96

97
nwfpe-obj-y = fpa11.o fpa11_cpdo.o fpa11_cpdt.o fpa11_cprt.o fpopcode.o
J
Juan Quintela 已提交
98
nwfpe-obj-y += single_cpdo.o double_cpdo.o extended_cpdo.o
99 100 101 102
obj-arm-y +=  $(addprefix nwfpe/, $(nwfpe-obj-y))
obj-arm-y += arm-semi.o

obj-m68k-y += m68k-sim.o m68k-semi.o
103

104
ARLIBS=../libqemu_user.a libqemu.a
105 106 107 108 109 110 111 112
endif #CONFIG_LINUX_USER

#########################################################
# Darwin user emulator target

ifdef CONFIG_DARWIN_USER

VPATH+=:$(SRC_PATH)/darwin-user
J
Juan Quintela 已提交
113
QEMU_CFLAGS+=-I$(SRC_PATH)/darwin-user -I$(SRC_PATH)/darwin-user/$(TARGET_ARCH)
114 115 116 117 118 119

# Leave some space for the regular program loading zone
LDFLAGS+=-Wl,-segaddr,__STD_PROG_ZONE,0x1000 -image_base 0x0e000000

LIBS+=-lmx

J
Juan Quintela 已提交
120
obj-y = main.o commpage.o machload.o mmap.o signal.o syscall.o thunk.o \
121
        gdbstub.o gdbstub-xml.o ioport-user.o
122

123
ARLIBS=libqemu.a
124 125 126

endif #CONFIG_DARWIN_USER

B
blueswir1 已提交
127 128 129 130 131 132
#########################################################
# BSD user emulator target

ifdef CONFIG_BSD_USER

VPATH+=:$(SRC_PATH)/bsd-user
J
Juan Quintela 已提交
133
QEMU_CFLAGS+=-I$(SRC_PATH)/bsd-user -I$(SRC_PATH)/bsd-user/$(TARGET_ARCH)
B
blueswir1 已提交
134

B
Blue Swirl 已提交
135
obj-y = main.o bsdload.o elfload.o mmap.o signal.o strace.o syscall.o \
136
        gdbstub.o gdbstub-xml.o ioport-user.o
J
Juan Quintela 已提交
137
obj-y += uaccess.o
B
blueswir1 已提交
138

139
ARLIBS=libqemu.a ../libqemu_user.a
B
blueswir1 已提交
140 141 142

endif #CONFIG_BSD_USER

143 144
#########################################################
# System emulator target
145
ifdef CONFIG_SOFTMMU
146

J
Juan Quintela 已提交
147
obj-y = vl.o osdep.o monitor.o pci.o loader.o isa_mmio.o machine.o \
G
Gerd Hoffmann 已提交
148
        gdbstub.o gdbstub-xml.o msix.o ioport.o qemu-config.o
A
aliguori 已提交
149 150
# virtio has to be here due to weird dependency between PCI and virtio-net.
# need to fix this properly
J
Juan Quintela 已提交
151 152
obj-y += virtio-blk.o virtio-balloon.o virtio-net.o virtio-console.o
obj-$(CONFIG_KVM) += kvm.o kvm-all.o
153

154
LIBS+=-lz
B
bellard 已提交
155

156 157 158 159 160 161
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
M
malc 已提交
162
sound-obj-$(CONFIG_CS4231A) += cs4231a.o
163

164
adlib.o fmopl.o: QEMU_CFLAGS += -DBUILD_Y8950=0
B
bellard 已提交
165

J
Juan Quintela 已提交
166 167
QEMU_CFLAGS += $(VNC_TLS_CFLAGS)
QEMU_CFLAGS += $(VNC_SASL_CFLAGS)
168

169
# xen backend driver support
170
obj-$(CONFIG_XEN) += xen_machine_pv.o xen_domainbuild.o
171

B
bellard 已提交
172
# USB layer
J
Juan Quintela 已提交
173
obj-y += usb-ohci.o
B
bellard 已提交
174

175
# PCI network cards
J
Juan Quintela 已提交
176 177 178 179 180
obj-y += eepro100.o
obj-y += ne2000.o
obj-y += pcnet.o
obj-y += rtl8139.o
obj-y += e1000.o
181

R
Richard W.M. Jones 已提交
182
# Generic watchdog support and some watchdog devices
J
Juan Quintela 已提交
183
obj-y += wdt_ib700.o wdt_i6300esb.o
R
Richard W.M. Jones 已提交
184

185
# Hardware support
186
obj-i386-y = ide.o pckbd.o vga.o $(sound-obj-y) dma.o isa-bus.o
187 188 189 190 191
obj-i386-y += fdc.o mc146818rtc.o serial.o i8259.o i8254.o pcspk.o pc.o
obj-i386-y += cirrus_vga.o apic.o ioapic.o parallel.o acpi.o piix_pci.o
obj-i386-y += usb-uhci.o vmmouse.o vmport.o vmware_vga.o hpet.o
obj-i386-y += device-hotplug.o pci-hotplug.o smbios.o

J
j_mayer 已提交
192
# shared objects
193
obj-ppc-y = ppc.o ide.o vga.o $(sound-obj-y) dma.o isa-bus.o openpic.o
J
j_mayer 已提交
194
# PREP target
195 196
obj-ppc-y += pckbd.o serial.o i8259.o i8254.o fdc.o mc146818rtc.o
obj-ppc-y += prep_pci.o ppc_prep.o
J
j_mayer 已提交
197
# Mac shared devices
198
obj-ppc-y += macio.o cuda.o adb.o mac_nvram.o mac_dbdma.o
J
j_mayer 已提交
199
# OldWorld PowerMac
200
obj-ppc-y += heathrow_pic.o grackle_pci.o ppc_oldworld.o
J
j_mayer 已提交
201
# NewWorld PowerMac
202
obj-ppc-y += unin_pci.o ppc_newworld.o
J
j_mayer 已提交
203
# PowerPC 4xx boards
204 205
obj-ppc-y += pflash_cfi02.o ppc4xx_devs.o ppc4xx_pci.o ppc405_uc.o ppc405_boards.o
obj-ppc-y += ppc440.o ppc440_bamboo.o
206
# PowerPC E500 boards
207 208
obj-ppc-y += ppce500_pci.o ppce500_mpc8544ds.o
obj-ppc-$(CONFIG_KVM) += kvm_ppc.o
209
obj-ppc-$(CONFIG_FDT) += device_tree.o
210 211 212 213 214

obj-mips-y = mips_r4k.o mips_jazz.o mips_malta.o mips_mipssim.o
obj-mips-y += mips_timer.o mips_int.o dma.o vga.o serial.o i8254.o i8259.o rc4030.o
obj-mips-y += g364fb.o jazz_led.o dp8393x.o
obj-mips-y += ide.o gt64xxx.o pckbd.o fdc.o mc146818rtc.o usb-uhci.o acpi.o ds1225y.o
215
obj-mips-y += piix_pci.o parallel.o cirrus_vga.o isa-bus.o pcspk.o $(sound-obj-y)
216 217 218 219 220 221 222 223 224 225 226 227 228
obj-mips-y += mipsnet.o
obj-mips-y += pflash_cfi01.o
obj-mips-y += vmware_vga.o

obj-microblaze-y = petalogix_s3adsp1800_mmu.o

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

obj-microblaze-y += pflash_cfi02.o
229

230
obj-microblaze-$(CONFIG_FDT) += device_tree.o
231

232
# Boards
233
obj-cris-y = cris_pic_cpu.o etraxfs.o axis_dev88.o
234 235

# IO blocks
236 237 238 239 240 241 242
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

obj-cris-y += pflash_cfi02.o
243

B
bellard 已提交
244
ifeq ($(TARGET_ARCH), sparc64)
245
obj-sparc-y = sun4u.o ide.o isa-bus.o pckbd.o vga.o apb_pci.o
246 247
obj-sparc-y += fdc.o mc146818rtc.o serial.o
obj-sparc-y += cirrus_vga.o parallel.o
B
bellard 已提交
248
else
249
obj-sparc-y = sun4m.o tcx.o iommu.o slavio_intctl.o
250
obj-sparc-y += slavio_timer.o slavio_misc.o fdc.o isa-bus.o sparc32_dma.o
251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282
obj-sparc-y += cs4231.o eccmemctl.o sbi.o sun4c_intctl.o
endif

obj-arm-y = integratorcp.o versatilepb.o smc91c111.o arm_pic.o arm_timer.o
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
obj-arm-y += realview_gic.o realview.o arm_sysctl.o mpcore.o
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
obj-arm-y += pflash_cfi01.o gumstix.o
obj-arm-y += zaurus.o ide.o serial.o spitz.o tosa.o tc6393xb.o
obj-arm-y += omap1.o omap_lcdc.o omap_dma.o omap_clk.o omap_mmc.o omap_i2c.o
obj-arm-y += omap2.o omap_dss.o soc_dma.o
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
obj-arm-y += musicpal.o pflash_cfi02.o
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

obj-sh4-y = shix.o r2d.o sh7750.o sh7750_regnames.o tc58128.o
obj-sh4-y += sh_timer.o sh_serial.o sh_intc.o sh_pci.o sm501.o serial.o
obj-sh4-y += ide.o

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

283
main.o vl.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
B
bellard 已提交
284

J
Juan Quintela 已提交
285
vl.o: QEMU_CFLAGS+=$(SDL_CFLAGS)
286

287 288
vl.o: qemu-options.h

289 290
monitor.o: qemu-monitor.h

291
ARLIBS=../libqemu_common.a libqemu.a $(HWLIB)
B
bellard 已提交
292

293
endif # CONFIG_SOFTMMU
294

295 296 297 298
$(QEMU_PROG): $(obj-y) $(obj-$(TARGET_BASE_ARCH)-y) $(ARLIBS)
	$(call LINK,$(obj-y) $(obj-$(TARGET_BASE_ARCH)-y))


P
pbrook 已提交
299 300
gdbstub-xml.c: $(TARGET_XML_FILES) feature_to_c.sh
ifeq ($(TARGET_XML_FILES),)
301
	$(call quiet-command,rm -f $@ && echo > $@,"  GEN   $(TARGET_DIR)$@")
P
pbrook 已提交
302
else
303
	$(call quiet-command,rm -f $@ && $(SHELL) $(SRC_PATH)/feature_to_c.sh $@ $(TARGET_XML_FILES),"  GEN   $(TARGET_DIR)$@")
P
pbrook 已提交
304 305
endif

306
qemu-options.h: $(SRC_PATH)/qemu-options.hx
307
	$(call quiet-command,sh $(SRC_PATH)/hxtool -h < $< > $@,"  GEN   $(TARGET_DIR)$@")
308

309 310 311
qemu-monitor.h: $(SRC_PATH)/qemu-monitor.hx
	$(call quiet-command,sh $(SRC_PATH)/hxtool -h < $< > $@,"  GEN   $(TARGET_DIR)$@")

B
bellard 已提交
312
clean:
313
	rm -f *.o *.a *~ $(PROGS) nwfpe/*.o fpu/*.o
B
bellard 已提交
314
	rm -f *.d */*.d tcg/*.o
315
	rm -f qemu-options.h qemu-monitor.h gdbstub-xml.c
316

317
install: all
B
bellard 已提交
318
ifneq ($(PROGS),)
319
	$(INSTALL) -m 755 $(STRIP_OPT) $(PROGS) "$(DESTDIR)$(bindir)"
B
bellard 已提交
320
endif
B
bellard 已提交
321

322 323
# Include automatically generated dependency files
-include $(wildcard *.d */*.d)