有没有办法验证给定目标是否在 makefile 中标记为 .PHONY?
Is there a way to verify that given targets are marked .PHONY in makefile?
我在不同的项目中有一堆 make 文件,我想根据所有目标的某些标准或目标列表标记为 .PHONY。
我不确定这样的测试是否已经存在或者是否可以引入一个?
据我所知,没有。
make
/ gmake
本身没有打印的功能。
但是,很容易从 make
的 dependency/target 数据库输出中找到自己:
make -nsp --no-print-directory --always-make
||| | |
||| | run, no matter whether
||| | parts have already been built
||| |
||| don't print the directory structure
|||
||\--- print the database
|\---- be silent, otherwise
\----- don't actually build anything
打印出 make
计算出的所有目标。
make -nsp --no-print-directory --always-make | grep -E '^\.PHONY:'
打印所有依赖于.PHONY
“伪”目标的目标。
然后您可以随心所欲地处理该列表:)
我在不同的项目中有一堆 make 文件,我想根据所有目标的某些标准或目标列表标记为 .PHONY。
我不确定这样的测试是否已经存在或者是否可以引入一个?
据我所知,没有。
make
/ gmake
本身没有打印的功能。
但是,很容易从 make
的 dependency/target 数据库输出中找到自己:
make -nsp --no-print-directory --always-make
||| | |
||| | run, no matter whether
||| | parts have already been built
||| |
||| don't print the directory structure
|||
||\--- print the database
|\---- be silent, otherwise
\----- don't actually build anything
打印出 make
计算出的所有目标。
make -nsp --no-print-directory --always-make | grep -E '^\.PHONY:'
打印所有依赖于.PHONY
“伪”目标的目标。
然后您可以随心所欲地处理该列表:)