Übersetzt von Eduard Bloch <edi@ka.linux.de>. Für die Richtigkeit der
Übersetzt von Eduard Bloch <edi@ka.linux.de>. Für die Richtigkeit der
Übersetzung wird keine Gewähr übernommen, lesen Sie bitte ebenfalls das
Original von Joerg Schilling. Sie benutzen diese Übersetzung auf eigene
Gefahr.
Gmake-Kompabilität wird zur Bequemlichkeit der Nutzer mitgeliefert,
weil es auf vielen Systemen funktioniert und die meisten make-Programme
schlechter als gmake sind.
Das Hauptproblem von gmake ist die fehlerhafte Behandlung der
include-Direktive. Die generelle Regel für ein make-Programm ist es
zuerst jedes überwachte Objekt zu make'n. Gmake macht kein "make" für
jedes Makefile, dass es einbeziehen sollte. Ein Ergebniss dieses
Verhaltens sind die vielen Warnungen über die nicht-existierende Dateien
(die Sie ignorieren sollten). Ein anderes Problem mit gmake und den
eingebundenen Dateien ist eine andere Reihenfolge als erwartet. Das
Ergebniss ist die falsche Behandlung der Abhängigkeiten.
Falls Sie Probleme mit dem make-Dateisystem und gmake haben, haben Sie Pech.
Gmake hat eine debug-Option, aber es gibt Unmengen
von debug-Meldungen aus. Weniger als 1% von diesen Meldungen sind wirklich
von Bedeutung, und die wichtigsten Dinge fehlen in diesen Debug-Meldungen.
Gmake hat einen Bug mit der VPATH= -Option. Einige der Macros werden
nicht korrekt expandiert. Aus diesem Grund musste ich alle Vorkommen
von $@ $* und $^ entfernen
Auf einigen Platformen (z.B. OSF1) ist gmake nicht in der Lage, das Ziel
richtig zu erkennen. Wenn sich gmake darüber beschwehr, rufen Sie
einfach ./Gmake.all auf.
Um GNU-make zu benutzen, erstellen Sie eine Datei namens 'Gmake' in
ihren Pfad, die folgendes enthält:
#!/bin/sh
MAKEPROG=gmake
export MAKEPROG
exec gmake "$@"
und rufen Sie 'Gmake' anstelle von 'gmake' auf. Unter Linux gibt es kein
gmake, 'make' unter Linux ist ein richtiges gmake.
'Gmake' und 'Gmake.linux' sind in der Distribution bereits enthalten.
Anmerkung: Makefile-Versionen for 13.10.98 versuchen gmake zu erkennen,
in dem angenommen wird, dass $(MAKE_COMMAND) nur existiert wenn gmake
ausgeführt wird. So wäre es ein Versuch wert, einfach nur 'gmake' oder
eben 'make' aufzurufen wenn auf dem System gmake als make-Programm
installiert ist.