In the GNU Makefile manual, it mentions these prefixes.
If .ONESHELL is provided, then only the first line of the recipe will be checked for the special prefix characters (‘@’, ‘-’, and ‘+’).
What do these prefixes do, and where are they mentioned?
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.
They control the behaviour of make for the tagged command lines:
@suppresses the normal ‘echo’ of the command that is executed.-means ignore the exit status of the command that is executed (normally, a non-zero exit status would stop that part of the build).+means ‘execute this command undermake -n‘ (or ‘make -t’ or ‘make -q’) when commands are not normally executed. See also the POSIX specification formakeand also §9.3 of the GNU Make manual.The
+notation is a (POSIX-standardized) generalization of the de facto (non-standardized) mechanism whereby a command line containing${MAKE}or$(MAKE)is executed undermake -n.(
@is discussed in §5.2 of the GNU Make manual;-is described in §5.5; and §5.7.1 mentions the use of+.)