mkconfig脚本在主Makefile文件中配置时调用
x210_sd_config : unconfig
@$(MKCONFIG) $(@:_config=) arm s5pc11x x210 samsung s5pc110
@echo "TEXT_BASE = 0xc3e00000" > $(obj)board/samsung/x210/config.mk
在调用脚本时传了6个参数 $#=6, $1=x210_sd,$2=arm,$3=s5pc11x,$4=x210,$5=samsung,$6=s5pc110。
- 12行,23行代码为BOARD_NAME赋值x210_sd。
BOARD_NAME="" # Name to print in make output #12
[ "${BOARD_NAME}" ] || BOARD_NAME="$1" #23
- 25,26行限制参数个数$#大于或等于4,小于或等于6。
[ $# -lt 4 ] && exit 1 #25
[ $# -gt 6 ] && exit 1 #26
- 33-49行为include文件夹下的asm-$2创建符号链接asm。
if [ "$SRCTREE" != "$OBJTREE" ] ; then #33
mkdir -p ${OBJTREE}/include #34
mkdir -p ${OBJTREE}/include2 #35
cd ${OBJTREE}/include2 #36
rm -f asm #37
ln -s ${SRCTREE}/include/asm-$2 asm #38
LNPREFIX="../../include2/asm/" #39
cd ../include #40
rm -rf asm-$2 #41
rm -f asm #42
mkdir asm-$2 #43
ln -s asm-$2 asm #44
else #45
cd ./include #46
rm -f asm #47
ln -s asm-$2 asm #48
fi #49
SRCTREE与OBJTREE是主Makefile中声明的源码目录与目标文件目录,如果它们不是同一路径,则要单独为OBJTREE生成include文件夹,如果原地编译,则只需进入include文件夹生成软连接即可。注意: 接下来所有操作都在include文件夹下进行。
- 84-89行为$6.h(s5pc110.h)与asm-$2文件夹下arch-$3(arch-s5pc11x)创建软连接regs.h与arch。
if [ "$3" = "s5pc11x" ] ; then #84
rm -f regs.h #85
ln -s $6.h regs.h #86
rm -f asm-$2/arch #87
ln -s arch-$3 asm-$2/arch #88
fi #89
- 107-110行为asm-$2文件夹下proc-armv创建软连接proc
if [ "$2" = "arm" ] ; then #107
rm -f asm-$2/proc #108
ln -s ${LNPREFIX}proc-armv asm-$2/proc #109
fi #110
- 123-129行创建include文件夹下的config.mk文件
echo "ARCH = $2" > config.mk
echo "CPU = $3" >> config.mk
echo "BOARD = $4" >> config.mk
[ "$5" ] && [ "$5" != "NULL" ] && echo "VENDOR = $5" >> config.mk
[ "$6" ] && [ "$6" != "NULL" ] && echo "SOC = $6" >> config.mk
- 134-141行创建config.h,包含头文件include/configs/$1.h。
if [ "$APPEND" = "yes" ] # Append to existing config file
then
echo >> config.h
else
> config.h # Create new config file
fi
echo "/* Automatically generated - do not edit */" >>config.h
echo "#include <configs/$1.h>" >>config.h
APPEND 变量默认no,即重新创建config.h文件。