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

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


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

Este bit foi mais útil - Observe também que ele compara $ (TEST) com "VERDADEIRO" como está: Obrigado
kakoma 17/01
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.