This is the mail archive of the cygwin mailing list for the Cygwin project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi! I found the following (in my optinion weird) behavior of the $(wildcard) function of GNU make when running on Cygwin: I have a place in a makefile that checks for existence of a file (let's call it "/cygdrive/c/path/to/file") with $(wildcard /cygdrive/c/path/to/file). Unfortunately the vendor of this file refers to this file with different case letters than it is materialized on disk. On the disk the file is actually stored as "C:\Path\to\File" which translates to the Cygwin style name "/cygdrive/c/Path/to/File". Since Windows is supposed to be case-insensitive this should be fine but in Cygwin's GNU make binary (current version as of today) I observed the following behavior: 1. "$(wildcard /cygdrive/c/path/to/file)" does not match anything and thus returns an empty string. 2. "$(wildcard /cygdrive/c/Path/to/File)" does match the file and thus returns "/cygdrive/c/Path/to/File" as expected. 3. "$(wildcard /cygdrive/c/Path/to/file)" does not match anything and thus returns an empty string. 4. "$(wildcard /cygdrive/c/path/to/File)" does match the file and thus returns "/cygdrive/c/path/to/File". More generic inspection reveals that apparently the $(wildcard) function seems to be case-insensitive on the directory part but case-sensitive on the file name part of the absolute path given. Is this kind of expected behavior or does this point to a bug in the GNU make implementation (or even further down in a Cygwin library)? Does anyone know of a reasonable workaround? Is there a way to make the $(wildcard) function case-insensitive completely (like by setting a special option of flag)? Or is there probably a better replacement function that does basically the same but in a case-insensitive way? If this doesn't work is there probably some function that converts filename strings to a representation that is exactly how a file is stored on the disk, i.e. I give it "/cygdrive/c/path/to/file" and it returns "/cygdrive/c/Path/to/File"? Any better ideas? Robert
Attachment:
pgp00000.pgp
Description: PGP signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |