On Thu, 2025-06-05 at 21:43 +0200, Denis Excoffier wrote: > jupiter% touch foo100.z0 bar200.z0; rm -f foo100.z1 bar200.z1 > jupiter% make > foo100 (foo100 is expected and foo100 is obtained) > 200 (bar200 is expected but 200 is obtained instead) > jupiter% make --version | head -1 > GNU Make 4.4.1 > jupiter% > > The output of 'make -p' seems to infer that > '$*' is filled with the last pattern rule encountered, > even if this is not the one with the recipe. > > Is it intended behavior?
I think you are correct that this is a bug. Certainly, it doesn't accord with my understanding of how GNU Make should work nor the documentation as I read it. I think static pattern rules without recipes are rare (at least I've never seen or used one) and so the details of handling them might have been overlooked.