run makefile target

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;



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