[Top][All Lists]

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

Re: Make on XP - shell selection?

From: Eli Zaretskii
Subject: Re: Make on XP - shell selection?
Date: Fri, 19 Oct 2007 20:53:30 +0200

> From: "grischka" <address@hidden>
> Date: Fri, 19 Oct 2007 19:55:54 +0200
> Cc: address@hidden
> It is one of gmake's undocumented non-features with SHELL on 
> windows.

I always wonder why people feel a need to post such derogatory
comments.  Is there some kind of satisfaction in it?

> I don't know who benefits from it but so far nobody dared to
> document it, either.

I'm not sure it should be documented: the Windows port just behaves
the same as the Unix original.  Here's the relevant fragment executed
by Make on Unix (job.c, around line 2100):

# ifdef __EMX__
# else
        shell = getenv ("SHELL");
# endif
        if (shell == 0)
          shell = default_shell;

and default_shell is "/bin/sh" on Unix, see line 74 in the same file.

The same is done around line 2355 in job.c:

  if (shell == 0)
    shell = default_shell;

Granted, the code in the Windows port that does the equivalent is more
complicated, but the net effect, as far as user is concerned, is the
same: sh.exe is used if it is available.

> Certainly it conflicts with the general rule that for makefile 
> portability reasons the SHELL to be used shall not depend on 
> individual environment settings.

The OP's report was not about SHELL in the environment, it was about
setting SHELL in the Makefile.  Certainly, you won't claim that Make
ignores _that_ on Unix, would you?

And if by ``individual environment settings'' you mean the value of
PATH, then I don't see how Make can do better, since, unlike on Posix
platforms, there's no "/bin" directory on your garden-variety Windows
box.  So it looks along PATH, which is a reasonable thing to do, IMO.

reply via email to

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