📄 makefile
字号:
## This file is subject to the terms and conditions of the GNU General Public# License. See the file "COPYING" in the main directory of this archive# for more details.## This file is included by the global makefile so that you can add your own# architecture-specific flags and dependencies. Remember to do have actions# for "archclean" and "archdep" for cleaning up and making dependencies for# this architecture### Select the object file format to substitute into the linker script.#CPP=$(CC) -Eifdef CONFIG_CPU_LITTLE_ENDIANtool-prefix = mips64el-linux-elsetool-prefix = mips64-linux-endififdef CONFIG_CROSSCOMPILECROSS_COMPILE = $(tool-prefix)endif## The ELF GCC uses -G0 -mabicalls -fpic as default. We don't need PIC# code in the kernel since it only slows down the whole thing. For the# old GCC these options are just the defaults. At some point we might# make use of global pointer optimizations.## The DECStation requires an ECOFF kernel for remote booting, other MIPS# machines may also. Since BFD is incredibly buggy with respect to# crossformat linking we rely on the elf2ecoff tool for format conversion.#CFLAGS += -I $(TOPDIR)/include/asm $(CFLAGS)CFLAGS += -mabi=64 -G 0 -mno-abicalls -fno-pic -Wa,--trap -pipeLINKFLAGS += -G 0 -static # -NMODFLAGS += -mlong-callsifdef CONFIG_REMOTE_DEBUGCFLAGS := $(CFLAGS) -gendif## CPU-dependent compiler/assembler options for optimization.#ifdef CONFIG_CPU_R4300CFLAGS := $(CFLAGS) -mcpu=r4300 -mips3endififdef CONFIG_CPU_R4X00CFLAGS := $(CFLAGS) -mcpu=r4600 -mips3endififdef CONFIG_CPU_R5000CFLAGS := $(CFLAGS) -mcpu=r8000 -mips4endififdef CONFIG_CPU_NEVADACFLAGS := $(CFLAGS) -mcpu=r8000 -mips3 -mmadendififdef CONFIG_CPU_R8000CFLAGS := $(CFLAGS) -mcpu=r8000 -mips4endififdef CONFIG_CPU_R10000CFLAGS := $(CFLAGS) -mcpu=r8000 -mips4endif## Board-dependent options and extra files#ifdef CONFIG_SGI_IP22LIBS += arch/mips64/sgi-ip22/ip22.a arch/mips64/arc/arclib.aSUBDIRS += arch/mips64/sgi-ip22 arch/mips64/arc## Set LOADADDR to >= 0x88069000 if you want to leave space for symmon,# 0x88004000 for production kernels. Note that the value must be# 16kb aligned or the handling of the current variable will break.#LOADADDR += 0x88004000endififdef CONFIG_SGI_IP27LIBS += arch/mips64/sgi-ip27/ip27.a arch/mips64/arc/arclib.aSUBDIRS += arch/mips64/sgi-ip27 arch/mips64/arc## Set LOADADDR to >= 0xc000000000300000 if you want to leave space for# symmon, 0xc00000000001c000 for production kernels. Note that the value# must be 16kb aligned or the handling of the current variable will break.##LOADADDR += 0xa80000000001c000ifdef CONFIG_MAPPED_KERNELLOADADDR += 0xc001c000elseLOADADDR += 0x8001c000endifendif## Some machines like the Indy need 32-bit ELF binaries for booting purposes.# Other need ECOFF, so we build a 32-bit ELF binary for them which we then# convert to ECOFF using elf2ecoff.#ifdef CONFIG_BOOT_ELF32CFLAGS += -Wa,-32LINKFLAGS += -T arch/mips64/ld.script.elf32endif## The 64-bit ELF tools are pretty broken so at this time we generate 64-bit# ELF files from 32-bit files by conversion.#ifdef CONFIG_BOOT_ELF64CFLAGS += -Wa,-32LINKFLAGS += -T arch/mips64/ld.script.elf32#AS += -64#LD += -m elf64bmip#LINKFLAGS += -T arch/mips64/ld.script.elf64endifLINKFLAGS += -Ttext $(LOADADDR)HEAD := arch/mips64/kernel/head.o arch/mips64/kernel/init_task.oSUBDIRS := $(addprefix arch/mips64/, tools) $(SUBDIRS) $(addprefix arch/mips64/, kernel mm lib)CORE_FILES := arch/mips64/kernel/kernel.o arch/mips64/mm/mm.o $(CORE_FILES)LIBS := arch/mips64/lib/lib.a $(LIBS)MAKEBOOT = $(MAKE) -C arch/$(ARCH)/bootifdef CONFIG_CPU_LITTLE_ENDIAN64bit-bfd = elf64-littlemipselse64bit-bfd = elf64-bigmipsendifvmlinux: arch/mips64/ld.script.elf32arch/mips64/ld.script.elf32: arch/mips64/ld.script.elf32.S $(CPP) -C -P -I$(HPATH) -imacros $(HPATH)/asm-mips64/sn/mapped_kernel.h -Umips arch/mips64/ld.script.elf32.S > arch/mips64/ld.script.elf32ifdef CONFIG_MAPPED_KERNELvmlinux.64: vmlinux $(OBJCOPY) -O $(64bit-bfd) --change-addresses=0xbfffffff40000000 $< $@elsevmlinux.64: vmlinux $(OBJCOPY) -O $(64bit-bfd) --change-addresses=0xa7ffffff80000000 $< $@endifzImage: vmlinux @$(MAKEBOOT) zImagecompressed: zImagezdisk: vmlinux @$(MAKEBOOT) zdiskarchclean: @$(MAKEBOOT) clean $(MAKE) -C arch/$(ARCH)/kernel clean $(MAKE) -C arch/$(ARCH)/tools clean rm -f vmlinux.64 arch/$(ARCH)/ld.script.elf32archmrproper: @$(MAKEBOOT) mrproper $(MAKE) -C arch/$(ARCH)/tools mrproperarchdep: if [ ! -f $(TOPDIR)/include/asm-$(ARCH)/offset.h ]; then \ touch $(TOPDIR)/include/asm-$(ARCH)/offset.h; \ fi; @$(MAKEBOOT) dep
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -