linux 内核 Makefile 中的 .PHONY
.PHONY in linux kernel Makefile
我从 Linux kernel.In 文件 /scripts/Makefile.build
学习 Makefile,它以
开头
PHONY := __build
__build:
#Init all relevant variables
obj-y :=
obj-m :=
lib-y :=
...
在第二行,__build
没有 dependency.In 文件的后半部分,__build
有这样的依赖关系:
__build: $(if $(KBUILD_BUILTIN),$(builtin-target) $(lib-target) $(extra-y)) \
$(if $(KBUILD_MODULES),$(obj-m) $(modorder-target)) \
$(subdir-ym) $(always)
@:
第二行看似无意义的是什么意思?固定格式?
一种可能是 make 总是构建它在 makefile 中找到的第一个显式目标,除非您在命令行上请求不同的目标。
将 __build
目标的这条语句放在 makefile 的顶部可能是为了确保如果您 运行 make
没有其他参数,它将尝试构建 __build
目标,而不管在下面 __build
的“真实”定义之前可能定义了哪些其他目标。
我从 Linux kernel.In 文件 /scripts/Makefile.build
学习 Makefile,它以
PHONY := __build
__build:
#Init all relevant variables
obj-y :=
obj-m :=
lib-y :=
...
在第二行,__build
没有 dependency.In 文件的后半部分,__build
有这样的依赖关系:
__build: $(if $(KBUILD_BUILTIN),$(builtin-target) $(lib-target) $(extra-y)) \
$(if $(KBUILD_MODULES),$(obj-m) $(modorder-target)) \
$(subdir-ym) $(always)
@:
第二行看似无意义的是什么意思?固定格式?
一种可能是 make 总是构建它在 makefile 中找到的第一个显式目标,除非您在命令行上请求不同的目标。
将 __build
目标的这条语句放在 makefile 的顶部可能是为了确保如果您 运行 make
没有其他参数,它将尝试构建 __build
目标,而不管在下面 __build
的“真实”定义之前可能定义了哪些其他目标。