Makefile中对目标的可选依赖性



是否可以在Makefile(GNUMake(中创建对目标的可选依赖?

help:
@echo Usage:
clean:
@echo Cleaning...
build: clean?
@echo Building...

预期输出:

$ make
Usage:
$ make clean
Cleaning...
$ make build
Building...
$ make build clean
Cleaning...
Building...
$ make clean build
Cleaning...
Building...

目标集是固定的并且不能扩展,即

rebuild: clean build
.PHONY: rebuild

不可接受。

是的,您可以这样做:

build: $(filter clean,$(MAKECMDGOALS))
@echo Building...

请参阅:https://www.gnu.org/software/make/manual/html_node/Goals.html和https://www.gnu.org/software/make/manual/html_node/Text-Functions.html#index-过滤

最新更新