📄 makefile.mips
字号:
# This material is inherited from the Linux Makefile: arch/mips/Makefile:#ifdef CONFIG_CPU_LITTLE_ENDIANtool-prefix = mipsel-linux-elsetool-prefix = mips-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.#GCCFLAGS := -G 0 -mno-abicalls -fno-picLINKFLAGS += -static -G 0MODFLAGS += -mlong-callsifdef CONFIG_REMOTE_DEBUGCFLAGS := $(CFLAGS) -gendif## CPU-dependent compiler/assembler options for optimization.#ifdef CONFIG_CPU_R3000GCCFLAGS += -mcpu=r3000 -mips1endififdef CONFIG_CPU_R6000GCCFLAGS += -mcpu=r6000 -mips2 -Wa,--trapendififdef CONFIG_CPU_R4300GCCFLAGS += -mcpu=r4300 -mips2 -Wa,--trapendififdef CONFIG_CPU_R4X00GCCFLAGS += -mcpu=r4600 -mips2 -Wa,--trapendififdef CONFIG_CPU_R5000GCCFLAGS += -mcpu=r8000 -mips2 -Wa,--trapendififdef CONFIG_CPU_NEVADAGCCFLAGS += -mcpu=r8000 -mips2 -Wa,--trap -mmadendififdef CONFIG_CPU_RM7000GCCFLAGS += -mcpu=r8000 -mips2 -Wa,--trapendififdef CONFIG_CPU_R8000GCCFLAGS += -mcpu=r8000 -mips2 -Wa,--trapendififdef CONFIG_CPU_R10000GCCFLAGS += -mcpu=r8000 -mips2 -Wa,--trapendififdef CONFIG_CPU_VR41XXCFLAGS += -mcpu=r4600 -mips2 -Wa,-m4100,--trapendififdef CONFIG_CPU_R39XX# if your toolchain supports this, change to# CFLAGS += -mcpu=r3900 -mips1CFLAGS += -mcpu=r3000 -mips1endififdef CONFIG_MIPS_FPU_EMULATORCORE_FILES +=arch/mips/fpu_emulator/fpu_emulator.oSUBDIRS +=arch/mips/fpu_emulatorendif## The pipe options is bad for my low-mem machine# Uncomment this if you want this.#GCCFLAGS += -pipeCFLAGS += $(GCCFLAGS) $(MODFLAGS)AFLAGS += $(GCCFLAGS)## Board-dependent options and extra files#ifdef CONFIG_ALGOR_P4032CORE_FILES += arch/mips/algor/algor.oSUBDIRS += arch/mips/algor#LOADADDR += 0x80000000endif## DECstation family#ifdef CONFIG_DECSTATIONCORE_FILES += arch/mips/dec/dec.oSUBDIRS += arch/mips/dec arch/mips/dec/promLIBS += arch/mips/dec/prom/rexlib.aLOADADDR += 0x80040000endif## Acer PICA 61, Mips Magnum 4000 and Olivetti M700.#ifdef CONFIG_MIPS_JAZZCORE_FILES += arch/mips/jazz/jazz.oSUBDIRS += arch/mips/jazz arch/mips/arcLIBS += arch/mips/arc/arclib.aLOADADDR += 0x80080000endififdef CONFIG_COBALT_MICRO_SERVERARCHIVES += arch/mips/cobalt/cobalt.oSUBDIRS += arch/mips/cobaltLOADADDR += 0x80000000endififdef CONFIG_SNI_RM200_PCICORE_FILES += arch/mips/sni/sni.oSUBDIRS += arch/mips/sni arch/mips/arcLIBS += arch/mips/arc/arclib.aLOADADDR += 0x80080000endififdef CONFIG_SGI_IP22LIBS += arch/mips/sgi/kernel/sgikern.a arch/mips/arc/arclib.aSUBDIRS += arch/mips/sgi/kernel arch/mips/arc## Set LOADADDR to >= 0x88069000 if you want to leave space for symmon,# 0x88002000 for production kernels. Note that the value must be# 8kb aligned or the handling of the current variable will break.#LOADADDR += 0x88002000endif## Baget/MIPS#ifdef CONFIG_BAGET_MIPSSUBDIRS += arch/mips/baget arch/mips/baget/promLIBS += arch/mips/baget/baget.a arch/mips/baget/prom/bagetlib.aLOADADDR += 0x80001000endif## NEC DDB Vrc-5074#ifdef CONFIG_DDB5074SUBDIRS += arch/mips/ddb5074LIBS += arch/mips/ddb5074/ddb5074.aLOADADDR += 0x80080000endif## Orion Board#ifdef CONFIG_ORIONLIBS += arch/mips/orion/orionkern.aSUBDIRS += arch/mips/orionLINKSCRIPT = arch/mips/orion/ld.script.orionendif## VR41XX-based devices#ifdef CONFIG_CPU_VR41XX CORE_FILES += arch/mips/vr41xx/vr41xx.o SUBDIRS += arch/mips/vr41xx # Link kernel just above exception vectors (default). LOADADDR = 0x80001000 # arch/mips/config.in can provide .text and .data addresses. ifdef CONFIG_LINK_TEXT LOADADDR = $(CONFIG_LINK_TEXT) endif ifdef CONFIG_LINK_DATA DATAADDR = $(CONFIG_LINK_DATA) endif ifdef CONFIG_XIP_ROM ifndef CONFIG_LINK_TEXT # For XIP ROM, .text address is likely to vary from platform to platform, # and even from device to device depending on ROM configuration, # so instead of providing a default and giving a potententially # false sense of well-being, cause an error instead. LOADADDR = Error_no_link_text_address_specified_for_xip_rom. endif LINKSCRIPT = arch/mips/vr41xx/rom.lds endifendif## R39XX-based devices#ifdef CONFIG_CPU_R39XXCORE_FILES += arch/mips/r39xx/r39xx.oSUBDIRS += arch/mips/r39xx arch/mips/r39xx/promLIBS += arch/mips/r39xx/prom/r39xxlib.aifdef CONFIG_VTECH_HELIO ifndef CONFIG_XIP_ROM # This is really a condition on whether we plan to use hfload. Fix later. # Stay away from the bootloader. LOADADDR += 0x80004000 else LOADADDR = 0x80000000 # arch/mips/config.in can provide .text and .data addresses. ifdef CONFIG_LINK_TEXT LOADADDR = $(CONFIG_LINK_TEXT) endif ifdef CONFIG_LINK_DATA DATAADDR = $(CONFIG_LINK_DATA) endif ifndef CONFIG_LINK_TEXT # For XIP ROM, .text address is likely to vary from platform to platform, # and even from device to device depending on ROM configuration, # so instead of providing a default and giving a potententially # false sense of well-being, cause an error instead. LOADADDR = Error_no_link_text_address_specified_for_xip_rom. endif LINKSCRIPT = arch/mips/r39xx/rom.lds endifendifendif# Choosing incompatible machines durings configuration will result in# error messages during linking. Select a default linkscript if# none has been choosen above.#ifndef LINKSCRIPTifndef CONFIG_CPU_LITTLE_ENDIANLINKSCRIPT = arch/mips/ld.script.bigelseLINKSCRIPT = arch/mips/ld.script.littleendifendifLINKFLAGS += -T $(word 1,$(LINKSCRIPT))ifdef LOADADDRLINKFLAGS += -Ttext $(word 1,$(LOADADDR))endififdef DATAADDRLINKFLAGS += -Tdata $(word 1,$(DATAADDR))endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -