Как получить список подцелей, попавших в make-файл? - PullRequest
1 голос
/ 29 марта 2020

У меня есть make-файл следующим образом:

all: target1
        @echo "$(USER)"

target1: target2
        @echo "$(HOME)"

target2:
        @echo "$(SHELL)"

Если я выполню make all, я получу некоторый вывод, как и ожидалось. Но есть ли способ узнать, какие цели были поражены при выполнении этой команды. В этом случае make all вызывается target1, target2. Если бы я сделал make target1, то вызвал бы только target2.

Одним из очень плохих решений, которое я сделал, было добавление выражения echo во все мои цели следующим образом:

all: target1
        @echo "Running $@"
        @echo "$(USER)"

target1: target2
        @echo "Running $@"
        @echo "$(HOME)"

target2:
        @echo "Running $@"
        @echo "$(SHELL)"

Есть ли любое хорошее решение без добавления таких отпечатков?

1 Ответ

0 голосов
/ 29 марта 2020

Прежде всего, когда вы запускаете

make target1

Сначала вы должны увидеть target2, а затем target1 ..

Если вы хотите увидеть, как make упорядочивает цели и выполняет их , вы можете запустить make -d.

В качестве альтернативы, если вы хотите видеть командные строки оболочки, которые выполняются без их фактического запуска, опция --dry-run существует, но не указывает фактические целевые имена.

...