Правильным способом подать сигнал для 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
Пред. | Начало | След. |
Пометка порта на удаление с DEPRECATED или EXPIRATION_DATE | Уровень выше | Использование sysctl |