Wie zu überprüfen, ob Makro definiert ist und aufhören, sonst? [duplizieren] - gnu-make

Da eine undefinierte Variable zu einem führen kannunerwartetes Verhalten, wenn es einfach durch leeren Text ersetzt wird (siehe Zielverzeichnisse), gibt es eine Möglichkeit, make überprüfen zu lassen, ob eine Variable nicht definiert ist und in diesem Fall mit einem Fehler endet?

Die Bedingung kann mit Bedingungen erkannt werden, aber wie kann dann die Ausführung gestoppt werden?

ifeq ($(strip $(notdefinedforsure_man)),)
out = Undefined variable detected
endif

Ich suche etwas wie requiref var1, var2

oder eine einfache Rückgabe mit einer Fehleranweisung, die in der obigen Bedingung verwendet wird

Antworten:

5 für die Antwort № 1

Benutze die origin eingebaute Funktion:

ifeq (undefined,$(origin VARIABLE))
$(error VARIABLE is not defined)
endif

Sehen die Dokumentation für Details.