Как повторить одно и то же условие в целевом файле Makefile? - PullRequest
0 голосов
/ 08 мая 2020

Я хочу сделать что-то подобное в Makefile (с дополнительными задачами):

.PHONY: sep tasks task1 task2 task3

tasks: task1 sep task2 sep task3

task1:
    @echo task 1

task2:
    @echo task 2

task3:
    @echo task 3

sep:
    @echo

Результат цели tasks:

task 1

task 2
task 3

Цель sep выполняется только в первый раз. Это совершенно нормально. Но я хочу, чтобы это выполнялось каждый раз. Есть ли способ принудительного повторения?

Обходной путь - использовать несколько sep целей, например:

tasks: task1 sep1 task2 sep2 task3

, а с определением сгруппированных целей все sep могут быть определяется за один раз:

sep1 sep2 &:
    @echo

Результат правильный:

task 1

task 2

task 3

Я хочу знать, можно ли иметь такое же поведение только с одним sep и принудительно повторение этого условия.

1 Ответ

2 голосов
/ 08 мая 2020

Это невозможно. Невозможно заставить make создавать одну и ту же цель более одного раза за один вызов make.

В любом случае, полагаться на этот порядок неверно: если вы когда-либо хотели использовать параллельные задания (make -j) для позвольте вашей сборке работать быстрее, тогда это не будет делать то, что вы хотели.

Лучше всего просто вставить «sep» в рецепты для целей:

task1:
        @echo
        @echo task 1

и c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...