On Sat, May 18, 2019 at 10:30 PM Mohamed Akram <mohd.ak...@outlook.com>
wrote:

> Thanks for the tip. I'm not sure why it doesn't just fail immediately
> then, instead of taking a few steps and stumbling on itself.
>

In order to fail early, make would have to assume it knows more than you
do, but it's just a dumb program and you might be doing something unusual
but perfectly legal.  How can make know whether the compiler/link on your
system does something special with .l files, beyond the normal
interpretation as lex files?

Just out of curiosity, I tested the same thing with FreeBSD make
> (`LDFLAGS=-ll make`) and it compiled `lang` as expected with this output:
>

The short answer is that FreeBSD make uses '$<' in the recipe of the
applicable .c: pattern rule, while GNU make use '$^' in the parallel rule.

Note that FreeBSD make doesn't actually require the dependency: you get the
same results when the makefile is just
   lang:

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

Reply via email to