Damien Lespiau wrote: > Beautify make's output like kbuild or git. The install > target is especially much more readable. > make V=1 (install) to get back to the old behaviour.
The Makefile currently doesn't require anything particularly special from
make, and in theory should work with any reasonable make, not just GNU make.
I hestitate to change that for purely aesthetic purposes. The % rules seem
easy enough to replace with a suffix rule .c.o. You can use substitution to
check V, like this:
[EMAIL PROTECTED]:/tmp$ cat Makefile
V=@
Q=$(V:1=)
QUIET_SOMETHING=$(Q:@[EMAIL PROTECTED] SOMETHING;)
#...
test:
@echo V=$(V)
@echo Q=$(Q)
@echo QUIET_SOMETHING=$(QUIET_SOMETHING)
[EMAIL PROTECTED]:/tmp$ make
V=@
Q=@
[EMAIL PROTECTED] SOMETHING
[EMAIL PROTECTED]:/tmp$ make V=1
V=1
Q=
QUIET_SOMETHING=
You can write more rules of the form QUIET_SOMETHING=$(Q:@=value if quiet)
I'd also like to hear from other people on whether or not they prefer this
style of output. It doesn't matter much to me either way.
> + QUIET_LD = @echo ' ' LD' '$@;
This always seems misleading to me, given that the corresponding rules run CC,
not LD.
> + QUIET_INST_SH = echo -n ' ' INSTALL '';
> + QUIET_INST = @echo -n ' ' INSTALL '';
This doesn't appear to output the installed file; it took a minute to figure
out that install -v provides the output. Could you add a comment about that?
Also, why not write these strings as (for example):
echo -n ' INSTALL '
? That seems cleaner than breaking the lines up into quoted whitespace and
unquoted text.
> +%.o: %.c
> + $(QUIET_CC)$(CC) -o $*.o -c $(CFLAGS) $<
I think you can use $@ here rather than $*.o . Also, as mentioned above, this
should become a suffix rule.
- Josh Triplett
signature.asc
Description: OpenPGP digital signature
