> > > 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.