18c0693f

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

Некоторые правила построения make-файлов:

Зависимости нужны не всегда и указываются по необходимости. Для простоты можно думать о зависимостях как о файлах, которые нужно проверить: если ни один не изменился, заново компилировать не нужно.

Когда цель — файл, этот файл должен быть перекомпилирован или перекомпонован, если изменилась любая из его зависимостей.

Любые зависимости, которые сами автоматически генерируются, должны обновляться первыми.

Правило, определяющее команды для цели, не обязательно должно иметь зависимости. Например, правило, содержащее команду удаления, связанную с целью clean, не имеет зависимостей.

В make-файле можно использовать переменные — они позволяют определять значения внутри файла через внешние источники. Ссылаться на переменные можно через $(NAME) или ${NAME}.

В утилите есть функции, манипулирующие текстовыми строками и именами файлов. Например, $(wildcard шаблон) возвращает список с названиями файлов, соответствующих шаблону, или $(patsubst шаблон поиска, шаблон замены, список слов) заменяет все слова в списке, которые соответствуют шаблону поиска в соответствии с шаблоном замены.