📄 makefile
字号:
## Makefile for Boot Loader## About configuration file# make : use .config. if it doesn't exist, copy it from config-default# make CONFIG=xxx : use specified configuration file.# For more information on the configurations, read the README file#MAJORVERSION = 0MINORVERSION = 12PATCHLEVEL = 28ifdef CONFIGRTCONFIG = $(CONFIG)include $(CONFIG)elseRTCONFIG = .configifeq (.config, $(wildcard .config))include .configendifendififndef RUA_DIRRUA_DIR := ..endififndef CRYPTODIRCRYPTODIR = ./cryptoendifCRYPTODIR_STAGE1= $(CRYPTODIR)/stage1CRYPTODIR_STAGE0= $(CRYPTODIR)/stage0ifeq ($(ENABLE_CRYPTO), y)ifndef ID$(error No key set ID defined, abort)endifCRYPTO = $(shell find $(CRYPTODIR_STAGE1) -maxdepth 0 -type d)ifneq ($(findstring $(CRYPTODIR_STAGE1), $(CRYPTO)), $(CRYPTODIR_STAGE1))$(error Crypto library not available, check your configuration file ($(RTCONFIG)))endifendififeq ($(ENABLE_CRYPTO_FULL), y)ifneq ($(ENABLE_CRYPTO), y)$(error Enable crypto to get full crypto support)endifCRYPTO = $(shell find $(CRYPTODIR_STAGE0)/src/ -maxdepth 0 -type d)ifneq ($(findstring $(CRYPTODIR_STAGE0)/src/, $(CRYPTO)), $(CRYPTODIR_STAGE0)/src/)$(error Crypto library not available, check your configuration file ($(RTCONFIG)))endifendififeq ($(findstring -DWITH_XIP=1, $(RMCFLAGS)), -DWITH_XIP=1)RMCFLAGS := $(filter-out -DWITH_XIP=1, $(RMCFLAGS))export RMCFLAGS$(warning XIP flag is set, turn it off, now : $(RMCFLAGS))endif# Configuration adjustmentifeq ($(RELEASE), y)ENABLE_FULLFUNCTION = nENABLE_SFLASH = nENABLE_FLASH = nENABLE_IDE = nENABLE_PCI = nENABLE_NETWORK = nendififeq ($(ENABLE_SFLASH), n)ENABLE_SFLASH_ST_M25 = nENABLE_SFLASH_ST_M95 = nENABLE_SFLASH_SST = nendififeq ($(ENABLE_IDE), n)ENABLE_IDE_ISA = nENABLE_IDE_BM = nendififeq ($(ENABLE_PCI), n)ENABLE_PCIHOST_EM86XX = nENABLE_PCIHOST_FPGA = nENABLE_NETWORK_NE2KPCI = nENABLE_NETWORK_RTL81XX = nendififeq ($(ENABLE_NETWORK), n)ENABLE_NETWORK_DNS = nENABLE_NETWORK_NE2KPCI = nENABLE_NETWORK_RTL81XX = nENABLE_NETWORK_TANGO15 = nendififneq ($(EM86XX_ARCH), TANGO15)ENABLE_NETWORK_TANGO15 = nendif# Only Mambo has DRAM1ifneq ($(EM86XX_ARCH), MAMBO)DEFAULT_DRAM1_SIZE = 0endififeq ($(PRODUCTIONTEST), y)DRAMADJUSTMENT = nBIST = nDEBUG_DRAMADJUSTMENT = nendif# try to be compatible with old configs ifeq ($(DRAMADJUSTMENT),)DRAMADJUSTMENT = nBIST = nDEBUG_DRAMADJUSTMENT = nendififeq ($(DEBUG_DRAMADJUSTMENT),)DEBUG_DRAMADJUSTMENT = nendififeq ($(BIST),)BIST = $(DRAMADJUSTMENT)endif# Build toolsCROSS_COMPILE = arm-elf-CPP = cppAS = $(CROSS_COMPILE)asCC = $(CROSS_COMPILE)gccLD = $(CROSS_COMPILE)ldOBJCOPY = $(CROSS_COMPILE)objcopyOBJDUMP = $(CROSS_COMPILE)objdumpNM = $(CROSS_COMPILE)nm# Compiler optionsifeq ($(PRODUCTIONTEST), y)CFLAGS = -Os -fomit-frame-pointer -fno-builtin -nostdinc -nostdlib -ffunction-sections -fdata-sections -Wall -Wstrict-prototypes -DBOOTLOADER elseCFLAGS = -O2 -fomit-frame-pointer -fno-builtin -nostdinc -nostdlib -ffunction-sections -fdata-sections -Wall -Wstrict-prototypes -DBOOTLOADER endif#CFLAGS += -DENABLE_FIQ_TEST# Enable this to disable usage of cache, even if the cache is enabled.# CACHE_USAGE_OFF=yifeq ($(CACHE_USAGE_OFF), y)CFLAGS += -DCACHE_USAGE_OFFendififneq ($(RMCFLAGS),)CFLAGS+=$(RMCFLAGS)endifCPPFLAGS = ifeq ($(DEBUG), y)CFLAGS += -DDEBUGCPPFLAGS += -DDEBUGendififeq ($(DEBUG_DRAMADJUSTMENT), y)CFLAGS += -DDEBUG_DRAMADJUSTMENTendififeq '$(ENABLE_DVI)' 'y'CFLAGS += -I$(RUA_DIR)endififeq ($(ENABLE_CRYPTO),y)CFLAGS += -I$(CRYPTODIR_STAGE1)/include -I$(RUA_DIR)/emhwlib_hal/include -I$(RUA_DIR)/emhwlib_hal/includeCPPFLAGS += -I$(CRYPTODIR_STAGE1)/include -I. -I$(RUA_DIR)/emhwlib_hal/include -I$(RUA_DIR)/emhwlib_hal/include ifneq ($(ENABLE_CRYPTO_FULL),y)TARGET += loader-sflash-secure-kernel.bin loader-flash-secure-kernel.binendifendif# Target filesifeq ($(PRODUCTIONTEST), y)TARGET += loader-sflash-test.bin loader-flash-test.binelseTARGET += loader-sflash.bin loader-flash.bin loader-sflash-min.binendififeq ($(ENABLE_CRYPTO_FULL), y)TARGET += loader-flash-secure-boot1.binUCODE = $(shell cd $(CRYPTODIR_STAGE0) && find . -maxdepth 1 -name "ucode*.bin")ifeq ($(findstring $(UCODE), ./ucode_sflash.bin), ./ucode_sflash.bin)TARGET += loader-sflash-secure-boot0.binelseifeq ($(findstring $(UCODE), ./ucode_pflash.bin), ./ucode_pflash.bin)TARGET += loader-flash-secure-boot0.binelse$(error Cannot find a suitable microcode for full crypto support)endifendifendif# Object filesOBJS-y = main.o uart.o util.o vsprintf.o em86xxapi.o romfs.o kunzip.o inflate.o boot.o board/board-init.oifeq ($(RELEASE), n)OBJS-y += bootmenu.o uucodec.o timer.o bootconfig.oendififeq ($(EM86XX_ARCH), TANGO15)ifeq ($(ENABLE_NETWORK_TANGO15), y)OBJS-y += i2c_hw.oendifendifOBJS-$(ENABLE_SFLASH) += sflash.o OBJS-$(ENABLE_SFLASH_ST_M25) += sflash-st-m25.oOBJS-$(ENABLE_SFLASH_ST_M95) += sflash-st-m95.oOBJS-$(ENABLE_SFLASH_SST) += sflash-sst.oOBJS-$(ENABLE_FLASH) += flash.oOBJS-$(ENABLE_IDE) += ide.o atapi.o bootcd.oOBJS-$(ENABLE_PCI) += pcicommon.oifeq ($(ENABLE_PCI), y) OBJS-$(ENABLE_PCIHOST_EM86XX) += pciem86xx.o OBJS-$(ENABLE_PCIHOST_FPGA) += pcifpga.oendifOBJS-$(ENABLE_NETWORK) += net.o net_ipv4.o net_ipv4_bootp.o net_ipv4_tftp.oOBJS-$(ENABLE_CRYPTO) += $(CRYPTODIR_STAGE1)/cryptolib.oOBJS-$(ENABLE_NETWORK_DNS) += net_ipv4_dns.oOBJS-$(ENABLE_NETWORK_NE2KPCI) += ne2kpci.oOBJS-$(ENABLE_NETWORK_RTL81XX) += rtl81xx.oOBJS-$(ENABLE_NETWORK_TANGO15) += em86xx_eth.oifeq ($(PRODUCTIONTEST), y)OBJS-y += test-stage1.o board/test-stage1.oendifOBJS-$(ENABLE_DVI) += $(RUA_DIR)/emhwlib_hal/i2c/src/i2c_hal.oDEVZERO := $(wildcard /dev/zero)ifndef DEVZERO error: @echo "You need to create a /dev/zero device - mknod -m 666 /dev/zero c 1 5"; @exit 1;endif ifneq ($(PRODUCTIONTEST), y)ifeq ($(ENABLE_FLASH), y)ifeq ($(ENABLE_2NDBOOT), y)TARGET += loader-flash-stage2.binendifendifendififeq ($(ENABLE_FIP), y)OBJS-y += fipkernel.oendifall: $(RTCONFIG) checkboard version.h loader.bin $(TARGET) checkbin# Check that the CONFIG is defined correctly (or .config exist)$(RTCONFIG) : $(error Please use the appropriate configuration file to compile the kernel: make CONFIG=config-yourconfig)checkboard : @rm -f board @ln -sf board-${BOARD} board# automatically generated fileversion.h : $(RTCONFIG) Makefile @echo "/*" > $@ @echo " * Boot Loader Version" >> $@ @echo " *" >> $@ @echo " * This file is automatically generated from Makefile" >> $@ @echo " */" >> $@ @echo "" >> $@ @echo "#ifndef __BOOTLOADER_VERSION_H" >> $@ @echo "#define __BOOTLOADER_VERSION_H" >> $@ @echo "" >> $@ @echo "#define BOOTLOADER_MAJORVERSION $(MAJORVERSION)" >> $@ @echo "#define BOOTLOADER_MINORVERSION $(MINORVERSION)" >> $@ @echo "#define BOOTLOADER_PATCHLEVEL $(PATCHLEVEL)" >> $@ @echo "" >> $@ @echo "#define MAKE_VERSION(a, b, c) (((a) << 16) | ((b) << 8) | (c))" >> $@ @echo "#define BOOTLOADER_VERSION MAKE_VERSION($(MAJORVERSION), $(MINORVERSION), $(PATCHLEVEL))" >> $@ @echo "#define BOOTLOADER_VERSIONSTR \"$(MAJORVERSION).$(MINORVERSION).$(PATCHLEVEL)\"" >> $@ @echo "" >> $@ifeq ($(RELEASE), n) @echo "#define CONFIG_DEVEL" >> $@else @echo "#define CONFIG_RELEASE" >> $@endif @echo "" >> $@ifeq ($(ENABLE_FULLFUNCTION), y) @echo "#define CONFIG_ENABLE_FULLFUNCTION" >> $@endififeq ($(ENABLE_SFLASH), y) @echo "#define CONFIG_ENABLE_SFLASH" >> $@ifeq ($(ENABLE_SFLASH_ST_M25), y) @echo "#define CONFIG_ENABLE_SFLASH_ST_M25" >> $@endififeq ($(ENABLE_SFLASH_ST_M95), y) @echo "#define CONFIG_ENABLE_SFLASH_ST_M95" >> $@endififeq ($(ENABLE_SFLASH_SST), y) @echo "#define CONFIG_ENABLE_SFLASH_SST" >> $@endifendififeq ($(ENABLE_FLASH), y) @echo "#define CONFIG_ENABLE_FLASH" >> $@ @echo "#define MAX_ROMFS_SIZE $(MAX_ROMFS_SIZE)" >> $@else @echo "#define MAX_ROMFS_SIZE 0" >> $@endififeq ($(ENABLE_2NDBOOT), y) @echo "#define CONFIG_ENABLE_2NDBOOT" >> $@ @echo "#define STAGE2_IMAGE_SIZE $(STAGE2_IMAGE_SIZE)" >> $@ifeq ($(BOOT_2NDBOOT), y) @echo "#define BOOT_2NDBOOT" >> $@endifendififeq ($(ENABLE_ROMFS2), y) @echo "#define CONFIG_ENABLE_ROMFS2" >> $@ @echo "#define MAX_ROMFS2_SIZE $(MAX_ROMFS2_SIZE)" >> $@ @echo "#define CONFIG_ROMFS2_OFFSET $(ROMFS2_OFFSET)" >> $@endififeq ($(ENABLE_FIP), y) @echo "#define CONFIG_ENABLE_FIP" >> $@ @echo "#define CONFIG_EM86XX_FIP_$(EM86XX_FIP)" >> $@endififeq ($(ENABLE_IDE), y) @echo "#define CONFIG_ENABLE_IDE" >> $@endififeq ($(ENABLE_IDE_ISA), y) @echo "#define CONFIG_ENABLE_IDE_ISA" >> $@
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -