【linux-5.15.163】【编译】【makefile】linux 内核顶层makefile解析

Makefile常用函数及特殊变量
Makefile 中的 -f -g等的含义
Makefile中4种赋值运算符

__all scripts_basic outputmakefile all bzImage bzdisk fdimage fdimage144 fdimage288 hdimage
isoimage install vdso_install prepare0 autoksyms_recursive scripts prepare archprepare
remove-stale-files asm-generic uapi-asm-generic headerdep headers_install archheaders
archscripts headers headers_check scripts_unifdef resolve_btfids_clean kselftest
kselftest-merge scripts_dtc dt_binding_check modules modules_prepare modules_sign
__modinst_pre archclean vmlinuxclean _mrproper_scripts mrproper distclean help xmldocs
latexdocs pdfdocs htmldocs epubdocs cleandocs linkcheckdocs dochelp refcheckdocs
scripts_gdb modules modules_install modules_check descend init usr arch/x86 kernel certs
mm fs ipc security crypto block io_uring drivers sound samples net virt arch/x86/pci
arch/x86/power arch/x86/video lib arch/x86/lib _clean_Documentation _clean_arch/x86
_clean_arch/x86/lib _clean_arch/x86/math-emu _clean_arch/x86/pci _clean_arch/x86/power
_clean_arch/x86/video _clean_block _clean_certs _clean_crypto _clean_drivers _clean_fs
_clean_init _clean_io_uring _clean_ipc _clean_kernel _clean_lib _clean_mm _clean_net
_clean_samples _clean_security _clean_sound _clean_usr _clean_virt clean nsdeps clang-tidy
clang-analyzer includecheck versioncheck coccicheck export_report checkstack kernelrelease
kernelversion image_name FORCE

1、__all

__all 是 Make 文件的第一个目标,也是默认目标

target ... : prerequisites ...
command

ifeq ($(KBUILD_EXTMOD),)
__all: all
else
__all: modules
endif

target : 是一个目标文件,可以是任意的实际文件,也可以是一个标签;
prerequisites: 是生成目标文件所依赖的文件或目标;
command: 生成目标的命令或者规则,依赖文件通过一定的规则生成目标文件;

这是一个文件的依赖关系,也就是说,target这一个或多个的目标文件依赖于prerequisites中的文件,其生成规则定义在command中。说白一点就是说,prerequisites中如果有一个以上的文件比target文件要新的话,command所定义的命令就会被执行。这就是Makefile的规则。也就是Makefile中最核心的内容。
在 makefile 中,第一个目标被认为是默认目标

2、scripts_basic

scripts_basic:
	$(Q)$(MAKE) $(build)=scripts/basic

Q 是由命令行 V 控制用来表示要不要打印 Q 后面的编译命令
MAKE 特殊环境变量即 make
build 定义在 scripts/Kbuild.include

build := -f $(srctree)/scripts/Makefile.build obj
make -f $(srctree)/scripts/Makefile.build obj=scripts/basic
  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值