aprantl added inline comments.

================
Comment at: packages/Python/lldbsuite/test/macosx/debug_map/Makefile:30
+main.o: main.c
+       $(CC) -c -g $(CFLAGS) $(CFLAGS_MAIN) -o main.o $(SRCDIR)/main.c
+
----------------
sgraenitz wrote:
> aprantl wrote:
> > `  $(CC) -c $(CFLAGS) $(CFLAGS_MAIN) -o $@ $^`
> > 
> > -g should already be part of CFLAGS, no?
> > -g should already be part of CFLAGS, no?
> Yes, right.
> 
> > `  $(CC) -c $(CFLAGS) $(CFLAGS_MAIN) -o $@ $^`
> Actually, I'd prefer my version with `-o main.o $(SRCDIR)/main.c`. It's more 
> verbose, but clearly states what happens here. `$@ $^` is hard-to-read 
> Makefile magic (to me).
One benefit of $^ over spelling the filename out is that it automatically works 
with the VPATH environment those Makefiles are run in by dotest:

```
main.o: main.c
    $(CC) -c main.c -o main.o # doesn't work, you need to say $(SRCDIR)/main.c
```

SRCDIR is a Makefile.rules implementation detail that you need to know about to 
make sense of the rule, whereas $^ is a automatic variable 
(https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html) 
whose meaning is understandable to everyone familiar with `make`.

I understand that it looks more cryptic at first, but it keeps the rules 
shorter and less error-prone in the environment the Makefile is being evaluated 
in.


https://reviews.llvm.org/D52375



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to