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");这条是内嵌汇编。

原文地址:https://www.cnblogs.com/kwingmei/p/3256287.html