Makefile.target 12.1 KB
Newer Older
B
bellard 已提交
1 2
include config.mak

B
bellard 已提交
3 4 5 6
TARGET_BASE_ARCH:=$(TARGET_ARCH)
ifeq ($(TARGET_ARCH), x86_64)
TARGET_BASE_ARCH:=i386
endif
B
bellard 已提交
7 8 9
ifeq ($(TARGET_ARCH), ppc64)
TARGET_BASE_ARCH:=ppc
endif
B
bellard 已提交
10 11 12
ifeq ($(TARGET_ARCH), sparc64)
TARGET_BASE_ARCH:=sparc
endif
B
bellard 已提交
13
TARGET_PATH=$(SRC_PATH)/target-$(TARGET_BASE_ARCH)
B
bellard 已提交
14
VPATH=$(SRC_PATH):$(TARGET_PATH):$(SRC_PATH)/hw:$(SRC_PATH)/audio
P
pbrook 已提交
15
DEFINES=-I. -I.. -I$(TARGET_PATH) -I$(SRC_PATH)
B
bellard 已提交
16 17 18 19
ifdef CONFIG_USER_ONLY
VPATH+=:$(SRC_PATH)/linux-user
DEFINES+=-I$(SRC_PATH)/linux-user -I$(SRC_PATH)/linux-user/$(TARGET_ARCH)
endif
B
bellard 已提交
20
CFLAGS=-Wall -O2 -g -fno-strict-aliasing
B
bellard 已提交
21
#CFLAGS+=-Werror
B
bellard 已提交
22 23 24
LDFLAGS=-g
LIBS=
HELPER_CFLAGS=$(CFLAGS)
B
bellard 已提交
25
DYNGEN=../dyngen$(EXESUF)
26
# user emulator name
B
bellard 已提交
27
TARGET_ARCH2=$(TARGET_ARCH)
28 29
ifeq ($(TARGET_ARCH),arm)
  ifeq ($(TARGET_WORDS_BIGENDIAN),yes)
B
bellard 已提交
30
    TARGET_ARCH2=armeb
31
  endif
B
bellard 已提交
32
endif
B
bellard 已提交
33
ifeq ($(TARGET_ARCH),mips)
B
bellard 已提交
34 35
  ifneq ($(TARGET_WORDS_BIGENDIAN),yes)
    TARGET_ARCH2=mipsel
B
bellard 已提交
36 37
  endif
endif
B
bellard 已提交
38
QEMU_USER=qemu-$(TARGET_ARCH2)
39 40
# system emulator name
ifdef CONFIG_SOFTMMU
41
ifeq ($(TARGET_ARCH), i386)
B
bellard 已提交
42
QEMU_SYSTEM=qemu$(EXESUF)
43
else
B
bellard 已提交
44
QEMU_SYSTEM=qemu-system-$(TARGET_ARCH2)$(EXESUF)
45 46
endif
else
47
QEMU_SYSTEM=qemu-fast
48 49
endif

B
bellard 已提交
50
ifdef CONFIG_USER_ONLY
51
PROGS=$(QEMU_USER)
B
bellard 已提交
52
else
53
PROGS+=$(QEMU_SYSTEM)
B
bellard 已提交
54 55 56
ifndef CONFIG_SOFTMMU
CONFIG_STATIC=y
endif
B
update  
bellard 已提交
57
endif # !CONFIG_USER_ONLY
B
bellard 已提交
58 59 60 61 62 63 64 65 66

ifdef CONFIG_STATIC
LDFLAGS+=-static
endif

ifeq ($(ARCH),i386)
CFLAGS+=-fomit-frame-pointer
OP_CFLAGS=$(CFLAGS) -mpreferred-stack-boundary=2
ifeq ($(HAVE_GCC3_OPTIONS),yes)
67
OP_CFLAGS+= -falign-functions=0 -fno-gcse
B
bellard 已提交
68 69 70
else
OP_CFLAGS+= -malign-functions=0
endif
B
bellard 已提交
71

B
bellard 已提交
72
ifdef TARGET_GPROF
B
bellard 已提交
73 74 75 76 77 78
USE_I386_LD=y
endif
ifdef CONFIG_STATIC
USE_I386_LD=y
endif
ifdef USE_I386_LD
B
bellard 已提交
79 80 81 82 83 84 85 86 87
LDFLAGS+=-Wl,-T,$(SRC_PATH)/i386.ld
else
# WARNING: this LDFLAGS is _very_ tricky : qemu is an ELF shared object
# that the kernel ELF loader considers as an executable. I think this
# is the simplest way to make it self virtualizable!
LDFLAGS+=-Wl,-shared
endif
endif

B
bellard 已提交
88
ifeq ($(ARCH),x86_64)
89
OP_CFLAGS=$(CFLAGS) -falign-functions=0
B
bellard 已提交
90
LDFLAGS+=-Wl,-T,$(SRC_PATH)/x86_64.ld
91 92
endif

B
bellard 已提交
93
ifeq ($(ARCH),ppc)
94
CFLAGS+= -D__powerpc__
B
bellard 已提交
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
OP_CFLAGS=$(CFLAGS)
LDFLAGS+=-Wl,-T,$(SRC_PATH)/ppc.ld
endif

ifeq ($(ARCH),s390)
OP_CFLAGS=$(CFLAGS)
LDFLAGS+=-Wl,-T,$(SRC_PATH)/s390.ld
endif

ifeq ($(ARCH),sparc)
CFLAGS+=-m32 -ffixed-g1 -ffixed-g2 -ffixed-g3 -ffixed-g6
LDFLAGS+=-m32
OP_CFLAGS=$(CFLAGS) -fno-delayed-branch -ffixed-i0
HELPER_CFLAGS=$(CFLAGS) -ffixed-i0 -mflat
# -static is used to avoid g1/g3 usage by the dynamic linker
LDFLAGS+=-Wl,-T,$(SRC_PATH)/sparc.ld -static
endif

ifeq ($(ARCH),sparc64)
CFLAGS+=-m64 -ffixed-g1 -ffixed-g2 -ffixed-g3 -ffixed-g6
LDFLAGS+=-m64
OP_CFLAGS=$(CFLAGS) -fno-delayed-branch -ffixed-i0
endif

ifeq ($(ARCH),alpha)
# -msmall-data is not used because we want two-instruction relocations
# for the constant constructions
OP_CFLAGS=-Wall -O2 -g
# Ensure there's only a single GP
CFLAGS += -msmall-data
LDFLAGS+=-Wl,-T,$(SRC_PATH)/alpha.ld
endif

ifeq ($(ARCH),ia64)
B
bellard 已提交
129
CFLAGS += -mno-sdata
B
bellard 已提交
130
OP_CFLAGS=$(CFLAGS)
B
bellard 已提交
131
LDFLAGS+=-Wl,-G0 -Wl,-T,$(SRC_PATH)/ia64.ld
B
bellard 已提交
132 133 134
endif

ifeq ($(ARCH),arm)
B
bellard 已提交
135
OP_CFLAGS=$(CFLAGS) -mno-sched-prolog -fno-omit-frame-pointer
B
bellard 已提交
136 137 138
LDFLAGS+=-Wl,-T,$(SRC_PATH)/arm.ld
endif

B
bellard 已提交
139 140 141 142 143
ifeq ($(ARCH),m68k)
OP_CFLAGS=$(CFLAGS) -fomit-frame-pointer
LDFLAGS+=-Wl,-T,m68k.ld
endif

B
bellard 已提交
144 145 146 147 148
ifeq ($(HAVE_GCC3_OPTIONS),yes)
# very important to generate a return at the end of every operation
OP_CFLAGS+=-fno-reorder-blocks -fno-optimize-sibling-calls
endif

149 150
ifeq ($(CONFIG_DARWIN),yes)
OP_CFLAGS+= -mdynamic-no-pic
B
bellard 已提交
151
LIBS+=-lmx
152 153
endif

B
bellard 已提交
154 155
#########################################################

B
bellard 已提交
156
DEFINES+=-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
B
bellard 已提交
157
LIBS+=-lm
B
bellard 已提交
158 159 160
ifndef CONFIG_USER_ONLY
LIBS+=-lz
endif
B
bellard 已提交
161
ifdef CONFIG_WIN32
162
LIBS+=-lwinmm -lws2_32 -liphlpapi
B
bellard 已提交
163
endif
B
bellard 已提交
164 165 166
ifdef CONFIG_SOLARIS
LIBS+=-lsocket -lnsl -lresolv
endif
B
bellard 已提交
167 168 169 170 171 172 173

# profiling code
ifdef TARGET_GPROF
LDFLAGS+=-p
main.o: CFLAGS+=-p
endif

P
pbrook 已提交
174 175 176 177 178 179
OBJS= main.o syscall.o mmap.o signal.o path.o osdep.o thunk.o \
      elfload.o linuxload.o
ifdef TARGET_HAS_BFLT
OBJS+= flatload.o
endif

B
bellard 已提交
180 181 182
ifeq ($(TARGET_ARCH), i386)
OBJS+= vm86.o
endif
B
bellard 已提交
183
ifeq ($(TARGET_ARCH), arm)
B
bellard 已提交
184
OBJS+=nwfpe/fpa11.o nwfpe/fpa11_cpdo.o \
B
bellard 已提交
185
nwfpe/fpa11_cpdt.o nwfpe/fpa11_cprt.o nwfpe/fpopcode.o nwfpe/single_cpdo.o \
186
 nwfpe/double_cpdo.o nwfpe/extended_cpdo.o arm-semi.o
B
bellard 已提交
187
endif
B
bellard 已提交
188 189 190 191
SRCS:= $(OBJS:.o=.c)
OBJS+= libqemu.a

# cpu emulator library
B
bellard 已提交
192
LIBOBJS=exec.o kqemu.o translate-op.o translate-all.o cpu-exec.o\
B
bellard 已提交
193
        translate.o op.o 
B
bellard 已提交
194 195 196 197 198 199
ifdef CONFIG_SOFTFLOAT
LIBOBJS+=fpu/softfloat.o
else
LIBOBJS+=fpu/softfloat-native.o
endif
DEFINES+=-I$(SRC_PATH)/fpu
B
bellard 已提交
200 201

ifeq ($(TARGET_ARCH), i386)
202
LIBOBJS+=helper.o helper2.o
B
bellard 已提交
203 204 205
ifeq ($(ARCH), i386)
LIBOBJS+=translate-copy.o
endif
B
bellard 已提交
206 207
endif

B
bellard 已提交
208 209 210 211
ifeq ($(TARGET_ARCH), x86_64)
LIBOBJS+=helper.o helper2.o
endif

B
bellard 已提交
212
ifeq ($(TARGET_BASE_ARCH), ppc)
B
update  
bellard 已提交
213
LIBOBJS+= op_helper.o helper.o
214 215
endif

B
bellard 已提交
216 217 218 219
ifeq ($(TARGET_ARCH), mips)
LIBOBJS+= op_helper.o helper.o
endif

B
bellard 已提交
220
ifeq ($(TARGET_BASE_ARCH), sparc)
221 222 223
LIBOBJS+= op_helper.o helper.o
endif

B
bellard 已提交
224
ifeq ($(TARGET_BASE_ARCH), arm)
B
bellard 已提交
225
LIBOBJS+= op_helper.o helper.o
B
bellard 已提交
226 227
endif

B
bellard 已提交
228 229 230 231
ifeq ($(TARGET_BASE_ARCH), sh4)
LIBOBJS+= op_helper.o helper.o
endif

B
bellard 已提交
232 233 234
# NOTE: the disassembler code is only needed for debugging
LIBOBJS+=disas.o 
ifeq ($(findstring i386, $(TARGET_ARCH) $(ARCH)),i386)
235 236
USE_I386_DIS=y
endif
B
bellard 已提交
237
ifeq ($(findstring x86_64, $(TARGET_ARCH) $(ARCH)),x86_64)
238 239 240
USE_I386_DIS=y
endif
ifdef USE_I386_DIS
B
bellard 已提交
241 242 243 244 245
LIBOBJS+=i386-dis.o
endif
ifeq ($(findstring alpha, $(TARGET_ARCH) $(ARCH)),alpha)
LIBOBJS+=alpha-dis.o
endif
B
bellard 已提交
246
ifeq ($(findstring ppc, $(TARGET_BASE_ARCH) $(ARCH)),ppc)
B
bellard 已提交
247 248
LIBOBJS+=ppc-dis.o
endif
B
bellard 已提交
249 250 251
ifeq ($(findstring mips, $(TARGET_ARCH) $(ARCH)),mips)
LIBOBJS+=mips-dis.o
endif
B
bellard 已提交
252
ifeq ($(findstring sparc, $(TARGET_BASE_ARCH) $(ARCH)),sparc)
B
bellard 已提交
253 254 255 256 257
LIBOBJS+=sparc-dis.o
endif
ifeq ($(findstring arm, $(TARGET_ARCH) $(ARCH)),arm)
LIBOBJS+=arm-dis.o
endif
B
bellard 已提交
258 259 260
ifeq ($(findstring m68k, $(TARGET_ARCH) $(ARCH)),m68k)
LIBOBJS+=m68k-dis.o
endif
B
bellard 已提交
261 262 263
ifeq ($(findstring sh4, $(TARGET_ARCH) $(ARCH)),sh4)
LIBOBJS+=sh4-dis.o
endif
B
bellard 已提交
264

B
bellard 已提交
265 266 267
ifdef CONFIG_GDBSTUB
OBJS+=gdbstub.o
endif
B
bellard 已提交
268

269
all: $(PROGS)
B
bellard 已提交
270

271
$(QEMU_USER): $(OBJS)
B
bellard 已提交
272 273 274 275 276 277 278 279
	$(CC) $(LDFLAGS) -o $@ $^  $(LIBS)
ifeq ($(ARCH),alpha)
# Mark as 32 bit binary, i. e. it will be mapped into the low 31 bit of
# the address space (31 bit so sign extending doesn't matter)
	echo -ne '\001\000\000\000' | dd of=qemu bs=1 seek=48 count=4 conv=notrunc
endif

# must use static linking to avoid leaving stuff in virtual address space
B
bellard 已提交
280
VL_OBJS=vl.o osdep.o block.o readline.o monitor.o pci.o console.o loader.o
281
VL_OBJS+=block-cow.o block-qcow.o aes.o block-vmdk.o block-cloop.o block-dmg.o block-bochs.o block-vpc.o block-vvfat.o
B
bellard 已提交
282 283 284
ifdef CONFIG_WIN32
VL_OBJS+=tap-win32.o
endif
285

286
SOUND_HW = sb16.o es1370.o
B
bellard 已提交
287
AUDIODRV = audio.o noaudio.o wavaudio.o
B
bellard 已提交
288 289 290 291 292 293
ifdef CONFIG_SDL
AUDIODRV += sdlaudio.o
endif
ifdef CONFIG_OSS
AUDIODRV += ossaudio.o
endif
294 295 296 297 298 299 300 301 302 303
ifdef CONFIG_COREAUDIO
AUDIODRV += coreaudio.o
endif
ifdef CONFIG_ALSA
AUDIODRV += alsaaudio.o
LIBS += -lasound
endif
ifdef CONFIG_DSOUND
AUDIODRV += dsoundaudio.o
LIBS += -lole32 -ldxguid
B
bellard 已提交
304
endif
B
bellard 已提交
305
ifdef CONFIG_FMOD
B
bellard 已提交
306
AUDIODRV += fmodaudio.o
B
bellard 已提交
307 308
audio.o fmodaudio.o: DEFINES := -I$(CONFIG_FMOD_INC) $(DEFINES)
LIBS += $(CONFIG_FMOD_LIB)
B
bellard 已提交
309
endif
310 311 312
ifdef CONFIG_ADLIB
SOUND_HW += fmopl.o adlib.o
endif
B
bellard 已提交
313

P
pbrook 已提交
314
# SCSI layer
P
pbrook 已提交
315
VL_OBJS+= scsi-disk.o cdrom.o lsi53c895a.o
P
pbrook 已提交
316

B
bellard 已提交
317
# USB layer
P
pbrook 已提交
318
VL_OBJS+= usb.o usb-hub.o usb-linux.o usb-hid.o usb-ohci.o usb-msd.o
B
bellard 已提交
319

320 321 322
# PCI network cards
VL_OBJS+= ne2000.o rtl8139.o

B
bellard 已提交
323
ifeq ($(TARGET_BASE_ARCH), i386)
324
# Hardware support
325
VL_OBJS+= ide.o pckbd.o ps2.o vga.o $(SOUND_HW) dma.o $(AUDIODRV)
B
bellard 已提交
326
VL_OBJS+= fdc.o mc146818rtc.o serial.o i8259.o i8254.o pcspk.o pc.o
P
pbrook 已提交
327 328
VL_OBJS+= cirrus_vga.o mixeng.o apic.o parallel.o acpi.o piix_pci.o
VL_OBJS+= usb-uhci.o
329
DEFINES += -DHAS_AUDIO
B
bellard 已提交
330
endif
B
bellard 已提交
331
ifeq ($(TARGET_BASE_ARCH), ppc)
332
VL_OBJS+= ppc.o ide.o pckbd.o ps2.o vga.o $(SOUND_HW) dma.o $(AUDIODRV)
B
bellard 已提交
333
VL_OBJS+= mc146818rtc.o serial.o i8259.o i8254.o fdc.o m48t59.o
B
bellard 已提交
334
VL_OBJS+= ppc_prep.o ppc_chrp.o cuda.o adb.o openpic.o heathrow_pic.o mixeng.o
P
pbrook 已提交
335
VL_OBJS+= grackle_pci.o prep_pci.o unin_pci.o
336
DEFINES += -DHAS_AUDIO
337
endif
B
bellard 已提交
338
ifeq ($(TARGET_ARCH), mips)
339
VL_OBJS+= mips_r4k.o dma.o vga.o serial.o i8254.o i8259.o
B
bellard 已提交
340
#VL_OBJS+= #ide.o pckbd.o fdc.o m48t59.o
B
bellard 已提交
341
endif
B
bellard 已提交
342
ifeq ($(TARGET_BASE_ARCH), sparc)
B
bellard 已提交
343
ifeq ($(TARGET_ARCH), sparc64)
P
pbrook 已提交
344
VL_OBJS+= sun4u.o ide.o pckbd.o ps2.o vga.o apb_pci.o
B
bellard 已提交
345 346
VL_OBJS+= fdc.o mc146818rtc.o serial.o m48t59.o
VL_OBJS+= cirrus_vga.o parallel.o
B
bellard 已提交
347
else
B
bellard 已提交
348
VL_OBJS+= sun4m.o tcx.o lance.o iommu.o m48t59.o slavio_intctl.o
349
VL_OBJS+= slavio_timer.o slavio_serial.o slavio_misc.o fdc.o esp.o
B
bellard 已提交
350
endif
351
endif
B
bellard 已提交
352
ifeq ($(TARGET_BASE_ARCH), arm)
353
VL_OBJS+= integratorcp.o versatilepb.o ps2.o smc91c111.o arm_pic.o arm_timer.o
354
VL_OBJS+= arm_boot.o pl011.o pl050.o pl080.o pl110.o pl190.o
P
pbrook 已提交
355
VL_OBJS+= versatile_pci.o
B
bellard 已提交
356
endif
B
bellard 已提交
357 358 359
ifeq ($(TARGET_BASE_ARCH), sh4)
VL_OBJS+= shix.o sh7750.o sh7750_regnames.o tc58128.o
endif
360 361
ifdef CONFIG_GDBSTUB
VL_OBJS+=gdbstub.o 
B
update  
bellard 已提交
362
endif
B
bellard 已提交
363 364
ifdef CONFIG_SDL
VL_OBJS+=sdl.o
B
bellard 已提交
365
endif
B
bellard 已提交
366
VL_OBJS+=vnc.o
367 368
ifdef CONFIG_COCOA
VL_OBJS+=cocoa.o
369 370 371 372
COCOA_LIBS=-F/System/Library/Frameworks -framework Cocoa -framework IOKit
ifdef CONFIG_COREAUDIO
COCOA_LIBS+=-framework CoreAudio
endif
373
endif
B
bellard 已提交
374 375 376 377
ifdef CONFIG_SLIRP
DEFINES+=-I$(SRC_PATH)/slirp
SLIRP_OBJS=cksum.o if.o ip_icmp.o ip_input.o ip_output.o \
slirp.o mbuf.o misc.o sbuf.o socket.o tcp_input.o tcp_output.o \
B
bellard 已提交
378
tcp_subr.o tcp_timer.o udp.o bootp.o debug.o tftp.o
B
bellard 已提交
379
VL_OBJS+=$(addprefix slirp/, $(SLIRP_OBJS))
B
bellard 已提交
380 381
endif

382 383 384 385 386
VL_LDFLAGS=
# specific flags are needed for non soft mmu emulator
ifdef CONFIG_STATIC
VL_LDFLAGS+=-static
endif
B
bellard 已提交
387 388 389
ifndef CONFIG_SOFTMMU
VL_LDFLAGS+=-Wl,-T,$(SRC_PATH)/i386-vl.ld 
endif
390
ifndef CONFIG_DARWIN
B
bellard 已提交
391
ifndef CONFIG_WIN32
B
bellard 已提交
392
ifndef CONFIG_SOLARIS
B
bellard 已提交
393 394
VL_LIBS=-lutil
endif
395
endif
B
bellard 已提交
396
endif
B
bellard 已提交
397 398 399 400
ifdef TARGET_GPROF
vl.o: CFLAGS+=-p
VL_LDFLAGS+=-p
endif
401

B
bellard 已提交
402 403 404 405
ifeq ($(ARCH),ia64)
VL_LDFLAGS+=-Wl,-G0 -Wl,-T,$(SRC_PATH)/ia64.ld
endif

406 407 408 409
ifdef CONFIG_WIN32
SDL_LIBS := $(filter-out -mwindows, $(SDL_LIBS)) -mconsole
endif

410
$(QEMU_SYSTEM): $(VL_OBJS) libqemu.a
411 412 413 414
	$(CC) $(VL_LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(COCOA_LIBS) $(VL_LIBS)

cocoa.o: cocoa.m
	$(CC) $(CFLAGS) $(DEFINES) -c -o $@ $<
B
bellard 已提交
415

416
sdl.o: sdl.c keymaps.c sdl_keysym.h
B
bellard 已提交
417 418
	$(CC) $(CFLAGS) $(DEFINES) $(SDL_CFLAGS) -c -o $@ $<

B
bellard 已提交
419 420 421
vnc.o: vnc.c keymaps.c sdl_keysym.h vnchextile.h
	$(CC) $(CFLAGS) $(DEFINES) -c -o $@ $<

B
bellard 已提交
422 423 424
sdlaudio.o: sdlaudio.c
	$(CC) $(CFLAGS) $(DEFINES) $(SDL_CFLAGS) -c -o $@ $<

B
bellard 已提交
425
depend: $(SRCS)
B
bellard 已提交
426
	$(CC) -MM $(CFLAGS) $(DEFINES) $^ 1>.depend
B
bellard 已提交
427

428 429 430
vldepend: $(VL_OBJS:.o=.c)
	$(CC) -MM $(CFLAGS) $(DEFINES) $^ 1>.depend

B
bellard 已提交
431 432 433 434 435 436
# libqemu 

libqemu.a: $(LIBOBJS)
	rm -f $@
	$(AR) rcs $@ $(LIBOBJS)

437
translate.o: translate.c gen-op.h opc.h cpu.h
B
bellard 已提交
438

B
bellard 已提交
439 440 441
translate-all.o: translate-all.c opc.h cpu.h

translate-op.o: translate-all.c op.h opc.h cpu.h
B
bellard 已提交
442

443
op.h: op.o $(DYNGEN)
B
bellard 已提交
444 445
	$(DYNGEN) -o $@ $<

446
opc.h: op.o $(DYNGEN)
B
bellard 已提交
447 448
	$(DYNGEN) -c -o $@ $<

449
gen-op.h: op.o $(DYNGEN)
B
bellard 已提交
450 451
	$(DYNGEN) -g -o $@ $<

452
op.o: op.c
B
bellard 已提交
453 454
	$(CC) $(OP_CFLAGS) $(DEFINES) -c -o $@ $<

455
helper.o: helper.c
B
bellard 已提交
456 457
	$(CC) $(HELPER_CFLAGS) $(DEFINES) -c -o $@ $<

B
bellard 已提交
458
ifeq ($(TARGET_BASE_ARCH), i386)
B
bellard 已提交
459
op.o: op.c opreg_template.h ops_template.h ops_template_mem.h ops_mem.h ops_sse.h
460 461 462 463
endif

ifeq ($(TARGET_ARCH), arm)
op.o: op.c op_template.h
P
pbrook 已提交
464
pl110.o: pl110_template.h
465
endif
B
bellard 已提交
466

B
bellard 已提交
467
ifeq ($(TARGET_BASE_ARCH), sparc)
B
bellard 已提交
468 469
op.o: op.c op_template.h op_mem.h fop_template.h fbranch_template.h
magic_load.o: elf_op.h
470
endif
B
bellard 已提交
471

B
bellard 已提交
472
ifeq ($(TARGET_BASE_ARCH), ppc)
B
update  
bellard 已提交
473 474
op.o: op.c op_template.h op_mem.h
op_helper.o: op_helper_mem.h
475
translate.o: translate.c translate_init.c
B
update  
bellard 已提交
476 477
endif

B
bellard 已提交
478 479 480 481 482
ifeq ($(TARGET_ARCH), mips)
op.o: op.c op_template.c op_mem.c
op_helper.o: op_helper_mem.c
endif

B
bellard 已提交
483 484
loader.o: loader.c elf_ops.h

B
bellard 已提交
485 486 487 488 489
acpi.o: acpi.c acpi-dsdt.hex

#$(SRC_PATH)/hw/acpi-dsdt.hex: acpi-dsdt.dsl
#	iasl -tc -p $@ $<

B
bellard 已提交
490 491 492 493
ifeq ($(TARGET_ARCH), sh4)
op.o: op.c op_mem.c cpu.h
op_helper.o: op_helper.c exec.h cpu.h
helper.o: helper.c exec.h cpu.h
B
bellard 已提交
494 495
sh7750.o: sh7750.c sh7750_regs.h sh7750_regnames.h cpu.h
shix.o: shix.c sh7750_regs.h sh7750_regnames.h
B
bellard 已提交
496
sh7750_regnames.o: sh7750_regnames.c sh7750_regnames.h sh7750_regs.h
B
bellard 已提交
497
tc58128.o: tc58128.c
B
bellard 已提交
498 499
endif

500 501
$(OBJS) $(LIBOBJS) $(VL_OBJS): config.h ../config-host.h

B
bellard 已提交
502 503 504
%.o: %.c
	$(CC) $(CFLAGS) $(DEFINES) -c -o $@ $<

B
bellard 已提交
505 506 507
%.o: %.S
	$(CC) $(DEFINES) -c -o $@ $<

B
bellard 已提交
508
clean:
B
bellard 已提交
509
	rm -f *.o  *.a *~ $(PROGS) gen-op.h opc.h op.h nwfpe/*.o slirp/*.o fpu/*.o
510 511

install: all 
B
bellard 已提交
512
ifneq ($(PROGS),)
513
	$(INSTALL) -m 755 -s $(PROGS) "$(DESTDIR)$(bindir)"
B
bellard 已提交
514
endif
B
bellard 已提交
515 516 517 518

ifneq ($(wildcard .depend),)
include .depend
endif
519

B
bellard 已提交
520
ifeq (1, 0)
521
audio.o sdlaudio.o dsoundaudio.o ossaudio.o wavaudio.o noaudio.o \
B
bellard 已提交
522
fmodaudio.o alsaaudio.o mixeng.o sb16.o es1370.o gus.o adlib.o: \
523 524
CFLAGS := $(CFLAGS) -Wall -Werror -W -Wsign-compare
endif