Uboot config.mk 代码笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SilverFOX111/article/details/86489856

本文所谈的config.mk是顶层目录下的MK文件。

  1. 97-107行给出了编译工具的定义
AS	= $(CROSS_COMPILE)as
LD	= $(CROSS_COMPILE)ld
CC	= $(CROSS_COMPILE)gcc
CPP	= $(CC) -E
AR	= $(CROSS_COMPILE)ar
NM	= $(CROSS_COMPILE)nm
LDR	= $(CROSS_COMPILE)ldr
STRIP	= $(CROSS_COMPILE)strip
OBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdump
RANLIB	= $(CROSS_COMPILE)RANLIB
  1. 第112行包含进来一个自动生成的配置文件,生成所需要的材料在…/uboot/include/configs/目录下,里面有关于各种开发板的宏定义头文件,在执行make all 之后会在…/uboot/include/configs/目录下生成autoconf.mk文件,里面记载着关于开发板的各项参数。
sinclude $(OBJTREE)/include/autoconf.mk
  1. 144-188行定义了编译所需要的链接脚本
ifeq ($(CONFIG_NAND_U_BOOT),y)
LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot-nand.lds
else
LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds
endif

CONFIG_NAND_U_BOOT 变量在autoconf.mk文件中定义。

  1. 156-158行指定了链接地址
ifneq ($(TEXT_BASE),)
CPPFLAGS += -DTEXT_BASE=$(TEXT_BASE)
endif

TEXT_BASE 在主Makefile中2591行将定义写入到了$(obj)board/samsung/x210/config.mk文件中。

  1. 239-256行给出了Makefile的自动推导规则
ifndef REMOTE_BUILD

%.s:	%.S
	$(CPP) $(AFLAGS) -o $@ $<
%.o:	%.S
	$(CC) $(AFLAGS) -c -o $@ $<
%.o:	%.c
	$(CC) $(CFLAGS) -c -o $@ $<

else

$(obj)%.s:	%.S
	$(CPP) $(AFLAGS) -o $@ $<
$(obj)%.o:	%.S
	$(CC) $(AFLAGS) -c -o $@ $<
$(obj)%.o:	%.c
	$(CC) $(CFLAGS) -c -o $@ $<
endif

REMOTE_BUILD 在主Makefile文件中定义区分是否原地编译。

猜你喜欢

转载自blog.csdn.net/SilverFOX111/article/details/86489856
今日推荐