GNU Make und auto variablen
-
Hallo,
ich habe irgendwie noch ein Verständnis-Problem, welches auch die GNU Make Hilfe nicht auslöschen konnte.
Folgender Ausschnitt eines Makefiles:BOOT1 := Boot1.bin BOOT2 := Boot2.bin KERNEL := Kernel.bin . . . $(IMAGE): $(BOOT1) $(BOOT2) $(KERNEL) cat $+ > $@
BOOT1 etc. sind Variablen, welche sich auf Dateien beziehen, die NICHT im aktuellen Verzeichnis zu finden sind, wohl aber über VPATH.
Möchte ich jetzt das Target $(IMAGE) ausführen funktioniert das nicht, weil $+ einfach nur die Werte der Variablen beinhaltet (cat findet die Dateien also nicht).
Ändere ich aber $+ (welches ja die ganze Abhängigkeitsliste beinhaltet) in $< (welches nur die erste Abhängigkeit beinhaltet) wird das plötzlich durch den korrekten Pfad ersetzt, d.h. der relative Pfad zur Datei Boot1.bin.Meine Frage ist jetzt: warum genau ist dieser Unterschied vorhanden ist? Warum werden im ersten Fall ($+) nicht auch die Pfade ermittelt?
Aus dem hier kann ich das jedenfalls nicht herauslesen.Danke für eure Antworten.