Comprobación del valor de las variables de entorno en Makefile

21

Tengo un objetivo Makefile, en el que tengo que verificar el valor de una variable de entorno. Pero no entiendo la sintaxis exacta de la misma. Intenté duro, pero no puedo encontrarlo. Cualquier ayuda es apreciada.

Nombre de la variable de entorno: TEST, su valor: "TRUE"

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

Obtuve el siguiente error:

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

Respuestas:

26

La ifeq()directiva debe estar en la columna 1, eliminar cualquier espacio en blanco inicial, es decir

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

^ sin espacios en blanco

gwillie
fuente
14

No debes poner ifeqdespués de TAB. Se permiten espacios. Lea el documento de GNU Make .

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

También tenga en cuenta que se compara $(TEST)con lo "TRUE"que es:

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

$ make TEST='"TRUE"'
echo "Do something"
Do something
yaegashi
fuente
Este bit fue de gran ayuda: tenga en cuenta que compara $ (TEST) con "TRUE" tal como está: Gracias
kakoma