This probably is not what you want to hear, but we made a pretty firm
decision when we started that we were going to have the file names be the
names of the classes, period. There are a few exceptions now where we had
to change a class name but didn't want to change the file name for now,
because it would cause problems. But, overall, we are very strict about
this. We don't stray from this view even for our own IBM breathren on the
AS/400 or OS/390 who use scripts to rename the files, and who I'm sure
would like us to use 8.3 or some such thing. We feel pretty strongly about
this one, that long file name support, and Unix style path syntax, is
pretty much the mainstream these days and that's what we will write for.

I doubt very seriously that we will remove the directory includes because
getting rid of them would require either pretty ridiculously long include
paths or preprocessing all the headers to a single directory, which is very
tedious under most IDE environments. Set up as it is, we can work easily
within an IDE with one include path, using the headers in place. And as you
say it would seriously break all the Xerces/XML4C based code currently out
there as well.

I know that this is brutal, but we've decided to target the mainstream and
not make life less convenient for those in the mainstream in order to
accomodate systems which have decided to go their own way. Yes, I know we
are mindless automotons, towing the Microsoft line and all :-) But, we just
don't want to least common denominator the system to death, or make
everyone jump through more hoops to accomodate systems with out of the
ordinary requirements. So you should probably look at a Perl script to
generically munge the files as you require.

----------------------------------------
Dean Roddey
Software Weenie
IBM Center for Java Technology - Silicon Valley
[EMAIL PROTECTED]



[EMAIL PROTECTED] on 02/26/2000 06:15:54 AM

Please respond to [EMAIL PROTECTED]

To:   [EMAIL PROTECTED]
cc:
Subject:  long #include breaks Mac compile



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