Hallo LUG,
ich wollte mir ein PHP-Modul nachcompilieren, wie ich es schon einge male getan hatte:
[root@voyager ~]# cd /usr/src/php-5.0.2/ext/xsl/ [root@voyager xsl]# phpize Configuring for: PHP Api Version: 20031224 Zend Module Api No: 20040412 Zend Extension Api No: 220040412 configure.in:9: warning: underquoted definition of PHP_WITH_PHP_CONFIG run info '(automake)Extending aclocal' or see http://sources.redhat.com/automake/automake.html#Extending-aclocal configure.in:32: warning: underquoted definition of PHP_EXT_BUILDDIR configure.in:33: warning: underquoted definition of PHP_EXT_DIR configure.in:34: warning: underquoted definition of PHP_EXT_SRCDIR configure.in:35: warning: underquoted definition of PHP_ALWAYS_SHARED acinclude.m4:19: warning: underquoted definition of PHP_PROG_RE2C acinclude.m4:1903: warning: underquoted definition of PHP_TEST_BUILD /usr/share/aclocal/xmms.m4:17: warning: underquoted definition of XMMS_TEST_VERSION /usr/share/aclocal/xmms.m4:62: warning: underquoted definition of AM_PATH_XMMS /usr/share/aclocal/vorbis.m4:9: warning: underquoted definition of XIPH_PATH_VORBIS /usr/share/aclocal/pth.m4:43: warning: underquoted definition of _AC_PTH_ERROR /usr/share/aclocal/pth.m4:55: warning: underquoted definition of _AC_PTH_VERBOSE /usr/share/aclocal/pth.m4:61: warning: underquoted definition of AC_CHECK_PTH /usr/share/aclocal/pkg.m4:5: warning: underquoted definition of PKG_CHECK_MODULES /usr/share/aclocal/pilot-link.m4:1: warning: underquoted definition of AC_PILOT_LINK_HOOK /usr/share/aclocal/ogg.m4:8: warning: underquoted definition of XIPH_PATH_OGG /usr/share/aclocal/libIDL.m4:6: warning: underquoted definition of AM_PATH_LIBIDL /usr/share/aclocal/ksba.m4:17: warning: underquoted definition of AM_PATH_KSBA /usr/share/aclocal/imlib.m4:9: warning: underquoted definition of AM_PATH_IMLIB /usr/share/aclocal/imlib.m4:167: warning: underquoted definition of AM_PATH_GDK_IMLIB /usr/share/aclocal/gtk.m4:7: warning: underquoted definition of AM_PATH_GTK /usr/share/aclocal/gnet-2.0.m4:8: warning: underquoted definition of AM_PATH_GNET_2_0 /usr/share/aclocal/glib.m4:8: warning: underquoted definition of AM_PATH_GLIB /usr/share/aclocal/gdk-pixbuf.m4:12: warning: underquoted definition of AM_PATH_GDK_PIXBUF /usr/share/aclocal/audiofile.m4:12: warning: underquoted definition of AM_PATH_AUDIOFILE /usr/share/aclocal/ao.m4:9: warning: underquoted definition of XIPH_PATH_AO /usr/share/aclocal/aalib.m4:12: warning: underquoted definition of AM_PATH_AALIB /usr/share/aclocal/ORBit.m4:4: warning: underquoted definition of AM_PATH_ORBIT
Diese Fehler/Meldungen kannte ich aber noch nicht. Nun einen Blick in info '(automake)Extending aclocal', aber danach war ich auch nicht schlauer. Auch die Fehlermeldungen sagen mir nicht viel. Einen stichprobenmäßigen Blick in die Dateien verriet mir, dass er immer bei [ am Ende einer Zeile meckert. Was ist hier los?
Dankend,
Falk
On Sat, Mar 12, 2005 at 11:55:32AM +0100, Falk D?ring wrote:
Hallo LUG,
ich wollte mir ein PHP-Modul nachcompilieren, wie ich es schon einge male getan hatte:
[snip]
Diese Fehler/Meldungen kannte ich aber noch nicht. Nun einen Blick in info '(automake)Extending aclocal', aber danach war ich auch nicht schlauer. Auch die Fehlermeldungen sagen mir nicht viel. Einen stichprobenmäßigen Blick in die Dateien verriet mir, dass er immer bei [ am Ende einer Zeile meckert. Was ist hier los?
Laeuft es trotzdem? Das Problem ist hier, dass autoconf/automake im prinzip shell-Skripte nutzt, in die man noch Makros einbetten kann. Diese werden mit Hilfe von GNU m4 ausgewertet und substituiert. Um m4 zu verbieten, dass er ein Makro o.ae. ersetzt, muss man das ganze Konstruct in eckige Klammern einfassen. Dabei wird noch unterschieden zwischen einer eckigen und zwei eckigen Klammern, allerdings weiss ich nicht mehr genau den Unterschied.
Ulf
Ulf Lorenz schrieb am Samstag, 12. März 2005 13:13:
Laeuft es trotzdem?
Hm, gute Frage. Das xsl-Modul hat er übersetzt und funktioniert. Wenn ich allerdings das readline-Modul compilieren möchte, bleibt er jedesmal bei ./configure (bzw. ./configure --with-readline=/usr/lib) hängen und sagt, das libreadline nicht gefunden wurde:
checking for PHP extension directory... /usr/lib/php/extensions checking for re2c... exit 0; checking for gawk... gawk checking for libedit readline replacement... yes, shared checking for readline support... yes, shared checking for tgetent in -lncurses... yes checking for readline in -lreadline... no configure: error: readline library not found
Wenn ich selbst ein Programm schreibe und -lreadline -lncurses mitgebe, wird es übersetzt. (Und ich habe einige PHP-Scripte, die readline nutzen, *schnief*). Aber das wird wohl kaum etwas mit meinem Problem zu tun haben, sondern ein anderes sein.
Das Problem ist hier, dass autoconf/automake im prinzip shell-Skripte nutzt, in die man noch Makros einbetten kann. Diese werden mit Hilfe von GNU m4 ausgewertet und substituiert.
Bei mir sind es Perl-Scripte, sonst wird aber die Funktion gleich sein.
Tschau, Falk
Am Samstag, 12. März 2005 19:15 schrieb Falk Döring:
Wenn ich selbst ein Programm schreibe und -lreadline -lncurses mitgebe, wird es übersetzt. (Und ich habe einige PHP-Scripte, die readline nutzen, *schnief*). Aber das wird wohl kaum etwas mit meinem Problem zu tun haben, sondern ein anderes sein.
Hast du readline/readline.h und readline/history.h? Wenn die Datei configure.ac noch dabeiliegt, kann man das dort drin eigentlich relativ leicht nachprüfen und verändern, wonach er genau sucht. Meine Vermutung ist, dass er beim Linken vergisst, noch eine Dependency mit dranzuhängen. Siehe dazu auch die Fehlermeldung in config.log, direkt über der Zeile 'Cache variables', welche zwischen den Shellmeldungen und den Variablenzuweisungen steht.
Was die Warnungen (nicht Fehler) von Automake bei einem Selbstbau von configure bedeuten, ist folgendes: Autoconf-Makros haben die Struktur AC_DEFUN([NAME], [...ganzvielmagischercode...]) wobei in älteren Versionen auch die Variante AC_DEFUN(NAME, [...ganzvielmagischercode...]) akzeptiert wurde, also ohne eckige Klammern um NAME, was natürlich falsch ist. Nun ist aber jede Menge an externen M4-Dateien (in /usr/share/aclocal) im Umlauf, es wird wohl noch ein paar Jahre dauern, bis das alles gefixt ist...
Josef
Josef Spillner schrieb am Samstag, 12. März 2005 23:14:
Am Samstag, 12. März 2005 19:15 schrieb Falk Döring:
Wenn ich selbst ein Programm schreibe und -lreadline -lncurses mitgebe, wird es übersetzt. (Und ich habe einige PHP-Scripte, die readline nutzen, *schnief*). Aber das wird wohl kaum etwas mit meinem Problem zu tun haben, sondern ein anderes sein.
Hast du readline/readline.h und readline/history.h?
Sonst hätte mein Beispielprogramm nicht funktioniert! ;-)
Wenn die Datei configure.ac noch dabeiliegt, kann man das dort drin eigentlich relativ leicht nachprüfen und verändern, wonach er genau sucht.
Leider nicht.
Meine Vermutung ist, dass er beim Linken vergisst, noch eine Dependency mit dranzuhängen. Siehe dazu auch die Fehlermeldung in config.log, direkt über der Zeile 'Cache variables', welche zwischen den Shellmeldungen und den Variablenzuweisungen steht.
Scheint so, als hättest du es ausprobiert.
Lösung: in Zeile 3347 bei LIBS noch -lncurses dranhängen: LIBS="-lreadline -lncurses $LIBS"
Dieses Problem hatte ich doch schon einmal gehabt. *amhinterkopfschabend*
Was die Warnungen (nicht Fehler)
Tschuldige dieses uneindeutige auseinanderhalten. Habe mal wieder an einem Fenster-Rechner gearbeitet, und da gab es keinen Unterschied zwischen Warnung und Fehler. Dort war alles ein Fehler.
von Automake bei einem Selbstbau von configure bedeuten, ist folgendes: Autoconf-Makros haben die Struktur AC_DEFUN([NAME], [...ganzvielmagischercode...]) wobei in älteren Versionen auch die Variante AC_DEFUN(NAME, [...ganzvielmagischercode...]) akzeptiert wurde, also ohne eckige Klammern um NAME, was natürlich falsch ist. Nun ist aber jede Menge an externen M4-Dateien (in /usr/share/aclocal) im Umlauf, es wird wohl noch ein paar Jahre dauern, bis das alles gefixt ist...
Frage: Wird trotzdem richtig gearbeitet oder sollte man die Klammern bei Problemen von Hand setzen?
Tschau, Falk
Am Samstag, den 12.03.2005, 11:55 +0100 schrieb Falk Döring:
ich wollte mir ein PHP-Modul nachcompilieren, wie ich es schon einge male getan hatte:
[root@voyager ~]# cd /usr/src/php-5.0.2/ext/xsl/ [root@voyager xsl]# phpize Configuring for: PHP Api Version: 20031224 Zend Module Api No: 20040412 Zend Extension Api No: 220040412 configure.in:9: warning: underquoted definition of PHP_WITH_PHP_CONFIG run info '(automake)Extending aclocal' or see http://sources.redhat.com/automake/automake.html#Extending-aclocal
[Rest gesnippt]
Du setzt offenbar automake1.8 oder automake1.9 ein. Die genauen Zusammenhänge kenne ich nicht (von daher freue ich mich schon, falls das Angebot über die Autotools einen Vortrag zu halten wahr wird), aber die Templates in /us/share/aclocal sind wohl noch für automaken bis einschließlich automake1.7. Für mich hat es den Anschein, dass es zwischen automake1.7 und automake1.8 einige gravierende Veränderungen gegeben hat. Da ich den Eindruck habe, dass autmake1.7 noch der Standard für Debian-Pakete ist, setze ich es bei mir standardmäßig ein und verzichte im Moment auf automake1.8 und automake1.9.
Diese Fehler/Meldungen kannte ich aber noch nicht. Nun einen Blick in info '(automake)Extending aclocal', aber danach war ich auch nicht schlauer. Auch die Fehlermeldungen sagen mir nicht viel. Einen stichprobenmäßigen Blick in die Dateien verriet mir, dass er immer bei [ am Ende einer Zeile meckert. Was ist hier los?
Da ich es wie schon gesagt nicht genau weiß, unterlasse ich Erklärungsversuche und gebe nur noch einen Tip: automake und aclocal sind nur symlinks auf /etc/alternatives. Falls du automake1.7 oder niedriger neben automake1.8/automake1.9 installiert hast, kannst du diese Meldungen mit dem Aufruf der speziellen zu einer Version gehörenden Binaries (aclocal-1.x bzw. automake-1.x) umschiffen. Falls ich das richtig verstehe, dann ist 'phpize' wohl eine Art autogen-Skript. Da könntest du die Änderungen tätigen, falls du die notwendigen Programme nicht per Hand aufrufen willst.
MfG Daniel
lug-dd@mailman.schlittermann.de