Поделиться через


Директивы предварительной обработки файла makefile

Препроцессорные директивы в этом случае не учитываются. Начальный восклицательный знак (!) находится в начале строки. Ноль или более пробелов или знаков табуляции могут появляться после знака восклицания для отступа абзаца.

  • !CMDSWITCHES
    {+| }параметр... Включает каждый параметр, включенный или выключенный. Пробелы и знаки табуляции должны появляться перед оператором + или – ; ничего не должно быть между оператором и буквами параметра. Буквы нечувствительны к регистру и указаны без слэша ( / ). Чтобы включить или выключить несколько параметров, используйте отдельные спецификации !CMDSWITCHES.

    Только /D, /I, /N и /S могут быть использованы в makefile. В Tools.ini все параметры разрешают исключения /F, /HELP, /NOLOGO, /X и /?. Изменения, указанные в блоке описаний, являются неэффективными до следующего блока описаний. Эта директива обновляет MAKEFLAGS; изменения наследуются путем рекурсии, если указан MAKEFLAGS.

  • !ERROR текст
    Отображает text ошибки U1050, затем останавливает NMAKE, даже if /K, /I, .IGNORE, !CMDSWITCHES, или используется знак тире (–) командного модификатора. Игнорируются пробелы или знаки табуляции перед text.

  • !MESSAGE текст
    Отображает text для стандартного вывода. Игнорируются пробелы или знаки табуляции перед text.

  • !INCLUDE[ <] filename[ >]
    Читает filename как makefile, затем продолжает работать с текущим файлом makefile. NMAKE ищет первый filename в указанной или текущей директории, затем рекурсивно через директории любого родителя makefiles, затем, если filename заключено в угловые скобки (< >), в директориях, указанных в макросе INCLUDE, который первоначально установлен для переменной INCLUDE среды. Полезно передать параметры .SUFFIXES, .PRECIOUS и правила наследования по рекурсии файлу makefiles.

  • !IF constantexpression
    Обрабатывает операторы между !IF и следующим !ELSE или !ENDIF, если constantexpression достигает ненулевого значения.

  • !IFDEF имя_макроса
    Обрабатывает операторы между !IFDEF и следующим !ELSE или !ENDIF, если macroname определено. Нулевой макрос считается определенным.

  • !IFNDEF имя_макроса
    Обрабатывает операторы между !IFNDEF и следующим !ELSE или !ENDIF, если macroname определено.

  • !ELSE[IF константное_выражение | IFDEF имя_макроса| IFNDEF имя_макроса]
    Обрабатывает операторы между !ELSE и следующим !ENDIF, если предыдущий оператор !IF, !IFDEF или !IFNDEF был равен нулю. Дополнительные ключевые слова позволяют управлять препроцессорной обработкой.

  • !ELSEIF
    Синоним для !ELSE IF.

  • !ELSEIFDEF
    Синоним для !ELSE IFDEF.

  • !ELSEIFNDEF
    Синоним для !ELSE IFNDEF.

  • !ENDIF
    Отмечает конец блока !IF, !IFDEF или !IFNDEF. Любой текст после !ENDIF, находящийся на той же самой строке, игнорируется.

  • !UNDEF имя_макроса
    Отменяет macroname.

См. также

Основные понятия

Предварительная обработка файла makefile