虽然网上有无数的分析,但是还是觉得有必要自己分析一遍
Uboot在编译的时候通常需要两步:
make EmbedSky_config
make all
1.下面就分析一下执行 make EmbedSky_config后发生了什么
在Makefile中有如下
-
EmbedSky_config : unconfig
-
@$(MKCONFIG) $(@:_config=) arm arm920t EmbedSky NULL s3c24x0
1.1 unconfig:
-
@rm -f include/config.h include/config.mk \
-
-
board/*/config.tmp board/*/*/config.tmp
unconfig 非常简单 删除几个文件,删除的这几个文件是在下面的mkconfig 中生成的
1.2 @$(MKCONFIG) $(@:_config=) arm arm920t EmbedSky NULL s3c24x0
-
MKCONFIG := $(SRCTREE)/mkconfig
-
-
export MKCONFIG
-
-
所以 $(MKCONFIG) 就是当前目录下的mkconfig脚本
-
-
$(@:_config=)去掉EmbedSky_config中的_config,
-
-
EmbedSky_config : unconfig
-
-
./mkconfig EmbedSky arm arm920t EmbedSky NULL s3c24x0
-
-
$0 $1 $2 $3 $4 $5 $6
1.3 然后再来分析一下执行了:
./mkconfig EmbedSky arm arm920t EmbedSky NULL s3c24x0 后做了什么
-
rm -f include/asm
-
-
ln -s include/asm-arm include/asm
-
-
-
rm -f asm-arm/proc
-
-
ln -s proc-armv asm-arm/proc
-
-
-
rm -f asm-arm/arch
-
-
ln -s arch-s3c24x0 asm-arm/arch
将如下写入include/config.mk
ARCH = arm
CPU = arm920t
BOARD = EmbedSky
SOC = s3c24x0
将如下写入include/config.h
#include
mkconfig主要做了两件事,创建符号链接,并创建config.mk 和 config.h 文件。
阅读(2072) | 评论(0) | 转发(2) |