Le 23 août 04, à 18:58, Paul D. Smith a écrit :
%% Akim Demaille <[EMAIL PROTECTED]> writes:
ad> I met a problem on Mac OSX, and diagnosed it as follows. I would not
ad> call this a problem in Automake. Probably GNU Make 3.79 is the most
ad> likely culprit, but at least I wanted to describe this issue in case
ad> someone else finds it.
ad> The problem is that ad> - Mac OSX (by default) is case preserving, but case insensitive ad> - Make, when looking for dependencies correctly understands this
This is not true. Unless you are setting some special flags in the
build of GNU make (please let me know what they are if so) GNU make
always assumes normal UNIX filesystem semantics: that is, case-sensitive
and case-preserving.
Any means to get the flags from make itself? I don't know how Apple built it: that's stock Make.
What is probably happening here is that make is looking up the filename and the underlying operating system sees that it does exist (because it's case-insensitive).
But make does not understand this.
ad> - but Make no longer understands this properly when meeting ad> dependencies requires walking the VPATH and when the case is ad> not exactly the same.
In this case what's probably happening is that VPATH is causing make to read the directory structure into its directory cache, and then make is looking through the list of files in the directory and doing string comparisons to find the filename. In this case, of course, the strings will not match so the VPATH lookup fails.
OK.
There is a #define in the GNU make code called HAVE_CASE_INSENSITIVE_FS which you can set if your filesystem is case-insensitive. Set it in config.h after the configure script has run; that might help. If so we can think about whether this is something that should always be set for OSX.
I'm not sure about the "always". It is my understanding that not all the FS
on MacOSX are case insensitive.