Verificando o valor das variáveis ​​de ambiente no Makefile

21

Eu tenho um destino Makefile, no qual tenho que verificar o valor de uma variável de ambiente. Mas não recebo a sintaxe exata. Tentou muito, mas não consegue encontrá-lo. Qualquer ajuda é apreciada.

Nome da variável de ambiente: TEST, seu valor: "TRUE"

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

Estou tendo o erro a seguir:

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

Respostas:

26

A ifeq()diretiva deve estar na coluna 1, remover qualquer espaço em branco à esquerda, ou seja,

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

^ sem espaço em branco

gwillie
fonte
14

Você não deve colocar ifeqapós TAB. Espaços são permitidos. Leia o documento GNU Make .

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

Observe também que ele se compara $(TEST)com o "TRUE"que é:

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

$ make TEST='"TRUE"'
echo "Do something"
Do something
yaegashi
fonte
Este bit foi mais útil - Observe também que ele compara $ (TEST) com "VERDADEIRO" como está: Obrigado
kakoma 17/01