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]

lanoxx
fuente
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.

arfbtwn
fuente
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.

Andrew Schleifer
fuente
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