configure.ac: no usa gettext


13

Estoy tratando de compilar una aplicación gnome y tengo curiosidad por saber qué significa la salida cuando ejecuto el 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 qué recibo la información configure.ac: not using Gettext? ¿Es eso una advertencia y debo cambiar algunos de los archivos de configuración para solucionarlo? Sé que la aplicación tiene una po/carpeta, así que creo que debería estar usando Gettext, por lo tanto, estoy confundido acerca de esta advertencia.

También tuve muchas advertencias con la N_macro no definida, ¿entonces esto podría estar relacionado? [Actualización] Ver comentario a continuación [/ Actualización]


El problema con la falta de definición de las macros N_ fue porque faltaba la inclusión necesaria (glib / gi18n.h). Esto se había incluido previamente con otro archivo de inclusión (gtk / gtk.h) pero se eliminó en la última versión de gtk +.
lanoxx

Respuestas:


1

Parece que tu autogen.shestá llamando autoreconf.

El proyecto puede estar utilizando en su intltoollugar, pero si es así, autoreconfdebe recogerlo y llamar intltoolize. Si definitivamente está usando GNU gettext, esto de la autopointpágina de información es útil:

El programa 'autopoint' copia archivos estándar de infraestructura gettext en un paquete fuente. Se extrae de una llamada macro de la forma 'AM_GNU_GETTEXT_VERSION (VERSIÓN)', que se encuentra en el archivo 'configure.in' o 'configure.ac' del paquete, la versión gettext utilizada por el paquete, y copia los archivos de infraestructura que pertenecen a esta versión en el paquete

Y si escribimos, AM_GNU_GETTEXT_VERSIONentonces autopointes invocado correctamente por autoreconf.

Para extraer la última infraestructura disponible que satisfaga un requisito de versión, puede usar el formulario 'AM_GNU_GETTEXT_REQUIRE_VERSION (VERSIÓN)' en su lugar. Por ejemplo, si gettext 0.19.8 está instalado en su sistema y se solicita '0.19.1', los archivos de infraestructura de la versión 0.19.8 se copiarán en un paquete fuente.

El problema solo aparece cuando se cambia a esta versión de la macro, y aunque hace lo que dice en la lata, no se sabe autoreconfy vemos un parche para soporte .

Los usuarios de Gentoo pueden obtener el mismo comportamiento en ebuilds utilizando nuestra eautoreconffunción.

Escribir AM_GNU_GETTEXT_VERSIONe AM_GNU_GETTEXT_REQUIRE_VERSIONinmediatamente después en mi cuenta configure.acgenera una advertencia, pero de lo contrario parece producir el resultado deseado.


5

Que sistema operativo

Probablemente su sistema no tiene todo o parte del sistema gettext, es decir, las porciones de desarrollo. En muchas distribuciones, por ejemplo, Debian / Ubuntu, gettext se separa en múltiples paquetes: gettext-basey gettext.

El gettext-basepaquete es para ejecutar programas que son multilingües, mientras que gettexttiene las partes necesarias para la construcción.


Estoy corriendo en Ubuntu (11.10). Gettext está instalado pero no gettext-base.
lanoxx

Estoy tratando de parchear (a través del código src + ./configure) una vieja plataforma construida por Fedora con más código, y me encuentro con este problema. Instalar gettext, y la re./configure en autoconf / autogen / m4 no ha ayudado hasta ahora. Noté que pkg-config no cree que getttext esté instalado. Pero, noto que pkg-config en sistemas más modernos tampoco incluye gettext, incluso cuando gettext-base está instalado.
mcr
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.