mirror of
https://github.com/mirror/make.git
synced 2025-04-14 21:40:24 +08:00
[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.
This commit is contained in:
parent
21d3865973
commit
3ecf97d3af
8
NEWS
8
NEWS
@ -78,6 +78,14 @@ https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=109&se
|
||||
made as a side-effect of some other target's recipe are now noticed as
|
||||
expected.
|
||||
|
||||
* GNU make has sometimes chosen unexpected, and sub-optimal, chains of
|
||||
implicit rules due to the definition of "ought to exist" in the implicit
|
||||
rule search algorithm, which considered any prerequisite mentioned in the
|
||||
makefile as "ought to exist". This algorithm has been modified to prefer
|
||||
prerequisites mentioned explicitly in the target being built and only if
|
||||
that results in no matching rule, will GNU make consider prerequisites
|
||||
mentioned in other targets as "ought to exist".
|
||||
|
||||
* GNU Make can now be built for MS-Windows using the Tiny C tcc compiler.
|
||||
Port provided by Christian Jullien <eligis@orange.fr>
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user