configure.ac: non usando gettext


13

Sto cercando di compilare un'applicazione gnome e sono curioso di sapere cosa significhi l'output quando eseguo lo 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...]

Perché sto ricevendo le informazioni configure.ac: not using Gettext? È un avvertimento e dovrei modificare alcuni dei file di configurazione per risolverlo? So che l'applicazione ha una po/cartella, quindi penso che dovrebbe usare Gettext, quindi sono confuso su questo avviso.

Ho anche avuto molti avvisi con la N_macro non definita, quindi questo potrebbe essere correlato? [Aggiorna] Vedi commento sotto [/ Aggiorna]


Il problema con le macro N_ che non venivano definite era perché mancava l'inclusione necessaria (glib / gi18n.h). Questo era già stato incluso in un altro file include (gtk / gtk.h) ma era stato rimosso nell'ultima versione di gtk +.
lanoxx,

Risposte:


1

Sembra che tu autogen.shstia chiamando autoreconf.

Il progetto potrebbe essere utilizzato intltoolinvece, ma in tal caso autoreconfdovrebbe prenderlo e chiamare intltoolize. Se sta sicuramente usando GNU gettext, questo dalla autopointpagina delle informazioni è utile:

Il programma 'autopoint' copia i file standard dell'infrastruttura gettext in un pacchetto sorgente. Estrae da una chiamata macro del modulo 'AM_GNU_GETTEXT_VERSION (VERSIONE)', trovata nel file 'configure.in' o 'configure.ac' del pacchetto, la versione gettext utilizzata dal pacchetto e copia i file dell'infrastruttura appartenenti a questa versione nel pacchetto.

E se scriviamo AM_GNU_GETTEXT_VERSIONallora autopointè correttamente invocato da autoreconf.

Per estrarre l'ultima infrastruttura disponibile che soddisfa un requisito di versione, è possibile utilizzare invece il modulo 'AM_GNU_GETTEXT_REQUIRE_VERSION (VERSIONE)'. Ad esempio, se gettext 0.19.8 è installato sul sistema e '0.19.1' richiesto, i file dell'infrastruttura della versione 0.19.8 verranno copiati in un pacchetto sorgente.

Il problema si presenta solo quando si passa a questa versione della macro, e mentre fa quello che dice sulla scatola non è noto autoreconfe vediamo una patch per il supporto .

Gli utenti di Gentoo possono ottenere lo stesso comportamento negli ebuild usando la nostra eautoreconffunzione.

Scrivere AM_GNU_GETTEXT_VERSIONe AM_GNU_GETTEXT_REQUIRE_VERSIONsubito dopo nel mio configure.acgenera un avvertimento, ma in caso contrario sembra produrre il risultato desiderato.


5

Quale sistema operativo?

Probabilmente il tuo sistema non ha tutto o parte del sistema gettext, vale a dire le parti di sviluppo. In molte distribuzioni, ad esempio Debian / Ubuntu, gettext è diviso in più pacchetti: gettext-basee gettext.

Il gettext-basepacchetto è per l'esecuzione di programmi multilingue, mentre gettextcontiene le parti necessarie per la costruzione.


Sono in esecuzione su Ubuntu (11.10). Gettext è installato ma non gettext-base.
lanoxx,

Ho a che fare con il patching (tramite codice src + ./configure) una vecchia piattaforma Fedora costruita con più codice e sto riscontrando questo problema. L'installazione di gettext e la configurazione di re./configure su autoconf / autogen / m4 non hanno aiutato finora. Ho notato che pkg-config non pensa che getttext sia installato. Ma noto che pkg-config su sistemi più moderni non elenca neanche gettext, anche quando è installato gettext-base.
mcr
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.