Überprüfen Sie den Wert der Umgebungsvariablen in Makefile

21

Ich habe ein Makefile-Ziel, in dem ich den Wert einer Umgebungsvariablen überprüfen muss. Aber ich verstehe die genaue Syntax nicht. Habe es versucht, kann es aber nicht finden. Jede Hilfe wird geschätzt.

Umgebungsvariablenname: TEST, sein Wert: "TRUE"

test_target: 
    ifeq ($(TEST),"TRUE")
            echo "Do something"
    endif

Ich erhalte folgenden Fehler:

/bin/sh: -c: line 0: syntax error near unexpected token `"TRUE","TRUE"'
/bin/sh: -c: line 0: `ifeq ("TRUE","TRUE")'
Ashwin Tumma
quelle

Antworten:

26

Die ifeq()Direktive muss sich in Spalte 1 befinden. Entfernen Sie alle führenden Leerzeichen, d. H

test_target: 
ifeq ($(TEST),"TRUE")
        echo "Do something"
endif

^ kein Leerzeichen

gwillie
quelle
14

Sie müssen nicht ifeqnach TAB setzen. Leerzeichen sind erlaubt. Lesen Sie das GNU Make-Dokument .

test_target: 
ifeq ($(TEST),"TRUE")
    echo "Do something"
endif

Beachten Sie auch, dass es im Vergleich $(TEST)zu "TRUE"as is:

$ make TEST=TRUE
make: Nothing to be done for 'test_target'.

$ make TEST='"TRUE"'
echo "Do something"
Do something
yaegashi
quelle
Dieses Bit war besonders hilfreich. Beachten Sie auch, dass es $ (TEST) wie folgt mit "TRUE" vergleicht: Vielen Dank
Kakoma