Re: clarifications about “10.8 Implicit Rule Search Algorithm.”

Paul Smith <[email protected]> Mon, 20 Oct 2025 16:16:12 -0400
Newsgroups gmane.comp.gnu.make.general
Organization GNU's Not UNIX!
Message-ID <[email protected]>
On Mon, 2025-10-20 at 22:57 +0300, Dmitry wrote:
> > At that point make calls pattern_search recursively to find a rule
> > to build 'aaa'.
> So now our new target is=E2=80=AF=E2=80=98aaa=E2=80=99, and we must start=
 searching implicit
> rules from the beginning.
> We take the pattern rule=E2=80=AF=E2=80=98%.o=E2=80=AF:=E2=80=AFaaa=E2=80=
=99=E2=80=AFand discard it not because of
> recursion, but because its target=E2=80=AF=E2=80=98%.o=E2=80=99=E2=80=AFd=
oesn=E2=80=99t match=E2=80=AF=E2=80=98aaa=E2=80=99.
> And the message =E2=80=9CAvoiding implicit rule recursion for rule
> '%.o:=E2=80=AFaaa'=E2=80=9D doesn=E2=80=99t appear at all.

Can we clarify: you are not saying that you don't understand the
_behavior_ of make, in that it appears to do the right thing based on
the documentation, am I correct in that?

You are just questioning why you see these debug messages which don't
seem like they should be needed?

Is that right?

If you think the behavior is not right, such that make is building
something it shouldn't build or not building something that it should,
or choosing the wrong rule, or building targets out of order, can you
be more explicit what exactly is not as expected?