Hi,

I just realized that the libtool/automake convenience libraries that
are heavily used in the new build system have one major drawback:
when both PIC and non-PIC objects are being built, the convenience
library only contains the PIC versions. As a result, later, when the
main library  (libxerces-c in our case) is built, these PIC objects
are used for both shared and static versions. This seems to me like
a bad way to do it: the code in the static version is slower than
it could be and a lot of time is wasted building the non-PIC objects
which are then simply thrown away.

I am by no means an autotools expert, but it appears that automake
can handle sources in different directories just fine. In fact,
sources for some of the convenience libraries are split into several
sub-directories and therefore already rely on this feature. I am then
wondering what is the purpose of all these convenience libraries? Since
all of them but one (libcompat.la) are built from a single makefile
(src/Makefile.am), there does not seem to be anything convenient about
them. They also have the big drawback mentioned above.

Does anyone (James?) see any potential problems in getting rid of them?
The only thing that I can think of is the command line length limit on
some platforms but then the build system in 2.x.y does not seem to have
this problem plus the ar command line has all the objects listed
explicitly.

Any feedback would be very much appreciated.


Boris

-- 
Boris Kolpackov, Code Synthesis Tools
Open source XML data binding for C++:   http://codesynthesis.com/products/xsd
Mobile/embedded validating XML parsing: http://codesynthesis.com/products/xsde

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to