12.16. Избегайте использования конструкции `.error`
Пред. | Глава 12. Что делать нужно, и что делать нельзя | След.

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

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

Использование для этих целей `.error` является распространенной ошибкой. Проблема в том, что в этой ситуации будут повреждены многие инструменты автоматизации, работающие с деревом портов. Наибольшим образом это распространено при попытке построить `/usr/ports/INDEX` (смотрите Раздел 9.1, «Запуск `make describe`»). Тем не менее, даже более простые команды, такие как `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

Пред. | Наверх | След.
12.15. Пометка порта на удаление с `DEPRECATED` или `EXPIRATION_DATE` | Начало | 12.17. Использование `sysctl`

Этот, и другие документы, могут быть скачаны с http://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку <doc@FreeBSD.org>.