Makefile.target 10.0 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
      elfload.o linuxload.o uaccess.o gdbstub.o gdbstub-xml.o
91

92 93
obj-$(TARGET_HAS_BFLT) += flatload.o
obj-$(TARGET_HAS_ELFLOAD32) += elfload32.o
94

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

97 98 99 100
ifeq ($(TARGET_BASE_ARCH), i386)
obj-y += ioport-user.o
endif

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

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

108
ARLIBS=../libqemu_user.a libqemu.a
109 110 111 112 113 114 115 116
endif #CONFIG_LINUX_USER

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

ifdef CONFIG_DARWIN_USER

VPATH+=:$(SRC_PATH)/darwin-user
J
Juan Quintela 已提交
117
QEMU_CFLAGS+=-I$(SRC_PATH)/darwin-user -I$(SRC_PATH)/darwin-user/$(TARGET_ARCH)
118 119 120 121 122 123

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

LIBS+=-lmx

J
Juan Quintela 已提交
124
obj-y = main.o commpage.o machload.o mmap.o signal.o syscall.o thunk.o \
125 126 127 128 129
        gdbstub.o gdbstub-xml.o

ifeq ($(TARGET_BASE_ARCH), i386)
obj-y += ioport-user.o
endif
130

131
ARLIBS=libqemu.a
132 133 134

endif #CONFIG_DARWIN_USER

B
blueswir1 已提交
135 136 137 138 139 140
#########################################################
# BSD user emulator target

ifdef CONFIG_BSD_USER

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

B
Blue Swirl 已提交
143
obj-y = main.o bsdload.o elfload.o mmap.o signal.o strace.o syscall.o \
144 145 146 147 148
        gdbstub.o gdbstub-xml.o uaccess.o

ifeq ($(TARGET_BASE_ARCH), i386)
obj-y += ioport-user.o
endif
B
blueswir1 已提交
149

150
ARLIBS=libqemu.a ../libqemu_user.a
B
blueswir1 已提交
151 152 153

endif #CONFIG_BSD_USER

154 155
#########################################################
# System emulator target
156
ifdef CONFIG_SOFTMMU
157

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

165
LIBS+=-lz
B
bellard 已提交
166

167 168 169 170 171 172
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 已提交
173
sound-obj-$(CONFIG_CS4231A) += cs4231a.o
174

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

J
Juan Quintela 已提交
177 178
QEMU_CFLAGS += $(VNC_TLS_CFLAGS)
QEMU_CFLAGS += $(VNC_SASL_CFLAGS)
179

180
# xen backend driver support
181
obj-$(CONFIG_XEN) += xen_machine_pv.o xen_domainbuild.o
182

B
bellard 已提交
183
# USB layer
J
Juan Quintela 已提交
184
obj-y += usb-ohci.o
B
bellard 已提交
185

186
# PCI network cards
J
Juan Quintela 已提交
187 188 189 190 191
obj-y += eepro100.o
obj-y += ne2000.o
obj-y += pcnet.o
obj-y += rtl8139.o
obj-y += e1000.o
192

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

196
# Hardware support
197
obj-i386-y = ide.o pckbd.o vga.o $(sound-obj-y) dma.o isa-bus.o
198 199 200 201 202
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 已提交
203
# shared objects
204
obj-ppc-y = ppc.o ide.o vga.o $(sound-obj-y) dma.o isa-bus.o openpic.o
J
j_mayer 已提交
205
# PREP target
206 207
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 已提交
208
# Mac shared devices
209
obj-ppc-y += macio.o cuda.o adb.o mac_nvram.o mac_dbdma.o
J
j_mayer 已提交
210
# OldWorld PowerMac
211
obj-ppc-y += heathrow_pic.o grackle_pci.o ppc_oldworld.o
J
j_mayer 已提交
212
# NewWorld PowerMac
213
obj-ppc-y += unin_pci.o ppc_newworld.o
J
j_mayer 已提交
214
# PowerPC 4xx boards
215 216
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
217
# PowerPC E500 boards
218 219
obj-ppc-y += ppce500_pci.o ppce500_mpc8544ds.o
obj-ppc-$(CONFIG_KVM) += kvm_ppc.o
220
obj-ppc-$(CONFIG_FDT) += device_tree.o
221 222 223 224 225

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
226
obj-mips-y += piix_pci.o parallel.o cirrus_vga.o isa-bus.o pcspk.o $(sound-obj-y)
227 228 229 230 231 232 233 234 235 236 237 238 239
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
240

241
obj-microblaze-$(CONFIG_FDT) += device_tree.o
242

243
# Boards
244
obj-cris-y = cris_pic_cpu.o etraxfs.o axis_dev88.o
245 246

# IO blocks
247 248 249 250 251 252 253
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
254

B
bellard 已提交
255
ifeq ($(TARGET_ARCH), sparc64)
256
obj-sparc-y = sun4u.o ide.o isa-bus.o pckbd.o vga.o apb_pci.o
257 258
obj-sparc-y += fdc.o mc146818rtc.o serial.o
obj-sparc-y += cirrus_vga.o parallel.o
B
bellard 已提交
259
else
260
obj-sparc-y = sun4m.o tcx.o iommu.o slavio_intctl.o
261
obj-sparc-y += slavio_timer.o slavio_misc.o fdc.o isa-bus.o sparc32_dma.o
262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293
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

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

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

298 299
vl.o: qemu-options.h

300 301
monitor.o: qemu-monitor.h

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

304
endif # CONFIG_SOFTMMU
305

306 307 308 309
$(QEMU_PROG): $(obj-y) $(obj-$(TARGET_BASE_ARCH)-y) $(ARLIBS)
	$(call LINK,$(obj-y) $(obj-$(TARGET_BASE_ARCH)-y))


P
pbrook 已提交
310 311
gdbstub-xml.c: $(TARGET_XML_FILES) feature_to_c.sh
ifeq ($(TARGET_XML_FILES),)
312
	$(call quiet-command,rm -f $@ && echo > $@,"  GEN   $(TARGET_DIR)$@")
P
pbrook 已提交
313
else
314
	$(call quiet-command,rm -f $@ && $(SHELL) $(SRC_PATH)/feature_to_c.sh $@ $(TARGET_XML_FILES),"  GEN   $(TARGET_DIR)$@")
P
pbrook 已提交
315 316
endif

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

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

B
bellard 已提交
323
clean:
324
	rm -f *.o *.a *~ $(PROGS) nwfpe/*.o fpu/*.o
B
bellard 已提交
325
	rm -f *.d */*.d tcg/*.o
326
	rm -f qemu-options.h qemu-monitor.h gdbstub-xml.c
327

328
install: all
B
bellard 已提交
329
ifneq ($(PROGS),)
330
	$(INSTALL) -m 755 $(STRIP_OPT) $(PROGS) "$(DESTDIR)$(bindir)"
B
bellard 已提交
331
endif
B
bellard 已提交
332

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