I'm starting to work on building xerces under MacOS with Metrowerks Codewarrior.

The MacOS limits filenames to 32 characters.  The pathname delimiter on the 
Mac HFS filesystem is the colon ":" rather than the unix / or DOS backslash \ .

Xerces is full of #include lines that include the directory name, with the Unix 
/ 
delimiter.

Generally compilers on other systems have the option to translate this 
(although 
not always - it's definitely a nonportable construct).

I'm not sure what the problem is exactly, but having a long #include line with 
a 
directory name causes compilation to fail on the Mac.  Simply removing the 
directory name will make it work.  The one that causes particular trouble is:

#include <util/ArrayIndexOutOfBoundsException.hpp>

removing the "util/" makes it work OK.

With Metrowerks on the Mac, you can have the compiler search a directory and 
all subdirectories, so once the directory name is removed everything is OK.  
With 
Metrowerks on Windows, you have to explicitly set each directory that gets 
searched during a compile (subdirectories aren't included), so setting up the 
Windows project is pretty tedious.

I'm not sure what to do about this in such a way that I can fix this without 
breaking the build on other platforms.  I would prefer directory names were not 
used at all in #include lines, but that would take a lot of work for everyone 
to 
implement.  Probably shortening the length of the name of 
ArrayIndexOutOfBoundsException.hpp would be the best thing to do.

Mike Crawford
[EMAIL PROTECTED]
http://www.goingware.

Reply via email to