U-BOOT Makefile注释.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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 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 ### ### $# 将扩展成传递给脚本的参数的数目 ### 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 1 fi ### 当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)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档