makefile和mkconfig的修改:
通过mkconfig在include目录下增加三个软链接:
1. ln -s asm-arm asm ===> include/asm
2. ln -s arch-s3c64xx asm-arm/arch ==> include/asm-asm/arch
3. ln -s s3c64xx.h regs.h ==> include/regs.h
@$(MKCONFIG) $(@:_config=) arm arm920t mini2440 tekkamanninja s3c24x0
需找$(MKCONFIG):
MKCONFIG := $(SRCTREE)/mkconfig
export MKCONFIG
makefile中有个这样的表达方式:$(A:patternA=patternB)。意思就是将 A中 patternA格式的字符用patternB来代替。回归$(@:_config),@代表输入的参数, 即:mini2440_config,patternA是_config,patternB是空的。说白了就是将mini2440_config的 _config去掉。
这条语句就是:运行mkconfig文件,传递6个参数。
mkconfig分析:
APPEND=no # Default: Create new config file
BOARD_NAME="" # Name to print in make output
TARGETS=""
定义变量,没啥用。
while [ $# -gt 0 ] ; do
case "$1" in
--) shift ; break ;;
-a) shift ; APPEND=yes ;;
-n) shift ; BOARD_NAME="${1%%_config}" ; shift ;;
-t) shift ; TARGETS="`echo $1 | sed 's:_: :g'` ${TARGETS}" ; shift ;;
*) break ;;
esac
done
$#是脚本传递的参数的个数。-gt是>的意思。 $1:第一个参数。shift:奸杀第一个参数,将第二参数变成第一个……这段代码意思 检查参数中,有无-a -n -t这样的参数,没有的话直接break。 很明显,makefile传递的6个参数,没有-a,-t,-n。直接break。
阅读(301) | 评论(0) | 转发(0) |