Необязательная зависимость от цели в Makefile - PullRequest
0 голосов
/ 29 апреля 2020

Можно ли создать дополнительную зависимость от цели в Makefile (GNU Make)?

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

недопустим.

1 Ответ

1 голос
/ 29 апреля 2020

Да, вы можете сделать это:

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 -фильтр

...