Эффективное использование GNU Make

Новый способ задания шаблонных правил


В "традиционных" вариантах make шаблонное правило задается с помощью конструкций, наподобие: .cpp.o: gcc $^ -o $@ То есть под действие правила попадают файлы с определенными расширениями (".cpp" и ".o" в данном случае).

GNU Make поддерживает более универсальный подход - с использованием шаблонов имен файлов. Для задания шаблона используется символ '%', который означает "последовательность любых символов произвольной длины". Символ '%' в правой части правила заменяется текстом, который соответствует символу '%' в левой части. Пользуясь новой формой записи, приведенный выше пример можно записать так: %.o: %.cpp gcc $^ -o $@

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

Содержание раздела