kbuild系统中最简单的目标 -- help(三)
  arzjoav93H4m 2023年11月01日 127 0

当你学完help目标后你会发现它与我们的代码基本没有什么直接的关系,仅仅是用来生成kbuild的简短使用说明,但是用它来作为学习掌握kbuild编译系统的开篇,不管是从难度还是学习感受上真的是再适合不过。

如何使用help命令?
在linux内核源码最顶层目录下执行如下命令。

make help

可以看到如下或者类似的打印(由于打印内容太长,只截取了部分内容)
在这里插入图片描述

help目标定义在哪里?
help命令定义在顶层Makefile中,部分代码如下:

help:
	@echo  'Cleaning targets:'
	@echo  ' clean - Remove most generated files but keep the config and'
	@echo  ' enough build support to build external modules'
	@echo  ' mrproper - Remove all generated files + config + various backup files'
	@echo  ' distclean - mrproper + remove editor backup and patch files'
	@echo  ''
	@echo  'Configuration targets:'
	@$(MAKE) -f $(srctree)/scripts/kconfig/Makefile help
	@echo  ''
	@echo  'Other generic targets:'
	@echo  ' all - Build all targets marked with [*]'
	@echo  '* vmlinux - Build the bare kernel'
	@echo  '* modules - Build all modules'
	@echo  ' modules_install - Install all modules to INSTALL_MOD_PATH (default: /)'
	@echo  ' firmware_install- Install all firmware to INSTALL_FW_PATH'
	@echo  ' (default: $$(INSTALL_MOD_PATH)/lib/firmware)'
	@echo  ' dir/ - Build all files in dir and below'
	@echo  ' dir/file.[oisS] - Build specified target only'
	@echo  ' dir/file.lst - Build specified mixed source/assembly target only'
	@echo  ' (requires a recent binutils and recent build (System.map))'
	@echo  ' dir/file.ko - Build module including final link'
	@echo  ' modules_prepare - Set up for building external modules'
	@echo  ' tags/TAGS - Generate tags file for editors'
	@echo  ' cscope - Generate cscope index'
	..........................................

相信你已经看到这个定义和执行对应命令时控制台的打印是一致的。

总结
通过对help目标的学习,相信您已经了解一个kbuild的单个目标是如何运作起来的了。和我们平时见到的最简单的makefile结构类似,没有什么大的差别。
虽然kbuild编译系统比较复杂,但是再复杂的结构都可以将其拆分成若干个简单的组成部分,在此基础上再去逐个了突破,逐渐就可以揭开看似神秘的面纱。相信你也可以通过不断探索,掌握这个这看似复杂的kbuild编译系统。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  bgxXjYYEVSxV   2024年05月17日   44   0   0 嵌入式
  bgxXjYYEVSxV   2024年05月17日   62   0   0 嵌入式
  swCWDMUCSvaI   2024年05月17日   54   0   0 嵌入式
  jEmNNF9D14iz   2024年05月17日   42   0   0 嵌入式
I2C
  bgxXjYYEVSxV   2024年05月17日   60   0   0 嵌入式
  jEmNNF9D14iz   2024年05月17日   41   0   0 嵌入式
  jEmNNF9D14iz   2024年05月17日   52   0   0 嵌入式
  jEmNNF9D14iz   2024年05月17日   47   0   0 嵌入式
PWM
  bgxXjYYEVSxV   2024年05月17日   46   0   0 嵌入式
arzjoav93H4m