Утилита make автоматически определяет, какие части программы должны быть перекомпилированы и вызывает команды для их перекомпиляции. Наиболее часто make используется для компиляции C-программ и содержит особенности, ориентированные именно на такие задачи, но можно использовать make с любым языком программирования. Более того, применение утилиты make не ограничивается программами. Можно использовать еe для автоматизации любой задачи, где некоторые файлы должны автоматически порождаться из других.
Прежде чем использовать make, необходимо создать файл, называемый make-файлом, который описывает отношения зависимости между исходными и результирующими файлами и содержит команды для пересборки результирующих файлов. В C++ исполняемый файл зависит от объектных файлов, которые, в свою очередь, зависят от исходных файлов и файлов заголовков.
Для make-файлов зарезервированы имена GNUmakefile, makefile и Makefile, причем поиск идет в указанном порядке. Если необходимо использовать нестандартное имя, то его можно передать явно через опцию -f.
Когда make-файл уже написан, для сборки проекта достаточно выполнить в каталоге, где он находится, команду make.
Простой make-файл состоит из правил (инструкций) следующего вида:
ПЕРЕМЕННАЯ = ЗНАЧЕНИЕ
ЦЕЛЬ1 ... : [ЗАВИСИМОСТЬ ...]
КОМАНДА 1
КОМАНДА 2
ЦЕЛЬ2 ... : [ЗАВИСИМОСТЬ ...]
КОМАНДА 1
КОМАНДА 2
...
Синтаксис:
make [Опции] [Переменная='abc'] [Цель]
Квадратные скобки означают необязательность присутствия данной части.
Опции: