Message ID | 20230626233014.66549-3-masahiroy@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v4,1/3] kbuild: set correct abs_srctree and abs_objtree for package builds | expand |
On Tue, Jun 27, 2023 at 8:30 AM Masahiro Yamada <masahiroy@kernel.org> 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@kernel.org> > Tested-by: Nicolas Schier <n.schier@avm.de> > --- 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 >
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@kernel.org> 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@kernel.org> > > Tested-by: Nicolas Schier <n.schier@avm.de> > > --- > > > 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
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)