Chinaunix首页 | 论坛 | 博客
  • 博客访问: 520137
  • 博文数量: 257
  • 博客积分: 1666
  • 博客等级: 上尉
  • 技术积分: 1535
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-02 23:02
文章分类

全部博文(257)

文章存档

2013年(2)

2012年(255)

分类:

2012-08-13 13:30:45

原文地址:U-BOOT学习笔记一 作者:bukancctv

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) |
给主人留下些什么吧!~~