Estoy usando un makefile para compilar un programa compuesto por muchos archivos .c
, y cada vez que se invoca make
, solo compila los archivos modificados después de la última ejecución (nada especial hasta aquí).Controlando la verbosidad de make
Para evitar saturar mi pantalla, precribo @
al comienzo de cada llamada $(CC)
, y antes de que imprima un mensaje personalizado echo
. Por ejemplo:
%.o: %.c $(h1) $(h3) %.h
@echo -e "\tCompiling <" $<
@$(CC) $(CFLAGS) -c $< -o $(libDir)[email protected]$(MATHOPTS)
Mi pregunta es: ¿Cómo puedo controlar el nivel de detalle de make
de una manera "dinámica" más, con el fin de ser capaz de:
- El comportamiento normal: sólo el mensaje personalizado se imprime para cada regla de makefile ejecutada.
- Comportamiento detallado: imprima el comando ejecutado realmente por cada regla de los archivos MAKE (como si el
@
no se hubiera utilizado en absoluto).
En su primera parte, supongo que también es necesario anular 'CC = $ (CC _ $ (V))'. –
Sí. Su ausencia fue un pedo cerebral que arreglaré ahora. También debo señalar que la expansión de variables recursivas se implementa ampliamente, pero no actualmente en POSIX (pero eso cambiará en una futura revisión). –
Gran solución @JackKelly. ¡El que crea la variable 'AT' es simple y efectivo !. –