uboot2016.11分析3 - Makefile的目标

【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) 

uboot2016.11分析3 - Makefile的目标

   在uboot2016.11分析3 - Makefile的目标文章中, 我们发现uboot的Makefile一共被调用了三次, 分别是

make -C $(OSDRV_DIR)/opensource/uboot/$(UBOOT_VER) ARCH=arm CROSS_COMPILE=$(OSDRV_CROSS)- $(UBOOT_CONFIG)

pushd $(OSDRV_DIR)/opensource/uboot/$(UBOOT_VER);make ARCH=arm CROSS_COMPILE=$(OSDRV_CROSS)- -j 20 >/dev/null;popd

pushd $(OSDRV_DIR)/opensource/uboot/$(UBOOT_VER);make ARCH=arm CROSS_COMPILE=$(OSDRV_CROSS)- u-boot-z.bin >/dev/null;popd

他们各自做了什么事情呢? 我们一起来看看.

1. make $(UBOOT_CONFIG)

   很明显第一个make是和板端配置相关的, 但是很可惜makefile中没有明显的写出板端配置项, 所以没办法找到相关的信息. 我猜想是由perl脚本完成了相关的工作.

2. make

# Always append ALL so that arch config.mk's can add custom ones
ALL-y += u-boot.srec u-boot.bin u-boot.sym System.map binary_size_check

# enable combined SPL/u-boot/dtb rules for tegra
ifeq ($(CONFIG_TEGRA)$(CONFIG_SPL),yy)
ALL-y += u-boot-tegra.bin u-boot-nodtb-tegra.bin
ALL-$(CONFIG_OF_SEPARATE) += u-boot-dtb-tegra.bin
endif

# Add optional build target if defined in board/cpu/soc headers
ifneq ($(CONFIG_BUILD_TARGET),)
ALL-y += $(CONFIG_BUILD_TARGET:"%"=%)
endif

all:		$(ALL-y)

   uboot make的具体工作, 很庞大, 就不分析了.(显得我的博文很费呀~)

3. make u-boot-z.bin

.PHONY: u-boot-z.bin
u-boot-z.bin: $(CURDIR)/u-boot.bin
	make -C $(CURDIR)/arch/$(ARCH)/cpu/$(CPU)/$(SOC)/$(HW_DIR)/ \
		CROSS_COMPILE=$(CROSS_COMPILE) \
		BINIMAGE=$(CURDIR)/u-boot.bin TOPDIR=$(CURDIR)

( C U R D I R ) / a r c h / (CURDIR)/arch/ (CURDIR)/arch/(ARCH)/cpu/ ( C P U ) / (CPU)/ (CPU)/(SOC)/$(HW_DIR)可知该uboot对应编出来的是对应哪个SOC.
   因为他是make -C(进去编译的), 所以我们可以进到相应目录去查看具体SOC的makefile工作. 如下

.PHONY: $(BOOT).bin
$(BOOT).bin: $(BOOT).tmp regfile
	@dd if=./$(BOOT).tmp of=./tmp1 bs=1 count=64 2>/dev/null
	@dd if=$(REG) of=./tmp2 bs=8192 conv=sync 2>/dev/null
	@dd if=./$(BOOT).tmp of=./tmp3 bs=1 skip=8256 2>/dev/null
	@cat tmp1 tmp2 tmp3 > $(BOOT).bin
	@rm -f tmp1 tmp2 tmp3
	@chmod 754 $(BOOT).bin
	@cp -fv $@ $(TOPDIR)
	@echo $(BOOT).bin is Ready.

由上可见最终生成文件$(BOOT).bin, 且知道他是怎么组成的! 如果你更深入地看将会知道他做了什么事情, 我就不看了. Congratulation!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安河桥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值