(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.
Ich habe keine ähnliche Funktion auf GNU make
gefunden.
Ich schrieb schließlich in meinem Makefile
:
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?
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%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.
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.
Tags und Links bash gnu-make variable-expansion