1.1.6第1阶段分析之make smdk2410(2)

第33行判断源代码目录和目标文件目录是否一样,可以选择在其他的目录下进行编译,这里我们是直接在源代码文件中进行编译,这里第33行的if语句不满足条件,直接执行else分支语句。第46~48行是通过cd命令进入include目录,删除上一次配置的链接文件asm文件,然后再次建立asm文件,并使其链接向asm-$2目录,也就是asm-arm。第51行是删除asm-arm/arch,53行检测输入的第六个参数是否为空,若为空则执行if分支语句,否则执行else分支,我们输入的第六个参数为“s3c24x0”,不为空,也不为“NULL”所以执行else分支,即创建asm-arm/arch,并令其链接向arch-s3c24x0目录。第60~61行重新建立asm-arm/pro文件,并让它链接向proc-armv目录。

64 #
65 # Create include file for Make
66 #
67 echo "ARCH  = $2" >  config.mk                  /* 新建文件config.mk,内容为"ARCH    =arm" */
68 echo "CPU    = $3" >> config.mk                  /* 追加内容"CPU    =arm920t"到config.mk文件中 */
69 echo "BOARD  = $4" >> config.mk                  /* 追加内容"BOARD  =smdk2410"到config.mk文件中 */
70
71 [ "$5" ] && [ "$5" != "NULL" ] && echo "VENDOR = $5" >> config.mk      /* $5参数为空,不执行追加内容 */
72
73 [ "$6" ] && [ "$6" != "NULL" ] && echo "SOC    = $6" >> config.mk      /* 追加内容"SOC    =S3C24x0到config.mk文件中"

第64~73行执行完后,在include文件夹中创建config.mk内容为:
 ARCH = arm
 CPU = arm920t
 BOARD = smdk2410
 SOC = s3c24x0

如下图所示:

75 #
76 # Create board specific header file
77 #
78 if [ "$APPEND" = "yes" ]    # Append to existing config file                   
79 then
80    echo >> config.h
81 else
82    > config.h        # Create new config file
83 fi
84 echo "/* Automatically generated - do not edit */" >>config.h
85 echo "#include <configs/$1.h>" >>config.h
86
87 exit 0

APPEND维持原值为"no",执行分支语句,创建config.h文件,第84~85为在创建config.h文件内追加信息,config.h内容如下图所示:

现在来总结一下,执行配置命令“make smdk2410_config”产生结果:
1.开发板名称BOARD_NAME等于$1(此处为smdk2410)
2.创建到平台/开发板相关头文件的链接
3.创建根目录下Makefile文件包含的文件include/config.mk
4.创建开发板相关的头文件include/config.h(此文件会在start.S中包含,很重要)

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/c714a42a67376280d281c4aed4efbb41.html