erhält einen Standardwert, wenn die Variable in make nicht gesetzt ist

8

(bearbeiten: Frage genauer basierend auf @Michael Feedback)

In bash verwende ich oft Parametererweiterung : das Folgende Befehle drucken " default value ", wenn $VARNAME nicht gesetzt ist, ansonsten wird der Inhalt des VARNAME ausgegeben.

%Vor%

Ich habe keine ähnliche Funktion auf GNU make gefunden. Ich schrieb schließlich in meinem Makefile :

%Vor%

Aber ich bin nicht glücklich mit dieser Lösung: Es erstellt immer die Variable VARNAME und dies kann das Verhalten einiger Makefiles ändern.

Gibt es einen einfacheren Weg, einen Standardwert für die nicht gesetzte Variable zu erhalten?

    
olibre 16.04.2013, 10:54
quelle

3 Antworten

10

Wenn Sie die Erweiterung einer GNU-make-Variablen verwenden möchten, wenn sie nicht leer ist, und einen Standardwert, wenn sie leer ist, aber nicht die Variable, können Sie Folgendes tun:

%Vor%     
MadScientist 16.04.2013, 12:31
quelle
1

Wenn Sie testen möchten, ob eine Variable einen nicht leeren Wert hat, können Sie Folgendes verwenden:

%Vor%

Um zu überprüfen, ob eine Variable definiert wurde oder nicht, verwenden Sie ifdef .

Siehe Syntax von Conditionals im Handbuch für mehr.

    
devnull 16.04.2013 11:25
quelle
0

Entfernen Sie einfach den Doppelpunkt. Wenn Sie :- in Ihrer Ersetzung verwenden, wird der Standardwert verwendet, wenn die Variable null ist, eine leere Zeichenfolge oder nicht vorhanden ist, aber nur die Verwendung von - allein ersetzt den Standardwert, wenn die Variable nicht vorhanden ist wurde definiert.

%Vor%     
Michael 16.04.2013 11:28
quelle