Verificando o valor das variáveis de ambiente no Makefile

13

Eu tenho um destino Makefile, no qual tenho que verificar o valor de uma variável de ambiente. Mas eu não entendo a sintaxe exata disso. Tentei duro, mas não consegui encontrá-lo. Qualquer ajuda é apreciada.

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

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

Eu recebo o seguinte erro:

/bin/sh: -c: line 0: syntax error near unexpected token '"TRUE","TRUE"'
/bin/sh: -c: line 0: 'ifeq ("TRUE","TRUE")'
    
por Ashwin Tumma 06.08.2015 / 02:22

2 respostas

20

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

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

^ sem espaço em branco

    
por 06.08.2015 / 02:34
10

Você não deve colocar ifeq após a tecla TAB. Espaços são permitidos. Leia o GNU Make document .

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

Observe também que ele compara $(TEST) com "TRUE" como está:

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

$ make TEST='"TRUE"'
echo "Do something"
Do something
    
por 06.08.2015 / 02:36

Tags