6 Stimmen

Makefile-Variablen von der Kommandozeile vs. Umgebung

Gibt es eine Möglichkeit zu erkennen, ob eine Variable in der Umgebung oder in der Befehlszeile gesetzt wurde?

Ich würde gerne unterscheiden zwischen jemandem, der make mit make LIB=mylib vs. make und $LIB definiert werden.

0 Stimmen

Bitte kennzeichnen Sie Ihre Fragen zum Thema Make mit dem Tag [make]. Für eine Begründung siehe meta.stackexchange.com/questions/24030/

6voto

Michael Aaron Safyan Punkte 90663

Ja. Sie können die Herkunft Funktion, um festzustellen, wo eine Variable definiert wurde.

ifneq (,$(findstring environment,$(origin LIB)))
    # LIB was defined by the environment
else
    # LIB was defined some other way
endif

0voto

Jens Punkte 65511

Mit Nicht-Gnu-Make könnten Sie die export Befehl und grep für die betreffende Variable. Dies funktioniert nur in Regeln und nur, solange die Variable nicht als One-Shot gesetzt ist (wie in LIB=foo make ).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X