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

From: Masahiro Yamada
Date: Wed Jun 28 2023 - 04:42:28 EST


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

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