Makefile.target 13.5 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
B
balrog 已提交
6
CPPFLAGS=-I. -I.. -I$(TARGET_PATH) -I$(SRC_PATH) -MMD -MT $@ -MP -DNEED_CPU_H
B
bellard 已提交
7
#CFLAGS+=-Werror
B
bellard 已提交
8
LIBS=
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

24 25
HELPER_CFLAGS=

B
bellard 已提交
26
ifeq ($(ARCH),i386)
27
HELPER_CFLAGS+=-fomit-frame-pointer
28 29
endif

M
malc 已提交
30 31 32 33
ifeq ($(subst ppc64,ppc,$(ARCH))$(TARGET_BASE_ARCH),ppcppc)
translate.o: CFLAGS := $(CFLAGS) $(call cc-option, $(CFLAGS), -fno-unit-at-a-time,)
endif

B
bellard 已提交
34
ifeq ($(ARCH),sparc)
J
Juan Quintela 已提交
35
  ifneq ($(CONFIG_SOLARIS),y)
36
    HELPER_CFLAGS+=-ffixed-i0
37
  endif
B
bellard 已提交
38
endif
B
bellard 已提交
39 40 41

ifeq ($(ARCH),alpha)
# Ensure there's only a single GP
42
CFLAGS+=-msmall-data
B
bellard 已提交
43 44 45
endif

ifeq ($(ARCH),ia64)
46
CFLAGS+=-mno-sdata
47 48
endif

49
CPPFLAGS+=-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
50
CPPFLAGS+=-U_FORTIFY_SOURCE
B
bellard 已提交
51
LIBS+=-lm
B
bellard 已提交
52
ifdef CONFIG_WIN32
53
LIBS+=-lwinmm -lws2_32 -liphlpapi
B
bellard 已提交
54
endif
B
bellard 已提交
55 56
ifdef CONFIG_SOLARIS
LIBS+=-lsocket -lnsl -lresolv
57
ifdef CONFIG_NEEDS_LIBSUNMATH
T
ths 已提交
58 59
LIBS+=-lsunmath
LDFLAGS+=-L/opt/SUNWspro/prod/lib -R/opt/SUNWspro/prod/lib
60
CFLAGS+=-I/opt/SUNWspro/prod/include/cc
B
bellard 已提交
61
endif
62 63
endif

A
aliguori 已提交
64 65 66
kvm.o: CFLAGS+=$(KVM_CFLAGS)
kvm-all.o: CFLAGS+=$(KVM_CFLAGS)

67
all: $(PROGS)
P
Paul Brook 已提交
68 69
# Dummy command so that make thinks it has done something
	@true
B
bellard 已提交
70

71
#########################################################
B
bellard 已提交
72
# cpu emulator library
J
Juan Quintela 已提交
73
libobj-y = exec.o translate-all.o cpu-exec.o translate.o host-utils.o
74
libobj-$(CONFIG_KQEMU) += kqemu.o
B
bellard 已提交
75
# TCG code generator
J
Juan Quintela 已提交
76
libobj-y += tcg/tcg.o tcg/tcg-runtime.o
B
bellard 已提交
77
CPPFLAGS+=-I$(SRC_PATH)/tcg -I$(SRC_PATH)/tcg/$(ARCH)
B
blueswir1 已提交
78 79 80
ifeq ($(ARCH),sparc64)
CPPFLAGS+=-I$(SRC_PATH)/tcg/sparc
endif
B
bellard 已提交
81
ifdef CONFIG_SOFTFLOAT
J
Juan Quintela 已提交
82
libobj-y += fpu/softfloat.o
B
bellard 已提交
83
else
J
Juan Quintela 已提交
84
libobj-y += fpu/softfloat-native.o
B
bellard 已提交
85
endif
86
CPPFLAGS+=-I$(SRC_PATH)/fpu
J
Juan Quintela 已提交
87
libobj-y += op_helper.o helper.o
88

B
bellard 已提交
89
ifeq ($(TARGET_BASE_ARCH), arm)
J
Juan Quintela 已提交
90
libobj-y += neon_helper.o iwmmxt_helper.o
P
pbrook 已提交
91 92
endif

93
ifeq ($(TARGET_BASE_ARCH), alpha)
J
Juan Quintela 已提交
94
libobj-y += alpha_palcode.o
95 96
endif

97
ifeq ($(TARGET_BASE_ARCH), cris)
J
Juan Quintela 已提交
98
libobj-y += cris-dis.o
99 100

ifndef CONFIG_USER_ONLY
J
Juan Quintela 已提交
101
libobj-y += mmu.o
102 103 104
endif
endif

B
bellard 已提交
105
# NOTE: the disassembler code is only needed for debugging
J
Juan Quintela 已提交
106
libobj-y += disas.o
B
bellard 已提交
107
ifeq ($(findstring i386, $(TARGET_ARCH) $(ARCH)),i386)
108 109
USE_I386_DIS=y
endif
B
bellard 已提交
110
ifeq ($(findstring x86_64, $(TARGET_ARCH) $(ARCH)),x86_64)
111 112
USE_I386_DIS=y
endif
113
libobj-$(USE_I386_DIS) += i386-dis.o
B
bellard 已提交
114
ifeq ($(findstring alpha, $(TARGET_ARCH) $(ARCH)),alpha)
J
Juan Quintela 已提交
115
libobj-y += alpha-dis.o
B
bellard 已提交
116
endif
B
bellard 已提交
117
ifeq ($(findstring ppc, $(TARGET_BASE_ARCH) $(ARCH)),ppc)
J
Juan Quintela 已提交
118
libobj-y += ppc-dis.o
B
bellard 已提交
119
endif
120
ifeq ($(findstring microblaze, $(TARGET_BASE_ARCH) $(ARCH)),microblaze)
J
Juan Quintela 已提交
121
libobj-y += microblaze-dis.o
122
ifndef CONFIG_USER_ONLY
J
Juan Quintela 已提交
123
libobj-y += mmu.o
124 125
endif
endif
T
ths 已提交
126
ifeq ($(findstring mips, $(TARGET_BASE_ARCH) $(ARCH)),mips)
J
Juan Quintela 已提交
127
libobj-y += mips-dis.o
B
bellard 已提交
128
endif
B
bellard 已提交
129
ifeq ($(findstring sparc, $(TARGET_BASE_ARCH) $(ARCH)),sparc)
J
Juan Quintela 已提交
130
libobj-y += sparc-dis.o
B
bellard 已提交
131 132
endif
ifeq ($(findstring arm, $(TARGET_ARCH) $(ARCH)),arm)
J
Juan Quintela 已提交
133
libobj-y += arm-dis.o
B
bellard 已提交
134
endif
B
bellard 已提交
135
ifeq ($(findstring m68k, $(TARGET_ARCH) $(ARCH)),m68k)
J
Juan Quintela 已提交
136
libobj-y += m68k-dis.o
B
bellard 已提交
137
endif
B
bellard 已提交
138
ifeq ($(findstring sh4, $(TARGET_ARCH) $(ARCH)),sh4)
J
Juan Quintela 已提交
139
libobj-y += sh4-dis.o
B
bellard 已提交
140
endif
A
aurel32 已提交
141
ifeq ($(findstring hppa, $(TARGET_BASE_ARCH) $(ARCH)),hppa)
J
Juan Quintela 已提交
142
libobj-y += hppa-dis.o
A
aurel32 已提交
143
endif
144
ifeq ($(findstring s390, $(TARGET_ARCH) $(ARCH)),s390)
J
Juan Quintela 已提交
145
libobj-y += s390-dis.o
146
endif
B
bellard 已提交
147

148 149
# libqemu

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

152
translate.o: translate.c cpu.h
153

154
translate-all.o: translate-all.c cpu.h
155

156
tcg/tcg.o: cpu.h
157 158 159

# HELPER_CFLAGS is used for all the code compiled with static register
# variables
J
Juan Quintela 已提交
160
op_helper.o: CFLAGS += $(HELPER_CFLAGS)
161

162
cpu-exec.o: CFLAGS += $(HELPER_CFLAGS)
163 164 165 166 167 168

#########################################################
# Linux user emulator target

ifdef CONFIG_LINUX_USER

169
VPATH+=:$(SRC_PATH)/linux-user:$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR)
170 171
CPPFLAGS+=-I$(SRC_PATH)/linux-user -I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR)

A
aurel32 已提交
172 173 174 175 176 177
# profiling code
ifdef TARGET_GPROF
LDFLAGS+=-p
CFLAGS+=-p
endif

J
Juan Quintela 已提交
178
obj-y = main.o syscall.o strace.o mmap.o signal.o path.o thunk.o \
179 180
      elfload.o linuxload.o uaccess.o envlist.o gdbstub.o gdbstub-xml.o \
      ioport-user.o
181 182
obj-$(TARGET_HAS_BFLT) += flatload.o

183 184 185
ifdef TARGET_HAS_ELFLOAD32
elfload32.o: elfload.c
endif
186
obj-$(TARGET_HAS_ELFLOAD32) += elfload32.o
187 188

ifeq ($(TARGET_ARCH), i386)
J
Juan Quintela 已提交
189
obj-y += vm86.o
190
endif
191

J
Juan Quintela 已提交
192 193
nwfpe-obj-y := fpa11.o fpa11_cpdo.o fpa11_cpdt.o fpa11_cprt.o fpopcode.o
nwfpe-obj-y += single_cpdo.o double_cpdo.o extended_cpdo.o
194 195 196 197
obj-arm-y +=  $(addprefix nwfpe/, $(nwfpe-obj-y))
obj-arm-y += arm-semi.o

obj-m68k-y += m68k-sim.o m68k-semi.o
198 199 200

# Note: this is a workaround. The real fix is to avoid compiling
# cpu_signal_handler() in cpu-exec.c.
201
signal.o: CFLAGS += $(HELPER_CFLAGS)
B
bellard 已提交
202

203
ARLIBS=../libqemu_user.a libqemu.a
204 205
endif #CONFIG_LINUX_USER

206 207 208
LIBS+= $(PTHREADLIBS)
LIBS+= $(CLOCKLIBS)

209 210 211 212 213 214 215 216 217 218 219 220 221
#########################################################
# Darwin user emulator target

ifdef CONFIG_DARWIN_USER

VPATH+=:$(SRC_PATH)/darwin-user
CPPFLAGS+=-I$(SRC_PATH)/darwin-user -I$(SRC_PATH)/darwin-user/$(TARGET_ARCH)

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

LIBS+=-lmx

J
Juan Quintela 已提交
222
obj-y = main.o commpage.o machload.o mmap.o signal.o syscall.o thunk.o \
223
        gdbstub.o gdbstub-xml.o ioport-user.o
224 225 226

# Note: this is a workaround. The real fix is to avoid compiling
# cpu_signal_handler() in cpu-exec.c.
227
signal.o: CFLAGS += $(HELPER_CFLAGS)
228

229
ARLIBS=libqemu.a
230 231 232

endif #CONFIG_DARWIN_USER

B
blueswir1 已提交
233 234 235 236 237 238 239 240
#########################################################
# BSD user emulator target

ifdef CONFIG_BSD_USER

VPATH+=:$(SRC_PATH)/bsd-user
CPPFLAGS+=-I$(SRC_PATH)/bsd-user -I$(SRC_PATH)/bsd-user/$(TARGET_ARCH)

J
Juan Quintela 已提交
241
obj-y = main.o bsdload.o elfload.o mmap.o path.o signal.o strace.o syscall.o \
242
        gdbstub.o gdbstub-xml.o ioport-user.o
J
Juan Quintela 已提交
243
obj-y += uaccess.o
B
blueswir1 已提交
244 245 246

# Note: this is a workaround. The real fix is to avoid compiling
# cpu_signal_handler() in cpu-exec.c.
247
signal.o: CFLAGS += $(HELPER_CFLAGS)
B
blueswir1 已提交
248

249
ARLIBS=libqemu.a ../libqemu_user.a
B
blueswir1 已提交
250 251 252

endif #CONFIG_BSD_USER

253 254 255 256
#########################################################
# System emulator target
ifndef CONFIG_USER_ONLY

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

264
LIBS+=-lz
265 266 267
ifdef CONFIG_ALSA
LIBS += -lasound
endif
268 269 270
ifdef CONFIG_ESD
LIBS += -lesd
endif
M
malc 已提交
271 272 273
ifdef CONFIG_PA
LIBS += -lpulse-simple
endif
274 275
ifdef CONFIG_DSOUND
LIBS += -lole32 -ldxguid
B
bellard 已提交
276
endif
B
bellard 已提交
277
ifdef CONFIG_FMOD
278
LIBS += $(FMOD_LIBS)
B
bellard 已提交
279
endif
B
blueswir1 已提交
280
ifdef CONFIG_OSS
J
Juan Quintela 已提交
281
LIBS += $(OSS_LIBS)
B
blueswir1 已提交
282
endif
B
bellard 已提交
283

284 285 286 287 288 289
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 已提交
290
sound-obj-$(CONFIG_CS4231A) += cs4231a.o
291

292
ifdef CONFIG_ADLIB
293
adlib.o fmopl.o: CFLAGS := ${CFLAGS} -DBUILD_Y8950=0
294
endif
B
bellard 已提交
295

296
ifdef CONFIG_VNC_TLS
297 298
CPPFLAGS += $(VNC_TLS_CFLAGS)
LIBS += $(VNC_TLS_LIBS)
299 300
endif

301
ifdef CONFIG_VNC_SASL
302 303
CPPFLAGS += $(VNC_SASL_CFLAGS)
LIBS += $(VNC_SASL_LIBS)
304 305
endif

B
balrog 已提交
306
ifdef CONFIG_BLUEZ
307
LIBS += $(BLUEZ_LIBS)
B
balrog 已提交
308 309
endif

310
# xen backend driver support
311
obj-$(CONFIG_XEN) += xen_machine_pv.o xen_domainbuild.o
J
Juan Quintela 已提交
312
ifeq ($(CONFIG_XEN), y)
313 314 315
  LIBS += $(XEN_LIBS)
endif

B
bellard 已提交
316
# USB layer
J
Juan Quintela 已提交
317
obj-y += usb-ohci.o
B
bellard 已提交
318

319
# PCI network cards
J
Juan Quintela 已提交
320 321 322 323 324
obj-y += eepro100.o
obj-y += ne2000.o
obj-y += pcnet.o
obj-y += rtl8139.o
obj-y += e1000.o
325

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

329
# Hardware support
330 331 332 333 334 335 336
obj-i386-y = ide.o pckbd.o vga.o $(sound-obj-y) dma.o
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

ifeq ($(TARGET_BASE_ARCH), i386)
337
CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE
B
bellard 已提交
338
endif
339

J
j_mayer 已提交
340
# shared objects
341
obj-ppc-y = ppc.o ide.o vga.o $(sound-obj-y) dma.o openpic.o
J
j_mayer 已提交
342
# PREP target
343 344
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 已提交
345
# Mac shared devices
346
obj-ppc-y += macio.o cuda.o adb.o mac_nvram.o mac_dbdma.o
J
j_mayer 已提交
347
# OldWorld PowerMac
348
obj-ppc-y += heathrow_pic.o grackle_pci.o ppc_oldworld.o
J
j_mayer 已提交
349
# NewWorld PowerMac
350
obj-ppc-y += unin_pci.o ppc_newworld.o
J
j_mayer 已提交
351
# PowerPC 4xx boards
352 353
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
354
# PowerPC E500 boards
355 356 357 358 359 360 361
obj-ppc-y += ppce500_pci.o ppce500_mpc8544ds.o
obj-ppc-$(CONFIG_KVM) += kvm_ppc.o

ifeq ($(TARGET_BASE_ARCH), ppc)
CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE
endif

362
obj-ppc-$(CONFIG_FDT) += device_tree.o
363
LIBS+= $(FDT_LIBS)
364 365 366 367 368 369 370 371 372 373

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
obj-mips-y += piix_pci.o parallel.o cirrus_vga.o pcspk.o $(sound-obj-y)
obj-mips-y += mipsnet.o
obj-mips-y += pflash_cfi01.o
obj-mips-y += vmware_vga.o

T
ths 已提交
374
ifeq ($(TARGET_BASE_ARCH), mips)
A
aurel32 已提交
375
CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE
B
bellard 已提交
376
endif
377

378 379 380 381 382 383 384 385 386
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
387

388
obj-microblaze-$(CONFIG_FDT) += device_tree.o
389
LIBS+= $(FDT_LIBS)
390

391
# Boards
392
obj-cris-y = cris_pic_cpu.o etraxfs.o axis_dev88.o
393 394

# IO blocks
395 396 397 398 399 400 401
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
402

B
bellard 已提交
403
ifeq ($(TARGET_ARCH), sparc64)
404 405 406
obj-sparc-y = sun4u.o ide.o pckbd.o vga.o apb_pci.o
obj-sparc-y += fdc.o mc146818rtc.o serial.o
obj-sparc-y += cirrus_vga.o parallel.o
B
bellard 已提交
407
else
408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434
obj-sparc-y = sun4m.o tcx.o iommu.o slavio_intctl.o
obj-sparc-y += slavio_timer.o slavio_misc.o fdc.o sparc32_dma.o
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

B
bellard 已提交
435
ifeq ($(TARGET_BASE_ARCH), arm)
436
CPPFLAGS += -DHAS_AUDIO
B
bellard 已提交
437
endif
438 439 440 441 442 443 444 445

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

446
ifdef CONFIG_COCOA
447 448 449 450
COCOA_LIBS=-F/System/Library/Frameworks -framework Cocoa -framework IOKit
ifdef CONFIG_COREAUDIO
COCOA_LIBS+=-framework CoreAudio
endif
451
endif
B
bellard 已提交
452
ifdef CONFIG_SLIRP
453
CPPFLAGS+=-I$(SRC_PATH)/slirp
B
bellard 已提交
454 455
endif

456
# specific flags are needed for non soft mmu emulator
457
ifndef CONFIG_DARWIN
B
bellard 已提交
458
ifndef CONFIG_WIN32
B
bellard 已提交
459
ifndef CONFIG_SOLARIS
M
malc 已提交
460
ifndef CONFIG_AIX
461
LIBS+=-lutil
B
bellard 已提交
462
endif
M
malc 已提交
463
endif
464
endif
B
bellard 已提交
465
endif
B
bellard 已提交
466
ifdef TARGET_GPROF
467 468
vl.o: CFLAGS+=-p
LDFLAGS+=-p
B
bellard 已提交
469
endif
470

B
bellard 已提交
471
ifeq ($(ARCH),ia64)
472
LDFLAGS+=-Wl,-G0 -Wl,-T,$(SRC_PATH)/ia64.ld
B
bellard 已提交
473 474
endif

475 476 477 478
ifdef CONFIG_WIN32
SDL_LIBS := $(filter-out -mwindows, $(SDL_LIBS)) -mconsole
endif

479 480 481 482
# profiling code
ifdef TARGET_GPROF
LDFLAGS+=-p
main.o: CFLAGS+=-p
B
bellard 已提交
483 484
endif

485 486
vl.o: CFLAGS+=$(SDL_CFLAGS)

487 488
vl.o: qemu-options.h

489 490
monitor.o: qemu-monitor.h

491 492
LIBS += $(SDL_LIBS) $(COCOA_LIBS) $(CURSES_LIBS) $(BRLAPI_LIBS) $(VDE_LIBS) $(CURL_LIBS)
ARLIBS=../libqemu_common.a libqemu.a $(HWLIB)
B
bellard 已提交
493

494
endif # !CONFIG_USER_ONLY
495

496 497 498 499
$(QEMU_PROG): $(obj-y) $(obj-$(TARGET_BASE_ARCH)-y) $(ARLIBS)
	$(call LINK,$(obj-y) $(obj-$(TARGET_BASE_ARCH)-y))


P
pbrook 已提交
500 501
gdbstub-xml.c: $(TARGET_XML_FILES) feature_to_c.sh
ifeq ($(TARGET_XML_FILES),)
502
	$(call quiet-command,rm -f $@ && echo > $@,"  GEN   $(TARGET_DIR)$@")
P
pbrook 已提交
503
else
504
	$(call quiet-command,rm -f $@ && $(SHELL) $(SRC_PATH)/feature_to_c.sh $@ $(TARGET_XML_FILES),"  GEN   $(TARGET_DIR)$@")
P
pbrook 已提交
505 506
endif

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

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

B
bellard 已提交
513
clean:
514
	rm -f *.o *.a *~ $(PROGS) nwfpe/*.o fpu/*.o
B
bellard 已提交
515
	rm -f *.d */*.d tcg/*.o
516
	rm -f qemu-options.h qemu-monitor.h gdbstub-xml.c
517

518
install: all
B
bellard 已提交
519
ifneq ($(PROGS),)
520
	$(INSTALL) -m 755 $(STRIP_OPT) $(PROGS) "$(DESTDIR)$(bindir)"
B
bellard 已提交
521
endif
B
bellard 已提交
522

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