После 10-08-2013 (254273) в составе
FreeBSD 10-CURRENT и более новых версий имеется собственный
iconv. В более ранних версиях
дополнительной зависимостью выступал
converters/libiconv.
Для программного обеспечения, которому нужен
iconv, определите
USES=iconv. Версии FreeBSD до 10-CURRENT от
13-08-2013 (254273) не имеют
собственного iconv. На этих более ранных
версиях будет автоматически добавлена зависимость от
converters/libiconv.
Когда порт задаёт USES=iconv, становятся
доступными следующие переменные:
| Имя переменной | Назначение | Значение до FreeBSD 10-CURRENT 254273 (13-08-2013) | Значение после FreeBSD 10-CURRENT 254273 (13-08-2013) |
|---|---|---|---|
ICONV_CMD | Каталог размещения двоичного файла
iconv | ${LOCALBASE}/bin/iconv | /usr/bin/iconv |
ICONV_LIB | Аргумент ld для компоновки с
libiconv (если нужно) | -liconv | (пусто) |
ICONV_PREFIX | Каталог размещения реализации
iconv (используется для сценариев
конфигурации) | ${LOCALBASE} | /usr |
ICONV_CONFIGURE_ARG | Параметр предварительно собранной конфигурации для сценариев конфигурации | --with-libiconv-prefix=${LOCALBASE} | (пусто) |
ICONV_CONFIGURE_BASE | Параметр предварительно собранной конфигурации для сценариев конфигурации | --with-libiconv=${LOCALBASE} | (пусто) |
В следующих двух примерах демонстрируется автоматическое
присвоение переменным правильных значений для систем,
использующих converters/libiconv
или собственный iconv.
Как показано выше, ICONV_LIB имеет
пустое значение с собственным iconv. Эту
особенность можно использовать для обнаружения собственного
iconv с соответствующими действиями.
Иногда в программе параметр ld или путь
поиска жёстко заданы в Makefile или
сценарии конфигурации. Для решения этой проблемы можно
использовать следующий подход:
-liconvUSES= iconv
post-patch:
@${REINPLACE_CMD} -e 's/-liconv/${ICONV_LIB}/' ${WRKSRC}/MakefileВ некоторых случаях необходимо установить альтернативные
значения или выполнить операции в случае использования
собственного iconv. Перед проверкой
значения ICONV_LIB обязан быть подключён
bsd.port.pre.mk:
iconvUSES= iconv
.include <bsd.port.pre.mk>
post-patch:
.if empty(ICONV_LIB)
# обнаружен собственный iconv
@${REINPLACE_CMD} -e 's|iconv||' ${WRKSRC}/Config.sh
.endif
.include <bsd.port.post.mk>Этот, и другие документы, могут быть скачаны с http://ftp.FreeBSD.org/pub/FreeBSD/doc/.
По вопросам, связанным с FreeBSD, прочитайте
документацию прежде чем писать в
<questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку
<doc@FreeBSD.org>.