Ü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")'

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


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

Dieses Bit war besonders hilfreich. Beachten Sie auch, dass es $ (TEST) wie folgt mit "TRUE" vergleicht: Vielen Dank
Kakoma
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.