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]>

Reply via email to