Next: Simple Makefile Up: Introduction
What a Rule Looks Like
A simple makefile consists of "rules" with the following shape:
TARGET ... : DEPENDENCIES ...
A "target" is usually the name of a file that is generated by a
program; examples of targets are executable or object files. A target
can also be the name of an action to carry out, such as `clean' (*note
A "dependency" is a file that is used as input to create the target.
A target often depends on several files.
A "command" is an action that `make' carries out. A rule may have
more than one command, each on its own line. *Please note:* you need
to put a tab character at the beginning of every command line! This is
an obscurity that catches the unwary.
Usually a command is in a rule with dependencies and serves to
create a target file if any of the dependencies change. However, the
rule that specifies commands for the target need not have dependencies.
For example, the rule containing the delete command associated with the
target `clean' does not have dependencies.
A "rule", then, explains how and when to remake certain files which
are the targets of the particular rule. `make' carries out the
commands on the dependencies to create or update the target. A rule
can also explain how and when to carry out an action. Note: Writing
A makefile may contain other text besides rules, but a simple
makefile need only contain rules. Rules may look somewhat more
complicated than shown in this template, but all fit the pattern more
automatically generated by info2www