configure.ac: não usando gettext


13

Estou tentando compilar um aplicativo gnome e estou curioso para saber o que significa saída quando executo o autogen.shscript:

~/Documents/Code/window-picker-applet $./autogen.sh
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal 
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --install --copy
libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
autoreconf: running: /usr/bin/autoconf
autoreconf: running: /usr/bin/autoheader
autoreconf: running: automake --add-missing --copy --no-force
data/Makefile.am:11: `%'-style pattern rules are a GNU make extension
data/Makefile.am:11: wildcard $(top_srcdir: non-POSIX variable name
data/Makefile.am:11: (probably a GNU make extension)
autoreconf: Leaving directory `.'
[Output trunkated...]

Por que estou recebendo as informações configure.ac: not using Gettext? Isso é um aviso e devo alterar alguns dos arquivos de configuração para corrigi-lo? Eu sei que o aplicativo tem uma po/pasta, então acho que deveria estar usando o Gettext, por isso estou confuso com esse aviso.

Também tive muitos avisos com a N_macro não sendo definida, portanto isso pode estar relacionado? [Update] Veja o comentário abaixo [/ Update]


O problema com as macros N_ não sendo definidas foi porque estava faltando a inclusão necessária (glib / gi18n.h). Isso já havia sido incluído em outro arquivo de inclusão (gtk / gtk.h), mas foi removido na versão mais recente do gtk +.
76012 lanoxx

Respostas:


1

Parece que você autogen.shestá ligando autoreconf.

Em intltoolvez disso, o projeto pode estar sendo usado, mas, se for o autoreconfcaso, atenda e ligue intltoolize. Se estiver definitivamente usando o GNU gettext, isso autopointé útil na página de informações:

O programa 'autopoint' copia arquivos de infraestrutura gettext padrão em um pacote de origem. Extrai de uma chamada de macro no formato 'AM_GNU_GETTEXT_VERSION (VERSION)', encontrado no arquivo 'configure.in' ou 'configure.ac' do pacote, a versão gettext usada pelo pacote, e copia os arquivos de infraestrutura pertencentes a esta versão no pacote.

E se escrevermos, AM_GNU_GETTEXT_VERSIONentão autopointé corretamente invocado por autoreconf.

Para extrair a infraestrutura disponível mais recente que satisfaça um requisito de versão, você pode usar o formulário 'AM_GNU_GETTEXT_REQUIRE_VERSION (VERSION)'. Por exemplo, se o gettext 0.19.8 estiver instalado no seu sistema e '0.19.1' for solicitado, os arquivos de infraestrutura da versão 0.19.8 serão copiados para um pacote de origem.

O problema só aparece ao mudar para esta versão da macro e, enquanto faz o que diz na lata, não é conhecido autoreconfe vemos um patch para suporte .

Os usuários do Gentoo podem obter o mesmo comportamento nos ebuilds usando nossa eautoreconffunção.

Escrever AM_GNU_GETTEXT_VERSIONe AM_GNU_GETTEXT_REQUIRE_VERSIONimediatamente depois sozinho configure.acgera um aviso, mas parece produzir o resultado desejado.


5

Qual SO?

Provavelmente, seu sistema não possui todo ou parte do sistema gettext, ou seja, as partes de desenvolvimento. Em muitas distribuições, por exemplo, Debian / Ubuntu, o gettext é separado em vários pacotes: gettext-basee gettext.

O gettext-basepacote é para executar programas que são multilíngües, enquanto gettextpossui as partes necessárias para a construção.


Estou executando no Ubuntu (11.10). O Gettext está instalado, mas não o gettext-base.
lanoxx

Estou lidando com o patch (via código src + ./configure) de uma plataforma antiga do Fedora com mais código, e estou enfrentando esse problema. A instalação do gettext e a re./configure no autoconf / autogen / m4 não ajudaram até agora. Percebo que o pkg-config não acha que o getttext está instalado. Mas noto que o pkg-config em sistemas mais modernos também não lista o gettext, mesmo quando o gettext-base está instalado.
quer
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.