configure.ac: nicht mit gettext

13

Ich versuche eine Gnome-Anwendung zu kompilieren und bin gespannt, was die Ausgabe beim Ausführen des autogen.shSkripts bedeutet:

~/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...]

Warum bekomme ich die Informationen configure.ac: not using Gettext? Ist das eine Warnung und sollte ich einige Konfigurationsdateien ändern, um das Problem zu beheben? Ich weiß, dass die Anwendung einen po/Ordner hat, daher denke ich, dass Gettext verwendet werden sollte, daher bin ich über diese Warnung verwirrt.

Ich hatte auch viele Warnungen, N_weil das Makro nicht definiert wurde, also könnte das zusammenhängen? [Update] Siehe Kommentar unten [/ Update]

Lanoxx
quelle
Das Problem mit den nicht definierten N_-Makros lag darin, dass das erforderliche Include (glib / gi18n.h) fehlte. Dies war zuvor in einer anderen Include-Datei (gtk / gtk.h) enthalten, wurde jedoch in der neuesten gtk + -Version entfernt.
Lanoxx

Antworten:

1

Sieht so aus, als würden Sie autogen.shanrufen autoreconf.

Das Projekt wird möglicherweise intltoolstattdessen verwendet, sollte dies autoreconfjedoch aufnehmen und aufrufen intltoolize. Wenn es definitiv GNU gettext verwendet, ist dies auf der autopointInfoseite hilfreich:

Das Autopoint-Programm kopiert Standard-Gettext-Infrastrukturdateien in ein Quellpaket. Es extrahiert aus einem Makroaufruf der Form 'AM_GNU_GETTEXT_VERSION (VERSION)', die sich in der Datei 'configure.in' oder 'configure.ac' des Pakets befindet, die vom Paket verwendete gettext-Version und kopiert die zu dieser Version gehörenden Infrastrukturdateien in das Paket.

Und wenn wir AM_GNU_GETTEXT_VERSIONdann schreiben, autopointwird richtig von angerufen autoreconf.

Um die neueste verfügbare Infrastruktur zu extrahieren, die eine Versionsanforderung erfüllt, können Sie stattdessen das Formular 'AM_GNU_GETTEXT_REQUIRE_VERSION (VERSION)' verwenden. Wenn beispielsweise gettext 0.19.8 auf Ihrem System installiert ist und '0.19.1' angefordert wird, werden die Infrastrukturdateien der Version 0.19.8 in ein Quellpaket kopiert.

Das Problem tritt nur auf, wenn Sie zu dieser Version des Makros wechseln, und obwohl es genau das tut, was es verspricht, ist es nicht bekannt, autoreconfund es wird ein Patch zur Unterstützung angezeigt .

Gentoo-Benutzer können mithilfe unserer Funktion dasselbe Verhalten in Ebuilds erzielen .eautoreconf

Das Schreiben AM_GNU_GETTEXT_VERSIONund AM_GNU_GETTEXT_REQUIRE_VERSIONunmittelbar danach das eigene configure.acerzeugt eine Warnung, scheint aber ansonsten das gewünschte Ergebnis zu liefern.

arfbtwn
quelle
5

Welches Betriebssystem?

Wahrscheinlich verfügt Ihr System nicht über das gesamte oder einen Teil des gettext-Systems, nämlich die Entwicklungsteile. In vielen Distributionen, zB Debian / Ubuntu, ist gettext in mehrere Pakete aufgeteilt: gettext-baseund gettext.

Das gettext-basePaket ist für das Ausführen von Programmen gedacht, die mehrsprachig sind, während gettextes die zum Erstellen erforderlichen Teile enthält.

Andrew Schleifer
quelle
Ich laufe auf Ubuntu (11.10). Gettext ist installiert, aber nicht gettext-base.
Lanoxx
Ich habe es mit dem Patchen (über src code + ./configure) einer alten Fedora-Plattform mit mehr Code zu tun und stoße auf dieses Problem. Die Installation von gettext und der re./configure unter autoconf / autogen / m4 hat bisher nicht geholfen. Ich stelle fest, dass pkg-config nicht glaubt, dass getttext installiert ist. Aber ich stelle fest, dass pkg-config auf moderneren Systemen auch dann nicht gettext auflistet, wenn gettext-base installiert ist.
mcr