TQ2440之uboot---3.make EmbedSky_config
雖然網(wǎng)上有無數(shù)的分析,但是還是覺得有必要自己分析一遍
Uboot在編譯的時候通常需要兩步:
make EmbedSky_config
make all
1.下面就分析一下執(zhí)行 make EmbedSky_config后發(fā)生了什么
在Makefile中有如下
EmbedSky_config:unconfig
@$(MKCONFIG)$(@:_config=)arm arm920t EmbedSkyNULLs3c24x0
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 EmbedSkyNULLs3c24x0
$0 $1 $2 $3 $4 $5 $6
1.3 然后再來分析一下執(zhí)行了:
./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主要做了兩件事,創(chuàng)建符號鏈接,并創(chuàng)建config.mk 和 config.h 文件。