logo
Подбельский Фомин_Программирование на языке СИ_

Встроенные правила.

Встроенные правила. В процессе выполнения команда make использует набор так называемых встроенных правил. Одним из подмножеств этого набора являются правила автоматического установления взаимосвязей между файлами по суффиксам их имен. Например, когда в команде make в качестве параметра задано имя файла с суффиксом '.с', автоматически выполняется вызов компилятора языка Си, который строит исполняемый модуль из исходного модуля, находящегося в заданном файле. Таблицу встроенных правил команды make, соответствующих конкретной реализации UNIX, можно найти в документации по операционной системе. Здесь стандартные встроенные правила мы рассматривать не будем.

Программист может изменить встроенное правило, для чего новый вариант правила необходимо включить в файл описаний зависимостей, т.е. во входные данные для make.

Простейшее правило, описывающее процедуру подготовки исполняемого модуля из исходного модуля (расширение имени 'с', суффикс имени '.с'), будет выглядеть так:

где $@ - внутренний макрос команды make, предназначенный для спецификации полного имени целевого файла;

$* - внутренний макрос, определяющий префикс имени файла.

Это правило, включенное в файл описаний зависимостей модулей, заменит внутреннее правило команды make для суффикса '.с'

Если теперь ввести команду make с указанием имени целевого файла (исполняемой программы)

то исходный файл prog.c будет скомпилирован, а исполняемый модуль получит имя prog.

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