2023.1.29 作业

一、分析u-boot源码中执行make menuconfig的过程。

1、在u-boot源码顶层目录下,打开Makefile文件,搜索config,查找到如下打印信息
    564 %config: scripts_basic outputmakefile FORCE                                          
    568     $(Q)$(MAKE) $(build)=scripts/kconfig $@
2、在该文件中,使用echo打印每个变量的信息
    564 %config: scripts_basic outputmakefile FORCE                                              565     @echo "Q=$(Q)"
    566     @echo "MAKE=$(MAKE)"
    567     @echo "build=$(build)"
    568     $(Q)$(MAKE) $(build)=scripts/kconfig $@
3、在u-boot源码顶层目录下,执行make menuconfig后,退出图形化界面,在终端查看相应变量的打印信息
    Q=@
    MAKE=make
    build=-f ./scripts/Makefile.build obj
4、因此, $(Q)$(MAKE) $(build)=scripts/kconfig $@ 中将变量替换过来就是如下命令
    @make build=-f ./scripts/Makefile.build obj=scripts/kconfig menuconfig
5、执行该命令,就是在 u-boot源码目录/scripts/kconfig 这个目录下执行该目录下的Makefile文件
6、进入到 u-boot源码目录/scripts/kconfig 这个目录下,打开该目录下的makefile文件,搜索menuconfig,查找到如下打印信息
    34 menuconfig: $(obj)/mconf
    35     $< $(silent) $(Kconfig) 
7、在u-boot源码顶层目录下,执行make menuconfig后,退出图形化界面,在终端查看相应变量的打印信息 
    $< $(silent) $(Kconfig) <======> scripts/kconfig/mconf  Kconfig
8、进入到 u-boot源码目录/scripts/kconfig 这个目录下,用file命令查看mconf文件,打印如下信息
    mconf: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 3.2.0, BuildID[sha1]=e39c5acfcdc6cef1977ebe46e4ba5f9352ad84ed, not stripped
    表示mconf文件是一个二进制可执行程序
    而 scripts/kconfig/mconf  Kconfig 就是在运行该程序,其中Kconfig是传递给该程序的参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值