Function 从一个规则访问另一个规则的依赖项

Function 从一个规则访问另一个规则的依赖项,function,makefile,gnu-make,Function,Makefile,Gnu Make,我们正试图让我们的makefile能够自我记录,并希望能够像这样做 make targets .PHONY: clean build targets: @echo $(prerequisites .PHONY) 并让它列出用户可能想要使用的目标。作为其中的一部分,我们希望显示所有.PHONY目标。有没有办法从另一条规则中获取一个目标(.PHONY)的先决条件 我希望能做一些类似的事情 make targets .PHONY: clean build targets: @ec

我们正试图让我们的makefile能够自我记录,并希望能够像这样做

make targets
.PHONY: clean build

targets:
   @echo $(prerequisites .PHONY)
并让它列出用户可能想要使用的目标。作为其中的一部分,我们希望显示所有
.PHONY
目标。有没有办法从另一条规则中获取一个目标(
.PHONY
)的先决条件

我希望能做一些类似的事情

make targets
.PHONY: clean build

targets:
   @echo $(prerequisites .PHONY)
然后将其作为

$ make targets
clean build
我们正在使用GNU make,但如果可能的话,我们更愿意使用与其他make一起使用的解决方案


这是可能的吗?

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

PHONY = clean build

.PHONY: $(PHONY)

targets:
        @echo $(PHONY)

就是这样。

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

PHONY = clean build

.PHONY: $(PHONY)

targets:
        @echo $(PHONY)
就这样