Makefile.target 9.9 KB
Newer Older
B
bellard 已提交
1
include config.mak
A
aliguori 已提交
2
include $(SRC_PATH)/rules.mak
B
bellard 已提交
3

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

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

20
PROGS=$(QEMU_PROG)
B
bellard 已提交
21

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

B
bellard 已提交
26
LIBS+=-lm
27

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

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

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

B
bellard 已提交
46
# NOTE: the disassembler code is only needed for debugging
J
Juan Quintela 已提交
47
libobj-y += disas.o
48 49 50 51 52 53 54 55 56 57 58 59
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 已提交
60

61 62
# libqemu

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

65
translate.o: translate.c cpu.h
66

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

69
tcg/tcg.o: cpu.h
70 71 72

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

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

79 80 81 82 83
#########################################################
# Linux user emulator target

ifdef CONFIG_LINUX_USER

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

J
Juan Quintela 已提交
87
obj-y = main.o syscall.o strace.o mmap.o signal.o path.o thunk.o \
88 89
      elfload.o linuxload.o uaccess.o envlist.o gdbstub.o gdbstub-xml.o \
      ioport-user.o
90 91
obj-$(TARGET_HAS_BFLT) += flatload.o
obj-$(TARGET_HAS_ELFLOAD32) += elfload32.o
92

93
obj-$(TARGET_I386) += vm86.o
94

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

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

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

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

ifdef CONFIG_DARWIN_USER

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

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

LIBS+=-lmx

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

121
ARLIBS=libqemu.a
122 123 124

endif #CONFIG_DARWIN_USER

B
blueswir1 已提交
125 126 127 128 129 130
#########################################################
# BSD user emulator target

ifdef CONFIG_BSD_USER

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

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

137
ARLIBS=libqemu.a ../libqemu_user.a
B
blueswir1 已提交
138 139 140

endif #CONFIG_BSD_USER

141 142
#########################################################
# System emulator target
143
ifdef CONFIG_SOFTMMU
144

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

152
LIBS+=-lz
B
bellard 已提交
153

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

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

J
Juan Quintela 已提交
164 165
QEMU_CFLAGS += $(VNC_TLS_CFLAGS)
QEMU_CFLAGS += $(VNC_SASL_CFLAGS)
166

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

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

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

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

183
# Hardware support
184
obj-i386-y = ide.o pckbd.o vga.o $(sound-obj-y) dma.o isa-bus.o
185 186 187 188 189
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 已提交
190
# shared objects
191
obj-ppc-y = ppc.o ide.o vga.o $(sound-obj-y) dma.o isa-bus.o openpic.o
J
j_mayer 已提交
192
# PREP target
193 194
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 已提交
195
# Mac shared devices
196
obj-ppc-y += macio.o cuda.o adb.o mac_nvram.o mac_dbdma.o
J
j_mayer 已提交
197
# OldWorld PowerMac
198
obj-ppc-y += heathrow_pic.o grackle_pci.o ppc_oldworld.o
J
j_mayer 已提交
199
# NewWorld PowerMac
200
obj-ppc-y += unin_pci.o ppc_newworld.o
J
j_mayer 已提交
201
# PowerPC 4xx boards
202 203
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
204
# PowerPC E500 boards
205 206
obj-ppc-y += ppce500_pci.o ppce500_mpc8544ds.o
obj-ppc-$(CONFIG_KVM) += kvm_ppc.o
207
obj-ppc-$(CONFIG_FDT) += device_tree.o
208 209 210 211 212

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
213
obj-mips-y += piix_pci.o parallel.o cirrus_vga.o isa-bus.o pcspk.o $(sound-obj-y)
214 215 216 217 218 219 220 221 222 223 224 225 226
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
227

228
obj-microblaze-$(CONFIG_FDT) += device_tree.o
229

230
# Boards
231
obj-cris-y = cris_pic_cpu.o etraxfs.o axis_dev88.o
232 233

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

B
bellard 已提交
242
ifeq ($(TARGET_ARCH), sparc64)
243
obj-sparc-y = sun4u.o ide.o isa-bus.o pckbd.o vga.o apb_pci.o
244 245
obj-sparc-y += fdc.o mc146818rtc.o serial.o
obj-sparc-y += cirrus_vga.o parallel.o
B
bellard 已提交
246
else
247
obj-sparc-y = sun4m.o tcx.o iommu.o slavio_intctl.o
248
obj-sparc-y += slavio_timer.o slavio_misc.o fdc.o isa-bus.o sparc32_dma.o
249 250 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
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

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

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

285 286
vl.o: qemu-options.h

287 288
monitor.o: qemu-monitor.h

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

291
endif # CONFIG_SOFTMMU
292

293 294 295 296
$(QEMU_PROG): $(obj-y) $(obj-$(TARGET_BASE_ARCH)-y) $(ARLIBS)
	$(call LINK,$(obj-y) $(obj-$(TARGET_BASE_ARCH)-y))


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

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

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

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

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

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