help-make
[Top][All Lists]
Advanced

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

Re: Why does the shell I invoke Make with have an effect on its output?


From: Peter0x44
Subject: Re: Why does the shell I invoke Make with have an effect on its output?
Date: Tue, 08 Mar 2022 21:37:51 +0000

> > > Are you sure your sh.exe lets Make see the ComSpec environment
> > > variable as it is defined by Windows? Maybe it's COMSPEC instead, or
> > > maybe sh.exe removes that variable entirely from the environment
> > > passed to Make?
> > Hmm, I checked and it seems this is the case echo $COMSPEC works, (but 
> > shows a
> > path to cmd.exe), while echo $ComSpec does not
>
> Then that's the reason: Make does case-sensitive comparison of
> environment variables, even on Windows.
>
> > Is there a way to determine which shell the build rules of a Makefile are 
> > being
> > executed with?
>
> The answer in most cases is "none". GNU Make tries very hard to avoid
> invoking the shell, so as to be faster, so it only goes through the
> shell when something in the command line actually requires a shell,
> like redirection or wildcards.
>
> But the rules Make applies are supposed to follow the semantics of the
> shell that Make would have invoked. So if you have sh.exe on PATH, I
> think Make will try to use the Posix shell semantics.
So, there is there no way to tell which shell Make is trying to invoke/follow
the semantics of in my Makefile?

That's all I really want to know.

Regards,
Peter D.



reply via email to

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