[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xalan-c-users
Subject:    Re: Xalan C++ 1.6 and XML::Xalan 0.44
From:       "Thomas F. O'Connell" <tfo () netcentral ! com>
Date:       2003-10-01 19:38:45
[Download RAW message or body]

Dave,

I've been getting the following error when trying to send email
directly to you:

Your message

  To:      david_n_bertoni@us.ibm.com
  Subject: Re: Xalan C++ 1.6 and XML::Xalan 0.44
  Sent:    Wed, 1 Oct 2003 14:06:45 -0500

did not reach the following recipient(s):

david_n_bertoni@us.ibm.com on Wed, 1 Oct 2003 14:06:45 -0500
    The e-mail system was unable to deliver the message, but did not
report a specific reason.  Check the address and try again.  If it still
fails, contact your system administrator.
    <d03nh003.boulder.ibm.com #5.0.0 X-Notes; Recipient user name
david_n_bertoni (david_n_ bertoni@us.ibm.com) not unique.  Several
matches found in Domino Direc tory. >

Anyway, I hope what follows might be of some use to the list and not
considered too abusive.

I made some progress since last writing, and I'm hoping the type of
progress I'm making isn't a lost cause.

I ended up adding some namespace directives into the XML::Xalan sources.
I got much closer to seeing some errors I recognize, but I'm running up
against the limits of my knowledge of XS. I feel like the errors I'm
seeing now are related to the fact that Xalan.xs doesn't create
Xalan.cpp with the correct namespace information, and I don't know how
to get it to do so.

Anyway, I'm attaching my latest build document (which might be of
general interest). If you're interested in seeing my customized
sources, let me know.

Thanks!

-tfo

["INSTALL-Xerces-Xalan" (INSTALL-Xerces-Xalan)]

This document provides build instructions for installing the Xerces/Xalan
XML suite from the Apache XML Project on a GNU/Linux system. IBM's ICU is
used for Unicode and formatting support.

Package locations:

ICU 2.6: ftp://www-126.ibm.com/pub/icu/2.6/icu-2.6.tgz

Xerces C++ 2.3.0: http://xml.apache.org/dist/xerces-c/stable/xerces-c-src_2_3_0.tar.gz

Xerces Perl 2.3.0-0: http://xml.apache.org/dist/xerces-p/stable/XML-Xerces-2.3.0-0.tar.gz

Xalan C++ 1.6: http://xml.apache.org/dist/xalan-c/Xalan-C_1_6-src.tar.gz

XML::Xalan: ftp://ftp.cpan.org/pub/CPAN/modules/by-module/XML/XML-Xalan-0.44.tar.gz

N.B. All instructions are based on gcc-3.3 and assume building in the
     same shell environment. Shell syntax is (ba)sh.

     For the purposes of this document, assume the following:

     export PREFIX=/usr/local


ICU 2.6
-------

1. export ICUROOT=<absolute path to ICU source>
   (e.g., $PREFIX/src/icu)

   (This step is actually required not for ICU but for Xerces/Xalan. I
    include it here just to provide an example default value for
    $ICUROOT.)

2. cd $ICUROOT/source

3. chmod +x runConfigureICU configure install-sh

4. runConfigureICU LinuxRedHat

   (This seems to work on other distributions (e.g., Slackware), and there
    are no other distributions specified in the docs.)

5. gmake; gmake install


Xerces C++ 2.3.0
----------------

1. export XERCESCROOT=<absolute path to Xerces source>
   (e.g., $PREFIX/src/xerces-c-2_0_0)

2. cd $XERCESCROOT/src/xercesc

3. Modify runConfigure to use the results of `which getopt` if the results
   do not return /usr/bin/getopt. The syntax for getopts is broken, so one
   cannot rely on the (ba)sh builtin.

   N.B. This step is distribution dependent. E.g., Slackware 9.0 just
	happens to put getopt in /bin rather than /usr/bin.

4. runConfigure -plinux -cgcc -xg++ -minmem -nsocket -ticu -rpthread -P$PREFIX

   N.B. $PREFIX might not expand properly here. I just used it as a
	placeholder.

5. modify $XERCESCROOT/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp:
   130: Remove extra comma.
   134: Add '*' operator before sizeof.

6. gmake; gmake install


Xerces Perl 2.3.0-0
-------------------

1. perl Makefile.PL

2. gmake

   N.B. Unfortunately, gmake test fails on this release. Apparently, each
   of the tests can be run individually.

4. gmake install


Xalan C++ 1.6
-------------

1. export XALANCROOT=<full path to source>/c
   (e.g., $PREFIX/src/xml-xalan/c)

2. export XALAN_USE_ICU=1

3. cd $XALANCROOT/src/xalanc

4. ./runCconfigure -p linux -c gcc -x g++ -t icu -r pthread -C --prefix=$PREFIX

5. gmake


XML::Xalan 0.44
---------------

1. cd $PREFIX/src/XML-Xalan-0.44

2. Edit Makefile.PL:

   108: $config{INC}        = "-I$ENV{XALANCROOT}/src -I$ENV{XERCESCROOT}/include/xercesc ";

   assuming one has XALANCROOT=$PREFIX/src/xml-xalan/c and
   XERCESCROOT=$PREFIX/src/xerces-c-src_2_3_0

   110: -lc -L$ENV{XALANCROOT}/lib -lxalan-c -L/usr/lib
   118: Delete this line ( $config{CFLAGS} = "-instances=static" )

   N.B. gcc 3.3 does not accept a -instances flag.

3. Edit XSv.hpp
   10: #include <xalanc/XPath/XPathDefinitions.hpp>
   13: #include <xalanc/XPath/XObject.hpp>

   Add the following lines:

   20: XALAN_CPP_NAMESPACE_BEGIN
   65: virtual double
       stringLength() const;
   82: XALAN_CPP_NAMESPACE_END

4. Edit XSv.cpp
   9: #include <xalanc/PlatformSupport/DOMStringHelper.hpp>
   15: #include <xalanc/XPath/XObjectTypeCallback.hpp>

   Add the following lines:

   17: XALAN_CPP_NAMESPACE_BEGIN
   101: XALAN_CPP_NAMESPACE_END

5. Edit Xalan.hpp
   Prefix all Xalan include statements with "xalanc".
   E.g., 15: #include <xalanc/Include/PlatformDefinitions.hpp>

   65: XALAN_CPP_NAMESPACE_BEGIN
   99: XALAN_CPP_NAMESPACE_END

6. Edit xs.dom
   298: Remove the getNumber() block.
   903: Change all occurrences of "supports" to "isSupported" in the
	supports( ... ) block.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic