u-boot 编译
make smdk6410_config
make 找到smdk6410_config: 目标unconfig:
smdk6410_config: unconfig
@echo "----------------------"
@echo $(@)
# 目标 是 smdk6410_config
@echo "----------------------"
@echo $(MKCONFIG)
#/home/km/arm/uboot/uboot/mkconfig 是一个脚本
@echo "----------------------"
@echo $(@:_config=) arm s3c64xx smdk6410 samsung s3c6410
# $@ 去掉_config是smdk6410 | arm 架构 | s3c64xx cpu类型 | smdk6410 板 | samsung 商家 | s3c6410 soc名
@echo "----------------------"
@$(MKCONFIG) $(@:_config=) arm s3c64xx smdk6410 samsung s3c6410
# 执行这个脚本及参数
unconfig: #显示信息 删除文件
# $(obj) 可以保持源文件的整洁 可以用 export BUILD_DIR=/home/km//arm/uboot/uboot/dist 改变obj的值, 默认为空
@echo x $(obj) x
@echo $(obj)board/*/config.tmp
# 需要删除include/config.h include/config.mk 两个文件
# board/*/config.tmp 文件 board/*/*/config.tmp 两个临时文件
@rm -f $(obj)include/config.h $(obj)include/config.mk \
$(obj)board/*/config.tmp $(obj)board/*/*/config.tmp
结果是生成了两个文件
config.h:
/* Automatically generated - do not edit */
#include <configs/smdk6410.h>
config.mk
ARCH = arm
CPU = s3c64xx
BOARD = smdk6410
VENDOR = samsung
SOC = s3c6410
mkconfig 文件解析:
_asm__ __volatile__("": : :"memory");这条是内嵌汇编。