Применение команд в файле описания make

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

Команды могут задаваться либо в строке взаимосвязей после двоеточия, либо в строках, начинающихся с символа табуляции, которые следуют непосредственно за строкой взаимосвязей.

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

Если для создания целевого файла будет применяться одна последовательность команд, укажите одно двоеточие после имени целевого файла в строке взаимосвязей. Например:

test:        список-взаимосвязей-1...
         список-команд...
            .
            .
            .
test:        список-взаимосвязей-2...

задается имя целевого файла (test), набор родительских файлов и набор команд для создания файла. Для целевого файла test может быть задан и другой список взаимосвязей. Однако для этого имени нельзя будет указать другой список команд. Если будет изменен один из файлов, от которых зависит файл test, команда make создаст целевой файл test, выполнив команды из заданного списка.

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

test::      список-взаимосвязей-1...
         список-команд-1...
test::      список-взаимосвязей-2...
         список-команд-2...

Этот файл определяет два способа создания целевого файла с именем test. При изменении файлов из списка-взаимосвязей-1 команда make выполняет команды из списка-команд-1. При изменении файлов из списка-взаимосвязей-2 команда make выполняет команды из списка-команд-2. Во избежание конфликтов родительский файл не должен присутствовать ни в одном из списков взаимосвязей.

Примечание: команда make передает команды из каждой командной строки в новую оболочку. Будьте внимательны при использовании команд, которые зависят от процесса оболочки, например, команды cd и команд оболочки. Команда make не сохранит результат выполнения этих команд до выполнения команды, указанной в следующей строке файла описания.

Для объединения двух строк файла в одну командную строку, укажите в конце первой строки файла символ \ (обратную косую черту). Команда make объединит две строки в одну и передаст их в одну и ту же оболочку.