2016-07-28 20 views
0

Ich habe eine einfache Makefile wie folgt:Variablenzuweisung in rekursiven make Aufruf

VAR += 4 5 6 

default: 
    @echo "$(VAR)" 
a: 
    VAR="1 2 3" make 
b: 
    make VAR="1 2 3" 

make a funktioniert wie erwartet und Druck 1 2 3 4 5 6, aber make b nur 1 2 3 drucken. Ich dachte, dass diese zwei Varianten identisch sind.

Die Frage ist: Warum ist das so?

Antwort

0

aus dem GNU zitieren Handbuch machen:

Wenn eine Variable mit einem Befehl Argumente, dann gewöhnliche Zuordnungen in der Make-Datei ignoriert werden eingestellt.

Sie, dass mit der override Richtlinie ändern:

override VAR += 4 5 6