make-w32
[Top][All Lists]
Advanced

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

Re: Why gmake create two path environment variables


From: Eli Zaretskii
Subject: Re: Why gmake create two path environment variables
Date: Mon, 20 Oct 2008 10:54:56 +0200

> From: address@hidden
> Date: Mon, 20 Oct 2008 14:16:24 +0800
> Cc: address@hidden
> 
> One PATH and one Path. My question is why two paths ?

Because some programs, especially those ported from Unix, expect PATH
in all caps (they compare environment variables case-sensitively),
while native Windows programs do case-insensitive comparison.  OTOH,
someone who is too Windows oriented could write a batch file or a
shell script that need "Path" literally.  So Make supplies both as a
service.

> What is the difference betwen the normal shell and the one in which
> gmake runs commands ?

First, Make runs whatever shell it finds on your system.

And second, this feature is not for the shell specifically (although
if your shell is a port of a Unixy shell, it will want PATH), it is
for _any_ program that wants PATH.  Let me remind you that Make will
invoke programs directly, not through the shell, whenever it can
(i.e. when the rule's command does not use any characters special to
the shell, like redirection and pipes).

> Actually, when I use some perl script inside Makefiles, they can only 
> change one the path variables
> by setting $ENV{'Path'} or $ENV{'PATH'}, which make Path and PATH 
> different and this will
> prevent locating the correct executable.

If it hurts, don't do that ;-)

Is there any real-life situation where this dual Path/PATH arrangement
causes trouble?  If so, please describe that situation in detail.




reply via email to

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