[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).
Re: Savannah W32 patches... are any OK?, Alessandro Vesely, 2005/02/28