What does the following do in a Makefile?
rule: $(deps)
@:
I can’t seem to find this in the make manual.
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
It means “don’t echo this command on the output.” So this rule is saying “execute the shell command
:and don’t echo the output.Of course the shell command
:is a no-op, so this is saying “do nothing, and don’t tell.”Why?
The trick here is that you’ve got an obscure combination of two different syntaxes. The make(1) syntax is the use of an action starting with @, which is simply not to echo the command. So a rule like
won’t emit
Now, the action part of a rule can be any shell command, including
:. Bash help explains this as well as anywhere: