2010-06-03 4 views
19

Le noyau linux (et divers autres projets incluant git) ont de très jolis makefiles qui cachent les appels cc géants dans de jolis petits acronymes.jolis makefiles d'impression

Par exemple:

gcc -O2 -o cool.o cool.c -llib 
gcc -O2 -o neat.o neat.c -llib 

deviendrait:

CC cool.c 
CC neat.c 

Ce qui est vraiment bien si vous avez un projet avec un grand nombre de fichiers et de drapeaux à long compilateur. Je me souviens que cela avait à voir avec la suppression de la sortie par défaut et en faire un personnalisé. Comment faites-vous?

Répondre

23

Vous pouvez ajouter @ aux appels dans les cibles du fichier makefile.

.: par exemple

%.o: %.c 
    @$(CC) $(CFLAGS) -c -o [email protected] $< 
    @echo "CC $<" 
+0

génial! exactement ce dont j'avais besoin! – wickedchicken

+8

Le Makefile du noyau Linux vous permet de décider d'afficher ou non la commande de compilation (ce qui peut être utile lors du débogage). Ils définissent conditionnellement 'Q = @', puis écrivent la commande en tant que '$ (Q) $ (CC) ...'. Vous pouvez maintenant choisir de définir une commande en réglant 'Q =' –

Questions connexes