bug-make
[Top][All Lists]
Advanced

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

Re: Case-insensitive targets


From: Paul Smith
Subject: Re: Case-insensitive targets
Date: Thu, 02 Aug 2018 11:57:53 -0400

On Thu, 2018-08-02 at 16:44 +0200, Gisle Vanem wrote:
> install_default_suffix_rules (void)
> {
>    ...
>    for (s = default_suffix_rules; *s != 0; s += 2, loop++)
>      {
> 
> That assert() doesn't seems to consider Windows.

It's HIGHLY likely that no one has ever tried to run in maintainer mode
on Windows.  Like Eli, I know I've never done it and if neither of us
have tried I don't know who would have.

Even case-insensitive mode is not completely available as you've
discovered.  The problem is that there's no good way to know whether a
given target is a file (which should be treated case-insensitively as
the filesystem does) or not.

So in order for this to really work you'd pretty much have to perform
all comparisons case-insensitively even things like:

  all:
  aLL:
  aLl:

etc. would have to be considered the same target.

Then there's the question of case-preserving or not.  To be case-
preserving, make would have to be doing all string searches and
comparisons using case-insensitive implementations which would be a lot
of code churn.  And we would have to care a lot more about
internationalization since case comparison is highly locale-specific.

Right now make (IIRC, I don't use case-insensitive mode much) assumes
all internal targets in its makefile are case-sensitive and only does
case-insensitivity when it comes to looking up files on disk.  That
means you have to write all your makefile targets and prerequisites
using identical case.

> Besides, there seems to be a mem-leak in that loop.

I see no mem leak in that function...?



reply via email to

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