Команды в файле makefile
Блок описания или правило вывода указывает блок команд для выполнения, если зависимость устарела. NMAKE отображает каждую команду перед выполнением, если /S
.SILENT
не используется или @
!CMDSWITCHES
не используется. NMAKE ищет соответствующее правило вывода, если блок описания не следует блоку команд.
Блок команд содержит одну или несколько команд, каждая из которых имеет собственную строку. Пустая строка не может отображаться между зависимостью или правилом и блоком команд. Однако строка, содержащая только пробелы или вкладки, может отображаться; эта строка интерпретируется как команда NULL, и ошибка не возникает. Пустые строки разрешены между командными строками.
Командная строка начинается с одного или нескольких пробелов или вкладок. Обратная косая черта (\
), за которой следует символ новой строки, интерпретируется как пробел в команде. Используйте обратную косую черту в конце строки, чтобы продолжить команду в следующей строке. NMAKE интерпретирует обратную косую черту буквально, если любой другой символ, включая пробел или вкладку, следует обратной косой черте.
Команда, предшествуемая точке с запятой (;
) может отображаться в строке зависимостей или правиле вывода, независимо от того, следует ли блок команд:
project.obj : project.c project.h ; cl /c project.c
Модификаторы команд
Можно указать один или несколько модификаторов команд, предшествующих команде, при необходимости разделенных пробелами или вкладками. Как и в командах, модификаторы должны быть отступлены.
Модификатор | Характер использования |
---|---|
@ command |
Запрещает отображение команды. Отображение по командам не подавляется. По умолчанию NMAKE повторяет все выполняемые команды. Используется /S для подавления отображения для всего файла makefile; используется .SILENT для подавления отображения для части файла makefile. |
- [число] команда |
Отключает проверку ошибок для команды. По умолчанию NMAKE останавливается, когда команда возвращает ненулевой код выхода. Если используется значение -number , NMAKE останавливается, если код выхода превышает число. Пробелы или вкладки не могут отображаться между тире и числом. Между номером и командой должен отображаться по крайней мере одно пространство или вкладка. Используется /I для отключения проверки ошибок для всего файла makefile; используется .IGNORE для отключения проверки ошибок для части файла makefile. |
! команда |
Выполняет команду для каждого зависимого файла, если команда использует $** (все зависимые файлы в зависимости) или $? (все зависимые файлы в зависимости с последующей меткой времени, чем целевой объект). |
Обозначение компонентов имени файла
Синтаксис файловых частей в командах представляет компоненты первого зависимого имени файла (который может быть подразумеваемым зависимым). Компоненты имени файла — это диск, путь, базовое имя и расширение, а не как оно существует на диске. Используется %s
для представления полного имени файла. Используйте %|
[части]F
(символ вертикальной полосы следует символу процента) для представления частей имени файла, где части могут быть ноль или более следующих букв в любом порядке.
Буква | Description |
---|---|
Нет буквы | Полное имя (то же, что %s и ) |
d |
Диск |
p |
Путь |
f |
Имя базы файлов |
e |
Расширение файла |
Например, если имя файла равно c:\prog.exe
:
%s
заменяется наc:\prog.exe
.%|F
заменяется наc:\prog.exe
.%|dF
заменяется наc
.%|pF
заменяется наc:\
.%|fF
заменяется наprog
.%|eF
заменяется наexe
.
Дополнительные сведения
Встроенные файлы в файле makefile