📄 makefile
字号:
ifneq ($(DOM0_IMAGE),)builtin_dom0 := yendifsubdir-$(HAS_PPC64) += powerpc64subdir-y += paprobj-y += audit.oobj-y += backtrace.oobj-y += bitops.oobj-y += boot_of.oobj-y += cmdline.oobj-y += dart.oobj-y += dart_u3.oobj-y += dart_u4.oobj-y += domctl.oobj-y += domain_build.oobj-y += domain.oobj-y += exceptions.oobj-y += external.oobj-y += float.oobj-y += hcalls.oobj-y += iommu.oobj-y += irq.oobj-y += systemsim.oobj-y += memory.oobj-y += mm.oobj-y += mpic.oobj-y += mpic_init.oobj-y += multiboot2.oobj-y += numa.oobj-y += of-devtree.oobj-y += of-devwalk.oobj-y += ofd_fixup.oobj-y += ofd_fixup_memory.oobj-y += physdev.oobj-y += platform.oobj-y += rtas.oobj-y += rtas_nvram.oobj-y += rtas_flash.oobj-y += setup.oobj-y += shadow.oobj-y += smp.oobj-y += smpboot.oobj-y += smp-tbsync.oobj-y += sysctl.oobj-y += time.oobj-y += usercopy.oobj-y += machine_kexec.oobj-y += crash.oobj-$(debug) += 0opt.oobj-$(crash_debug) += gdbstub.oobj-$(builtin_dom0) += dom0.oobj-y += firmware_image.o# These are extra warnings like for the arch/ppc directory but may not# allow the rest of the tree to build.PPC_C_WARNINGS += -Wundef -Wmissing-prototypes -Wmissing-declarationsPPC_C_WARNINGS += -WshadowCFLAGS += $(PPC_C_WARNINGS)## The following flags are fed to gcc in order to link several# objects into a single ELF segment and to not link in any additional# objects that gcc would normally like to#OMAGIC = -nodefaultlibs -nostartfiles -Wl,--omagicfirmware: of_handler/built_in.o $(TARGET_SUBARCH)/memcpy.o of-devtree.o $(CC) $(CFLAGS) $(OMAGIC) -e __ofh_start -Wl,-Ttext,0x0 $^ -o $@## Link firmware again but this time at the place we expect to load it.# This makes debugging _way_ easier.#firmware.dbg: of_handler/built_in.o $(TARGET_SUBARCH)/memcpy.o of-devtree.o $(CC) $(CFLAGS) $(OMAGIC) -e __ofh_start -Wl,-Ttext,0x2000000 $^ -o $@firmware_image.bin: firmware firmware.dbg $(CROSS_COMPILE)objcopy --output-target=binary $< $@## Hacks for included C files#irq.o: ../x86/irq.cphysdev.o: ../x86/physdev.cnuma.o: ../x86/numa.cifneq ($(CMDLINE),)# The first token in the arguments will be silently dropped.FULL_CMDLINE := xen $(CMDLINE)endififeq ($(wildcard cmdline.dep),)cmdline.dep: echo $(FULL_CMDLINE) > cmdline.depelseifneq ($(FULL_CMDLINE),$(shell cat cmdline.dep))cmdline.dep:: echo $(FULL_CMDLINE) > cmdline.depelsecmdline.dep:endifendifcmdline.o: cmdline.depcmdline.o: CFLAGS += -DCMDLINE="\"$(FULL_CMDLINE)\""TARGET_OPTS = $(OMAGIC) -Wl,-T,xen.ldsTARGET_OPTS += start.o $(ALL_OBJS).xen-syms: start.o $(ALL_OBJS) xen.lds $(MAKE) -f $(BASEDIR)/Rules.mk $(BASEDIR)/common/symbols-dummy.o $(CC) $(CFLAGS) $(TARGET_OPTS) $(BASEDIR)/common/symbols-dummy.o -o $@NM=$(CROSS_COMPILE)nmnew_nm := $(shell if $(NM) --help 2>&1 | grep -- '--synthetic' > /dev/null; then echo y; else echo n; fi)ifeq ($(new_nm),y)NM := $(NM) --syntheticendifxen-syms.S: .xen-syms $(NM) -n $^ | $(BASEDIR)/tools/symbols > $@xen-syms.o: xen-syms.S $(CC) $(CFLAGS) -D__ASSEMBLY__ -c $< -o $@$(TARGET)-syms: start.o $(ALL_OBJS) xen-syms.o xen.lds $(CC) $(CFLAGS) $(TARGET_OPTS) xen-syms.o -o $@# our firmware only loads 32-bit ELF filesOCPYFLAGS := --input-target=elf64-powerpc --output-target=elf32-powerpc$(TARGET): $(TARGET)-syms $(CROSS_COMPILE)objcopy $(OCPYFLAGS) $^ $@asm-offsets.s: $(TARGET_SUBARCH)/asm-offsets.c $(HDRS) $(CC) $(CFLAGS) -S -o $@ $<xen.lds: xen.lds.S $(HDRS) $(CC) -P -E $(AFLAGS) -o $@ $<dom0.bin: $(DOM0_IMAGE) cp $< $@clean:: $(MAKE) -f $(BASEDIR)/Rules.mk -C of_handler clean rm -f firmware firmware.dbg firmware_image.bin \ dom0.bin .xen-syms xen-syms.S \ xen.lds asm-offsets.s cmdline.dep
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -