- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
U-BOOT Makefile注释
首先要了解的当然是config目标比如:smdk2410_config??? :??? unconfig??? @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 samsung s3c24x0依赖为unconfig,第二行开头的@,只是表明该行命令的输出将被抑制。而$(MKCONFIG)变量则是要运行的命令,它是一个脚本文件,后面的是它的参数。前面有变量MKCONFIG的定义:MKCONFIG??? := $(SRCTREE)/mkconfig而变量SRCTREE的定义则为:SRCTREE??? ??? := $(CURDIR)而变量CURDIR是没有定义的,没有定义的话,也就是空,即指当前目录。所以$(MKCONFIG)也就是源码根目录下的文件mkconfig它接受最多6个参数。这个脚本文件创建头文件和配置链接。Parameters:? Target? Architecture? CPU? Board [VENDOR] [SOC]$@是make的自动变量,标识规则的目标名。即smdk2410_config。$(@:_config=)意思就是 $@ 中的“_config”替换为空,也就是删掉目标中“_config”这个子串。这样看的话在配置时,执行make smdk2410_config实际上执行的是:./mkconfig smdk2410 arm arm920t smdk2410 samsung 2s3c24x0其内容为:APPEND=no??? # Default: Create new config fileBOARD_NAME=??? # Name to print in make outputTARGETS=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 ;;??? esacdone### ### $# 将扩展成传递给脚本的参数的数目### shift 将$*中的剩余的参数向左移动一个位置并减少$#的值1。### $*将扩展成传递给脚本的所有参数### BOARD_NAME行的${1%%_config}是截断字符串的意思,找到? ### 从字符串 $1结束处开始、且匹配字符串_config 的最长子? ### 字符串,然后将其从字符串的结尾处截去。(此处的%%换成%应 ### 该也可以的)### TARGETS行,sed将$1中的_替换为空格。### 这样看下来在smdk2410_config这个例子中这个循环好像仅? ### 仅在空转。[ ${BOARD_NAME} ] || BOARD_NAME=$1### 定义变量BOARD_NAME[ $# -lt 4 ] exit 1[ $# -gt 6 ] exit 1### 当参数数量小于四或大于六的时候出错,退出if [ ${ARCH} -a ${ARCH} != $2 ]; then??? echo Failed: \$ARCH=${ARCH}, should be $2 for ${BOARD_NAME} 12??? exit 1fi### 当ARCH变量已定义时(Makefile中),判断其值与参数与$2 ### 是否相等,如果不相等则报错退出。[命令的-a,即当它左右两 ### 边的表达式同时为真时返回真。echo Configuring for ${BOARD_NAME} board...## Create link to architecture specific headers#if [ $SRCTREE != $OBJTREE ] ; then??? mkdir -p ${OBJTREE}/include??? mkdir -p ${OBJTREE}/include2??? cd ${OBJTREE}/include2??? rm -f asm??? ln -s ${SRCTREE}/include/asm-$2 asm??? LNPREFIX=../../include2/asm/??? cd ../include??? rm -rf asm-$2??? rm -f asm??
文档评论(0)