From 3ecf97d3af0f47800b85edae3ef26d20c0bba2f3 Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Sat, 27 Nov 2021 21:57:37 -0500 Subject: [SV 48643] Update the implicit rule search docs * NEWS: Announce the change. * doc/make.texi (Implicit Rule Search): Update the definition of "ought to exist" and add the extra step for compatibility mode. --- doc/make.texi | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'doc') diff --git a/doc/make.texi b/doc/make.texi index 5eea2a94..f97f15ff 100644 --- a/doc/make.texi +++ b/doc/make.texi @@ -27,7 +27,7 @@ of @cite{The GNU Make Manual}, for GNU @code{make} version @value{VERSION}. Copyright @copyright{} 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, -2020 Free Software Foundation, Inc. +2020, 2021 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -10964,7 +10964,7 @@ the front of each prerequisite name.@refill @item Test whether all the prerequisites exist or ought to exist. (If a file name is mentioned in the makefile as a target or as an explicit -prerequisite, then we say it ought to exist.) +prerequisite of target T, then we say it ought to exist.) If all prerequisites exist or ought to exist, or there are no prerequisites, then this rule applies. @@ -10994,6 +10994,13 @@ If all prerequisites exist, ought to exist, or can be made by implicit rules, then this rule applies. @end enumerate +@item +If no pattern rule has been found then try step 5 and step 6 again with a +modified definition of ``ought to exist'': if a filename is mentioned as a +target or as an explicit prerequisite of @emph{any} target, then it ought to +exist. This check is only present for backward-compatibility with older +versions of GNU make: we don't recommend relying on it. + @item If no implicit rule applies, the rule for @code{.DEFAULT}, if any, applies. In that case, give @var{t} the same recipe that -- cgit v1.2.1