u-bootmkconfig文件解析.docVIP

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

u-boot mkconfig文件解析 mini2440_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t mini2440 tekkamanninja s3c24x0 unconfig: @rm -f $(obj)include/config.h $(obj)include/config.mk \ ? $(obj)board/*/config.tmp $(obj)board/*/*/config.tmp 其实这部分的功能就是删除一些文件 @$(MKCONFIG) $(@:_config=) arm arm920t mini2440 tekkamanninja s3c24x0 这部分$(@:_config)没看懂,后来在网上查到了一些高人的解释: 这里使用了Makefile中的替换引用规则,类似常看到的例子 obj=$(srcfiles:%.c=%.o): 由.c得到对应的.o文件. 这里是一样的道理: ?$(@:_config=)?? ? ?@代表的是target mini2440_config, 那么$(@:_config=)就是将mini2440_config中的_config替换为空!得到mini2440; 你可以用echo自己打印出来看看就明白了!?? mini2440_config : unconfig ? @echo $(@:_config=) # 打印出来看看吧 ? @$(MKCONFIG) $(@:_config=) arm arm920t mini2440 charming s3c24x0?? MKCONFIG其实就是根目录的脚本文件,这句的目的就是给脚本传递六个参数 所以上面的其实就是./mkconfig mini2440 arm arm920t mini2440 charming s3c24x0 现在来看看mkconfig的源代码,从而更深入了解其作用 #!/bin/sh -e # Script to create header files and links to configure # U-Boot for a specific board. # # Parameters: Target Architecture CPU Board [VENDOR] [SOC] # # (C) 2002-2006 DENX Software Engineering, Wolfgang Denk wd@denx.de # 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 #第一个参数是mini2440,所以直接break不会有变化 [ ${BOARD_NAME} ] || BOARD_NAME=$1 #将板子的名字赋值为mini2440 [ $# -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 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 ???

文档评论(0)

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

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

1亿VIP精品文档

相关文档