Директивы предварительной обработки файла makefile
Обновлен: Ноябрь 2007
Препроцессорные директивы в этом случае не учитываются. Начальный восклицательный знак (!) находится в начале строки. Ноль или более пробелов или знаков табуляции могут появляться после знака восклицания для отступа абзаца.
!CMDSWITCHES
{+| –}option... Включает каждый параметр, включенный или выключенный. Пробелы и знаки табуляции должны появляться перед оператором + или – ; ничего не должно быть между оператором и буквами параметра. Буквы нечувствительны к регистру и указаны без слэша ( / ). Чтобы включить или выключить несколько параметров, используйте отдельные спецификации !CMDSWITCHES.Только /D, /I, /N и /S могут быть использованы в makefile. В Tools.ini все параметры разрешают исключения /F, /HELP, /NOLOGO, /X и /?. Изменения, указанные в блоке описаний, являются неэффективными до следующего блока описаний. Эта директива обновляет MAKEFLAGS; изменения наследуются путем рекурсии, если указан MAKEFLAGS.
!ERRORtext
Отображает text ошибки U1050, затем останавливает NMAKE, даже if /K, /I, .IGNORE, !CMDSWITCHES, или используется знак тире (–) командного модификатора. Игнорируются пробелы или знаки табуляции перед text.!MESSAGEtext
Отображает text для стандартного вывода. Игнорируются пробелы или знаки табуляции перед text.!INCLUDE[ <] filename[ >]
Читает filename как makefile, затем продолжает работать с текущим файлом makefile. NMAKE ищет первый filename в указанной или текущей директории, затем рекурсивно через директории любого родителя makefiles, затем, если filename заключено в угловые скобки (< >), в директориях, указанных в макросе INCLUDE, который первоначально установлен для переменной INCLUDE среды. Полезно передать параметры .SUFFIXES, .PRECIOUS и правила наследования по рекурсии файлу makefiles.!IFconstantexpression
Обрабатывает операторы между !IF и следующим !ELSE или !ENDIF, если constantexpression достигает ненулевого значения.!IFDEFmacroname
Обрабатывает операторы между !IFDEF и следующим !ELSE или !ENDIF, если macroname определено. Нулевой макрос считается определенным.!IFNDEFmacroname
Обрабатывает операторы между !IFNDEF и следующим !ELSE или !ENDIF, если macroname определено.!ELSE[IF constantexpression | IFDEF macroname| IFNDEF macroname]
Обрабатывает операторы между !ELSE и следующим !ENDIF, если предыдущий оператор !IF, !IFDEF или !IFNDEF был равен нулю. Дополнительные ключевые слова позволяют управлять препроцессорной обработкой.!ELSEIF
Синоним для !ELSE IF.!ELSEIFDEF
Синоним для !ELSE IFDEF.!ELSEIFNDEF
Синоним для !ELSE IFNDEF.!ENDIF
Отмечает конец блока !IF, !IFDEF или !IFNDEF. Любой текст после !ENDIF, находящийся на той же самой строке, игнорируется.!UNDEFmacroname
Отменяет macroname.