X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=Makefile.target;h=f862d909185142f91a8bc9ba96f2b41b6fef10a3;hb=9d479c119b42b8a548f8d79a8e5a1c1ce2932d91;hp=2908383bcd829af2ba620d6e25fd56e714a8dec4;hpb=49516bc0d622112caac9df628caf19010fda8b67;p=qemu diff --git a/Makefile.target b/Makefile.target index 2908383..f862d90 100644 --- a/Makefile.target +++ b/Makefile.target @@ -1,4 +1,5 @@ include config.mak +include $(SRC_PATH)/rules.mak TARGET_BASE_ARCH:=$(TARGET_ARCH) ifeq ($(TARGET_ARCH), x86_64) @@ -71,95 +72,49 @@ endif PROGS=$(QEMU_PROG) -# We require -O2 to avoid the stack setup prologue in EXIT_TB -OP_CFLAGS := -O2 -g -fno-strict-aliasing -OP_CFLAGS += -Wall -Wundef -Wendif-labels -Wwrite-strings - # cc-option -# Usage: OP_CFLAGS+=$(call cc-option, -falign-functions=0, -malign-functions=0) - -cc-option = $(shell if $(CC) $(OP_CFLAGS) $(1) -S -o /dev/null -xc /dev/null \ - > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;) +# Usage: CFLAGS+=$(call cc-option, $(CFLAGS), -falign-functions=0, -malign-functions=0) -OP_CFLAGS+=$(call cc-option, -fno-reorder-blocks, "") -OP_CFLAGS+=$(call cc-option, -fno-gcse, "") -OP_CFLAGS+=$(call cc-option, -fno-tree-ch, "") -OP_CFLAGS+=$(call cc-option, -fno-optimize-sibling-calls, "") -OP_CFLAGS+=$(call cc-option, -fno-crossjumping, "") -OP_CFLAGS+=$(call cc-option, -fno-align-labels, "") -OP_CFLAGS+=$(call cc-option, -fno-align-jumps, "") -OP_CFLAGS+=$(call cc-option, -fno-align-functions, $(call cc-option, -malign-functions=0, "")) -OP_CFLAGS+=$(call cc-option, -fno-section-anchors, "") +cc-option = $(shell if $(CC) $(1) $(2) -S -o /dev/null -xc /dev/null \ + > /dev/null 2>&1; then echo "$(2)"; else echo "$(3)"; fi ;) HELPER_CFLAGS= ifeq ($(ARCH),i386) HELPER_CFLAGS+=-fomit-frame-pointer -OP_CFLAGS+=-mpreferred-stack-boundary=2 -fomit-frame-pointer -endif - -ifeq ($(ARCH),ppc) -CPPFLAGS+= -D__powerpc__ -OP_CFLAGS+= -mlongcall endif ifeq ($(ARCH),sparc) CFLAGS+=-ffixed-g2 -ffixed-g3 - OP_CFLAGS+=-fno-delayed-branch -ffixed-i0 - ifeq ($(CONFIG_SOLARIS),yes) - OP_CFLAGS+=-fno-omit-frame-pointer - else + ifneq ($(CONFIG_SOLARIS),yes) CFLAGS+=-ffixed-g1 -ffixed-g6 HELPER_CFLAGS+=-ffixed-i0 endif endif ifeq ($(ARCH),sparc64) - OP_CFLAGS+=-mcpu=ultrasparc -m64 -fno-delayed-branch -ffixed-i0 ifneq ($(CONFIG_SOLARIS),yes) CFLAGS+=-ffixed-g5 -ffixed-g6 -ffixed-g7 - OP_CFLAGS+=-ffixed-g5 -ffixed-g6 -ffixed-g7 else CFLAGS+=-ffixed-g1 -ffixed-g4 -ffixed-g5 -ffixed-g7 endif endif ifeq ($(ARCH),alpha) -# -msmall-data is not used for OP_CFLAGS because we want two-instruction -# relocations for the constant constructions # Ensure there's only a single GP CFLAGS+=-msmall-data endif ifeq ($(ARCH),hppa) -OP_CFLAGS=-O1 -fno-delayed-branch BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld endif ifeq ($(ARCH),ia64) CFLAGS+=-mno-sdata -OP_CFLAGS+=-mno-sdata -endif - -ifeq ($(ARCH),arm) -OP_CFLAGS+=-mno-sched-prolog -fno-omit-frame-pointer -endif - -ifeq ($(ARCH),m68k) -OP_CFLAGS+=-fomit-frame-pointer -endif - -ifeq ($(ARCH),mips) -OP_CFLAGS+=-mabi=32 -G0 -fno-PIC -mno-abicalls -fomit-frame-pointer -fno-delayed-branch -Wa,-O0 -endif - -ifeq ($(ARCH),mips64) -OP_CFLAGS+=-mabi=n32 -G0 -fno-PIC -mno-abicalls -fomit-frame-pointer -fno-delayed-branch -Wa,-O0 endif CFLAGS+=$(OS_CFLAGS) $(ARCH_CFLAGS) LDFLAGS+=$(OS_LDFLAGS) $(ARCH_LDFLAGS) -OP_CFLAGS+=$(OS_CFLAGS) $(ARCH_CFLAGS) CPPFLAGS+=-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE LIBS+=-lm @@ -171,7 +126,6 @@ LIBS+=-lsocket -lnsl -lresolv ifdef NEEDS_LIBSUNMATH LIBS+=-lsunmath LDFLAGS+=-L/opt/SUNWspro/prod/lib -R/opt/SUNWspro/prod/lib -OP_CFLAGS+=-I/opt/SUNWspro/prod/include/cc CFLAGS+=-I/opt/SUNWspro/prod/include/cc endif endif @@ -257,8 +211,6 @@ endif # libqemu libqemu.a: $(LIBOBJS) - rm -f $@ - $(AR) rcs $@ $(LIBOBJS) translate.o: translate.c cpu.h @@ -266,16 +218,11 @@ translate-all.o: translate-all.c cpu.h tcg/tcg.o: cpu.h -machine.o: machine.c - $(CC) $(OP_CFLAGS) $(CPPFLAGS) -c -o $@ $< - # HELPER_CFLAGS is used for all the code compiled with static register # variables -op_helper.o: op_helper.c - $(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(CFLAGS) $(I386_CFLAGS) -c -o $@ $< +op_helper.o: CFLAGS += $(HELPER_CFLAGS) $(I386_CFLAGS) -cpu-exec.o: cpu-exec.c - $(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< +cpu-exec.o: CFLAGS += $(HELPER_CFLAGS) ######################################################### # Linux user emulator target @@ -373,7 +320,7 @@ CFLAGS+=-p endif OBJS= main.o syscall.o strace.o mmap.o signal.o path.o thunk.o \ - elfload.o linuxload.o uaccess.o + elfload.o linuxload.o uaccess.o envlist.o LIBS+= $(AIOLIBS) ifdef TARGET_HAS_BFLT OBJS+= flatload.o @@ -403,11 +350,10 @@ OBJS+= libqemu.a # Note: this is a workaround. The real fix is to avoid compiling # cpu_signal_handler() in cpu-exec.c. -signal.o: signal.c - $(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< +signal.o: CFLAGS += $(HELPER_CFLAGS) $(QEMU_PROG): $(OBJS) ../libqemu_user.a - $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) + $(LINK) 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) @@ -439,11 +385,10 @@ endif # Note: this is a workaround. The real fix is to avoid compiling # cpu_signal_handler() in cpu-exec.c. -signal.o: signal.c - $(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< +signal.o: CFLAGS += $(HELPER_CFLAGS) $(QEMU_PROG): $(OBJS) - $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) + $(LINK) endif #CONFIG_DARWIN_USER @@ -544,11 +489,10 @@ endif # Note: this is a workaround. The real fix is to avoid compiling # cpu_signal_handler() in cpu-exec.c. -signal.o: signal.c - $(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< +signal.o: CFLAGS += $(HELPER_CFLAGS) $(QEMU_PROG): $(OBJS) ../libqemu_user.a - $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) + $(LINK) endif #CONFIG_BSD_USER @@ -556,7 +500,10 @@ endif #CONFIG_BSD_USER # System emulator target ifndef CONFIG_USER_ONLY -OBJS=vl.o osdep.o monitor.o pci.o loader.o isa_mmio.o machine.o +OBJS=vl.o osdep.o monitor.o pci.o loader.o isa_mmio.o machine.o dma-helpers.o +# virtio has to be here due to weird dependency between PCI and virtio-net. +# need to fix this properly +OBJS+=virtio.o virtio-blk.o virtio-balloon.o virtio-net.o virtio-console.o OBJS+=fw_cfg.o ifdef CONFIG_KVM OBJS+=kvm.o kvm-all.o @@ -564,6 +511,9 @@ endif ifdef CONFIG_WIN32 OBJS+=block-raw-win32.o else +ifdef CONFIG_AIO +OBJS+=posix-aio-compat.o +endif OBJS+=block-raw-posix.o endif @@ -587,13 +537,10 @@ ifdef CONFIG_OSS LIBS += $(CONFIG_OSS_LIB) endif -SOUND_HW = sb16.o es1370.o -ifdef CONFIG_AC97 -SOUND_HW += ac97.o -endif +SOUND_HW = sb16.o es1370.o ac97.o ifdef CONFIG_ADLIB SOUND_HW += fmopl.o adlib.o -fmopl.o: CFLAGS := ${CFLAGS} -DBUILD_Y8950=0 +adlib.o fmopl.o: CFLAGS := ${CFLAGS} -DBUILD_Y8950=0 endif ifdef CONFIG_GUS SOUND_HW += gus.o gusemu_hal.o gusemu_mixer.o @@ -607,6 +554,11 @@ CPPFLAGS += $(CONFIG_VNC_TLS_CFLAGS) LIBS += $(CONFIG_VNC_TLS_LIBS) endif +ifdef CONFIG_VNC_SASL +CPPFLAGS += $(CONFIG_VNC_SASL_CFLAGS) +LIBS += $(CONFIG_VNC_SASL_LIBS) +endif + ifdef CONFIG_BLUEZ LIBS += $(CONFIG_BLUEZ_LIBS) endif @@ -627,14 +579,16 @@ OBJS += pcnet.o OBJS += rtl8139.o OBJS += e1000.o +# Serial mouse +OBJS += msmouse.o + ifeq ($(TARGET_BASE_ARCH), i386) # Hardware support OBJS+= ide.o pckbd.o ps2.o vga.o $(SOUND_HW) dma.o OBJS+= fdc.o mc146818rtc.o serial.o i8259.o i8254.o pcspk.o pc.o -OBJS+= cirrus_vga.o apic.o parallel.o acpi.o piix_pci.o -OBJS+= usb-uhci.o vmmouse.o vmport.o vmware_vga.o -# virtio support -OBJS+= virtio.o virtio-blk.o virtio-balloon.o +OBJS+= cirrus_vga.o apic.o ioapic.o parallel.o acpi.o piix_pci.o +OBJS+= usb-uhci.o vmmouse.o vmport.o vmware_vga.o hpet.o +OBJS += device-hotplug.o pci-hotplug.o CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE endif ifeq ($(TARGET_BASE_ARCH), ppc) @@ -645,15 +599,23 @@ OBJS+= ppc.o ide.o vga.o $(SOUND_HW) dma.o openpic.o OBJS+= pckbd.o ps2.o serial.o i8259.o i8254.o fdc.o m48t59.o mc146818rtc.o OBJS+= prep_pci.o ppc_prep.o # Mac shared devices -OBJS+= macio.o cuda.o adb.o mac_nvram.o mac_dbdma.o +OBJS+= macio.o cuda.o adb.o mac_nvram.o mac_dbdma.o escc.o # OldWorld PowerMac OBJS+= heathrow_pic.o grackle_pci.o ppc_oldworld.o # NewWorld PowerMac -OBJS+= unin_pci.o ppc_chrp.o +OBJS+= unin_pci.o ppc_newworld.o # PowerPC 4xx boards OBJS+= pflash_cfi02.o ppc4xx_devs.o ppc4xx_pci.o ppc405_uc.o ppc405_boards.o -# virtio support -OBJS+= virtio.o virtio-blk.o virtio-balloon.o +OBJS+= ppc440.o ppc440_bamboo.o +# PowerPC E500 boards +OBJS+= ppce500_pci.o ppce500_mpc8544ds.o +ifdef FDT_LIBS +OBJS+= device_tree.o +LIBS+= $(FDT_LIBS) +endif +ifdef CONFIG_KVM +OBJS+= kvm_ppc.o +endif endif ifeq ($(TARGET_BASE_ARCH), mips) OBJS+= mips_r4k.o mips_jazz.o mips_malta.o mips_mipssim.o @@ -663,10 +625,14 @@ OBJS+= ide.o gt64xxx.o pckbd.o ps2.o fdc.o mc146818rtc.o usb-uhci.o acpi.o ds122 OBJS+= piix_pci.o parallel.o cirrus_vga.o pcspk.o $(SOUND_HW) OBJS+= mipsnet.o OBJS+= pflash_cfi01.o +OBJS+= vmware_vga.o CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE endif ifeq ($(TARGET_BASE_ARCH), cris) -OBJS+= etraxfs.o +# Boards +OBJS+= etraxfs.o axis_dev88.o + +# IO blocks OBJS+= etraxfs_dma.o OBJS+= etraxfs_pic.o OBJS+= etraxfs_eth.o @@ -674,7 +640,7 @@ OBJS+= etraxfs_timer.o OBJS+= etraxfs_ser.o OBJS+= ptimer.o -OBJS+= pflash_cfi02.o +OBJS+= pflash_cfi02.o nand.o endif ifeq ($(TARGET_BASE_ARCH), sparc) ifeq ($(TARGET_ARCH), sparc64) @@ -683,7 +649,7 @@ OBJS+= fdc.o mc146818rtc.o serial.o m48t59.o OBJS+= cirrus_vga.o parallel.o ptimer.o else OBJS+= sun4m.o tcx.o pcnet.o iommu.o m48t59.o slavio_intctl.o -OBJS+= slavio_timer.o slavio_serial.o slavio_misc.o fdc.o sparc32_dma.o +OBJS+= slavio_timer.o escc.o slavio_misc.o fdc.o sparc32_dma.o OBJS+= cs4231.o ptimer.o eccmemctl.o sbi.o sun4c_intctl.o endif endif @@ -701,7 +667,7 @@ OBJS+= pflash_cfi01.o gumstix.o OBJS+= zaurus.o ide.o serial.o nand.o ecc.o spitz.o tosa.o tc6393xb.o OBJS+= omap1.o omap_lcdc.o omap_dma.o omap_clk.o omap_mmc.o omap_i2c.o OBJS+= omap2.o omap_dss.o soc_dma.o -OBJS+= palm.o tsc210x.o +OBJS+= omap_sx1.o palm.o tsc210x.o OBJS+= nseries.o blizzard.o onenand.o vga.o cbus.o tusb6010.o usb-musb.o OBJS+= tsc2005.o bt-hci-csr.o OBJS+= mst_fpga.o mainstone.o @@ -710,7 +676,8 @@ CPPFLAGS += -DHAS_AUDIO endif ifeq ($(TARGET_BASE_ARCH), sh4) OBJS+= shix.o r2d.o sh7750.o sh7750_regnames.o tc58128.o -OBJS+= sh_timer.o ptimer.o sh_serial.o sh_intc.o sm501.o serial.o +OBJS+= sh_timer.o ptimer.o sh_serial.o sh_intc.o sh_pci.o sm501.o serial.o +OBJS+= ide.o endif ifeq ($(TARGET_BASE_ARCH), m68k) OBJS+= an5206.o mcf5206.o ptimer.o mcf_uart.o mcf_intc.o mcf5208.o mcf_fec.o @@ -762,27 +729,27 @@ LDFLAGS+=-p main.o: CFLAGS+=-p endif +vl.o: qemu-options.h + +$(QEMU_PROG): LIBS += $(SDL_LIBS) $(COCOA_LIBS) $(CURSES_LIBS) $(BRLAPI_LIBS) $(VDE_LIBS) + $(QEMU_PROG): $(OBJS) ../libqemu_common.a libqemu.a - $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(COCOA_LIBS) $(CURSES_LIBS) $(BRLAPI_LIBS) $(VDE_LIBS) + $(LINK) endif # !CONFIG_USER_ONLY gdbstub-xml.c: $(TARGET_XML_FILES) feature_to_c.sh - rm -f $@ ifeq ($(TARGET_XML_FILES),) - echo > $@ + $(call quiet-command,rm -f $@ && echo > $@," GEN $(TARGET_DIR)$@") else - $(SHELL) $(SRC_PATH)/feature_to_c.sh $@ $(TARGET_XML_FILES) + $(call quiet-command,rm -f $@ && $(SHELL) $(SRC_PATH)/feature_to_c.sh $@ $(TARGET_XML_FILES)," GEN $(TARGET_DIR)$@") endif -%.o: %.c - $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< - -%.o: %.S - $(CC) $(CPPFLAGS) -c -o $@ $< +qemu-options.h: $(SRC_PATH)/qemu-options.hx + sh $(SRC_PATH)/hxtool -h < $< > $@ clean: - rm -f *.o *.a *~ $(PROGS) nwfpe/*.o fpu/*.o + rm -f *.o *.a *~ $(PROGS) nwfpe/*.o fpu/*.o qemu-options.h rm -f *.d */*.d tcg/*.o install: all