Menu

#16 $(wildcard) function returns downcased version of filenames

closed
nobody
None
5
2007-07-29
2007-07-11
mpettigr
No

Testcase:

========begin makeppfile=========
SRC = $(wildcard *.ll)
SRC2 = `find . -name "*.ll" -print`

$(phony TEST):
touch fooBar.ll
touch FooBar2.ll
echo $(SRC)
echo $(SRC2)
========end makeppfile=========

test: makepp TEST

echo foobar.ll foobar2.ll
foobar.ll foobar2.ll
echo `find . -name "*.ll" -print`
./fooBar.ll ./FooBar2.ll

I'm running makepp 1.50Beta on cygwin (Windows XP SP2)

Discussion

  • Daniel Pfeiffer

    Daniel Pfeiffer - 2007-07-29
    • status: open --> closed
     
  • Daniel Pfeiffer

    Daniel Pfeiffer - 2007-07-29

    Logged In: YES
    user_id=189473
    Originator: NO

    When it finds a case insenstive file system, typically on or shared from Windows, makepp resorts to normalizing file names to lower case for faster lookup. The only way it can learn about the system's view of the file name is via the expensive readdir function. But that is only one way it learns of files. Usually makepp learns of files through rules, possibly long before the file actually shows up.

    I guess other tools might have optimizations of this kind too, so that xYz.c might compile to Xyz.o. That means makepp would have to readdir after every new file that actually comes to exist -- a nice way to slow things down!

    This problem is purely cosmetic, as all case-spellings lead to the same file.

     

Log in to post a comment.