Contents|Index|Previous|Next

Writing the Commands in Rules

The commands of a rule consist of shell command lines to be executed one by one. Each command line must start with a tab, except that the first command line may be attached to the target-and-dependencies line with a semicolon in between. Blank lines and lines of just comments may appear among the command lines; they are ignored. (But beware, an apparently blank line that begins with a tab is not blank! It is an empty command.)

Users use many different shell programs, but commands in make-files are always interpreted by /bin/sh unless the makefile specifies otherwise.

The shell that is in use determines whether comments can be written on command lines, and what syntax they use. When the shell is /bin/sh, a # starts a comment that extends to the end of the line. The # does not have to be at the beginning of a line. Text on a line before a # is not part of the comment.

See the following documentation for more discussion.

Command Echoing

Command Execution

Parallel Execution

Errors in Commands

Interrupting or Killing make

Recursive Use of make

How the MAKE Variable Works

Communicating Variables to a Sub-make

Communicating Options to a Sub-make

The --print-directory Option

Defining Canned Command Sequences

Using Empty Commands