Após 2013-10-08 (254273), o FreeBSD 10-CURRENT e as versões mais recentes têm um iconv
nativo no sistema operacional. Em versões anteriores, o converters/libiconv era usado como dependência.
Para softwares que precisam do iconv
, defina USES=iconv
. As versões do FreeBSD antes do 10-CURRENT em 2013-08-13 (254273) não tem um iconv
nativo. Nestas versões anteriores, uma dependência do converters/libiconv será adicionada automaticamente.
Quando um port define USES=iconv
, estas variáveis estarão disponíveis:
Nome da variável | Propósito | Valor antes do FreeBSD 10-CURRENT 254273(2013-08-13) | Valor após o FreeBSD 10-CURRENT 254273(2013-08-13) |
---|---|---|---|
ICONV_CMD | Diretório onde o binário iconv reside | ${LOCALBASE}/bin/iconv | /usr/bin/iconv |
ICONV_LIB | argumento do ld para vincular ao libiconv (se necessário) | -liconv | (vazio) |
ICONV_PREFIX | Diretório onde a implementação do iconv reside (útil para configurar scripts) | ${LOCALBASE} | /usr |
ICONV_CONFIGURE_ARG | Argumento de configuração pré-configurado para scripts de configuração. | --with-libiconv-prefix=${LOCALBASE} | (vazio) |
ICONV_CONFIGURE_BASE | Argumento de configuração pré-configurado para scripts de configuração. | --with-libiconv=${LOCALBASE} | (vazio) |
Esses dois exemplos preenchem automaticamente as variáveis com o valor correto para sistemas usando respectivamente o converters/libiconv ou o iconv
nativo:
Como mostrado acima, a variável ICONV_LIB
estará vazia quando um iconv
nativo estiver presente. Isso pode ser usado para detectar o iconv
nativo e responder adequadamente.
Às vezes um programa tem um argumento ld
ou caminho de pesquisa codificado em um Makefile
ou no script configure. Essa abordagem pode ser usada para resolver esse problema:
-liconv
USES= iconv post-patch: @${REINPLACE_CMD} -e 's/-liconv/${ICONV_LIB}/' ${WRKSRC}/Makefile
Em alguns casos, é necessário definir valores alternativos ou executar operações dependendo se há um iconv
nativo. O bsd.port.pre.mk
deve ser incluído antes de testar o valor de ICONV_LIB
:
iconv
NativoUSES= iconv .include <bsd.port.pre.mk> post-patch: .if empty(ICONV_LIB) # native iconv detected @${REINPLACE_CMD} -e 's|iconv||' ${WRKSRC}/Config.sh .endif .include <bsd.port.post.mk>
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.