Sprawdzanie wartości zmiennych środowiskowych w Makefile


21

Mam cel Makefile, w którym muszę sprawdzić wartość zmiennej środowiskowej. Ale nie otrzymuję dokładnej jego składni. Próbowałem bardzo, ale nie mogę go znaleźć. Każda pomoc jest mile widziana.

Nazwa zmiennej środowiskowej: TEST, jej wartość: „PRAWDA”

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

Otrzymuję następujący błąd:

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

Odpowiedzi:


26

ifeq()Dyrektywa musi być w kolumnie 1, usunąć wszelkie początkowe spacje czyli

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

^ brak białych znaków


14

Nie wolno umieszczać ifeqpo TAB. Spacje są dozwolone. Przeczytaj dokument GNU Make .

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

Należy również pamiętać, że porównuje $(TEST)z takimi, "TRUE"jak:

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

$ make TEST='"TRUE"'
echo "Do something"
Do something

Ten bit był bardzo pomocny - Zauważ też, że porównuje $ (TEST) z „PRAWDĄ”, ponieważ: Dzięki
kakoma
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.