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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to