Lines Matching full:prerequisites
153 * Prerequisite Types:: There are two types of prerequisites.
158 or prerequisites to mark other targets
166 and can vary the prerequisites according to
170 * Automatic Prerequisites:: How to automatically generate rules giving
171 prerequisites from source files themselves.
180 Searching Directories for Prerequisites
507 @cindex prerequisites, introduction to
511 @var{target} @dots{} : @var{prerequisites} @dots{}
532 Usually a command is in a rule with prerequisites and serves to create a
533 target file if any of the prerequisites change. However, the rule that
534 specifies commands for the target need not have prerequisites. For
536 target @samp{clean} does not have prerequisites.
540 the commands on the prerequisites to create or update the target. A
615 prerequisites are files such as @samp{main.c} and @samp{defs.h}.
620 of its prerequisites change. In addition, any prerequisites that are
627 prerequisites. These shell commands say how to update the target file.
642 also does not have any prerequisites, so the only purpose of the rule
687 prerequisites, is more recent than the object file, or if the object
691 prerequisites of the goal. If some other rule is not depended on by the
697 prerequisites, the source file and header files. This makefile does not
809 automatically added to the list of prerequisites. We can therefore omit
810 the @samp{.c} files from the prerequisites, provided we omit the commands.
852 you group entries by their prerequisites instead of by their targets.
871 @file{command.h} and @file{buffer.h} are prerequisites of the specific
962 targets depend on, called the @dfn{prerequisites} of the target, and
1127 Another such occasion is when you want to generate prerequisites from
1128 source files automatically; the prerequisites can be put in a file that
1130 than that of somehow appending the prerequisites to the end of the main
1132 @code{make}. @xref{Automatic Prerequisites}.
1133 @cindex prerequisites, automatic generation
1134 @cindex automatic generation of prerequisites
1135 @cindex generating prerequisites automatically
1374 Supports order-only prerequisites. @xref{Prerequisite Types, ,Types
1375 of Prerequisites}.
1419 commands but no prerequisites, that file will always be remade
1421 double-colon rule with commands but no prerequisites will be remade every
1427 with commands but no prerequisites.@refill
1454 and then print the commands to update @file{foo} and its prerequisites
1527 prerequisites. During the second phase, @code{make} uses these internal
1615 prerequisites (only) for some or all targets defined in the makefile.
1622 prerequisites of the targets defined after the special target are
1640 After the first expansion phase the prerequisites list of the
1649 @file{twofile}. The final result is that there are two prerequisites,
1654 appear, unescaped, in the prerequisites list. One difference becomes
1689 Here, after the initial expansion the prerequisites of both the
1708 files, but gives the same resulting prerequisites list as the previous
1728 of all prerequisites of rules @emph{that have already appeared} for
1791 expansion) to all the patterns in the prerequisites list. As an
1805 @code{$$*} instead of @code{%} in the prerequisites list.
1816 It lists the other files that are the @dfn{prerequisites} of the target, and
1839 * Prerequisite Types:: There are two types of prerequisites.
1844 or prerequisites to mark other targets
1852 and can vary the prerequisites according to
1856 * Automatic Prerequisites:: How to automatically generate rules giving
1857 prerequisites from source files themselves.
1871 Its target is @file{foo.o} and its prerequisites are @file{foo.c} and
1887 added to the prerequisites.
1899 @var{targets} : @var{prerequisites}
1908 @var{targets} : @var{prerequisites} ; @var{command}
1927 appear on the line after the prerequisites, with a tab character, or may
1940 sign in the prerequisites lise, you must actually write @emph{four}
1950 @cindex prerequisites
1951 @cindex rule prerequisites
1953 @var{prerequisites}, which consist of file names separated by spaces.
1956 of the prerequisites (by comparison of last-modification times). The
1958 information in the prerequisites, so if any of the prerequisites changes,
1968 @section Types of Prerequisites
1970 @cindex types of prerequisites
1972 @cindex prerequisites, normal
1973 @cindex normal prerequisites
1974 @cindex prerequisites, order-only
1975 @cindex order-only prerequisites
1976 There are actually two different types of prerequisites understood by
1977 GNU @code{make}: normal prerequisites such as described in the
1978 previous section, and @dfn{order-only} prerequisites. A normal
1981 target's prerequisites will be fully executed before any commands
1992 case, you want to define @dfn{order-only} prerequisites. Order-only
1993 prerequisites can be specified by placing a pipe symbol (@code{|})
1994 in the prerequisites list: any prerequisites to the left of the pipe
1995 symbol are normal; any prerequisites to the right are order-only:
1998 @var{targets} : @var{normal-prerequisites} | @var{order-only-prerequisites}
2001 The normal prerequisites section may of course be empty. Also, you
2002 may still declare multiple lines of prerequisites for the same target:
2037 targets and in prerequisites. In commands the shell is responsible
2067 Wildcards are also useful in the prerequisites of a rule. With the
2223 @section Searching Directories for Prerequisites
2227 @cindex search path for prerequisites (@code{VPATH})
2250 @subsection @code{VPATH}: Search Path for All Prerequisites
2257 list for both prerequisites and targets of rules.
2423 All prerequisites of this target are examined using this same method.
2426 After processing the prerequisites, the target may or may not need to be
2480 list of all the prerequisites of the rule, including the names of
2495 Often the prerequisites include header files as well, which you do not
2509 @cindex search path for prerequisites (@code{VPATH}), and implicit rules
2536 @cindex search path for prerequisites (@code{VPATH}), and link libraries
2621 named @file{clean} in this directory. Since it has no prerequisites, the
2710 Phony targets can have prerequisites. When one directory contains multiple
2714 @samp{all} and give it, as prerequisites, all the individual programs. For
2734 prog3}). Phoniness is not inherited: the prerequisites of a phony
2755 @section Rules without Commands or Prerequisites
2759 @cindex rule, no commands or prerequisites
2761 If a rule has no prerequisites or commands, and the target of the rule
2804 The empty target file should have some prerequisites (otherwise it
2837 The prerequisites of the special target @code{.PHONY} are considered to
2846 The prerequisites of the special target @code{.SUFFIXES} are the list
2885 @code{.INTERMEDIATE} with no prerequisites has no effect.
2896 @code{.SECONDARY} with no prerequisites causes all targets to be treated
2908 The prerequisites of the special target @code{.SUFFIXES} are the list
2924 If you specify prerequisites for @code{.IGNORE}, then @code{make} will
2928 If mentioned as a target with no prerequisites, @code{.IGNORE} says to
2938 If you specify prerequisites for @code{.LOW_RESOLUTION_TIME},
2968 prerequisites of @code{.LOW_RESOLUTION_TIME}, as @command{make} does this
2974 If you specify prerequisites for @code{.SILENT}, then @code{make} will
2978 If mentioned as a target with no prerequisites, @code{.SILENT} says not
3001 parallel (unless its makefile contains this target). Any prerequisites
3025 the same prerequisites to all the targets also.
3031 You want just prerequisites, no commands. For example:
3073 Suppose you would like to vary the prerequisites according to the target,
3086 One file can be the target of several rules. All the prerequisites
3087 mentioned in all the rules are merged into one list of prerequisites for
3101 An extra rule with just prerequisites can be used to give a few extra
3102 prerequisites to many files at once. For example, makefiles often
3119 Another wrinkle is that the additional prerequisites could be specified with
3144 @cindex varying prerequisites
3145 @cindex prerequisites, varying (static pattern)
3150 targets do not have to have identical prerequisites. Their prerequisites must
3180 prerequisites of each target. Each target is matched against the
3278 names of prerequisites. The difference is in how @code{make} decides
3283 specified, and only when the prerequisites can be found. If more than one
3310 @node Double-Colon, Automatic Prerequisites, Static Pattern, Rules
3324 are executed if the target is older than any prerequisites of that rule.
3325 If there are no prerequisites for that rule, its commands are always
3346 @node Automatic Prerequisites, , Double-Colon, Rules
3347 @section Generating Prerequisites Automatically
3348 @cindex prerequisites, automatic generation
3349 @cindex automatic generation of prerequisites
3350 @cindex generating prerequisites automatically
3397 compiler feature to generate prerequisites on demand with a command like
3399 containing all the automatically-generated prerequisites; then the
3404 regenerate the prerequisites, because it always regenerates any makefile
3412 the new prerequisites.
3414 Here is the pattern rule to generate a file of prerequisites (i.e., a makefile)
3436 of @samp{-M}. This omits prerequisites on system header files.
3458 knows it must regenerate the prerequisites whenever any of the source or
3528 line may be attached to the target-and-prerequisites line with a
3787 @code{.SILENT} without prerequisites has the same effect
4069 there are no prerequisites. These ways of ignoring errors are obsolete
4089 continues to consider the other prerequisites of the pending targets,
4149 @code{make} checks to see whether it appears on the prerequisites of
4766 not actual files, but only exist so that their prerequisites can be
4768 prerequisites may not be remade properly if the target file actually does exist.
4780 substituted by explicit request into targets, prerequisites, commands,
4847 Variable references can be used in any context: targets, prerequisites,
5799 effect for all prerequisites of this target, and all their
5800 prerequisites, etc.@: (unless those prerequisites override that variable
5814 prerequisites.
6590 (@pxref{General Search, , @code{VPATH} Search Path for All Prerequisites}).
7475 prerequisites of goals, or prerequisites of prerequisites of goals, etc.
7504 during @code{clean} rules (@pxref{Automatic Prerequisites}), so
7847 consider the other prerequisites of the pending targets, remaking them
7886 consider targets and their prerequisites using the normal algorithms;
7888 status of their prerequisites. To avoid infinite recursion, if
7937 parsed, prerequisites that did not need to be rebuilt, etc. This option
8012 prerequisites of these targets can be processed all the same.
8056 prerequisites, and do not remake anything on account of changes in
8278 more prerequisites (the source files). You would want to write a rule
8280 prerequisites, such as header files, that the implicit rule cannot
8287 that actually applies is the one whose prerequisites exist or can be made.
8298 Above, we said an implicit rule applies if the required prerequisites ``exist
8311 Note that explicit prerequisites do not influence implicit rule search.
8352 defined depends on the @dfn{suffix list} (the list of prerequisites of
8360 described below whose prerequisites have one of these suffixes are
8956 substring, while other characters match only themselves. The prerequisites
9000 under consideration and all of its prerequisites (after pattern
9002 become prerequisites of the target.
9016 There may also be prerequisites that do not use @samp{%}; such a prerequisite
9018 prerequisites are useful occasionally.
9020 A pattern rule need not have any prerequisites that contain @samp{%}, or
9021 in fact any prerequisites at all. Such a rule is effectively a general
9027 does not act as many different rules with the same prerequisites and
9033 @code{make} worries only about giving commands and prerequisites to the file
9044 prerequisites actually exist or are mentioned always takes priority over a
9045 rule with prerequisites that must be made by chaining other implicit rules.
9099 will be executed only once, and the prerequisites of both
9104 prerequisites, and it will execute happily ever after.)@refill
9119 is executed, based on the target and prerequisites of the rule. In this
9123 @cindex automatic variables in prerequisites
9124 @cindex prerequisites, and automatic variables
9131 attempting to use @code{$@@} within the prerequisites list; this will
9166 The names of all the prerequisites that are newer than the target, with
9167 spaces between them. For prerequisites which are archive members, only
9169 @cindex prerequisites, list of changed
9170 @cindex list of changed prerequisites
9175 The names of all the prerequisites, with spaces between them. For
9176 prerequisites which are archive members, only the member named is used
9181 does @strong{not} contain any of the order-only prerequisites; for those
9183 @cindex prerequisites, list of all
9184 @cindex list of all prerequisites
9189 This is like @samp{$^}, but prerequisites listed more than once are
9197 The names of all the order-only prerequisites, with spaces between
9226 the prerequisites that have changed. For example, suppose that an archive
9301 parts of all prerequisites.
9310 parts of all prerequisites, including multiple instances of duplicated
9311 prerequisites.
9320 all prerequisites that are newer than the target.
9341 @file{test.o}, the stem is @samp{test}. The pattern rule prerequisites are
9343 @samp{%}. Thus, if in the same example one of the prerequisites is written
9355 with @samp{src/a} as the stem. When prerequisites are turned into file
9392 its prerequisites actually exist. Prerequisites that could be made with
9425 considered. These dummy rules have no prerequisites and no commands, and
9446 prerequisites, but different commands. When the new rule is defined, the
9451 same target and prerequisites, but no commands. For example, the following
9464 match-anything pattern rule with no prerequisites (@pxref{Match-Anything
9467 commands are used for all targets and prerequisites that have no commands
9479 to cause all the source files needed (as prerequisites) to be created
9486 commands are used for all prerequisites which do not appear as targets in
9490 If you use @code{.DEFAULT} with no commands or prerequisites:
9549 Suffix rules cannot have any prerequisites of their own. If they have any,
9577 The known suffixes are simply the names of the prerequisites of the special
9579 for @code{.SUFFIXES} that adds more prerequisites, as in:
9589 to them, write a rule for @code{.SUFFIXES} with no prerequisites. By
9590 special dispensation, this eliminates all existing prerequisites of
9619 is also followed recursively for prerequisites that come from implicit
9663 Test whether all the prerequisites exist or ought to exist. (If a
9667 If all prerequisites exist or ought to exist, or there are no prerequisites,
9683 Test whether all the prerequisites exist or ought to exist.
9691 If all prerequisites exist, ought to exist, or can be
9710 variables are set corresponding to the target and prerequisites.
9742 This construct is available only in targets and prerequisites, not in
9853 and make all the members of the archive file prerequisites of that rule.
9956 @xref{Directory Search, , Searching Directories for Prerequisites}.
10033 The automatic variable @code{$^} containing a list of all prerequisites
10145 Use a special search method for library prerequisites written in the
10168 @xref{Directory Search, ,Searching Directories for Prerequisites}.
10228 (@pxref{Directory Search, ,Searching Directories for Prerequisites}) have their names changed inside command
10234 the prerequisites of a rule has the amazingly strange ``feature'' of
10540 The names of all the prerequisites that are
10542 For prerequisites which are archive members, only
10547 The names of all the prerequisites, with spaces between them. For
10548 prerequisites which are archive members, only the member named is used
10550 prerequisites, while @code{$+} retains them and preserves their order.
10596 @xref{General Search, , @code{VPATH} Search Path for All Prerequisites}.
10754 prerequisites, etc., one of them depended on @var{xxx} again.