Makefile: Was macht diese Zeile?
-
Hallo,
ich habe in einem Makefile gerade diese Zeile entdeckt:
OBJECTS = $(addprefix (DIST_NAME)/,$(CFILES:.c=.o))
Laut google sollte der 2. Paramater eine Liste von Strings sein und der 1. Parameter einfach nur 1 String:
$(addprefix prefix,names...)
The argument names is regarded as a series of names, separated by whitespace; prefix is used as a unit. The value of prefix is prepended to the front of each individual name and the resulting larger names are concatenated with single spaces between them. For example,$(addprefix src/,foo bar)
produces the result `src/foo src/bar'.
Aber das passt doch nicht mit diesem Aufruf ueberein? In der Zeile oben ist der 1. Parameter von addprefix ein Pfad, aber was ist der 2. Parameter? Was macht diese Zeile?
-
Das zweite Argument ist der Inhalt der Variablen CFILES, nachdem dort .c durch .o ersetzt wurde. Offenbar also eine Liste aller Objektfiles.
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Bashar schrieb:
Das zweite Argument ist der Inhalt der Variablen CFILES, nachdem dort .c durch .o ersetzt wurde. Offenbar also eine Liste aller Objektfiles.
Ist das eine generell Unix Syntax mit dem Doppelpunkt fuer Ersetzen? Hat das einen Namen? Wuerde dazu gerne ein paar Infos durchlesen
-
Nein, das ist auch eine Make-eingebaute Funktion.