[Top][All Lists]

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

Re: Savannah W32 patches... are any OK?

From: Eli Zaretskii
Subject: Re: Savannah W32 patches... are any OK?
Date: Tue, 01 Mar 2005 01:26:34 +0200

> Date: Mon, 28 Feb 2005 12:43:21 +0100
> From: Alessandro Vesely <address@hidden>
> CC: Eli Zaretskii <address@hidden>, address@hidden
> The analisys above is not fully correct: NT distinguishes two kinds of
> environment, system variables and user variables. Thus, setting a variable
> with different case in the other environment still creates two variables
> with the same uppercase name. Typically, that occurs when PATH has been set
> as a system variable and Path has been added by GNU make as a user variable.
> >   >>
> >   >> This seems crazy to me, coming from my cushy UNIX-centric world :-),
> >   >> but there are some good arguments here and so if the W32 team thinks
> >   >> it's a good idea, it's fine with me.
> > 
> >   ez> It seems crazy to me as well, especially since I don't understand
> >   ez> what was the original problem that such case-insensitive treatment
> >   ez> of environment vars is supposed to solve.  Can someone enlighten
> >   ez> me about the opriginal problem?
> > 
> > From the description above it seems like if the makefile expects a
> > variable from the environment called SOMEVARIABLE, but you set
> > SomeVariable in your environment, make won't treat them as the same even
> > though Windows (and DOS?) apparently DOES consider them the same.
> Add to this that Win32 utilities are often inconsistent about the spelling
> of a variable: Since the OS retrieves variables case-insensitivitely, they
> feel free to amend the spelling across versions to increase readability.

What specific Make-related problems can happen due to all this mess?

I don't think we need to solve academic problems, only the ones that
harm Make or its frequent subsidiary programs.

> IMHO, a more interesting solution to this problem is to have a getenv 
> function.

??? Environment variables are just variables in Make, so you already
have that.  E.g., "foo = $BAR" wil store in foo the value of the
environment variable BAR (modulo the -e switch to Make).

reply via email to

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