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

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


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

Este bit fue de gran ayuda: tenga en cuenta que compara $ (TEST) con "TRUE" tal como está: Gracias
kakoma
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.