All is well:
  $ cat Makefile
  all:z.bak
  %.bak:;
  $ make
  make: Nothing to be done for `all'.
Until we add a %:
  $ cat Makefile
  all:z.bak
  %.bak:%;
  $ make
  make: *** No rule to make target `z.bak', needed by `all'.  Stop.
Suddenly it can't find the rule anymore. Or prints the wrong message.
Indeed, instead of % use
  %.bak:some_file_that_exists;
No problem. But
  %.bak:some_file_that_does_not_exist;
then make says it can't find the rule to make target z.bak, when it
should say it can't find the rule to make target some_file_that_does_not_exist,
which it does when one uses
  z.bak:some_file_that_does_not_exist;

Maybe the story lies on Info page "10.8 Implicit Rule Search Algorithm"
and maybe -d showing "Avoiding implicit rule recursion." is a clue.
Anyway, I'm not one of the 0.1% of the population to be able to
comprehend all these things. GNU Make 3.81


_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to