2010-06-03 14 views
19

Der Linux-Kernel (und verschiedene andere Projekte einschließlich Git) haben sehr schöne Makefiles, die die riesigen cc-Aufrufe in nette kleine Akronyme verstecken.pretty print memafiles

Zum Beispiel:

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

würde:

CC cool.c 
CC neat.c 

was wirklich schön ist, wenn Sie ein Projekt mit einer großen Anzahl von Dateien und langen Compiler-Flags haben. Ich erinnere mich, dass dies mit der Unterdrückung der Standardausgabe und der Erstellung einer benutzerdefinierten Ausgabe zu tun hatte. Wie machst du das?

Antwort

23

Sie können den Makefile-Zielen @ Aufrufe voranstellen.

Z. B .:

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

awesome! genau was ich brauchte! – wickedchicken

+8

Die Makefile-Dateien des Linux-Kernels erlauben Ihnen zu entscheiden, ob der Kompilierbefehl angezeigt werden soll oder nicht (was beim Debuggen nützlich sein kann). Sie setzen 'Q = @' bedingt und schreiben dann den Befehl als '$ (Q) $ (CC) ...'. Jetzt können Sie einen Befehl setzen, indem Sie 'Q =' setzen –

Verwandte Themen