Hi all,
Enclosed is a 'report' on a creeping feature creature in the
Win32 case insensitive build which at least needs to be mentioned in
the documentation but preferably requires a patch to glob.c and or an
enhancement in the form of a new function. I will probably not have a
chance to fix this myself for some time, but if I do I will send a
patch as a followup. Thanks for your attention,
Regards,
Bruce A.
Tool Version:
GNU Make Version 3.78.1
Source release.
Compiled for Win32 (windows95 OSR2) using M$ VC++4
with #define HAVE_CASE_INSENSITIVE_FS enabled in config.h
Problem:
The documentation (README.W32) implies that #defining
HAVE_CASE_INSENSITIVE_FS
will make GNU Make perform in a case insensitive manner. However this
define
is only utilised in dir.c, where it covers the file_impossible_p() and
dir_contents_file_exists_p() predicates. It does not appear to extend to
glob matching or filtering as might be logically expected.
e.g.
MY_FILES = $(wildcard local_dir/*.cpp)
will find all .cpp files regardless of the actual case of local_dir.
However it will fail to uncover files matching the upper case variant
"*.CPP".
The case of a file or path name may vary as a result of routine
editing and copying operations. There is no direct method of ammending the
'incorrect' naming of filenames other than by taking additional precautions
and using particular tools. GNU-Make does not appear to provide any means
of converting between cases or flagging the necessary operations as case
insensitive
e.g. $(to-upper strings...) or $(filter-no-case patterns...,strings...)
A workaround is to use patterns of the form *.[Cc][Pp][Pp]
This should be mentioned in the documentation.
Reported By:
Bruce S. O. Adams <[EMAIL PROTECTED]>