On Tue, 2017-06-20 at 17:18 +0200, SF Markus Elfring wrote:
> I guess that it will be noticed once more that implicit rules will work
> in an other way than static pattern rules.

It's important to realize that even though the unfortunate choice of
naming implies otherwise, static pattern rules are in all ways
_explicit_ rules.  They are not and should never be considered implicit
rules.

A static pattern rule is merely a shorthand for writing a bunch of
explicit rules.  So this:

  OBJS = foo.o bar.o biz.o baz.o

  $(OBJS): %.o : %.c
          $(CC) $(CFLAGS) -c -o $@ $<

is in every way equivalent (to make) to writing this:

  foo.o : foo.c
          $(CC) $(CFLAGS) -c -o $@ $<
  bar.o : bar.c
          $(CC) $(CFLAGS) -c -o $@ $<
  biz.o : biz.c
          $(CC) $(CFLAGS) -c -o $@ $<
  baz.o : baz.c
          $(CC) $(CFLAGS) -c -o $@ $<


In fact once make has finished parsing the static pattern rule, there is
no difference between them in its internal structures.  You can,
actually, run "make -p" and you will see all the rules broken out rather
than displayed as a static pattern rule.

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

Reply via email to