]> git.ipfire.org Git - thirdparty/make.git/commitdiff
* doc/make.texi (Chained Rules): [SV 61957] Clarify NOTINTERMEDIATE
authorPaul Smith <psmith@gnu.org>
Wed, 3 Aug 2022 04:13:34 +0000 (00:13 -0400)
committerPaul Smith <psmith@gnu.org>
Wed, 3 Aug 2022 04:13:34 +0000 (00:13 -0400)
doc/make.texi

index efd703060e3f4e2c229ef96011f9a25c970a5746..6dd9a8e8d48b66a40f23176762f18396345d556a 100644 (file)
@@ -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
 deleting.
 
-Ordinarily, a file cannot be intermediate if it is mentioned in the
-makefile as a target or prerequisite.  However, you can explicitly mark a
-file as intermediate by listing it as a prerequisite of the special target
-@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
-@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 explicitly mark a file as intermediate by listing it as a prerequisite
+of the special target @code{.INTERMEDIATE}.  This takes effect even if the
+file is mentioned explicitly in some other way.
+
+A file cannot be intermediate if it is mentioned in the makefile as a target
+or prerequisite, so one way to avoid the deletion of intermediate files is by
+adding it as a prerequisite to some target.  However, doing so can cause make
+to do extra work when searching pattern rules (@pxref{Implicit Rule Search,
+,Implicit Rule Search Algorithm}).
+
+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
 providing @code{.NOTINTERMEDIATE} as a target with no prerequisites: