Программирование PC Функции, управляющие поведением make: error, warning, info, exit Sat, December 21 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Функции, управляющие поведением make: error, warning, info, exit Печать
Добавил(а) microsin   

От следующих функций зависит, как будет работать make. Обычно они используются для предоставления информации пользователям Makefile, или могут привести к остановке процесса сборки при обнаружении какой-либо ошибки в окружении (см. "8.13 Functions That Control Make" [1]), либо для безусловной остановки.

$(error text_message...)

Генерирует фатальную ошибку с сообщением в строке text_message. Обратите внимание, что ошибка генерируется при каждом вычислении этой функции. Таким образом, если вы поместите функцию $(error ...) внутри операторов цели (recipes, см. [3]), или в правой части рекурсивного присваивания переменной, то она не будет вычислена, пока обработка не будет развернута до конца. Текст сообщения будет расширен до момента генерации ошибки.

Например,

    ifdef ERROR1
    $(error error is $(ERROR1))
endif

... сгенерирует фатальную ошибку во время чтения makefile, если определена make-переменная ERROR1. Или,

    ERR = $(error found an error!)
.PHONY: err err: ; $(ERR)

... сгенерирует фатальную ошибку при работе make, если была вовлечена err target.

$(warning text_message...)

Эта функция работает подобно функции error, показанной выше, за исключением того, что она не приводит к остановке работы make. Вместо этого будет расширено text_message, и будет отображено соответствующее сообщение, но обработка makefile при этом продолжится.

Результатом расширения этой функции будет пустая строка.

$(info text_message...)

Эта функция просто печатает содержимое своего текстового (расширенного) аргумента (аргументов) в stdout. Никакие имена makefile или номера строк не добавляются. Результатом расширения этой функции будет пустая строка.

exit [код_статуса]

Это обычный оператор операционной системы, который может использоваться в синтаксисе последовательности операторов цели (recipes, см. [3]). Он немедленно завершит работу make со статусом возврата, переданном в аргументе exit.

[Ссылки]

1. GNU make.
2Магия makefile на простых примерах.
3Makefile: синтаксис команд цели (recipe syntax).

 

Добавить комментарий


Защитный код
Обновить

Top of Page