Makefile: шаблон сопоставления с любым шаблоном - PullRequest
0 голосов
/ 09 мая 2018

У меня есть основной Makefile, который вызывает Makefile, помещенные в подпапки. В целях тестирования я хотел бы добавить правило Match-Anything в конец основного файла Makefile. Это правило будет:

%:
     make -e -C subdir $@

Есть ли какие-либо противоречия для такого правила?

1 Ответ

0 голосов
/ 09 мая 2018

Я думаю, что вы имели в виду «против», как в «за или против», а не «продолжение». «Con» - это сокращение от латинского «contra».

По вашему вопросу, недостатком добавления нового правила "сопоставить что-либо" является то, что любой файл, который не существует, попытается создать с использованием этого правила. Например, предположим, что вы запускаете include foo.mk, а foo.mk не существует ... make попытается собрать foo.mk, выполнив ваше правило. В принципе это может сбивать с толку. Возможно, это может повлиять на производительность. если вы запустите make -d и исследуете его, вы должны увидеть, используется ли вообще правило соответствия чему-либо во время обычной сборки. Я не уверен, есть ли другие серьезные недостатки.

Между прочим, вы всегда должны использовать только переменную make $(MAKE) при вызове подкоманды в рецепте; никогда не используйте команду raw make.

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