Re: [PATCH v4 3/3] kbuild: respect GNU Make -w flag

From: Nicolas Schier
Date: Wed Jun 28 2023 - 10:21:48 EST


On Wed, Jun 28, 2023 at 04:09:44PM +0900, Masahiro Yamada wrote:
> On Tue, Jun 27, 2023 at 8:30 AM Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote:
> >
> > Currently, -w (--print-directory) option is ignored, but it is better
> > to respect the user's choice.
> >
> > This commit changes the behavior of "Entering directory ..." logging.
> >
> > If -w (or --print-directory) is given via the command line or the
> > MAKEFLAGS environment variable, print "Entering directory ..." for every
> > sub make.
> >
> > If --no-print-directory is given via the command line or the MAKEFLAGS
> > environment variable, suppress "Entering directory ..." completely.
> >
> > If none of them is given, print "Entering directory ..." when Kbuild
> > changes the working directory at the start of building. (default)
> >
> > Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
> > Tested-by: Nicolas Schier <n.schier@xxxxxx>
> > ---
>
>
> As it turns out, this patch does not work for GNU Make <= 4.3

Ups, I'm sorry. I was pretty sure I tested it with make-4.3, but
obviously not...

Kind regards,
Nicolas



> I will drop (and give up) this patch.
>
>
>
>
>
>
> >
> > (no changes since v2)
> >
> > Changes in v2:
> > - new patch
> >
> > Makefile | 16 ++++++++++------
> > 1 file changed, 10 insertions(+), 6 deletions(-)
> >
> > diff --git a/Makefile b/Makefile
> > index 7edb00603b7e..c9864f83a3d2 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -38,6 +38,12 @@ __all:
> > # descending is started. They are now explicitly listed as the
> > # prepare rule.
> >
> > +ifeq ($(filter 3.%,$(MAKE_VERSION)),)
> > +short-opts := $(firstword -$(MAKEFLAGS))
> > +else
> > +short-opts := $(filter-out --%,$(MAKEFLAGS))
> > +endif
> > +
> > this-makefile := $(lastword $(MAKEFILE_LIST))
> > export abs_srctree := $(realpath $(dir $(this-makefile)))
> > export abs_objtree := $(CURDIR)
> > @@ -95,12 +101,6 @@ endif
> > # commands
> > # make-4.0 (and later) keep single letter options in the 1st word of MAKEFLAGS.
> >
> > -ifeq ($(filter 3.%,$(MAKE_VERSION)),)
> > -short-opts := $(firstword -$(MAKEFLAGS))
> > -else
> > -short-opts := $(filter-out --%,$(MAKEFLAGS))
> > -endif
> > -
> > ifneq ($(findstring s,$(short-opts)),)
> > quiet=silent_
> > override KBUILD_VERBOSE :=
> > @@ -215,12 +215,16 @@ else
> > need-sub-make := 1
> > endif
> >
> > +ifeq ($(findstring w, $(short-opts)),)
> > ifeq ($(filter --no-print-directory, $(MAKEFLAGS)),)
> > # If --no-print-directory is unset, recurse once again to set it.
> > # You may end up recursing into __sub-make twice. This is needed due to the
> > # behavior change in GNU Make 4.4.1.
> > need-sub-make := 1
> > endif
> > +else
> > +no-print-directory :=
> > +endif
> >
> > ifeq ($(need-sub-make),1)
> >
> > --
> > 2.39.2
> >
>
>
> --
> Best Regards
> Masahiro Yamada