访问一个规则与另一个规则的依赖关系

时间:2013-12-13 15:54:46

标签: function makefile gnu-make

我们正在努力让我们的makefile自我记录,并希望能够做类似

的事情
make targets

并列出用户可能想要使用的目标。作为其中一部分,我们希望显示所有.PHONY目标。有没有办法从另一个规则获得一个目标(特别是.PHONY)的先决条件?

我希望能够做类似

的事情
.PHONY: clean build

targets:
   @echo $(prerequisites .PHONY)

然后将其作为

运行
$ make targets
clean build

我们正在使用GNU make,但如果可能的话,我更喜欢与其他make一起使用的解决方案。

这可能吗?

1 个答案:

答案 0 :(得分:1)

不,这在GNU make中是不可能的,当然也不是在通用make中。如果变量中有目标,则可以保留列表,然后使用变量两次:

PHONY = clean build

.PHONY: $(PHONY)

targets:
        @echo $(PHONY)

就是这样。