Mein Makefile sieht so aus:
%Vor% $*
arbeitet jedoch innerhalb von .asm.o
, ist jedoch innerhalb von all
leer.
Wie würde ich den gcc-Ausgabedateinamen auf den Dateinamen der Objektdatei ohne any -Erweiterung setzen?
Ich möchte zum Beispiel Folgendes ausführen (nachdem die Datei .o von nasm generiert wurde)
%Vor%Ich denke, du suchst
%Vor% Ihr Versuch würde ein Ziel all
definieren, das von allen Objektdateien abhing, als ob sie alle enthielten; Ich nehme an, dass Sie wirklich wollen, dass jede Objektdatei unabhängig ist und dass das all
-Ziel davon abhängt, dass sie alle gemacht werden.
(Technisch könnten Sie jetzt $*
verwenden, weil es in diesem Fall identisch mit $@
ist, aber das ist nur unklar.)
Dies ist im großen und ganzen isomorph zu Ihrer vorhandenen Regel nasm
, außer wenn kein Suffix vorhanden ist, können Sie die Suffixsyntax nicht verwenden. Mit anderen Worten, Ihre Regel entspricht
Der einzige verbleibende Unterschied ist die .PHONY
-Deklaration, die nur dokumentiert, dass all
kein Dateiname ist.
Nehmen wir an, Sie möchten .o
von test.o
ergibt $VAR
mit "test"
Tags und Links makefile