help-make
[Top][All Lists]
Advanced

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

Re: Changes to --printf-directory handling in Make 4.4


From: Paul Smith
Subject: Re: Changes to --printf-directory handling in Make 4.4
Date: Tue, 04 Jul 2023 13:08:31 -0400
User-agent: Evolution 3.48.3 (by Flathub.org)

On Mon, 2023-07-03 at 16:32 +0100, Jonathan Wakely wrote:
> This left me puzzled for a while, but what's happening is that the output of
> $(shell $(MAKE) bar)
> now includes the --print-directory output, so where the recipe for
> 'foo' used to do simply `make baz` now it is `make make[1] Entering
> directory etc.`
> 
> Is this an intended consequence of the changes to --print-directory
> handling in 4.4?

I don't think it's related to that.

I think it's related to this change:

> * WARNING: Backward-incompatibility!
>   Previously makefile variables marked as export were not exported to commands
>   started by the $(shell ...) function.  Now, all exported variables are
>   exported to $(shell ...).  If this leads to recursion during expansion, then
>   for backward-compatibility the value from the original environment is used.
>   To detect this change search for 'shell-export' in the .FEATURES variable.

Previously the only environment variables passed to $(shell ...)
commands were the ones inherited from the parent environment; changes
made in the makefile were not sent to $(shell ...).  Now, exported
variables (such as MAKEFLAGS) set in the makefile itself are also
passed to $(shell ...) commands.

You can verify this by modifying the $(shell ...) to echo $$MAKEFLAGS
and see what the difference is between the two versions.

> I can restore the old behaviour of my makefile by adding -s to the
> make command invoked using $(shell), is that the expected way to fix
> this problem?

I'm not 100% sure I know what you want to do, but I do recommend that
if you want your make invoked by $(shell ...) to behave a certain way
you explicitly ask for that behavior; so if you don't want it to show
directory changes adding -s is the right way IMO.



reply via email to

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