run - Cambiar el valor de la variable Makefile dentro del cuerpo de destino
makefile windows (3)
¿Hay alguna manera de reasignar el valor de la variable Makefile dentro del cuerpo objetivo?
Lo que intento hacer es agregar algunos indicadores adicionales para la compilación de depuración:
%.erl: %.beam
$(ERLC) $(ERLFLAGS) -o ebin $<
test: clean debug_compile_flag compile compile_test
debug_compile:
$(ERLCFLAGS) += -DTEST
Entonces, si invoco un objetivo de prueba , me gustaría limpiar mi entorno, agregar algunos nuevos indicadores (como -DESTAR a los existentes), compilar todo el código una vez más (primeras fuentes y luego módulos de prueba).
No quiero copiar / pegar el código para compilar con algunas banderas nuevas ya que hay mucha lógica puesta aquí y allá.
¿Hay alguna manera fácil de redefinir el valor de la variable para poder reutilizar el código existente?
Sí, hay una manera fácil de hacerlo, y sin volver a ejecutar Make. Use un valor de variable específico del objetivo :
test: clean debug_compile
debug_compile: ERLCFLAGS += -DTEST
debug_compile: compile compile_test;
Otra respuesta está aquí: definir la variable make en el tiempo de ejecución de la regla .
Para los perezosos, puedes tener reglas como las siguientes ( FLAG
y DEBUG
son mis variables):
.DBG:
$(eval FLAG += $(DEBUG))
Editar : como explica Beta en la otra respuesta , es posible.
No. No hay forma de hacer esto en el Makefile. Sin embargo, puede cambiar el valor de una variable en la línea de comando make
. Si reescribe su Makefile de la siguiente manera:
ERLCFLAGS += $(ERLCFLAGSADDED)
%.erl: %.beam
$(ERLC) $(ERLCFLAGS) -o ebin $<
test: clean compile compile_test
Luego, puede invocar make para realizar sus pruebas usando:
make ERLCFLAGSADDED=-DTEST test