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/ (ARCH)/cpu/ ( C P U ) / (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!

发布了68 篇原创文章 · 获赞 22 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/MACMACip/article/details/104962699