Shell-Line Prefixes

Shell-line prefixes appear on a shell line before the program name. They appear as single characters or as (prefix). The first non-prefix character ends the prefixes or the"|" prefix explicitly marks the end. Each shell line is macro expanded before prefixes are detected.

Char. (Prefix) Value
|   Demark the end of the prefixes.
@ (Silent) Don't display shell line before execution but display for "make -n"
@@   Don't display shell line before execution even for "make -n"
-[num] (Ignore)[num] Ignore non-zero shell line exit status, printing an "ignored" message. If num is given, only ignore exit status if less than or equal to num. The status macro holds the exit status value.
--[num]   As "-[num]", but don't print "ignored" message.
~[num] (TrackErrors)[num] As "-[num]", but don't set status macro.
~~[num]   As "--[num]", but don't set status macro.
* (MemSwap) Swap Opus Make out of memory before executing shell line. When emulating PM/CB the prefix is ":".
& (Always) Override "-n" command-line flag for this shell line.
=   Reread target's on-disk timestamp after all its shell lines have been executed.
: (NoShell) Execute shell line, without using shell program. When emulating PM/CB the prefix is "*".
+ (Shell) Execute shell line using shell program.
! (Iterate) Iterate this shell line for each element of *? or $**, according to which appears first on the shell line.
> (ExtraLine) Echo CR/LF after the shell line is executed.