fixdep & conf & pkg-config & mconf 工具介绍

1. fixdep 工具

fixdep <depfile> <target> <cmdline>
作用:查找实现目标所用的命令、源码、头文件等全部信息。
参数1:<depfile>编译产生的依赖文件*.d
参数2:<target>编译生成的目标
参数3:<cmdline>编译使用的命令
返回:实现目标所用的命令、源码、头文件等全部信息

编译时,编译器会根据选项-MD自动生成依赖文件.*.d,用fixdep更新.*.d文件生成新的依赖文件.*.cmd
fixdep被两个地方调用:

  1. rule_cc_o_c:编译u-boot自身的%.c文件时,rule_cc_o_c调用fixdep去更新生成的%.c的依赖文件.%.cmd。
  2. if_changed_dep:适用于除了上述的rule_cc_o_c外的其他目标依赖文件的生成,例如生成主机上执行的程序、处理dts文件、处理汇编文件生成*.o(或生成*.s、*.lst)等。

2. conf 工具

conf <input_mode> <name>
作用1:配置时,将配置文件和Kconfig文件中的相应信息写入到根目录下.config中(生成)。
作用2:编译时,

  1. 检查并分析系统中各个Kconfig文件,
  2. 同配置时生成的.config比较,更新.config文件,
  3. 生成下列文件供下一步编译使用:
    include/generated/autoconf.h
    include/config/auto.conf.cmd
    include/config/tristate.conf
    include/config/auto.conf

参数1:<input_mode>输入模式
参数2:<name>文件名

confconf.ozconf.tab.o链接而来,其中conf.c生成conf.o,是整个应用的主程序;zconf.tab.c生成zconf.tab.o,完成具体的词法和语法分析任务。

zconf.tab.c :用于读取并分析整个Kconfig系统的文件,较为复杂,也比较枯燥。
conf.c :conf主程序的文件,通过分析main函数可以大致了解操作流程:解析参数,不同的参数有不同的流程:
流程1: 参数1:–defconfig=arch/…/configs/rpi_3_32b_defconfig 参数2:Kconfig

  1. $(srctree)目录下依次查找名为Kconfig的文件,然后将取得的信息存放到链表中
  2. 读取指定的配置文件arch/../configs/rpi_3_32b_defconfig
  3. 将读取到的所有配置写入.config文件中

流程2: 参数1:syncconfig 参数2:Kconfig

  1. 检查顶层目录下的.config文件是否存在
  2. 读取生成的.config
  3. 检查.config是否被改动过,并检查各项设置的有效性
  4. 更新以下文件:
    include/generated/autoconf.h
    include/config/auto.conf.cmd
    include/config/tristate.conf
    include/config/auto.conf

3. pkg-config 工具

pkg-config [options] [libsname]
作用:将配置文件和Kconfig文件中的相应信息写入到 .config 中。
参数1:options【- -cflags】:查看头文件信息
参数1:options【- - libs】:查看库信息
参数1:options【- - libs-all】:模块的所有信息
参数2:libsname:查询的库
返回值:返回我们已经安装库的信息的工具,比如库的头文件在哪里,链接它又需要到哪里等等信息。

4. mconf 工具

配置系统主要包含Makefile、Kconfig和配置工具,可以生成配置界面。其中,配置界面是通过配置工具来生成的,配置工具通过Makefile编译执行,配置界面中的选项则是通过各级的Kconfig(老版本也称Config.in)和Makefile(老版本也称Kbuild)文件定义。

scripts目录下提供了各种内核配置工具,表1是这些工具的说明。。

  1. zconf.tab.c :实现了解析Kconfig文件和配置主要函数;
  2. Zconf.tab.c :直接包括了下列一些C程序,这样各种配置功能都包含在zconf.tab.o目标文件中了;
    2.1 lex.zconf.c:实现 lex 语法解析器;
    2.2 util.c :实现配置工具;
    2.3 confdata.c :实现 .config 等相关数据文件保存;
    2.4 expr.c :实现表达式函数;
    2.5 symbol.c :实现变量处理函数;
    2.6 menu.c :实现菜单控制函数;
    例如:通过 mconf 程序去解析 Kconfig 文件,然后生成对应的配置文件.config
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值