Messages in this thread | | | Date | Sat, 20 Dec 2008 16:13:36 +0100 | From | "Vegard Nossum" <> | Subject | Re: [PATCH 04/26] kbuild: introduce $(kecho) convenience echo |
| |
Hi,
On Sat, Dec 20, 2008 at 3:31 PM, Sam Ravnborg <sam@ravnborg.org> wrote: > From: Mike Frysinger <vapier@gentoo.org> > > There is a bunch of places in the build system where we do 'echo' to show > some nice status lines. This means we still get output when running in > silent mode. So declare a new KECHO variable that only does 'echo' when we > are in a suitable verbose build mode. > > Signed-off-by: Mike Frysinger <vapier@gentoo.org> > [sam: added Documentation] > Signed-off-by: Sam Ravnborg <sam@ravnborg.org> > --- > Documentation/kbuild/makefiles.txt | 14 ++++++++++++++ > scripts/Kbuild.include | 7 +++++++ > 2 files changed, 21 insertions(+), 0 deletions(-) > > diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt > index 7a77533..51104f9 100644 > --- a/Documentation/kbuild/makefiles.txt > +++ b/Documentation/kbuild/makefiles.txt > @@ -383,6 +383,20 @@ more details, with real examples. > to prerequisites are referenced with $(src) (because they are not > generated files). > > + $(kecho) > + echoing information to user in a rule is often a good practice > + but when execution "make -s" one does not expect to see any output > + except for warnings/errors. > + To support this kbuild define $(kecho) which will echo out the > + text following $(kecho) to stdout except if "make -s" is used. > + > + Example: > + #arch/blackfin/boot/Makefile > + $(obj)/vmImage: $(obj)/vmlinux.gz > + $(call if_changed,uimage) > + @$(kecho) 'Kernel: $@ is ready' > + > + > --- 3.11 $(CC) support functions > > The kernel may be built with several different versions of > diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include > index 936940b..8cf87e8 100644 > --- a/scripts/Kbuild.include > +++ b/scripts/Kbuild.include > @@ -25,6 +25,13 @@ basetarget = $(basename $(notdir $@)) > escsq = $(subst $(squote),'\$(squote)',$1) > > ### > +# Easy method for doing a status message > + kecho := : > + quiet_kecho := echo > +silent_kecho := : > +kecho := $($(quiet)kecho)
Hm, why don't we put
+kecho := @$($(quiet)kecho)
instead, so each caller can omit the @? And the example would then be:
> + $(obj)/vmImage: $(obj)/vmlinux.gz > + $(call if_changed,uimage) > + $(kecho) 'Kernel: $@ is ready'
It seems to work correctly over here.
Vegard
-- "The animistic metaphor of the bug that maliciously sneaked in while the programmer was not looking is intellectually dishonest as it disguises that the error is the programmer's own creation." -- E. W. Dijkstra, EWD1036
| |