automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Enhancing automake support for silent-rules


From: Gavin Smith
Subject: Re: Enhancing automake support for silent-rules
Date: Fri, 7 Jun 2013 23:10:34 +0100

On Fri, Jun 7, 2013 at 2:55 PM, Darren Garvey <address@hidden> wrote:
> Hi all,
>
> I've been trying to make a large automake-generated project I work on build
> quieter. While there is some support for "silent-rules", there are several
> places where automake templates* don't silence themselves, which I'd like
> to rectify.
>
> I have made several changes locally which helps a lot and I'd like to
> prepare a patch. Since I've not hacked on automake before I may need some
> guidance on conventions as not all of them are obvious to me.
>
> To make a rule conditionally silent, I use $(AM_V_at) in _my_ projects, but
> automake sources itself have %SILENT% which seems to be equivalent, IIUC.
> Is %SILENT% preferred?
>
My understanding is as follows. Strings like %SILENT% are substituted
in the templates by the "file_contents" function, and probably end up
as "$(AM_V_at)". See the "silent_flag" function. I think it would be
better to use %SILENT% for consistency. There is also the %VERBOSE%
automake-time substitution, but this expands to something different
for every language (e.g. "$(AM_V_CC)").

> The HACKING file says:
>
>> * For install and uninstall rules, if a loop is required, it should be
>>   silent.  Then the body of the loop itself should print each "important"
>>   command it runs.  The printed commands should be preceded by a single
>>   space.
>
> This means there are several places in the templates that have a long
> multi-line rule that is itself silent, but includes one or more "echo"s.
> One idea was to define a local function such as:
>
> am_echo() { echo "$@" >/dev/null; }
>
> and then define $(AM_V_echo) that conditionally used either "echo" or
> "am_echo". This feels a bit ugly but it should be minimally intrusive.
> Perhaps there's a more canonical way to do this using some existing
> automake feature. I imagine anyone working on the silent-rules support may
> have already thought about this and may have a superior alternative
> suggestion....
How about setting AM_V_echo to either "echo" or something like "true",
and writing "$(AM_V_echo) whatever" instead of "echo whatever", if
this is desired?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]