manpagez: man pages & more
info make
Home | html | info | man

File: make.info,  Node: Rules,  Next: Recipes,  Prev: Makefiles,  Up: Top

4 Writing Rules
***************

A "rule" appears in the makefile and says when and how to remake certain
files, called the rule's "targets" (most often only one per rule).  It
lists the other files that are the "prerequisites" of the target, and
the "recipe" to use to create or update the target.

   The order of rules is not significant, except for determining the
"default goal": the target for 'make' to consider, if you do not
otherwise specify one.  The default goal is the first target of the
first rule in the first makefile.  There are two exceptions: a target
starting with a period is not a default unless it also contains one or
more slashes, '/'; and, a target that defines a pattern rule has no
effect on the default goal.  (*Note Defining and Redefining Pattern
Rules: Pattern Rules.)

   Therefore, we usually write the makefile so that the first rule is
the one for compiling the entire program or all the programs described
by the makefile (often with a target called 'all').  *Note Arguments to
Specify the Goals: Goals.

* Menu:

* Rule Example::                An example explained.
* Rule Syntax::                 General syntax explained.
* Prerequisite Types::          There are two types of prerequisites.
* Wildcards::                   Using wildcard characters such as '*'.
* Directory Search::            Searching other directories for source files.
* Phony Targets::               Using a target that is not a real file's name.
* Force Targets::               You can use a target without a recipe
                                  or prerequisites to mark other targets
                                  as phony.
* Empty Targets::               When only the date matters and the
                                  files are empty.
* Special Targets::             Targets with special built-in meanings.
* Multiple Targets::            When to make use of several targets in a rule.
* Multiple Rules::              How to use several rules with the same target.
* Static Pattern::              Static pattern rules apply to multiple targets
                                  and can vary the prerequisites according to
                                  the target name.
* Double-Colon::                How to use a special kind of rule to allow
                                  several independent rules for one target.
* Automatic Prerequisites::     How to automatically generate rules giving
                                  prerequisites from source files themselves.

© manpagez.com 2000-2024
Individual documents may contain additional copyright information.