2010-06-03 7 views
19

Il kernel di Linux (e vari altri progetti incluso git) hanno dei makefile molto belli che nascondono le gigantesche chiamate in cc in piccoli e simpatici acronimi.prettyfile makefiles

Ad esempio:

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

sarebbe diventato:

CC cool.c 
CC neat.c 

che è veramente bello se si dispone di un progetto con un gran numero di file e flag di compilazione lunghi. Ricordo che questo aveva a che fare con la soppressione dell'output predefinito e la creazione di uno personalizzato. Come si fa?

risposta

23

È possibile anteporre @ alle chiamate nei target makefile.

Es .:

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

impressionante! esattamente quello di cui avevo bisogno! – wickedchicken

+8

Il kernel di Linux Makefile consente di decidere se mostrare il comando di compilazione o meno (che può essere utile quando si esegue il debug). Impostano condizionatamente 'Q = @' e poi scrivono il comando come '$ (Q) $ (CC) ...'. Ora puoi scegliere di impostare un comando impostando 'Q =' –

Problemi correlati