Next: , Previous: Commands, Up: Commands

5.1 Command Syntax

Makefiles have the unusual property that there are really two distinct syntaxes in one file. Most of the makefile uses make syntax (see Writing Makefiles). However, commands are meant to be interpreted by the shell and so they are written using shell syntax. The make program does not try to understand shell syntax: it performs only a very few specific translations on the content of the command before handing it to the shell.

Each command line must start with a tab, except that the first command line may be attached to the target-and-prerequisites line with a semicolon in between. Any line in the makefile that begins with a tab and appears in a “rule context” (that is, after a rule has been started until another rule or variable definition) will be considered a command line for that rule. Blank lines and lines of just comments may appear among the command lines; they are ignored.

Some consequences of these rules include: