~jderose/ubuntu/raring/qemu/vde-again

« back to all changes in this revision

Viewing changes to Makefile.target

Tags: upstream-0.9.0+20070816
ImportĀ upstreamĀ versionĀ 0.9.0+20070816

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
ifeq ($(TARGET_ARCH), x86_64)
5
5
TARGET_BASE_ARCH:=i386
6
6
endif
 
7
ifeq ($(TARGET_ARCH), mips64)
 
8
TARGET_BASE_ARCH:=mips
 
9
endif
7
10
ifeq ($(TARGET_ARCH), ppc64)
8
11
TARGET_BASE_ARCH:=ppc
9
12
endif
 
13
ifeq ($(TARGET_ARCH), ppcemb)
 
14
TARGET_BASE_ARCH:=ppc
 
15
endif
10
16
ifeq ($(TARGET_ARCH), sparc64)
11
17
TARGET_BASE_ARCH:=sparc
12
18
endif
44
50
    TARGET_ARCH2=mipsel
45
51
  endif
46
52
endif
 
53
ifeq ($(TARGET_ARCH),mips64)
 
54
  ifneq ($(TARGET_WORDS_BIGENDIAN),yes)
 
55
    TARGET_ARCH2=mips64el
 
56
  endif
 
57
endif
47
58
QEMU_USER=qemu-$(TARGET_ARCH2)
48
59
# system emulator name
49
60
ifdef CONFIG_SOFTMMU
70
81
endif
71
82
 
72
83
# We require -O2 to avoid the stack setup prologue in EXIT_TB
73
 
OP_CFLAGS = -Wall -O2 -g -fno-strict-aliasing
 
84
OP_CFLAGS := -Wall -O2 -g -fno-strict-aliasing
 
85
 
 
86
# cc-option
 
87
# Usage: OP_CFLAGS+=$(call cc-option, -falign-functions=0, -malign-functions=0)
 
88
 
 
89
cc-option = $(shell if $(CC) $(OP_CFLAGS) $(1) -S -o /dev/null -xc /dev/null \
 
90
              > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;)
 
91
 
 
92
OP_CFLAGS+=$(call cc-option, -fno-reorder-blocks, "")
 
93
OP_CFLAGS+=$(call cc-option, -fno-gcse, "")
 
94
OP_CFLAGS+=$(call cc-option, -fno-tree-ch, "")
 
95
OP_CFLAGS+=$(call cc-option, -fno-optimize-sibling-calls, "")
 
96
OP_CFLAGS+=$(call cc-option, -fno-crossjumping, "")
 
97
OP_CFLAGS+=$(call cc-option, -fno-align-labels, "")
 
98
OP_CFLAGS+=$(call cc-option, -fno-align-jumps, "")
 
99
OP_CFLAGS+=$(call cc-option, -fno-align-functions, $(call cc-option, -malign-functions=0, ""))
74
100
 
75
101
ifeq ($(ARCH),i386)
76
102
HELPER_CFLAGS+=-fomit-frame-pointer
77
103
OP_CFLAGS+=-mpreferred-stack-boundary=2 -fomit-frame-pointer
78
 
ifeq ($(HAVE_GCC3_OPTIONS),yes)
79
 
OP_CFLAGS+= -falign-functions=0 -fno-gcse
80
 
else
81
 
OP_CFLAGS+= -malign-functions=0
82
 
endif
83
104
ifdef TARGET_GPROF
84
105
USE_I386_LD=y
85
106
endif
114
135
endif
115
136
 
116
137
ifeq ($(ARCH),sparc)
117
 
ifeq ($(CONFIG_SOLARIS),yes)
118
 
BASE_CFLAGS+=-mcpu=ultrasparc -m32 -ffixed-g2 -ffixed-g3
119
 
BASE_LDFLAGS+=-m32
120
 
OP_CFLAGS+=-fno-delayed-branch -fno-omit-frame-pointer -ffixed-i0
121
 
else
122
 
BASE_CFLAGS+=-mcpu=ultrasparc -m32 -ffixed-g1 -ffixed-g2 -ffixed-g3 -ffixed-g6
123
 
BASE_LDFLAGS+=-m32
124
 
OP_CFLAGS+=-fno-delayed-branch -ffixed-i0
125
 
HELPER_CFLAGS=$(CFLAGS) -ffixed-i0 -mflat
126
 
# -static is used to avoid g1/g3 usage by the dynamic linker
127
 
BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -static
128
 
endif
 
138
  BASE_CFLAGS+=-ffixed-g2 -ffixed-g3
 
139
  OP_CFLAGS+=-fno-delayed-branch -ffixed-i0
 
140
  ifeq ($(CONFIG_SOLARIS),yes)
 
141
    OP_CFLAGS+=-fno-omit-frame-pointer
 
142
  else
 
143
    BASE_CFLAGS+=-ffixed-g1 -ffixed-g6
 
144
    HELPER_CFLAGS=$(CFLAGS) -ffixed-i0 -mflat
 
145
    # -static is used to avoid g1/g3 usage by the dynamic linker
 
146
    BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -static
 
147
  endif
129
148
endif
130
149
 
131
150
ifeq ($(ARCH),sparc64)
132
 
BASE_CFLAGS+=-mcpu=ultrasparc -m64 -ffixed-g1 -ffixed-g4 -ffixed-g5 -ffixed-g7
133
 
BASE_LDFLAGS+=-m64
134
 
BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
135
 
OP_CFLAGS+=-mcpu=ultrasparc -m64 -ffixed-g1 -ffixed-g4 -ffixed-g5 -ffixed-g7 -fno-delayed-branch -ffixed-i0
 
151
  BASE_CFLAGS+=-ffixed-g1 -ffixed-g4 -ffixed-g5 -ffixed-g7
 
152
  OP_CFLAGS+=-mcpu=ultrasparc -m64 -fno-delayed-branch -ffixed-i0
 
153
  ifneq ($(CONFIG_SOLARIS),yes)
 
154
    BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
 
155
    OP_CFLAGS+=-ffixed-g1 -ffixed-g4 -ffixed-g5 -ffixed-g7
 
156
  endif
136
157
endif
137
158
 
138
159
ifeq ($(ARCH),alpha)
160
181
endif
161
182
 
162
183
ifeq ($(ARCH),mips)
 
184
OP_CFLAGS+=-mabi=32 -G0 -fno-PIC -mno-abicalls -fomit-frame-pointer -fno-delayed-branch -Wa,-O0
 
185
ifeq ($(WORDS_BIGENDIAN),yes)
163
186
BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
 
187
else
 
188
BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH)el.ld
 
189
endif
164
190
endif
165
191
 
166
 
ifeq ($(HAVE_GCC3_OPTIONS),yes)
167
 
# very important to generate a return at the end of every operation
168
 
OP_CFLAGS+=-fno-reorder-blocks -fno-optimize-sibling-calls
 
192
ifeq ($(ARCH),mips64)
 
193
OP_CFLAGS+=-mabi=n32 -G0 -fno-PIC -mno-abicalls -fomit-frame-pointer -fno-delayed-branch -Wa,-O0
 
194
ifeq ($(WORDS_BIGENDIAN),yes)
 
195
BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
 
196
else
 
197
BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH)el.ld
 
198
endif
169
199
endif
170
200
 
171
201
ifeq ($(CONFIG_DARWIN),yes)
177
207
BASE_LDFLAGS+=-Wl,-segaddr,__STD_PROG_ZONE,0x1000 -image_base 0x0e000000
178
208
endif
179
209
 
180
 
OP_CFLAGS+=$(OS_CFLAGS)
 
210
BASE_CFLAGS+=$(OS_CFLAGS) $(ARCH_CFLAGS)
 
211
BASE_LDFLAGS+=$(OS_LDFLAGS) $(ARCH_LDFLAGS)
 
212
OP_CFLAGS+=$(OS_CFLAGS) $(ARCH_CFLAGS)
 
213
OP_LDFLAGS+=$(OS_LDFLAGS) $(ARCH_LDFLAGS)
181
214
 
182
215
#########################################################
183
216
 
191
224
endif
192
225
ifdef CONFIG_SOLARIS
193
226
LIBS+=-lsocket -lnsl -lresolv
 
227
ifdef NEEDS_LIBSUNMATH
 
228
LIBS+=-lsunmath
 
229
LDFLAGS+=-L/opt/SUNWspro/prod/lib -R/opt/SUNWspro/prod/lib
 
230
OP_CFLAGS+=-I/opt/SUNWspro/prod/include/cc
 
231
BASE_CFLAGS+=-I/opt/SUNWspro/prod/include/cc
 
232
endif
194
233
endif
195
234
 
196
235
# profiling code
202
241
ifdef CONFIG_LINUX_USER
203
242
OBJS= main.o syscall.o mmap.o signal.o path.o osdep.o thunk.o \
204
243
      elfload.o linuxload.o
 
244
LIBS+= $(AIOLIBS)
205
245
ifdef TARGET_HAS_BFLT
206
246
OBJS+= flatload.o
207
247
endif
251
291
LIBOBJS+= op_helper.o helper.o
252
292
endif
253
293
 
254
 
ifeq ($(TARGET_ARCH), mips)
 
294
ifeq ($(TARGET_BASE_ARCH), mips)
255
295
LIBOBJS+= op_helper.o helper.o
256
296
endif
257
297
 
268
308
endif
269
309
 
270
310
ifeq ($(TARGET_BASE_ARCH), m68k)
271
 
LIBOBJS+= helper.o
 
311
LIBOBJS+= op_helper.o helper.o
 
312
endif
 
313
 
 
314
ifeq ($(TARGET_BASE_ARCH), alpha)
 
315
LIBOBJS+= op_helper.o helper.o alpha_palcode.o
272
316
endif
273
317
 
274
318
# NOTE: the disassembler code is only needed for debugging
288
332
ifeq ($(findstring ppc, $(TARGET_BASE_ARCH) $(ARCH)),ppc)
289
333
LIBOBJS+=ppc-dis.o
290
334
endif
291
 
ifeq ($(findstring mips, $(TARGET_ARCH) $(ARCH)),mips)
 
335
ifeq ($(findstring mips, $(TARGET_BASE_ARCH) $(ARCH)),mips)
292
336
LIBOBJS+=mips-dis.o
293
337
endif
294
338
ifeq ($(findstring sparc, $(TARGET_BASE_ARCH) $(ARCH)),sparc)
303
347
ifeq ($(findstring sh4, $(TARGET_ARCH) $(ARCH)),sh4)
304
348
LIBOBJS+=sh4-dis.o
305
349
endif
 
350
ifeq ($(findstring s390, $(TARGET_ARCH) $(ARCH)),s390)
 
351
LIBOBJS+=s390-dis.o
 
352
endif
306
353
 
307
354
ifdef CONFIG_GDBSTUB
308
355
OBJS+=gdbstub.o
321
368
# must use static linking to avoid leaving stuff in virtual address space
322
369
VL_OBJS=vl.o osdep.o readline.o monitor.o pci.o console.o loader.o isa_mmio.o
323
370
VL_OBJS+=cutils.o
 
371
VL_OBJS+=host-utils.o
324
372
VL_OBJS+=block.o block-raw.o
325
 
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 block-qcow2.o
 
373
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 block-qcow2.o block-parallels.o
 
374
VL_OBJS+=irq.o
326
375
ifdef CONFIG_WIN32
327
376
VL_OBJS+=tap-win32.o
328
377
endif
329
378
 
330
379
SOUND_HW = sb16.o es1370.o
331
 
AUDIODRV = audio.o noaudio.o wavaudio.o
 
380
AUDIODRV = audio.o noaudio.o wavaudio.o mixeng.o
332
381
ifdef CONFIG_SDL
333
382
AUDIODRV += sdlaudio.o
334
383
endif
356
405
endif
357
406
AUDIODRV+= wavcapture.o
358
407
 
 
408
VL_OBJS += i2c.o smbus.o
 
409
 
359
410
# SCSI layer
360
411
VL_OBJS+= scsi-disk.o cdrom.o lsi53c895a.o
361
412
 
362
413
# USB layer
363
414
VL_OBJS+= usb.o usb-hub.o usb-linux.o usb-hid.o usb-ohci.o usb-msd.o
 
415
VL_OBJS+= usb-wacom.o
 
416
 
 
417
# EEPROM emulation
 
418
VL_OBJS += eeprom93xx.o
364
419
 
365
420
# PCI network cards
366
 
VL_OBJS+= ne2000.o rtl8139.o pcnet.o
 
421
VL_OBJS += eepro100.o
 
422
VL_OBJS += ne2000.o
 
423
VL_OBJS += pcnet.o
 
424
VL_OBJS += rtl8139.o
367
425
 
368
426
ifeq ($(TARGET_BASE_ARCH), i386)
369
427
# Hardware support
370
428
VL_OBJS+= ide.o pckbd.o ps2.o vga.o $(SOUND_HW) dma.o $(AUDIODRV)
371
429
VL_OBJS+= fdc.o mc146818rtc.o serial.o i8259.o i8254.o pcspk.o pc.o
372
 
VL_OBJS+= cirrus_vga.o mixeng.o apic.o parallel.o acpi.o piix_pci.o
373
 
VL_OBJS+= usb-uhci.o smbus_eeprom.o
374
 
CPPFLAGS += -DHAS_AUDIO
 
430
VL_OBJS+= cirrus_vga.o apic.o parallel.o acpi.o piix_pci.o
 
431
VL_OBJS+= usb-uhci.o smbus_eeprom.o vmmouse.o vmware_vga.o
 
432
CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE
375
433
endif
376
434
ifeq ($(TARGET_BASE_ARCH), ppc)
377
435
VL_OBJS+= ppc.o ide.o pckbd.o ps2.o vga.o $(SOUND_HW) dma.o $(AUDIODRV)
378
 
VL_OBJS+= mc146818rtc.o serial.o i8259.o i8254.o fdc.o m48t59.o
379
 
VL_OBJS+= ppc_prep.o ppc_chrp.o cuda.o adb.o openpic.o heathrow_pic.o mixeng.o
380
 
VL_OBJS+= grackle_pci.o prep_pci.o unin_pci.o
 
436
VL_OBJS+= mc146818rtc.o serial.o i8259.o i8254.o fdc.o m48t59.o pflash_cfi02.o
 
437
VL_OBJS+= ppc_prep.o ppc_chrp.o cuda.o adb.o openpic.o heathrow_pic.o
 
438
VL_OBJS+= grackle_pci.o prep_pci.o unin_pci.o ppc405_uc.o ppc405_boards.o
 
439
CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE
 
440
endif
 
441
ifeq ($(TARGET_BASE_ARCH), mips)
 
442
VL_OBJS+= mips_r4k.o mips_malta.o mips_pica61.o
 
443
VL_OBJS+= mips_timer.o mips_int.o dma.o vga.o serial.o i8254.o i8259.o
 
444
VL_OBJS+= jazz_led.o
 
445
VL_OBJS+= ide.o gt64xxx.o pckbd.o ps2.o fdc.o mc146818rtc.o usb-uhci.o acpi.o ds1225y.o
 
446
VL_OBJS+= piix_pci.o smbus_eeprom.o parallel.o mixeng.o cirrus_vga.o $(SOUND_HW) $(AUDIODRV)
381
447
CPPFLAGS += -DHAS_AUDIO
382
448
endif
383
 
ifeq ($(TARGET_ARCH), mips)
384
 
VL_OBJS+= mips_r4k.o mips_malta.o mips_timer.o mips_int.o dma.o vga.o serial.o i8254.o i8259.o
385
 
VL_OBJS+= ide.o gt64xxx.o pckbd.o ps2.o fdc.o mc146818rtc.o usb-uhci.o acpi.o
386
 
VL_OBJS+= piix_pci.o parallel.o mixeng.o cirrus_vga.o $(SOUND_HW) $(AUDIODRV)
387
 
DEFINES += -DHAS_AUDIO
388
 
endif
389
449
ifeq ($(TARGET_BASE_ARCH), sparc)
390
450
ifeq ($(TARGET_ARCH), sparc64)
391
451
VL_OBJS+= sun4u.o ide.o pckbd.o ps2.o vga.o apb_pci.o
392
452
VL_OBJS+= fdc.o mc146818rtc.o serial.o m48t59.o
393
 
VL_OBJS+= cirrus_vga.o parallel.o
 
453
VL_OBJS+= cirrus_vga.o parallel.o ptimer.o
394
454
else
395
455
VL_OBJS+= sun4m.o tcx.o pcnet.o iommu.o m48t59.o slavio_intctl.o
396
456
VL_OBJS+= slavio_timer.o slavio_serial.o slavio_misc.o fdc.o esp.o sparc32_dma.o
397
 
VL_OBJS+= cs4231.o
 
457
VL_OBJS+= cs4231.o ptimer.o
398
458
endif
399
459
endif
400
460
ifeq ($(TARGET_BASE_ARCH), arm)
401
461
VL_OBJS+= integratorcp.o versatilepb.o ps2.o smc91c111.o arm_pic.o arm_timer.o
402
 
VL_OBJS+= arm_boot.o pl011.o pl050.o pl080.o pl110.o pl190.o
403
 
VL_OBJS+= versatile_pci.o
 
462
VL_OBJS+= arm_boot.o pl011.o pl031.o pl050.o pl080.o pl110.o pl181.o pl190.o
 
463
VL_OBJS+= versatile_pci.o sd.o ptimer.o
404
464
VL_OBJS+= arm_gic.o realview.o arm_sysctl.o
405
465
VL_OBJS+= arm-semi.o
 
466
VL_OBJS+= pxa2xx.o pxa2xx_pic.o pxa2xx_gpio.o pxa2xx_timer.o pxa2xx_dma.o
 
467
VL_OBJS+= pxa2xx_lcd.o pxa2xx_mmci.o pxa2xx_pcmcia.o max111x.o max7310.o
 
468
VL_OBJS+= spitz.o ads7846.o ide.o serial.o nand.o $(AUDIODRV) wm8750.o
 
469
VL_OBJS+= omap.o omap_lcdc.o omap1_clk.o omap_mmc.o palm.o
 
470
CPPFLAGS += -DHAS_AUDIO
406
471
endif
407
472
ifeq ($(TARGET_BASE_ARCH), sh4)
408
473
VL_OBJS+= shix.o sh7750.o sh7750_regnames.o tc58128.o
409
474
endif
 
475
ifeq ($(TARGET_BASE_ARCH), m68k)
 
476
VL_OBJS+= an5206.o mcf5206.o ptimer.o mcf_uart.o mcf_intc.o mcf5208.o mcf_fec.o
 
477
VL_OBJS+= m68k-semi.o
 
478
endif
410
479
ifdef CONFIG_GDBSTUB
411
480
VL_OBJS+=gdbstub.o 
412
481
endif
429
498
VL_OBJS+=$(addprefix slirp/, $(SLIRP_OBJS))
430
499
endif
431
500
 
432
 
VL_LDFLAGS=
 
501
VL_LDFLAGS=$(VL_OS_LDFLAGS)
 
502
VL_LIBS=$(AIOLIBS)
433
503
# specific flags are needed for non soft mmu emulator
434
504
ifdef CONFIG_STATIC
435
505
VL_LDFLAGS+=-static
440
510
ifndef CONFIG_DARWIN
441
511
ifndef CONFIG_WIN32
442
512
ifndef CONFIG_SOLARIS
443
 
VL_LIBS=-lutil -lrt
 
513
VL_LIBS+=-lutil
444
514
endif
445
515
endif
446
516
endif
454
524
endif
455
525
 
456
526
ifeq ($(ARCH),sparc64)
457
 
VL_LDFLAGS+=-m64
458
 
VL_LDFLAGS+=-Wl,-T,$(SRC_PATH)/sparc64.ld
 
527
  VL_LDFLAGS+=-m64
 
528
  ifneq ($(CONFIG_SOLARIS),yes)
 
529
    VL_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
 
530
  endif
459
531
endif
460
532
 
461
533
ifdef CONFIG_WIN32
463
535
endif
464
536
 
465
537
$(QEMU_SYSTEM): $(VL_OBJS) libqemu.a
466
 
        $(CC) $(VL_LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(COCOA_LIBS) $(VL_LIBS)
 
538
        $(CC) $(VL_LDFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(COCOA_LIBS) $(VL_LIBS)
467
539
 
468
540
cocoa.o: cocoa.m
469
541
        $(CC) $(CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $<
526
598
signal.o: signal.c
527
599
        $(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $<
528
600
 
 
601
vga.o: pixel_ops.h
 
602
 
 
603
tcx.o: pixel_ops.h
 
604
 
529
605
ifeq ($(TARGET_BASE_ARCH), i386)
530
606
op.o: op.c opreg_template.h ops_template.h ops_template_mem.h ops_mem.h ops_sse.h
531
607
endif
536
612
endif
537
613
 
538
614
ifeq ($(TARGET_BASE_ARCH), sparc)
539
 
op.o: op.c op_template.h op_mem.h fop_template.h fbranch_template.h
540
 
magic_load.o: elf_op.h
 
615
helper.o: cpu.h exec-all.h
 
616
op.o: op.c op_template.h op_mem.h fop_template.h fbranch_template.h exec.h cpu.h
 
617
op_helper.o: exec.h softmmu_template.h cpu.h
 
618
translate.o: cpu.h exec-all.h disas.h
541
619
endif
542
620
 
543
621
ifeq ($(TARGET_BASE_ARCH), ppc)
546
624
translate.o: translate.c translate_init.c
547
625
endif
548
626
 
549
 
ifeq ($(TARGET_ARCH), mips)
550
 
op.o: op.c op_template.c fop_template.c op_mem.c
551
 
op_helper.o: op_helper_mem.c
 
627
ifeq ($(TARGET_BASE_ARCH), mips)
 
628
helper.o: cpu.h exec-all.h
 
629
op.o: op_template.c fop_template.c op_mem.c exec.h cpu.h
 
630
op_helper.o: op_helper_mem.c exec.h softmmu_template.h cpu.h
 
631
translate.o: translate_init.c exec-all.h disas.h
552
632
endif
553
633
 
554
634
loader.o: loader.c elf_ops.h
563
643
tc58128.o: tc58128.c
564
644
endif
565
645
 
 
646
ifeq ($(TARGET_BASE_ARCH), alpha)
 
647
op.o: op.c op_template.h op_mem.h
 
648
op_helper.o: op_helper_mem.h
 
649
endif
 
650
 
566
651
$(OBJS) $(LIBOBJS) $(VL_OBJS): config.h ../config-host.h
567
652
 
568
653
%.o: %.c