2016-04-09 8 views
4

ich in Linux-Makefile gelesen habe:

$(filter-out _all sub-make $(CURDIR)/Makefile, $(MAKECMDGOALS)) _all: sub-make 
    $(Q)@: 

Was ist die Bedeutung von "$ (Q) @:"

Ich versuche es zu googeln, aber google immer beschissen, wenn die Suche mit einem seltsamen Charakter. Also kann ich am Ende kein Handbuch darüber finden.

Antwort

3

Nach dem Blick in den Code. Q ist irgendwo nach diesen Zeilen definiert. Da Makefile ein merkwürdiges Konzept der Variablen hat (welches erweiterbar ist), kann es überall implementiert werden. Q wird verwendet, ob Nachricht angezeigt wird oder nicht (Q vielleicht für Quiet).

ifeq ($(KBUILD_VERBOSE),1) 
    quiet = 
    Q = 
else 
    quiet=quiet_ 
    Q = @ 
endif 

Und für die letzte @: bedeutet dies do-nothing-output-nothing.

So die Schlussfolgerung $(Q)@: einfach do-nothing-output-nothing.