2009-10-21 10 views
5

¿Hay alguna forma de detectar si una variable se ha establecido desde el entorno frente a la línea de comando?Variables de archivo Make desde la línea de comandos frente al entorno

Me gustaría distinguir entre alguien que invoca make con make LIB=mylib contra make y se está definiendo $ LIB.

+0

Por favor, etiquete sus preguntas relacionadas con las marcas con la etiqueta [make]. Para mayor justificación, consulte http://meta.stackexchange.com/questions/24030/why-do-they-specify-makefile-tag-instead-of-make/26567#26567 –

Respuesta

5

Sí. Puede usar la función origin para determinar dónde se definió una variable.

 
ifneq (,$(findstring environment,$(origin LIB))) 
    # LIB was defined by the environment 
else 
    # LIB was defined some other way 
endif 
0

Con no GNU make, puede ejecutar el comando export y grep para la variable en cuestión. Esto funciona solo en reglas y solo mientras la variable no esté configurada como one-shot (como en LIB=foo make).

Cuestiones relacionadas