12.16. Избегайте использования конструкции .error

Правильным способом подать сигнал для Makefile о том, что порт не может быть установлен из-за какого-то внешнего фактора (например, пользователь указал недопустимую комбинацию опций построения), является установка непустого значения для IGNORE. Это значение будет сформатировано и показано пользователю во время make install.

Использование для этих целей .error является распространенной ошибкой. Проблема в том, что в этой ситуации будут повреждены многие инструменты автоматизации, работающие с деревом портов. Наибольшим образом это распространено при попытке построить /usr/ports/INDEX (смотрите Разд. 9.1). Тем не менее, даже более простые команды, такие как make maintainer, в этом случае также вернут ошибку. Это не является приемлемым.

Пример 12-1. Как избегать использование .error

Предположим, что кто-то поместил строку

USE_POINTYHAT=yes

в make.conf. Первый из последующих двух вариантов строк файла Makefile приведёт к неудачному завершению работы make index, а второй - нет:

.if USE_POINTYHAT
.error "POINTYHAT is not supported"
.endif
.if USE_POINTYHAT
IGNORE=POINTYHAT is not supported
.endif
По вопросам связанным с системой портов для FreeBSD, пишите по адресу <[email protected]>.
По вопросам, связанным с этой документацией, пишите по адресу <[email protected]>.