Norman H. Samuelson <[EMAIL PROTECTED]>:

>   Recently I posted a note that we were working on building a static xerces 
>   library.
>
>   We have succeeded on three platforms: Windows, Sun, Linux.

>   . . .

>   ************************************************
>
>   Linux:
>
>   The only thing we had to change was the makefile in the obj 
>   directory.  That makefile builds the shared object in the normal case.  I 
>   simply changed it to also build a static library the simple, old fashoned 
>   way, with ar, and it seems to have worked (yes, I was shocked too).  You 
>   will notice that some, but not all, of the changes are the same as for the 
>   Sun platform above.  Here are the differences:
>
>   >% diff Makefile Makefile.orig
>
>   . . .

>   Those do not seem to me like major changes.  It was relatively easy to do 
>   on each of those three platforms.  I hope to find the magic incantation 
>   that will make it work on the other platforms we are interested in (IRIX, 
>   TRU64, and AIX).  We believe that we must find a solution for AIX because 
>   the new Blue Gene Light machine will be here soon, and our understanding is 
>   that the lightweight kernel running on each node will not support shared 
>   objects.
>
>   We would deeply appreciate any hints that might help us in this. We hope 
>   that what we have done will be of use to others.


I haven't seen much response on this, but I apologize if I'm repeating
what someone else has already said.  A few comments:

 * Although building a static library with the existing object files
   may work, it may not be that desirable.  Customarily, when building
   both static and shared libraries, the object files themselves will
   be built twice with different arguments.  If you just create a
   static library with existing object files, you'll be using object
   files compiled with -fPIC and so forth.  To be honest, I can't say
   why this is undesirable, but I know if you were building with
   something like libtool, you'd end up building twice: one for
   static, and once for shared.  I realize that xerces 2.5.0's build
   system doesn't use libtool but instead has lots of
   platform-specific special case.  (Perhaps libtool isn't suitable,
   or perhaps the build system predates it.  I haven't checked 2.6.0
   snapshots.)

 * Your diffs are on the Makefile and are generated with plain diff
   with on special arguments.  It would be better if you used diff -u
   to generate a unified context diff (which is easier to read and
   more resilient to small changes in the files) and if you made
   changes in Makefile.in rather than in an automatically generated
   file.

I'm not involved with xerces development in any way, so take my
comments for what they're worth, though I hope they will be
useful to you. :-)

Thanks for sharing the results of your efforts!

-- 
Jay Berkenbilt <[EMAIL PROTECTED]>
http://www.ql.org/q/


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

Reply via email to