2016-06-25 26 views
0

Ich habe lokal eine neuere Version von automake (1.15) auf einem System installiert, auf das ich keinen Root-Zugriff habe. Der bin-Ordner des lokalen Verzeichnisses ist das erste Verzeichnis in meinem PATH.M4-Makros im Aclocal-Verzeichnis von Drittanbietern wurden nicht gefunden

ich auch lokal installiert gtk+-2.0, und ich möchte jetzt bauen und eine Anwendung zu installieren, die für meine gewünschte Anwendung enthält gtk als Abhängigkeit, dh die configure.ac Skript erfordert:

PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.0]) 

Um sicherzustellen, dass die m4-Makros gefunden werden, kopierte ich die .m4 Datei in gtk_install_dir/share/aclocal in den Speicherort, den aclocal --print angibt (automake_install_dir/share/aclocal/).

Ich setze auch PKG_CONFIG_PATH=gtk_install_dir/lib/pkgconfig.

Allerdings, wenn ich laufen:

$ libtoolize 
$ aclocal 
$ autoconf 
$ automake 
$ ./configure 

ich eine Fehlermeldung erhalten:

./configure: line 13106: syntax error near unexpected token `GTK,' 
./configure: line 13106: `PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.0)' 

Lauf aclocal --verbose ich kann deutlich sehen, dass es keine Erwähnung von gtk ist, so ist es eindeutig nicht zu finden die gtk + -Makros.

Ich habe diese Build-Tools nicht verwendet, fehlt mir etwas? Ich kann anscheinend das Konfigurationsskript nicht erkennen, dass gtk installiert ist!

Jeder Rat wird sehr geschätzt, danke.

EDIT: Ich kann bestätigen, dass pkg-config weiß, wo meine gtk-Installation ist:

$ pkg-config --print-variables gtk+-2.0 
exec_prefix 
gtk_binary_version 
... 

Auch von pkg-config --debug gtk+-2.0 bestätigt. Wenn pkg-config alles über das Paket weiß, warum nicht autotools?

Antwort

0

Sie müssen sicherstellen, dass pkg-config-devel oder ähnlich benanntes Paket installiert ist. Ohne dieses kann aclocal das MakroPKG_CHECK_MODULES nicht finden, das für ./configure benötigt wird, um pkg-config aufzurufen.

Die Software Sie versuchen Macht bauen eine pkg.m4 Datei in einem Unterverzeichnis wie m4/, aber wenn es nicht richtig konfiguriert wurde, kann er nicht wirklich feststellen, dass, versuchen autoreconf -fis -I m4 zu verwenden, wenn es ein solches Verzeichnis ist.