Ich habe ein sehr bizzare Problem mit GNU make. Ich habe die folgenden Dateien:Makefile wendet eine Regel rekursiv an, auch wenn es nicht
a/x.html
b/Makefile
b/c/Makefile
Der Inhalt a/x.html
irrelevant sind. Der Inhalt b/Makefile
sind wie folgt:
SRC=../a
all: x.html
%.html: ${SRC}/%.html
rsync $< [email protected]
Der Inhalt b/c/Makefile
sind die gleichen, mit Ausnahme der Definition von SRC
:
SRC=../../a
Wenn ich make
in b/c/
das Ergebnis ausgeführt wird, wie erwartet:
rsync ../../a/x.html x.html
und x.html
wird vonkopiertbis b/c/
.
Wenn ich jedoch make
in b/
laufen die Ausgabe ich erhalte, ist mehrere Zeilen:
make: stat: ../a/../a/.. (repeated many times) ../a/x.html: File name too long
Es scheint, dass make
wird die Regel für %.html
rekursiv anwenden, aber warum? Gibt es etwas Offensichtliches, das mir fehlt?
Vielen Dank! Ich denke, ich werde die Abspath-Lösung verwenden. –