首页 > 解决方案 > 有没有办法验证给定的目标在makefile中被标记为.PHONY?

问题描述

我在不同的项目中有一堆 make 文件,我想根据所有目标的某些标准进行验证,或者目标列表标记为 .PHONY。

我不确定这样的测试是否已经存在,或者是否有可能引入一个?

标签: gnu-make

解决方案


据我所知,没有。

make/gmake本身没有打印它的功能。

make但是,很容易从的依赖/目标数据库输出中找出自己:

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“伪”目标的目标。

然后,您可以随心所欲地使用该列表:)


推荐阅读