Go to the first, previous, next, last section, table of contents.

# 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; see section Using Empty Commands.)

Users use many different shell programs, but commands in makefiles are always interpreted by ``/bin/sh'` unless the makefile specifies otherwise. See section Command Execution.

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.

- Echoing: How to control when commands are echoed.
- Execution: How commands are executed.
- Parallel: How commands can be executed in parallel.
- Errors: What happens after a command execution error.
- Interrupts: What happens when a command is interrupted.
- Recursion: Invoking `make` from makefiles.
- Sequences: Defining canned sequences of commands.
- Empty Commands: Defining useful, do-nothing commands.

Go to the first, previous, next, last section, table of contents.