What is the meaning of $ (Q) @: in a Makefile

I read on linux Makefile:

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

What is the meaning of "$ (Q) @:"?

I try to do this, but google is always crappy if the search uses some weird character. Therefore, in the end, I can not find any guidance on this.

+4
source share
1 answer

After viewing the code. Q is defined somewhere after this line. Since makefile has a peculiar concept of a variable (which can be extended), it can be implemented anywhere. Q is used to display the message or not (possibly for Quiet).

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

And for the latter, @:it means do-nothing-output-nothing.

So, the conclusion is $(Q)@:simple do-nothing-output-nothing.

+3

All Articles