2011-06-27 16 views
15

En este makefileMakefile: mostrar y ejecutar

dirs = $(shell ls) 
clean: 
    $(foreach dir,$(dirs),echo $(dir);) 

La salida es

$ make clean 
echo bin; echo install.sh; echo Makefile; echo README.md; echo utils; 
bin 
install.sh 
Makefile 
README.md 
utils 

¿Por qué se muestran primero el comando, luego ejecutarlo? ¿Cómo puedo omitir la primera línea?

Respuesta

30

Anteponga el comando con el carácter @. Ejemplo:

dirs = $(shell ls) 
clean: 
    @$(foreach dir,$(dirs),echo $(dir);) 
+5

¿Puede agregar la explicación, por favor! – DarthSpeedious

+2

@DarthSpeedious: la explicación es implícita. La pregunta era "¿cómo mostrar y ejecutar"? La respuesta es "Anteponer el carácter @" – Flimzy