summaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
authorDmitry Goncharov <dgoncharov@users.sf.net>2021-05-30 13:48:29 -0400
committerPaul Smith <psmith@gnu.org>2021-07-25 17:15:38 -0400
commit33468b3f31d65815152c11f32dc5c4384a6267b5 (patch)
treedd6ea8bec02ce9b16af732d0a229b7e74e63d75e /NEWS
parent1cffd0a203bc1477671a02aafd6360b7bb964670 (diff)
downloadmake-git-33468b3f31d65815152c11f32dc5c4384a6267b5.tar.gz
[SV 60297] Add .NOTINTERMEDIATE special target
Support a new special target, .NOTINTERMEDIATE. Any file or pattern prerequisite of this target will never be considered intermediate. This differs from .SECONDARY in that .SECONDARY files won't be deleted but they will still not be built if they are missing. .NOTINTERMEDIATE files are treated the same way as a target which is explicitly mentioned in the makefile. This is mostly useful with patterns; obviously mentioning a target explicitly here is enough in and of itself to make something not intermediate. Some adjustments made by psmith@gnu.org * NEWS: Announce the new feature. * doc/make.texi (Special Targets): Document .NOTINTERMEDIATE. (Chained Rules): Describe how to use .NOTINTERMEDIATE. * src/main.c (main): Add "notintermediate" to the .FEATURES variable. * src/filedef.h (struct file): Add "notintermediate" flag. * src/file.c (no_intermediates): Mark global .NOTINTERMEDIATE. (snap_file): Support .NOTINTERMEDIATE special target. Throw an error if the same target is marked both .NOTINTERMEDIATE and .SECONDARY or .INTERMEDIATE. (rehash_file): Merge intermediate, notintermediate, secondary flags. (remove_intermediates): Check notintermediate flag before removing. (print_file): * src/implicit.c (pattern_search): Set notintermediate based on the pattern. * tests/scripts/targets/NOTINTERMEDIATE: Add a new test suite.
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS5
1 files changed, 5 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 5efa8bad..e1eeb531 100644
--- a/NEWS
+++ b/NEWS
@@ -39,6 +39,11 @@ https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=109&se
https://www.gnu.org/software/gnulib/manual/html_node/C99-features-assumed.html
The configure script should verify the compiler has these features.
+* New feature: The .NOTINTERMEDIATE special target
+ .NOTINTERMEDIATE Disables intermediate behavior for specific files, for all
+ files built using a pattern, or for the entire makefile.
+ Implementation provided by Dmitry Goncharov <dgoncharov@users.sf.net>
+
* New feature: The $(let ...) function
This function allows user-defined functions to define a set of local
variables: values can be assigned to these variables from within the