Installing the SXalan Package
For an overview of the installation steps, see
Starting from Scratch.
At present, this package has only been tested on Linux. I think the
configuration is correct for a Solaris machine, but my efforts to
compile it there have illustrated that I do not have the the necessary
header (Standard Template Library) files installed.
The package creates a version of Xalan, the XSL translator developed
by the Apache Software Foundation. Ideally, one can
download their binary distribution of
Xalan and compile and link againts the files (i.e. headers and
libraries) there. This will work if you have a compatible version of
g++ (egcs 2.91.66) and glibc (glibc 2.1.2-11) that was used to
create the libraries used there. If that is the case
a standard installation should work.
Alternatively, when trying the standard installation, you may
encounter errors about a missing
symbol.
In that case, you are probably using a different version of g++
that is incompatible with the Xalan binaries
distributed by Apache.
There are two ways to fix this problem. You can
Differences from regular R Packages
This is a slightly unusual package since it is not intended to be used
in a regular, interactive R session. Instead, the primary tool in the
package is a stand-alone application that uses R. This makes
installation quite different, but I have chosen (for better or worse)
to try to simplify the interface for R users so that it install in the
same way as a regular R package, i.e.
R INSTALL SXalan
More typically you will have to provide
information about where you located the
Xalan binary distribution such as
R INSTALL -c --configure-args='--with-xalan=/tmp/Clean' SXalan/
See Configuration Details.
This package provides its own Makefile in the src/ directory which is
usually not encouraged. However, since we are not in fact building a
shared library (.so or DLL), we have different needs and the R CMD INSTALL
script is not well suited for this. (Note that it works very well in
other cases that we are embedding R in other applications as a shared
library.)
The configuration script needs to find the XAlan and Xerces include
files and libraries. For the commonly used Operating Systems, one can
download a single binary distribution for Xalan which also contains
Xerces. This is available from http://xml.apache.org/xalan-c/index.html.
You can extract the files from this archive into any directory you
wish and then tell the INSTALL command where to find it.
There are two ways to specify this information.
-
- Setting the environment variable XALANCROOT.
-
-
- Using the --with-xalan flag for the configure script.
- Since you do not directly call configure,
you have to pass these through the call to R CMD INSTALL.
You do this with the --configure-args flag for INSTALL
such as
R CMD INSTALL -c --configure-args='--with-xalan=/tmp/Clean' SXalan/
(Note that this value is different from the setting of
XALANCROOT used when compiling Xalan.)
You may also need to specify a value for XERCESCROOT which is where
the C code for the Xerces XML parser can be found.
The instructions for compiling Xalan from source are given on http://xml.apache.org/xalan-c/readme.html#unix
as a sequence of 9 steps. They work well on Linux. My Solaris machine
did not have the STL.
The compilation can take a long time to complete if your machine
does not have a lot of memor and needs to swap.
Testing
To test the installation, you can run the transformer on an example in
the examples/ directory in the installed package. Change
directory to wherever the library is installed (either in
$R_HOME/library/SXalan/ or
the SXalan directory within the directory specified via the -l
flag for R CMD INSTALL
). Within this examples/
directory, run the command
../bin/Sxslt -in report.xml -xsl report.xsl -out /tmp/report.html
If this
Installing Sxslt
The result of compiling the package is a program Sxslt in the
bin/ directory where the package was installed. You can move
this file anywhere you like as its position is not important.
However, it does refer to the file Sxslt.bin whose location is
hard-coded. (Any suggestions for changing this?)
Starting from Scratch
This is what I had to do on a machine on which I previously did not
have an account.
- Install R
- Download the source files and configure with
--enable-R-shlib
and then build.
- Download and un-tar Xalan-C_1_1 (-linux.tar.gz
for me)
-
- Download the SXalan (SXalan_0.1-0.tar.gz) tar file
-
-
R INSTALL -c --configure-args='--with-xalan=wherever' SXalan_0.1-0.tar.gz
-
Duncan Temple Lang
<duncan@research.bell-labs.com>
Last modified: Fri Mar 30 12:47:38 EST 2001