После 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
или
сценарии конфигурации. Для решения этой проблемы можно
использовать следующий подход:
-liconv
USES= iconv post-patch: @${REINPLACE_CMD} -e 's/-liconv/${ICONV_LIB}/' ${WRKSRC}/Makefile
В некоторых случаях необходимо установить альтернативные
значения или выполнить операции в случае использования
собственного iconv
. Перед проверкой
значения ICONV_LIB
обязан быть подключён
bsd.port.pre.mk
:
iconv
USES= 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>
Этот, и другие документы, могут быть скачаны с https://download.freebsd.org/ftp/doc/.
По вопросам, связанным с FreeBSD, прочитайте
документацию прежде чем писать в
<questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку
<doc@FreeBSD.org>.