uboot Makefile 分析

uboot Makefile 分析

配置过程

3329 hi3531a_config: unconfig
3330     @$(MKCONFIG) $(@:_config=) arm hi3531a hi3531a NULL hi3531a

//hi3531a_config依赖 unconfig
 553 unconfig:
 554     @rm -f $(obj)include/config.h $(obj)include/config.mk \
 555         $(obj)board/*/config.tmp $(obj)board/*/*/config.tmp \
 556         $(obj)include/autoconf.mk $(obj)include/autoconf.mk.dep

 执行完 unconfig 之后
   执行源码顶层目录下的 mkconfig ,参数为 hi3531a arm hi3531a hi3531a NULL hi3531a

 mkconfig是一个脚本文件
 会做以下几件事情
    链接一个arch/arm/include/asm/arch-hi3531a到在arch/arm/include/asm/下的arch
    链接一个arch/arm/include/asm/proc-armv 到在arch/arm/include/asm/下的proc
    链接arch/arm/include/asm 到include/asm
    在include目录下创建一个文件config.mk
    在include目录下创建一个文件config.h

编译过程

1//首先找到第一个目标
 344 # Always append ALL so that arch config.mk's can add custom ones
 345 ALL += $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map $(U_BOOT_NAND) $(U_BOOT_ONENAND)
 346 
 347 all:        $(ALL)

2//首先会include  include/config.mk
 153 # load ARCH, BOARD, and CPU configuration
 154 include $(obj)include/config.mk
 155 export  ARCH CPU BOARD VENDOR SOC
3//然后根据 include/config.h 生成 CONFIG文件(autoconf.mk)
    //第一个是生成include/autoconf.mk的依赖文件
    //第二个是根据include/config.h的文件内容,利用tools/scripts/define2mk.sed脚本将所有的CONFIG提取到autoconf.mk文件中
 508 #
 509 # Auto-generate the autoconf.mk file (which is included by all makefiles)
 510 #
 511 # This target actually generates 2 files; autoconf.mk and autoconf.mk.dep.
 512 # the dep file is only include in this top level makefile to determine when
 513 # to regenerate the autoconf.mk file.
 514 $(obj)include/autoconf.mk.dep: $(obj)include/config.h include/common.h
 515     @$(XECHO) Generating $@ ; \
 516     set -e ; \
 517     : Generate the dependancies ; \
 518     $(CC) -x c -DDO_DEPS_ONLY -M $(HOSTCFLAGS) $(CPPFLAGS) \
 519         -MQ $(obj)include/autoconf.mk include/common.h > $@
 520 
 521 $(obj)include/autoconf.mk: $(obj)include/config.h
 522     @$(XECHO) Generating $@ ; \
 523     set -e ; \
 524     : Extract the config macros ; \
 525     $(CPP) $(CFLAGS) -DDO_DEPS_ONLY -dM include/common.h | \
 526         sed -n -f tools/scripts/define2mk.sed > $@.tmp && \
 527     mv $@.tmp $@
4/include include/autoconf.mk
5/切到相应目录下make,并打包成.a文件
6/根据连接文件u-boot.lds链接.a文件

uboot Makefile

版本:u-boot-2010.06

Makefile下载


参考资料

GNU ARM汇编–(十七)u-boot的makefile和mkconfig解读

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值