diff mbox series

[v2,2/2] kbuild: respect GNU Make -w flag

Message ID 20230616145751.945864-2-masahiroy@kernel.org (mailing list archive)
State New, archived
Headers show
Series [v2,1/2] kbuild: revive "Entering directory" for Make >= 4.4.1 | expand

Commit Message

Masahiro Yamada June 16, 2023, 2:57 p.m. UTC
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 ..." only when Kbuild
changes the working directory. (default)

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---

Changes in v2:
  - new patch

 Makefile | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

Comments

Nicolas Schier June 19, 2023, 12:51 p.m. UTC | #1
On Fri, Jun 16, 2023 at 11:57:51PM +0900, Masahiro Yamada 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 ..." only when Kbuild
> changes the working directory. (default)
> 
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---

Tested-by: Nicolas Schier <n.schier@avm.de>

> 
> Changes in v2:
>   - new patch
> 
>  Makefile | 16 ++++++++++------
>  1 file changed, 10 insertions(+), 6 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 916c1a7984b0..3867cdc3de5d 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
> +
>  ifneq ($(sub_make_done),1)
>  
>  # Do not use make's built-in rules and variables
> @@ -91,12 +97,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 :=
> @@ -217,12 +217,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 with recursing into __sub-make twice. This is due to the
>  # behavior change for GNU Make 4.4.1.
>  need-sub-make := 1
>  endif
> +else
> +no-print-directory :=
> +endif
>  
>  ifeq ($(need-sub-make),1)
>  
> -- 
> 2.39.2
>
diff mbox series

Patch

diff --git a/Makefile b/Makefile
index 916c1a7984b0..3867cdc3de5d 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
+
 ifneq ($(sub_make_done),1)
 
 # Do not use make's built-in rules and variables
@@ -91,12 +97,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 :=
@@ -217,12 +217,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 with recursing into __sub-make twice. This is due to the
 # behavior change for GNU Make 4.4.1.
 need-sub-make := 1
 endif
+else
+no-print-directory :=
+endif
 
 ifeq ($(need-sub-make),1)