bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bug #64288] The flag --no-print-directory becomes effective too ear


From: Masahiro Yamada
Subject: Re: [bug #64288] The flag --no-print-directory becomes effective too early
Date: Fri, 9 Jun 2023 23:46:04 +0900

On Fri, Jun 9, 2023 at 9:39 PM Paul D. Smith <INVALID.NOREPLY@gnu.org> wrote:
>
> Update of bug #64288 (project make):
>
>                   Status:                    None => Not A Bug
>              Open/Closed:                    Open => Closed
>
>     _______________________________________________________
>
> Follow-up Comment #1:
>
> This behavior is intentional: setting MAKEFLAGS as a make variable assignment
> modifies the behavior of the currently-running make.  If users want to disable
> printing directories for the current makefile they can do so by setting the
> MAKEFLAGS variable.
>
> If you don't want to disable this setting for this instance of make, don't add
> it to MAKEFLAGS.
>
> If you want to leave print-directories for this makefile but have it unset for
> children of this makefile, then you can add the flag to the invocation of the
> child makes.




I argue this change is not sensible.

It is strange to have the sub-make control the "Entering directory sub".

Child makefiles do not know how the parent has invoked it.
Only the parent makefile knows whether it is changing the working
directory or not.


If a parent invokes a sub make like this,

  .PHONY: sub
  sub:
          $(MAKE) -C sub

"Entering directory sub" must be displayed because it is changing the
working directory.


If a parent invokes a sub make like this,

   .PHONY: sub
   sub:
         $(MAKE) -f sub/Makefile

"Entering directory ..." is just annoying because it is staying at the
same working directory.


Linux kernel build system uses both styles.
In most cases, Kbuild uses the "-f <sub-dir>/Makefile" and suppresses
the "Entering ...".

Kbuild sometimes needs to change the working directory, in this case,
"Entering ..." is mandatory because IDEs are tracking the working directories.

Now, Kbuild is broken, so I need to fix it.

https://lore.kernel.org/linux-kbuild/CAK7LNAS1=RtTTYk=+q2YsGmMNQ6EwhAx=STEj+cXzWkNzT6nWQ@mail.gmail.com/T/#m7757ec3b62dd541014fcfa1cd6b84432222e4286


You could still argue to add --no-print-directory to every place:

    .PHONY: sub
    sub:
           $(MAKE) --no-print-directory -f sub/Makefile

But, there are a lot of locations invoking the submakes.
Do I need to add --no-print-directory to all of them?

    .PHONY: sub1
    sub1:
           $(MAKE) --no-print-directory -f sub1/Makefile

    .PHONY: sub2
    sub2:
           $(MAKE) --no-print-directory -f sub2/Makefile

    .PHONY: sub3
    sub3:
           $(MAKE) --no-print-directory -f sub3/Makefile

Previously, I was able to do
"MAKEFLAGS += --no-print-directory" in a single place,
but it is now impossible.




-- 
Best Regards
Masahiro Yamada



reply via email to

[Prev in Thread] Current Thread [Next in Thread]