mirror of
https://github.com/mirror/make.git
synced 2025-01-29 05:40:52 +08:00
* doc/make.texi (Chained Rules): [SV 61957] Clarify NOTINTERMEDIATE
This commit is contained in:
parent
91d87ccf32
commit
c72e1ec446
@ -10301,18 +10301,21 @@ longer needed. Therefore, an intermediate file which did not exist before
|
|||||||
deletion to you by printing a @samp{rm} command showing which file it is
|
deletion to you by printing a @samp{rm} command showing which file it is
|
||||||
deleting.
|
deleting.
|
||||||
|
|
||||||
Ordinarily, a file cannot be intermediate if it is mentioned in the
|
You can explicitly mark a file as intermediate by listing it as a prerequisite
|
||||||
makefile as a target or prerequisite. However, you can explicitly mark a
|
of the special target @code{.INTERMEDIATE}. This takes effect even if the
|
||||||
file as intermediate by listing it as a prerequisite of the special target
|
file is mentioned explicitly in some other way.
|
||||||
@code{.INTERMEDIATE}. This takes effect even if the file is mentioned
|
|
||||||
explicitly in some other way.
|
|
||||||
|
|
||||||
Listing a file as a prerequisite of the special target
|
A file cannot be intermediate if it is mentioned in the makefile as a target
|
||||||
@code{.NOTINTERMEDIATE} forces it to not be considered intermediate
|
or prerequisite, so one way to avoid the deletion of intermediate files is by
|
||||||
(just as any other mention of the file will do). Also, listing the
|
adding it as a prerequisite to some target. However, doing so can cause make
|
||||||
target pattern of a pattern rule as a prerequisite of
|
to do extra work when searching pattern rules (@pxref{Implicit Rule Search,
|
||||||
@code{.NOTINTERMEDIATE} ensures that no targets generated using that
|
,Implicit Rule Search Algorithm}).
|
||||||
pattern rule are considered intermediate.
|
|
||||||
|
As an alternative, listing a file as a prerequisite of the special target
|
||||||
|
@code{.NOTINTERMEDIATE} forces it to not be considered intermediate (just as
|
||||||
|
any other mention of the file will do). Also, listing the target pattern of a
|
||||||
|
pattern rule as a prerequisite of @code{.NOTINTERMEDIATE} ensures that no
|
||||||
|
targets generated using that pattern rule are considered intermediate.
|
||||||
|
|
||||||
You can disable intermediate files completely in your makefile by
|
You can disable intermediate files completely in your makefile by
|
||||||
providing @code{.NOTINTERMEDIATE} as a target with no prerequisites:
|
providing @code{.NOTINTERMEDIATE} as a target with no prerequisites:
|
||||||
|
Loading…
Reference in New Issue
Block a user