Am Die, 2003-02-04 um 23.49 schrieb David Haller:
Hallo,
On Tue, 04 Feb 2003, Christian Boltz wrote:
Am Montag, 3. Februar 2003 21:23 schrieb David Haller:
On Mon, 03 Feb 2003, Christian Boltz wrote:
Ich habe es mir zur Angewohnheit gemacht, dass ich moeglichst _immer_ ':=' verwende, es sei denn, ich will explizit, dass das zuzuweisende jedesmal ausgewertet wird... Keine gute Idee. ':=' ist nicht portabel, weshalb es von Automake auch nicht verwendet wird.
und geschweifte Klammern um die Variablennamen?
Oehm, ehrlich gesagt, weiss nicht.
$() .. Makefile-Variablen. ${} .. Shell/Environment-Variablen. Manche "make"s unterscheiden da sehr streng, andere makes sind da etwas "lässiger" (GNU-make gehört "leider" dazu). Das kann zu "netten" Überraschungen führen, wenn man versucht mit gnu-make geschriebene, vorgeblich portable Makefiles auf anderen U*ixen zu verwenden.
Und bin grad auch zu faul nachzuschauen. Das hab ich schlicht aus den autoconf-Makefiles... ;) Automake-Makefiles, autoconf-Makefile's gibt es nicht ;)
Automake verwendet für make-Variablen nur runde Klammern und '='.
Meinen bescheidenen Makefile-Kenntnissen zufolge werden die Variablen mit $(...) geklammert und mit einem einfachen = zugewiesen. So ist es.
und dann installiere mal 2 Versionen einer lib... Wenn die eine in /usr [/share/doc] landet und die andere in /usr/local [/share/doc], dann ist alles ok, wenn nicht...
IMNSHO muss '${datadir}/doc' der default sein. Für docdir? Wäre eine sinnvolle Möglichkeit. $(docdir) wird von den GNU-Standards nicht erfasst, ist somit frei wählbar. Was im Endeffekt wirklich sinnvoll ist, hängt vom Sinn und Zweck dieser Files ab.
Außerdem heißt das Konfigurationsverzeichnis für den neuen Apache2 AFAIK /etc/apache2... Nein, ist installationsabhängig bzw. Vendor-spezifisch, d.h. es kann buchstäblich irgendwo liegen
(RH z.B. verwendet /etc/httpd mit /etc/httpd/conf/httpd.conf und Modulkonfigurationen in /etc/httpd/conf.d/*.conf).
Evtl. koennte man da auch ein kleines "configure" schreiben, dass Pfade z.B. abfragt/rausfindet...
Ich würde hier schlicht und einfach eine configure-Option einführen (--with-httpd=<path> o.ä.) und dann den Pfad und die darin enthaltenen Dateien auf Verwendbarkeit für eure Zwecke testen.
Könnte schwierig werden, siehe oben ;-)
Och, nicht wirklich ;) Doch, das kann lustig werden ;)
Schau dir mal die Tricks an mit denen autoconf's AC_PATH_PROG und Co. arbeiten. [Wie meinte doch neulich ein OS/2 oder CygWin-User: PATH=C:\backspace\return;E:\tab\newline;D:\home W:\pakete\mypaket\configure --prefix=F:\fondlinge Oder auch: PATH="${HOME}/Oktoberfest 2003:$PATH" configure '--prefix=Auf geht's' ]
PS: Da wir gerade dabei sind, gleich noch eine Frage: make install verhält sich unterschiedlich, je nachdem, ob es als root oder als User aufgerufen wird [1] (wird über `whoami` getestet). Just don't!
Gibt es da irgendwelche Bedenken oder bessere Möglichkeiten? Es gäbe viele Möglichkeiten, aber die von Euch scheinbar gewählte ist so ziemlich die Schlechteste (Sorry)
Ein paar Alternativen: 1. Nur systemweite Installation vorsehen und darin ein User-Install-Script einbauen, das eine user-spezifische Installation einrichtet. 2. Keinen Unterschied zwischen user- und systemweiter Installation machen, es dem User überlassen, wie er seine userspezifische Installation einrichtet (mittel entsprechender Konfigurationsoptionen) Ralf