You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by sh...@apache.org on 2012/02/26 10:12:49 UTC

svn commit: r1293790 [13/21] - in /xalan/c/branches/XalanDocs: docs/xalan/ docs/xalan/resources/ docs/xalan/xalan-c/ docs/xalan/xalan-c/resources/ docs/xalan/xalan-j/ docs/xalan/xalan-j/design/ docs/xalan/xalan-j/design/resources/ docs/xalan/xalan-j/re...

Modified: xalan/c/branches/XalanDocs/xalan/java/trunk/xdocs/sources/xalan-c/buildlibs.xml
URL: http://svn.apache.org/viewvc/xalan/c/branches/XalanDocs/xalan/java/trunk/xdocs/sources/xalan-c/buildlibs.xml?rev=1293790&r1=1293789&r2=1293790&view=diff
==============================================================================
--- xalan/c/branches/XalanDocs/xalan/java/trunk/xdocs/sources/xalan-c/buildlibs.xml (original)
+++ xalan/c/branches/XalanDocs/xalan/java/trunk/xdocs/sources/xalan-c/buildlibs.xml Sun Feb 26 09:12:45 2012
@@ -1,505 +1,505 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd"
-[<!ENTITY % entity-c-values SYSTEM "../entities-c.ent" >
-%entity-c-values; ]>
-
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the  "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
--->
-
-<s1 title="Building Xalan-C/C++">
-<ul>
-<li><link anchor="winbldenv">Windows Build Environment</link></li>
-<ul>
-<li><link anchor="winbldcmd">Sample Windows Build Command File</link></li>
-<li><link anchor="winbldinst">Installing the Xalan Library on Windows</link></li>
-</ul>
-<li><link anchor="unixbldenv">UNIX Build Environment</link></li>
-<ul>
-<li><link anchor="unixlibpath">Finding Runtime Libraries</link></li>
-<li><link anchor="unixbldxalan">Building the Xalan-C/C++ XSLT Libraries for UNIX</link></li>
-</ul>
-<li><link anchor="unixcompileref">Reference on Unix Platforms and C++ Compilers</link></li>
-<li><link anchor="xercesmodules">Xerces-C/C++ Transcoders and Plug-in Modules</link></li>
-<!-- <li><link anchor=""></link></li> -->
-</ul>
-
-<br/>
-<p>The Xalan-C/C++ XSLT library is built upon the Xerces-C/C++ XML Parser library. Before compiling the Xalan-C/C++ XSLT library, you must have a usable Xerces-C/C++ library.
-</p>
-<p>You can either install a compatible binary distribution of Xerces-C/C++ or build your own from a source distribution of Xerces-C/C++.  You can gain additional capability if you build the Xerces-C/C++ XML Parser library from sources.  The Xerces-C/C++ binary distribution is not built for the IBM-ICU libraries.  The IBM-ICU libraries provide additional transcoding services.
-</p>
-<p>Building the source code packages ensures that the resulting packages are proper for your system.  There are various binary distributions available, but incompatibilities between C++ compilers (even between compiler versions) are known to cause issues with sharing of libraries.
-</p>
-<p>We don't have persons yet committed to build binary distribution releases.
-</p>
-<p>You can get more information on the Xerces-C/C++ distributions at the <jump href="http://xml.apache.org/xerces-c">http://xml.apache.org/xerces-c</jump> web site.
-</p>
-
-<anchor name="winbldenv"/>
-<s2 title="Windows Build Environment">
-
-<p>Build support for Microsoft Visual Studio (VC6) is deprecated.
-</p>
-<p>Building Xalan-C/C++ with Microsoft Visual Studio (VC6) requires the Xerces-C/C++ version 2.8 or older releases.  Microsoft VC6 is removed from the Xerces-C/C++ Version 3.x releases.
-</p>
-<p>Building Xalan-C/C++ with Microsoft Visual Studio .NET 2008 (VC9) requires Xerces-C/C++ version 3.1 or newer.  Building with Microsoft Visual Studio .NET 2010 (VC10) requires Xerces-C/C++ version 3.1.1 or newer.
-</p>
-<p>The Microsoft Visual Studio .NET 2010 (VC10) build is not fully integrated into the source tree.  You will probably need to copy the {SourceDir}/Projects/Win32/VC9 directory to a (VC10) directory and allow Microsoft to attempt an automatic upgrade.  A (VC10) directory will become part of the source tree after the product passes quality control inspection.
-</p>
-<p>Environment variables XERCESCROOT and XALANCROOT are required.  Environment ICUROOT is used only if building Xalan-C/C++ with IBM-ICU library support.
-</p>
-<table>
-<tr>
-   <td><en>XERCESCROOT</en></td><td>The Xerces-C/C++ installation directory</td>
-</tr>
-<tr>
-   <td><en>XALANCROOT</en></td><td>The Xalan-C/C++ source directory</td>
-</tr>
-<tr>
-   <td><en>ICUROOT</en></td><td>The IBM-ICU installation directory (only if building with ICU support)</td>
-</tr>
-</table>
-
-<p>I like to create command or batch files to setup the build environment variables and start the Visual Studio .NET development system using the custom build environment.  I find this much easier than navigating the graphical interface to add custom build environments. The Microsoft *.vsprops custom property files are not available in the early versions of Visual Studio .NET platforms.
-</p>
-
-<anchor name="winbldcmd"/>
-<s3 title="Sample Windows Build Command File">
-
-<p>I like to use this template for both Xerces-C and Xalan-C builds from sources.  The sample shown here is for Xalan-C/C++ because the installation of Xerces-C/C++ should already have been done.
-</p>
-<source>
-SET XERCESCROOT="path to xerces-c installation"
-SET XALANCROOT="sources\xalan\c\"
-</source>
-<p>Set the xalan project path for your version of Microsoft Visual Studio .NET.
-</p>
-<source>
-:: VS 2003 (VC7.1)
-SET XALANCPROJDIR=%XALANCROOT%\Projects\Win32\VC7.1
-
-:: VS 2005 (VC8)
-SET XALANCPROJDIR=%XALANCROOT%\Projects\Win32\VC8
-
-:: VS 2008 (VC9)
-SET XALANCPROJDIR=%XALANCROOT%\Projects\Win32\VC9
-
-:: VS 2010 (VC10) - experimental
-SET XALANCPROJDIR=%XALANCROOT%\Projects\Win32\VC10
-</source>
-<p>Set some environment variables so we can easily copy or install the products after they have been built.
-</p>
-<source>
-:: VS 2003 (VC7.1)
-SET XALANCBUILDDIR=%XALANCROOT%\Build\Win32\VC7.1
-
-:: VS 2005 (VC8)
-SET XALANCBUILDDIR=%XALANCROOT%\Build\Win32\VC8
-
-:: VS 2008 (VC9)
-SET XALANCBUILDDIR=%XALANCROOT%\Build\Win32\VC9
-
-:: VS 2010 (VC10) - experimental
-SET XALANCBUILDDIR=%XALANCROOT%\Build\Win32\VC10
-</source>
-<p>We use this Visual Studio .NET solution file.
-</p>
-<source>
-SET XALANCBUILDSLN=%XALANCPROJDIR%\xalan.sln
-</source>
-<p>The <code>$(variable)</code> is expanded inside Visual Studio.<br/>
-The <code>%variable%</code> is expanded by the cmd utility before launching the Visual Studio.
-</p>
-<source>
-SET PATH=%WINDIR%\system32;%WINDIR%;%WINDIR%\system32\Wbem
-SET INCLUDE=
-SET LIB=
-SET LIBPATH=
-SET SOURCE=
-</source>
-<p>Set the default environment variables for your version of Microsoft Visual Studio .NET.
-</p>
-<source>
-:: VS 2000 (VC7) - obsolete
-call "%VS70COMNTOOLS%vsvars32.bat"
-
-:: VS 2003 (VC7.1)
-call "%VS71COMNTOOLS%vsvars32.bat"
-
-:: VS 2005 (VC8)
-call "%VS80COMNTOOLS%vsvars32.bat"
-
-:: VS 2008 (VC9)
-call "%VS90COMNTOOLS%vsvars32.bat"
-
-:: VS 2010 (VC10) - experimental
-call "%VS100COMNTOOLS%vsvars32.bat"
-</source>
-<p>The LIBPATH and SOURCE environment variables may not be properly 
-set by the vsvars32.bat command file.  You may wish to start your 
-Visual Studio .NET application without any custom environment 
-and examine the Tools -> C/C++ project defaults for the various libraries. 
-Then specifically set the paths in your build command file.
-</p>
-<p>The Xalan-C and Xerces-C libraries do not use the Microsoft Framework, 
-the "mfc" and the "atl" directives. Microsoft is deprecating their "mfc"
-Microsoft Foundation Classes.
-</p>
-<source>
-:: VS 2003 (VC7.1)
-:: SET LIBPATH=$(FrameWorkDir)$(FrameWorkVersion)
-:: SET SOURCE=$(VCInstallDir)atlmfc\src\mfc;$(VCInstallDir)atlmfc\src\atl;
-:: SET SOURCE=%SOURCE%;$(VCInstallDir)crt\src
-
-:: VS 2005 (VC8)
-:: SET LIBPATH=%(FrameworkDir)$(FrameWorkVersion)
-:: SET SOURCE=$(VCInstallDir)atlmfc\src\mfc;$(VCInstallDir)atlmfc\src\atl;
-:: SET SOURCE=%SOURCE%;$(VCInstallDir)crt\src
-
-:: VS 2008 (VC9)
-:: SET LIBPATH=%(FrameworkDir)$(FrameWorkVersion)
-:: SET SOURCE=$(VCInstallDir)atlmfc\src\mfc;$(VCInstallDir)atlmfc\src\atl;
-:: SET SOURCE=%SOURCE%;$(VCInstallDir)crt\src
-</source>
-<p>Define the necessary environment variables for building the Xalan-C/C++ libraries and sample programs.
-</p>
-<source>
-SET PATH=%PATH%;%XERCESCROOT%\bin
-
-SET INCLUDE=%INCLUDE%;%XERCESCROOT%\include;%XERCESCROOT%\src
-SET INCLUDE=%INCLUDE%;%XALANCROOT%\src
-
-SET LIB=%LIB%;%XERCESCROOT%\lib
-</source>
-<p>If you are going to build for IBM-ICU support, then add the following environments.
-</p>
-<source>
-SET ICUROOT="path to ibm-icu installation"
-
-SET PATH=%PATH%;%ICUROOT%\bin
-SET INCLUDE=%INCLUDE%;%ICUROOT%\include
-SET LIB=%LIB%;%ICUROOT%\lib;%ICUROOT%\data
-</source>
-<p>Now we should be ready to start the Microsoft Visual Studio .NET using our custom environment using the <code>%XALANCBUILDSLN%</code> solution.
-</p>
-<source>
-devenv.exe "%XALANCBUILDSLN%" /useenv
-</source>
-</s3>
-<anchor name="winbldinst"/>
-<s3 title="Installing the Xalan Library on Windows">
-
-<p>The following command script will install the binary and header files to a target directory that is compatible with the XALANCROOT environment variable for creating applications. Environment variables other than XALANCTARGET are defined in the previous section, the <link anchor="winbldcmd">Visual Studio .NET build example</link>.
-</p>
-<source>
-SET XALANCTARGET="path-to-target-directory"
-
-MKDIR "%XALANCTARGET%\bin"
-MKDIR "%XALANCTARGET%\include"
-MKDIR "%XALANCTARGET%\lib"
-
-CD "%XALANCBUILDDIR%\Release\Nls"
-COPY *.hpp "%XALANCTARGET%"\include
-
-CD "%XALANCBUILDDIR%\Release"
-COPY *.DLL "%XALANCTARGET%\bin"
-COPY *.LIB "%XALANCTARGET%\lib"
-COPY *.EXP "%XALANCTARGET%\lib"
-
-CD "%XALANCBUILDDIR%\Debug"
-COPY *.DLL "%XALANCTARGET%\bin"
-COPY *.PDB "%XALANCTARGET%\bin"
-COPY *.LIB "%XALANCTARGET%\lib"
-COPY *.EXP "%XALANCTARGET%\lib"
-
-CD "%XALANCROOT%\src
-XCOPY xalanc\*.hpp "%XALANCTARGET%\include\xalanc" /E /C /I /R /Y
-XCOPY xalanc\*.h   "%XALANCTARGET%\include\xalanc" /E /C /I /R /Y
-</source>
-</s3></s2>
-<anchor name="unixbldenv"/>
-<s2 title="UNIX Build Environment">
-
-<p>I don't like building sources using root or superuser login.  I like to do builds in a directory separated from the source tree.  A debug build and release build will create shared objects of the same name.  I like to target these builds to separate directory trees.
-</p>
-<p>Release builds are targeted at the <code>/usr/local</code> file system.
-</p>
-<p>Debug builds are targeted at the <code>/opt/apache/debug</code> file system.
-</p>
-<p>Source trees are referenced wherever convenient.  Using the (<code>--srcdir</code>) configuration parameter allows the source tree to be separate from the build tree.  The source tree can even reside on read-only media.
-</p>
-<p>Product builds are done in a build directory path separate from the source tree.  This is the working directory from where you perform your builds and installs.
-</p>
-<p><em>Source Trees:</em> (<code>--srcdir</code>) configuration parameter
-</p>
-<p>
-&nbsp;&nbsp;	<code>/opt/xerces/c/&lt;trunk&gt;/</code>&lt;the Xerces-C/C++ XML parser library source distribution&gt;
-<br/>
-&nbsp;&nbsp;	<code>/opt/xalan/c/&lt;trunk&gt;</code>/&lt;the Xalan-C/C++ XSLT library source distribution&gt;
-</p>
-<p>If the source distribution is well-constructed, the source directory trees can be read-only.
-</p>
-<p><em>Binary Installation Trees:</em> (<code>--prefix</code>) configuration parameter
-</p>
-<p>
-&nbsp;&nbsp;	<code>/usr/local/</code>&nbsp; &lt;the target for the 
-release binary installation&gt;
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	<code>./bin</code>&nbsp;&nbsp;&nbsp;&nbsp;	The sample programs
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	<code>./lib</code>&nbsp;&nbsp;&nbsp;&nbsp;	The shared and static library files
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	<code>./include</code>&nbsp;&nbsp;	The library header files
-<br/>
-<br/>
-&nbsp;&nbsp;	<code>/opt/apache/debug/</code>&nbsp; &lt;the target for the 
-debug binary installation&gt;
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	<code>./bin</code>&nbsp;&nbsp;&nbsp;&nbsp;	The sample programs
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	<code>./lib</code>&nbsp;&nbsp;&nbsp;&nbsp;	The shared and static library files
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	<code>./include</code>&nbsp;&nbsp;	The library header files
-</p>
-
-<p>The default (<code>--prefix</code>) value is <code>/usr/local</code> which I use for release builds.
-</p>
-<p>I choose (<code>--prefix</code>) value of <code>/opt/apache/debug</code> for debug builds.
-</p>
-
-<p><em>Build Tree:</em> The build working directory tree
-</p>
-<p>&nbsp;&nbsp;	<code>/&lt;user-directory&gt;/Build/</code>
-</p>
-
-<p>You can use any empty file system or directory path with write access.  Starting with an empty directory is a quick way to do a clean build.  Make this empty directory to be your current working directory.
-</p>
-<p>I also like to make some shell scripts so that the build process can be automated. I locate these scripts outside of the Build directory so they don't get lost when I purge directory content.
-</p>
-<p>
-&nbsp;&nbsp;	<code>../build-xerces-lib.sh</code>
-</p>
-<p>
-&nbsp;&nbsp;	<code>../build-xalan-lib.sh</code>
-</p>
-<p>
-&nbsp;&nbsp;	<code>../build-xalan-app.sh</code>
-</p>
-<p>I generate these shell scripts with a text editor and use them to minimize keyboard typing errors.
-</p>
-<anchor name="unixlibpath"/>
-<s3 title="Finding Runtime Libraries">
-
-<p>The various types of UNIX operating systems have differing requirements for finding libraries at runtime.
-</p>
-<table>
-<tr><th>Operating System</th><th>Library Path Environment</th></tr>
-<tr><td>Solaris and Linux</td><td>LD_LIBRARY_PATH</td></tr>
-<tr><td>HP-UX</td><td>SHLIB_PATH</td></tr>
-<tr><td>AIX and BSD</td><td>LIBPATH</td></tr>
-<tr><td>Mac OS X</td><td>DYLD_LIBRARY_PATH</td></tr>
-<tr><td>Cygwin and  MinGW</td><td>PATH</td></tr>
-</table>
-
-<p>The Xalan-C/C++ and Xerces-C/C++ shared library objects must be installed in a reachable library path for your platform.  The <code>make</code> step creates the libraries in the <code>lib</code> subdirectory of your working directory.  The <code>make install</code> step installs these shared objects to the designated <code>{prefix}/lib</code> directory or another directory defined by the <code>--libdir</code> configuration parameter.
-</p>
-<p>In many cases, the <code>/usr/local/lib</code> is already cached in <code>/etc/ld.so.cache</code> or included by <code>/etc/ld.so.conf</code>.  The library path environment variable is then used for exceptions.  The explicit library path environment variable usually takes precedence over the other methods of finding shared library runtimes.  This is useful if you wish to use a debug environment on the same platform that also includes release libraries of the same name.
-</p>
-</s3>
-
-<anchor name="unixbldxalan"/>
-<s3 title="Building the Xalan-C/C++ XSLT Libraries for UNIX">
-
-
-<p>I don't like building sources from a root or superuser login.  I also like to do builds in a directory separated from the source tree.
-</p>
-
-<p>If your sources tree is read-only and some required files are not executable, then you need to copy the source to writable media and change the execute attributes of specific files.  This command sequence will copy an entire directory tree from <code>{source-dir}</code> to <code>{dest-dir}</code>.
-</p>
-<source>
-	cd {source-dir}
-	find . | cpio -pdmuv {dest-dir}
-</source>
-<p>Connect to the <code>{xalan-src}</code> directory and make specific files executable.
-</p>
-<source>
-	cd {xalan-src}
-	chmod 755 runConfigure configure install-sh
-</source>
-<p>Connect to your empty build directory and construct a script for building the Xalan-C/C++ XSLT products.
-</p>
-
-<p>The Xalan-C/C++ configuration process uses the <code>runConfigure</code> script as a front-end to the automake <code>configure</code> script. Your shell command script should therefore use the <code>runConfigure</code> script.
-</p>
-
-<table>
-<tr><th colspan="2">runConfigure Options</th></tr>
-<tr><th>Option</th><th>Description</th></tr>
-<tr><td>-p</td><td>Build platform: aix, linux, freebsd, netbsd, solaris, hp-10, hp-11, hp11-ia64, 
-   irix, tru64, macosx, cygwin</td></tr>
-<tr><td>-c</td><td>C compiler name: gcc, cc, c89, xlc, xlc_r, acc (default = gcc)</td></tr>
-<tr><td>-x</td><td>C++ compiler name: g++, CC, C89, xlC, xlC_r, aCC (default = g++)</td></tr>
-<tr><td>-d</td><td>Indicates a debug build, takes no values, default is No Debug</td></tr>
-<tr><td>-t</td><td>Transcoder to use: 'icu', (Default is null, the Xerces-C/C++ transcoder)</td></tr>
-<tr><td>-m</td><td>Type of localization support: inmem, icu, nls (default is inmem)</td></tr>
-<tr><td>-M</td><td>Locale for message localization: "en_US"</td></tr>
-<tr><td>-r</td><td>Threads option: pthread, dce (default is pthread)</td></tr>
-<tr><td>-b</td><td>Specify 32 or 64 bit build (Default is 32-bit)<br/>
-    On Linux, the 32/64 build is determined by the compiler, kernel, and glibc.</td></tr>
-<tr><td>-P</td><td>Install root directory: value is assigned to the <code>--prefix</code> configure parameter</td></tr>
-<tr><td>-l</td><td>Extra link options (assigned to <code>LDFLAGS</code>)</td></tr>
-<tr><td>-z</td><td>Extra compiler options (assigned to <code>CFLAGS</code> and <code>CXXFLAGS</code>)</td></tr>
-<tr><td>-C</td><td>Extra configuration options (i.e. <code>--srcdir=${SourceDir}</code>)</td></tr>
-<tr><td>-h</td><td>Print the <code>runConfigure</code> help and exit</td></tr>
-</table>
-
-<p>Here are the names of some C/C++ compilers associated with commercial UNIX operating systems used to build Xalan-C/C++ and Xerces-C/C++ packages.
-</p>
-
-<table>
-<tr><th>System</th><th>Platform</th><th>C Compiler</th><th>C++ Compiler</th><th>Comment</th></tr>
-<tr><td>AIX</td><td>aix</td><td>xlc_r</td><td>xlC_r</td><td>thread support</td></tr>
-<tr><td>AIX</td><td>aix</td><td>xlc</td><td>xlC</td><td>no thread support</td></tr>
-<tr><td>Cygwin</td><td>cygwin</td><td>gcc</td><td>g++</td><td></td></tr>
-<tr><td>HP-UX</td><td>hp-11</td><td>cc</td><td>aCC</td><td></td></tr>
-<tr><td>HP-UX</td><td>hp-11-ia64</td><td>cc</td><td>aCC</td><td></td></tr>
-<tr><td>Solaris</td><td>solaris</td><td>cc</td><td>CC</td><td></td></tr>
-</table>
-
-<p>The following example shows you how to construct a usable script with your favorite text editor.
-</p>
-
-<source>
-#!/bin/sh
-# Script to build and install Xalan-C/C++ products from sources
-
-# The Source and Target Directories for Debug Build
-
-# SourceDir="--srcdir=/opt/xalan/c/trunk"
-# DestDir="--prefix=/opt/apache/debug"
-
-# The Source and Target Directories for Release Build
-
-SourceDir="--srcdir=/opt/xalan/c/trunk"
-DestDir="--prefix=/usr/local"
-
-# The Xerces and Xalan package directories
-
-export XALANCROOT=${SourceDir}
-export XERCESCROOT=${DestDir}
-
-# If compiling with IBM-ICU support, the ICUROOT environment variable 
-# needs to be defined to specify where the ICU libraries are installed.
-# Specifically, the following directories are accessed:
-#	${ICUROOT}/lib, ${ICUROOT}/include, ${ICUROOT}/data
-#	export ICUROOT=/usr/local
-
-export PATH=$PATH:${SourceDir}
-
-# Debug Configure
-
-# runConfigure -p linux -d -c gcc -x g++ -P "${DestDir}" \
-#   -C "--srcdir=${SourceDir}"
-
-# Release Configure
-
-runConfigure -p linux -c gcc -x g++ -P "${DestDir}" \
-   -C "--srcdir=${SourceDir}"
-
-# Connect to configured src subdirectory to build the library without
-# sample programs. If you run make from your build directory, then the
-# library and all sample programs will be built.
-
-cd src
-make clean
-make
-
-# As a user with permissions to write to ${DestDir} install the Xalan-C/C++ products
-#   ${DestDir}/bin   the Xalan command-line utility and sample programs
-#   ${DestDir)/lib    the Xalan-C/C++ static and dynamic libraries
-#   ${DestDir}/include/xalanc/*    The header files.
-
-make install
-
-## End of sample build script.
-</source>
-
-</s3>
-</s2>
-<anchor name="unixcompileref"/>
-<s2 title="Reference on Unix Platforms and C++ Compilers">
-
-<p>Some compilers and platforms may need configuration options and variables that differ from the default Linux build.  Beware that the runConfigure script for Xalan-C/C++ is a front-end that calls the configure script.  The following table is reference information for the build of Xerces-C/C++ version 3.x.  The C++ compiler for Xerces should be the same as used for Xalan builds.
-</p>
-
-<table>
-<tr><th colspan="2">Configuration Options For Unix Platforms</th></tr>
-<tr><th>Solaris x86</th><th>Sun CC</th></tr>
-<tr><td colspan="2"><data>./configure CXX=CC CC=cc</data></td></tr>
-
-<tr><th>Solaris x86-64</th><th>Sun CC</th></tr>
-<tr><td colspan="2"><data>./configure CXX=cc CC=cc CFLAGS=-xarch=amd64 CXXFLAGS=-xarch=amd64</data><br/>
-(newer Sun CC versions use -m64 instead of -arch=amd64)</td></tr>
-
-<tr><th>Solaris Sparc</th><th>Sun CC</th></tr>
-<tr><td colspan="2"><data>./configure CXX=CC CC=cc</data></td></tr>
-
-<tr><th>Solaris Sparc v9</th><th>Sun CC</th></tr>
-<tr><td colspan="2"><data>./configure CXX=cc CC=cc CFLAGS=-xarch=v9 CXXFLAGS=-xarch=v9<br/>
-(newer Sun CC versions use -m64 instead of -arch=v9)</data></td></tr>
-
-<tr><th>AIX PowerPC</th><th>IBM XLC++</th></tr>
-<tr><td colspan="2"><data>./configure CXX=xlc_r CC=xlc_r<br/>
-gmake libxerces_c_1a LDFLAGS=-qmkshrobj</data></td></tr>
-
-<tr><th>AIX PowerPC-64</th><th>IBM XLC++</th></tr>
-<tr><td colspan="2"><data>./configure CXX=xlc_r CC=xlc_r CXXFLAGS=-q64 CFLAGS=-q64<br/>
-gmake libxerces_c_1a LDFLAGS=-qmkshrobj</data></td></tr>
-
-<tr><th>HP-UX 1a-64-32</th><th>HP aCC</th></tr>
-<tr><td colspan="2"><data>./configure CXX=aCC CC=aCC CFLAGS=-mt CXXFLAGS=-mt LDFLAGS=-mt</data></td></tr>
-
-<tr><th>HP-UX 1a-64</th><th>HP aCC</th></tr>
-<tr><td colspan="2"><data>./configure CXX=aCC CC=aCC CFLAGS=-mt CXXFLAGS=-"mt +DD64" LDFLAGS="-mt +DD64"</data></td></tr>
-
-<tr><th>Mac OS X x86-64</th><th>GCC</th></tr>
-<tr><td colspan="2"><data>./configure CFLAGS="-arch x86_64" CXXFLAGS="-arch x86_64"</data></td></tr>
-
-<tr><th>Mac OS X PowerPC-64</th><th>GCC</th></tr>
-<tr><td colspan="2"><data>./configure CFLAGS="-arch ppc64" CXXFLAGS="-arch ppc64"</data></td></tr>
-
-<tr><th>Mac OS X x86/PowerPC</th><th>GCC</th></tr>
-<tr><td colspan="2"><data>./configure --disable-dependency-tracking CFLAGS="arch i386 -arch ppc"<br/>
-CXXFLAGS="-arch i386 -arch ppc"</data></td></tr>
-
-<tr><th>MinGW x86</th><th>GCC</th></tr>
-<tr><td colspan="2"><data>./configure LDFLAGS=-no-undefined</data></td></tr>
-
-<tr><th>Cygwin x86</th><th>GCC</th></tr>
-<tr><td colspan="2"><data>./configure LDFLAGS=-no-undefined</data></td></tr>
-</table>
-</s2>
-
-<anchor name="xercesmodules"/>
-<s2 title="Xerces-C/C++ Transcoders and Plug-in Modules">
-<p>Xerces-C/C++ XML Parsers have undergone some additional modularity features. In the version 3 series, the transcoders are now being implemented as runtime modules. Use of the transcoding modules is still experimental for Xalan-C/C++ transformation applications. The basic transcoder capability still exists. Xerces-C/C++ version 2 series had transcoder libraries explicitly built and installed.
-</p>
-<p>A plug-in memory management architecture was introduced in Xerces-C/C++ version 2.7. The plug-in memory management of Xerces-C/C++ is also supported by Xalan-C/C++ applications.
-</p>
-</s2>
-</s1>
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd"
+[<!ENTITY % entity-c-values SYSTEM "../entities-c.ent" >
+%entity-c-values; ]>
+
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+-->
+
+<s1 title="Building Xalan-C/C++">
+<ul>
+<li><link anchor="winbldenv">Windows Build Environment</link></li>
+<ul>
+<li><link anchor="winbldcmd">Sample Windows Build Command File</link></li>
+<li><link anchor="winbldinst">Installing the Xalan Library on Windows</link></li>
+</ul>
+<li><link anchor="unixbldenv">UNIX Build Environment</link></li>
+<ul>
+<li><link anchor="unixlibpath">Finding Runtime Libraries</link></li>
+<li><link anchor="unixbldxalan">Building the Xalan-C/C++ XSLT Libraries for UNIX</link></li>
+</ul>
+<li><link anchor="unixcompileref">Reference on Unix Platforms and C++ Compilers</link></li>
+<li><link anchor="xercesmodules">Xerces-C/C++ Transcoders and Plug-in Modules</link></li>
+<!-- <li><link anchor=""></link></li> -->
+</ul>
+
+<br/>
+<p>The Xalan-C/C++ XSLT library is built upon the Xerces-C/C++ XML Parser library. Before compiling the Xalan-C/C++ XSLT library, you must have a usable Xerces-C/C++ library.
+</p>
+<p>You can either install a compatible binary distribution of Xerces-C/C++ or build your own from a source distribution of Xerces-C/C++.  You can gain additional capability if you build the Xerces-C/C++ XML Parser library from sources.  The Xerces-C/C++ binary distribution is not built for the IBM-ICU libraries.  The IBM-ICU libraries provide additional transcoding services.
+</p>
+<p>Building the source code packages ensures that the resulting packages are proper for your system.  There are various binary distributions available, but incompatibilities between C++ compilers (even between compiler versions) are known to cause issues with sharing of libraries.
+</p>
+<p>We don't have persons yet committed to build binary distribution releases.
+</p>
+<p>You can get more information on the Xerces-C/C++ distributions at the <jump href="http://xml.apache.org/xerces-c">http://xml.apache.org/xerces-c</jump> web site.
+</p>
+
+<anchor name="winbldenv"/>
+<s2 title="Windows Build Environment">
+
+<p>Build support for Microsoft Visual Studio (VC6) is deprecated.
+</p>
+<p>Building Xalan-C/C++ with Microsoft Visual Studio (VC6) requires the Xerces-C/C++ version 2.8 or older releases.  Microsoft VC6 is removed from the Xerces-C/C++ Version 3.x releases.
+</p>
+<p>Building Xalan-C/C++ with Microsoft Visual Studio .NET 2008 (VC9) requires Xerces-C/C++ version 3.1 or newer.  Building with Microsoft Visual Studio .NET 2010 (VC10) requires Xerces-C/C++ version 3.1.1 or newer.
+</p>
+<p>The Microsoft Visual Studio .NET 2010 (VC10) build is not fully integrated into the source tree.  You will probably need to copy the {SourceDir}/Projects/Win32/VC9 directory to a (VC10) directory and allow Microsoft to attempt an automatic upgrade.  A (VC10) directory will become part of the source tree after the product passes quality control inspection.
+</p>
+<p>Environment variables XERCESCROOT and XALANCROOT are required.  Environment ICUROOT is used only if building Xalan-C/C++ with IBM-ICU library support.
+</p>
+<table>
+<tr>
+   <td><en>XERCESCROOT</en></td><td>The Xerces-C/C++ installation directory</td>
+</tr>
+<tr>
+   <td><en>XALANCROOT</en></td><td>The Xalan-C/C++ source directory</td>
+</tr>
+<tr>
+   <td><en>ICUROOT</en></td><td>The IBM-ICU installation directory (only if building with ICU support)</td>
+</tr>
+</table>
+
+<p>I like to create command or batch files to setup the build environment variables and start the Visual Studio .NET development system using the custom build environment.  I find this much easier than navigating the graphical interface to add custom build environments. The Microsoft *.vsprops custom property files are not available in the early versions of Visual Studio .NET platforms.
+</p>
+
+<anchor name="winbldcmd"/>
+<s3 title="Sample Windows Build Command File">
+
+<p>I like to use this template for both Xerces-C and Xalan-C builds from sources.  The sample shown here is for Xalan-C/C++ because the installation of Xerces-C/C++ should already have been done.
+</p>
+<source>
+SET XERCESCROOT="path to xerces-c installation"
+SET XALANCROOT="sources\xalan\c\"
+</source>
+<p>Set the xalan project path for your version of Microsoft Visual Studio .NET.
+</p>
+<source>
+:: VS 2003 (VC7.1)
+SET XALANCPROJDIR=%XALANCROOT%\Projects\Win32\VC7.1
+
+:: VS 2005 (VC8)
+SET XALANCPROJDIR=%XALANCROOT%\Projects\Win32\VC8
+
+:: VS 2008 (VC9)
+SET XALANCPROJDIR=%XALANCROOT%\Projects\Win32\VC9
+
+:: VS 2010 (VC10) - experimental
+SET XALANCPROJDIR=%XALANCROOT%\Projects\Win32\VC10
+</source>
+<p>Set some environment variables so we can easily copy or install the products after they have been built.
+</p>
+<source>
+:: VS 2003 (VC7.1)
+SET XALANCBUILDDIR=%XALANCROOT%\Build\Win32\VC7.1
+
+:: VS 2005 (VC8)
+SET XALANCBUILDDIR=%XALANCROOT%\Build\Win32\VC8
+
+:: VS 2008 (VC9)
+SET XALANCBUILDDIR=%XALANCROOT%\Build\Win32\VC9
+
+:: VS 2010 (VC10) - experimental
+SET XALANCBUILDDIR=%XALANCROOT%\Build\Win32\VC10
+</source>
+<p>We use this Visual Studio .NET solution file.
+</p>
+<source>
+SET XALANCBUILDSLN=%XALANCPROJDIR%\xalan.sln
+</source>
+<p>The <code>$(variable)</code> is expanded inside Visual Studio.<br/>
+The <code>%variable%</code> is expanded by the cmd utility before launching the Visual Studio.
+</p>
+<source>
+SET PATH=%WINDIR%\system32;%WINDIR%;%WINDIR%\system32\Wbem
+SET INCLUDE=
+SET LIB=
+SET LIBPATH=
+SET SOURCE=
+</source>
+<p>Set the default environment variables for your version of Microsoft Visual Studio .NET.
+</p>
+<source>
+:: VS 2000 (VC7) - obsolete
+call "%VS70COMNTOOLS%vsvars32.bat"
+
+:: VS 2003 (VC7.1)
+call "%VS71COMNTOOLS%vsvars32.bat"
+
+:: VS 2005 (VC8)
+call "%VS80COMNTOOLS%vsvars32.bat"
+
+:: VS 2008 (VC9)
+call "%VS90COMNTOOLS%vsvars32.bat"
+
+:: VS 2010 (VC10) - experimental
+call "%VS100COMNTOOLS%vsvars32.bat"
+</source>
+<p>The LIBPATH and SOURCE environment variables may not be properly 
+set by the vsvars32.bat command file.  You may wish to start your 
+Visual Studio .NET application without any custom environment 
+and examine the Tools -> C/C++ project defaults for the various libraries. 
+Then specifically set the paths in your build command file.
+</p>
+<p>The Xalan-C and Xerces-C libraries do not use the Microsoft Framework, 
+the "mfc" and the "atl" directives. Microsoft is deprecating their "mfc"
+Microsoft Foundation Classes.
+</p>
+<source>
+:: VS 2003 (VC7.1)
+:: SET LIBPATH=$(FrameWorkDir)$(FrameWorkVersion)
+:: SET SOURCE=$(VCInstallDir)atlmfc\src\mfc;$(VCInstallDir)atlmfc\src\atl;
+:: SET SOURCE=%SOURCE%;$(VCInstallDir)crt\src
+
+:: VS 2005 (VC8)
+:: SET LIBPATH=%(FrameworkDir)$(FrameWorkVersion)
+:: SET SOURCE=$(VCInstallDir)atlmfc\src\mfc;$(VCInstallDir)atlmfc\src\atl;
+:: SET SOURCE=%SOURCE%;$(VCInstallDir)crt\src
+
+:: VS 2008 (VC9)
+:: SET LIBPATH=%(FrameworkDir)$(FrameWorkVersion)
+:: SET SOURCE=$(VCInstallDir)atlmfc\src\mfc;$(VCInstallDir)atlmfc\src\atl;
+:: SET SOURCE=%SOURCE%;$(VCInstallDir)crt\src
+</source>
+<p>Define the necessary environment variables for building the Xalan-C/C++ libraries and sample programs.
+</p>
+<source>
+SET PATH=%PATH%;%XERCESCROOT%\bin
+
+SET INCLUDE=%INCLUDE%;%XERCESCROOT%\include;%XERCESCROOT%\src
+SET INCLUDE=%INCLUDE%;%XALANCROOT%\src
+
+SET LIB=%LIB%;%XERCESCROOT%\lib
+</source>
+<p>If you are going to build for IBM-ICU support, then add the following environments.
+</p>
+<source>
+SET ICUROOT="path to ibm-icu installation"
+
+SET PATH=%PATH%;%ICUROOT%\bin
+SET INCLUDE=%INCLUDE%;%ICUROOT%\include
+SET LIB=%LIB%;%ICUROOT%\lib;%ICUROOT%\data
+</source>
+<p>Now we should be ready to start the Microsoft Visual Studio .NET using our custom environment using the <code>%XALANCBUILDSLN%</code> solution.
+</p>
+<source>
+devenv.exe "%XALANCBUILDSLN%" /useenv
+</source>
+</s3>
+<anchor name="winbldinst"/>
+<s3 title="Installing the Xalan Library on Windows">
+
+<p>The following command script will install the binary and header files to a target directory that is compatible with the XALANCROOT environment variable for creating applications. Environment variables other than XALANCTARGET are defined in the previous section, the <link anchor="winbldcmd">Visual Studio .NET build example</link>.
+</p>
+<source>
+SET XALANCTARGET="path-to-target-directory"
+
+MKDIR "%XALANCTARGET%\bin"
+MKDIR "%XALANCTARGET%\include"
+MKDIR "%XALANCTARGET%\lib"
+
+CD "%XALANCBUILDDIR%\Release\Nls"
+COPY *.hpp "%XALANCTARGET%"\include
+
+CD "%XALANCBUILDDIR%\Release"
+COPY *.DLL "%XALANCTARGET%\bin"
+COPY *.LIB "%XALANCTARGET%\lib"
+COPY *.EXP "%XALANCTARGET%\lib"
+
+CD "%XALANCBUILDDIR%\Debug"
+COPY *.DLL "%XALANCTARGET%\bin"
+COPY *.PDB "%XALANCTARGET%\bin"
+COPY *.LIB "%XALANCTARGET%\lib"
+COPY *.EXP "%XALANCTARGET%\lib"
+
+CD "%XALANCROOT%\src
+XCOPY xalanc\*.hpp "%XALANCTARGET%\include\xalanc" /E /C /I /R /Y
+XCOPY xalanc\*.h   "%XALANCTARGET%\include\xalanc" /E /C /I /R /Y
+</source>
+</s3></s2>
+<anchor name="unixbldenv"/>
+<s2 title="UNIX Build Environment">
+
+<p>I don't like building sources using root or superuser login.  I like to do builds in a directory separated from the source tree.  A debug build and release build will create shared objects of the same name.  I like to target these builds to separate directory trees.
+</p>
+<p>Release builds are targeted at the <code>/usr/local</code> file system.
+</p>
+<p>Debug builds are targeted at the <code>/opt/apache/debug</code> file system.
+</p>
+<p>Source trees are referenced wherever convenient.  Using the (<code>--srcdir</code>) configuration parameter allows the source tree to be separate from the build tree.  The source tree can even reside on read-only media.
+</p>
+<p>Product builds are done in a build directory path separate from the source tree.  This is the working directory from where you perform your builds and installs.
+</p>
+<p><em>Source Trees:</em> (<code>--srcdir</code>) configuration parameter
+</p>
+<p>
+&nbsp;&nbsp;	<code>/opt/xerces/c/&lt;trunk&gt;/</code>&lt;the Xerces-C/C++ XML parser library source distribution&gt;
+<br/>
+&nbsp;&nbsp;	<code>/opt/xalan/c/&lt;trunk&gt;</code>/&lt;the Xalan-C/C++ XSLT library source distribution&gt;
+</p>
+<p>If the source distribution is well-constructed, the source directory trees can be read-only.
+</p>
+<p><em>Binary Installation Trees:</em> (<code>--prefix</code>) configuration parameter
+</p>
+<p>
+&nbsp;&nbsp;	<code>/usr/local/</code>&nbsp; &lt;the target for the 
+release binary installation&gt;
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	<code>./bin</code>&nbsp;&nbsp;&nbsp;&nbsp;	The sample programs
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	<code>./lib</code>&nbsp;&nbsp;&nbsp;&nbsp;	The shared and static library files
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	<code>./include</code>&nbsp;&nbsp;	The library header files
+<br/>
+<br/>
+&nbsp;&nbsp;	<code>/opt/apache/debug/</code>&nbsp; &lt;the target for the 
+debug binary installation&gt;
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	<code>./bin</code>&nbsp;&nbsp;&nbsp;&nbsp;	The sample programs
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	<code>./lib</code>&nbsp;&nbsp;&nbsp;&nbsp;	The shared and static library files
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	<code>./include</code>&nbsp;&nbsp;	The library header files
+</p>
+
+<p>The default (<code>--prefix</code>) value is <code>/usr/local</code> which I use for release builds.
+</p>
+<p>I choose (<code>--prefix</code>) value of <code>/opt/apache/debug</code> for debug builds.
+</p>
+
+<p><em>Build Tree:</em> The build working directory tree
+</p>
+<p>&nbsp;&nbsp;	<code>/&lt;user-directory&gt;/Build/</code>
+</p>
+
+<p>You can use any empty file system or directory path with write access.  Starting with an empty directory is a quick way to do a clean build.  Make this empty directory to be your current working directory.
+</p>
+<p>I also like to make some shell scripts so that the build process can be automated. I locate these scripts outside of the Build directory so they don't get lost when I purge directory content.
+</p>
+<p>
+&nbsp;&nbsp;	<code>../build-xerces-lib.sh</code>
+</p>
+<p>
+&nbsp;&nbsp;	<code>../build-xalan-lib.sh</code>
+</p>
+<p>
+&nbsp;&nbsp;	<code>../build-xalan-app.sh</code>
+</p>
+<p>I generate these shell scripts with a text editor and use them to minimize keyboard typing errors.
+</p>
+<anchor name="unixlibpath"/>
+<s3 title="Finding Runtime Libraries">
+
+<p>The various types of UNIX operating systems have differing requirements for finding libraries at runtime.
+</p>
+<table>
+<tr><th>Operating System</th><th>Library Path Environment</th></tr>
+<tr><td>Solaris and Linux</td><td>LD_LIBRARY_PATH</td></tr>
+<tr><td>HP-UX</td><td>SHLIB_PATH</td></tr>
+<tr><td>AIX and BSD</td><td>LIBPATH</td></tr>
+<tr><td>Mac OS X</td><td>DYLD_LIBRARY_PATH</td></tr>
+<tr><td>Cygwin and  MinGW</td><td>PATH</td></tr>
+</table>
+
+<p>The Xalan-C/C++ and Xerces-C/C++ shared library objects must be installed in a reachable library path for your platform.  The <code>make</code> step creates the libraries in the <code>lib</code> subdirectory of your working directory.  The <code>make install</code> step installs these shared objects to the designated <code>{prefix}/lib</code> directory or another directory defined by the <code>--libdir</code> configuration parameter.
+</p>
+<p>In many cases, the <code>/usr/local/lib</code> is already cached in <code>/etc/ld.so.cache</code> or included by <code>/etc/ld.so.conf</code>.  The library path environment variable is then used for exceptions.  The explicit library path environment variable usually takes precedence over the other methods of finding shared library runtimes.  This is useful if you wish to use a debug environment on the same platform that also includes release libraries of the same name.
+</p>
+</s3>
+
+<anchor name="unixbldxalan"/>
+<s3 title="Building the Xalan-C/C++ XSLT Libraries for UNIX">
+
+
+<p>I don't like building sources from a root or superuser login.  I also like to do builds in a directory separated from the source tree.
+</p>
+
+<p>If your sources tree is read-only and some required files are not executable, then you need to copy the source to writable media and change the execute attributes of specific files.  This command sequence will copy an entire directory tree from <code>{source-dir}</code> to <code>{dest-dir}</code>.
+</p>
+<source>
+	cd {source-dir}
+	find . | cpio -pdmuv {dest-dir}
+</source>
+<p>Connect to the <code>{xalan-src}</code> directory and make specific files executable.
+</p>
+<source>
+	cd {xalan-src}
+	chmod 755 runConfigure configure install-sh
+</source>
+<p>Connect to your empty build directory and construct a script for building the Xalan-C/C++ XSLT products.
+</p>
+
+<p>The Xalan-C/C++ configuration process uses the <code>runConfigure</code> script as a front-end to the automake <code>configure</code> script. Your shell command script should therefore use the <code>runConfigure</code> script.
+</p>
+
+<table>
+<tr><th colspan="2">runConfigure Options</th></tr>
+<tr><th>Option</th><th>Description</th></tr>
+<tr><td>-p</td><td>Build platform: aix, linux, freebsd, netbsd, solaris, hp-10, hp-11, hp11-ia64, 
+   irix, tru64, macosx, cygwin</td></tr>
+<tr><td>-c</td><td>C compiler name: gcc, cc, c89, xlc, xlc_r, acc (default = gcc)</td></tr>
+<tr><td>-x</td><td>C++ compiler name: g++, CC, C89, xlC, xlC_r, aCC (default = g++)</td></tr>
+<tr><td>-d</td><td>Indicates a debug build, takes no values, default is No Debug</td></tr>
+<tr><td>-t</td><td>Transcoder to use: 'icu', (Default is null, the Xerces-C/C++ transcoder)</td></tr>
+<tr><td>-m</td><td>Type of localization support: inmem, icu, nls (default is inmem)</td></tr>
+<tr><td>-M</td><td>Locale for message localization: "en_US"</td></tr>
+<tr><td>-r</td><td>Threads option: pthread, dce (default is pthread)</td></tr>
+<tr><td>-b</td><td>Specify 32 or 64 bit build (Default is 32-bit)<br/>
+    On Linux, the 32/64 build is determined by the compiler, kernel, and glibc.</td></tr>
+<tr><td>-P</td><td>Install root directory: value is assigned to the <code>--prefix</code> configure parameter</td></tr>
+<tr><td>-l</td><td>Extra link options (assigned to <code>LDFLAGS</code>)</td></tr>
+<tr><td>-z</td><td>Extra compiler options (assigned to <code>CFLAGS</code> and <code>CXXFLAGS</code>)</td></tr>
+<tr><td>-C</td><td>Extra configuration options (i.e. <code>--srcdir=${SourceDir}</code>)</td></tr>
+<tr><td>-h</td><td>Print the <code>runConfigure</code> help and exit</td></tr>
+</table>
+
+<p>Here are the names of some C/C++ compilers associated with commercial UNIX operating systems used to build Xalan-C/C++ and Xerces-C/C++ packages.
+</p>
+
+<table>
+<tr><th>System</th><th>Platform</th><th>C Compiler</th><th>C++ Compiler</th><th>Comment</th></tr>
+<tr><td>AIX</td><td>aix</td><td>xlc_r</td><td>xlC_r</td><td>thread support</td></tr>
+<tr><td>AIX</td><td>aix</td><td>xlc</td><td>xlC</td><td>no thread support</td></tr>
+<tr><td>Cygwin</td><td>cygwin</td><td>gcc</td><td>g++</td><td></td></tr>
+<tr><td>HP-UX</td><td>hp-11</td><td>cc</td><td>aCC</td><td></td></tr>
+<tr><td>HP-UX</td><td>hp-11-ia64</td><td>cc</td><td>aCC</td><td></td></tr>
+<tr><td>Solaris</td><td>solaris</td><td>cc</td><td>CC</td><td></td></tr>
+</table>
+
+<p>The following example shows you how to construct a usable script with your favorite text editor.
+</p>
+
+<source>
+#!/bin/sh
+# Script to build and install Xalan-C/C++ products from sources
+
+# The Source and Target Directories for Debug Build
+
+# SourceDir="--srcdir=/opt/xalan/c/trunk"
+# DestDir="--prefix=/opt/apache/debug"
+
+# The Source and Target Directories for Release Build
+
+SourceDir="--srcdir=/opt/xalan/c/trunk"
+DestDir="--prefix=/usr/local"
+
+# The Xerces and Xalan package directories
+
+export XALANCROOT=${SourceDir}
+export XERCESCROOT=${DestDir}
+
+# If compiling with IBM-ICU support, the ICUROOT environment variable 
+# needs to be defined to specify where the ICU libraries are installed.
+# Specifically, the following directories are accessed:
+#	${ICUROOT}/lib, ${ICUROOT}/include, ${ICUROOT}/data
+#	export ICUROOT=/usr/local
+
+export PATH=$PATH:${SourceDir}
+
+# Debug Configure
+
+# runConfigure -p linux -d -c gcc -x g++ -P "${DestDir}" \
+#   -C "--srcdir=${SourceDir}"
+
+# Release Configure
+
+runConfigure -p linux -c gcc -x g++ -P "${DestDir}" \
+   -C "--srcdir=${SourceDir}"
+
+# Connect to configured src subdirectory to build the library without
+# sample programs. If you run make from your build directory, then the
+# library and all sample programs will be built.
+
+cd src
+make clean
+make
+
+# As a user with permissions to write to ${DestDir} install the Xalan-C/C++ products
+#   ${DestDir}/bin   the Xalan command-line utility and sample programs
+#   ${DestDir)/lib    the Xalan-C/C++ static and dynamic libraries
+#   ${DestDir}/include/xalanc/*    The header files.
+
+make install
+
+## End of sample build script.
+</source>
+
+</s3>
+</s2>
+<anchor name="unixcompileref"/>
+<s2 title="Reference on Unix Platforms and C++ Compilers">
+
+<p>Some compilers and platforms may need configuration options and variables that differ from the default Linux build.  Beware that the runConfigure script for Xalan-C/C++ is a front-end that calls the configure script.  The following table is reference information for the build of Xerces-C/C++ version 3.x.  The C++ compiler for Xerces should be the same as used for Xalan builds.
+</p>
+
+<table>
+<tr><th colspan="2">Configuration Options For Unix Platforms</th></tr>
+<tr><th>Solaris x86</th><th>Sun CC</th></tr>
+<tr><td colspan="2"><data>./configure CXX=CC CC=cc</data></td></tr>
+
+<tr><th>Solaris x86-64</th><th>Sun CC</th></tr>
+<tr><td colspan="2"><data>./configure CXX=cc CC=cc CFLAGS=-xarch=amd64 CXXFLAGS=-xarch=amd64</data><br/>
+(newer Sun CC versions use -m64 instead of -arch=amd64)</td></tr>
+
+<tr><th>Solaris Sparc</th><th>Sun CC</th></tr>
+<tr><td colspan="2"><data>./configure CXX=CC CC=cc</data></td></tr>
+
+<tr><th>Solaris Sparc v9</th><th>Sun CC</th></tr>
+<tr><td colspan="2"><data>./configure CXX=cc CC=cc CFLAGS=-xarch=v9 CXXFLAGS=-xarch=v9<br/>
+(newer Sun CC versions use -m64 instead of -arch=v9)</data></td></tr>
+
+<tr><th>AIX PowerPC</th><th>IBM XLC++</th></tr>
+<tr><td colspan="2"><data>./configure CXX=xlc_r CC=xlc_r<br/>
+gmake libxerces_c_1a LDFLAGS=-qmkshrobj</data></td></tr>
+
+<tr><th>AIX PowerPC-64</th><th>IBM XLC++</th></tr>
+<tr><td colspan="2"><data>./configure CXX=xlc_r CC=xlc_r CXXFLAGS=-q64 CFLAGS=-q64<br/>
+gmake libxerces_c_1a LDFLAGS=-qmkshrobj</data></td></tr>
+
+<tr><th>HP-UX 1a-64-32</th><th>HP aCC</th></tr>
+<tr><td colspan="2"><data>./configure CXX=aCC CC=aCC CFLAGS=-mt CXXFLAGS=-mt LDFLAGS=-mt</data></td></tr>
+
+<tr><th>HP-UX 1a-64</th><th>HP aCC</th></tr>
+<tr><td colspan="2"><data>./configure CXX=aCC CC=aCC CFLAGS=-mt CXXFLAGS=-"mt +DD64" LDFLAGS="-mt +DD64"</data></td></tr>
+
+<tr><th>Mac OS X x86-64</th><th>GCC</th></tr>
+<tr><td colspan="2"><data>./configure CFLAGS="-arch x86_64" CXXFLAGS="-arch x86_64"</data></td></tr>
+
+<tr><th>Mac OS X PowerPC-64</th><th>GCC</th></tr>
+<tr><td colspan="2"><data>./configure CFLAGS="-arch ppc64" CXXFLAGS="-arch ppc64"</data></td></tr>
+
+<tr><th>Mac OS X x86/PowerPC</th><th>GCC</th></tr>
+<tr><td colspan="2"><data>./configure --disable-dependency-tracking CFLAGS="arch i386 -arch ppc"<br/>
+CXXFLAGS="-arch i386 -arch ppc"</data></td></tr>
+
+<tr><th>MinGW x86</th><th>GCC</th></tr>
+<tr><td colspan="2"><data>./configure LDFLAGS=-no-undefined</data></td></tr>
+
+<tr><th>Cygwin x86</th><th>GCC</th></tr>
+<tr><td colspan="2"><data>./configure LDFLAGS=-no-undefined</data></td></tr>
+</table>
+</s2>
+
+<anchor name="xercesmodules"/>
+<s2 title="Xerces-C/C++ Transcoders and Plug-in Modules">
+<p>Xerces-C/C++ XML Parsers have undergone some additional modularity features. In the version 3 series, the transcoders are now being implemented as runtime modules. Use of the transcoding modules is still experimental for Xalan-C/C++ transformation applications. The basic transcoder capability still exists. Xerces-C/C++ version 2 series had transcoder libraries explicitly built and installed.
+</p>
+<p>A plug-in memory management architecture was introduced in Xerces-C/C++ version 2.7. The plug-in memory management of Xerces-C/C++ is also supported by Xalan-C/C++ applications.
+</p>
+</s2>
+</s1>

Modified: xalan/c/branches/XalanDocs/xalan/java/trunk/xdocs/sources/xalan-c/charter.xml
URL: http://svn.apache.org/viewvc/xalan/c/branches/XalanDocs/xalan/java/trunk/xdocs/sources/xalan-c/charter.xml?rev=1293790&r1=1293789&r2=1293790&view=diff
==============================================================================
--- xalan/c/branches/XalanDocs/xalan/java/trunk/xdocs/sources/xalan-c/charter.xml (original)
+++ xalan/c/branches/XalanDocs/xalan/java/trunk/xdocs/sources/xalan-c/charter.xml Sun Feb 26 09:12:45 2012
@@ -1,322 +1,322 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd"
-[<!ENTITY % entity-c-values SYSTEM "../entities-c.ent" >
-%entity-c-values; ]>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the  "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
--->
-<s1 title="Xalan Project Charter">
-  <s2 title="Xalan Project Charter">
-  <p>The following charter applies to all Xalan projects.</p>
-  </s2>
-
-  <s2 title="1 INTRODUCTION">
-   <p>1.1 Apache Xalan is a collaborative software development project
-      dedicated to providing robust, full-featured, commercial-quality, and
-      freely available XSLT support on a wide variety of platforms. This
-      project is managed in cooperation with various individuals worldwide
-      (both independent and company-affiliated experts), who use the
-      Internet to communicate, plan, and develop XSLT software and related
-      documentation.</p>
-   <p>1.2 This charter briefly describes the mission, history, organization
-      and processes of the project.</p>
-  </s2>
-
-  <s2 title="2 MISSION">
-   <p>2.1 Apache Xalan exists to promote the use of XSLT. We view XSLT
-      (Extensible Stylesheet Language Transformations) as a compelling 
-      paradigm that transforms XML documents, thereby facilitating the
-      exchange, transformation, and presentation of knowledge. The ability
-      to transform XML documents into usable information has great potential
-      to improve the functionality and use of information systems. We intend
-      to build freely available XSLT processing components in order to
-      engender such improvements.</p>
-   <p>2.2 Apache Xalan consists of a set of components that transform XML
-      documents.  Where appropriate, these components plug into other XML
-      components using standard APIs (formal, de facto, or proposed).  The
-      components must be high performance, reliable, and easy to use.  Where
-      inter-related, the components must be part of an underlying architectural
-      orchestration that will allow them to work together without major
-      negotiations or breakage.</p>
-   <p>2.3 We believe that the best way to define this XML transformation
-      architecture is by having both individuals and corporations
-      collaborate on the best possible infrastructure, APIs, code, testing,
-      and release cycles. Components must be vendor neutral and usable as
-      core components for all.</p>
-   <p>2.4 In order to achieve a coherent architecture between Apache Xalan
-      components and other components and applications, standards (formal or
-      de facto) will be used as much as possible for both protocols and
-      APIs. Where appropriate, experiences and lessons learned will be fed
-      back to standards bodies in an effort to assist in the development of 
-      those standards.  We will also encourage the innovation of new
-      protocols, APIs, and components in order to seed new concepts not
-      yet defined by standards.</p>
-  </s2>
-  
-  <s2 title="3 HISTORY">
-   <p>3.1 This project was established under the direction of the Apache
-     Software Foundation in October 2004 to facilitate joint open-source
-     development.  Prior to October 2004 this project was a subproject
-     of the Apache XML project.</p>
-  </s2>
-  
-  <s2 title="4 TERMS">
-   <p>4.1 The ASF Board.  The management board of the Apache Software 
-      Foundation.</p>
-   <p>4.2 The Project.  The Apache Xalan project; intended to refer to the 
-      source code, website, subprojects, and community that are Apache Xalan.</p>
-   <p>4.3 Subproject.  The Apache Xalan project may have subprojects; a 
-      subproject is responsible for a component or application whose scope
-      is well defined.</p>
-   <p>4.4 Product.  Some deliverable (usually a binary or source package)
-      that a subproject makes available to the public.  Subprojects may have
-      multiple products.</p>
-   <p>4.5 Release.  A specific version of a product.  Subprojects may have
-      multiple releases of a given product.</p>
-   <p>4.6 Contributor.  Anyone who makes a contribution to the development
-      of the Apache Xalan project.</p>
-   <p>4.7 Committer.  The Apache Xalan project has a set of committers.  
-      Committers are contributors who have read/write access to the source
-      code repository.</p>
-   <p>4.8 PMC. The PMC (Project Management Committee) is the group of people
-      that form the entity that makes decisions and controls the project.  
-      Individual people or committers do not control the project.</p>
-  </s2>     
-  
-  <s2 title="5 THE PROJECT MANAGEMENT COMMITTEE">
-   <p>5.1 The Apache Xalan project is managed by a core group of committers 
-      known as the Project Management Committee [PMC]. Subprojects, if any,
-      much each have at least one representative committer on the PMC.</p>
-   <p>5.2 The activities of the PMC are coordinated by the Chairperson,
-      who is an officer of the corporation and reports to the Apache
-      Board.  The Chairperson will, on the request of the Apache Board, 
-      provide reports to the Board on issues related to the running of 
-      the Apache Xalan project.</p>
-   <p>5.3 The PMC has the following responsibilities:</p>
-   <p>a) Accepting new subproject proposals, formally submitting these
-      proposals for Apache Xalan committer vote, and creating the subproject
-      (see SUBPROJECTS below).  This is done in collaboration with the 
-      Incubator (see <jump href="http://incubator.apache.org">http://incubator.apache.org</jump>).</p>
-   <p>b) Facilitating code or other donations by individuals or companies,
-      in collaboration with the Incubator.</p>
-   <p>c) Resolving license issues and other legal issues in conjunction with
-      the ASF board.</p>
-   <p>d) Ensuring that administrative and infrastructure work is completed.</p>
-   <p>e) Facilitating relationships among projects and subprojects.</p>
-   <p>f) Facilitating relationships between the Apache Xalan project and the 
-      external world.</p>
-   <p>g) Overseeing Apache Xalan to ensure that the mission defined in this 
-      document is being fulfilled.</p>
-   <p>h) Resolving conflicts within the project.</p>
-   <p>i) Reporting to the ASF board (through the Chair) on the progress
-      of the project.</p>
-   <p>j) Propose new releases of projects or subprojects.  Such proposals pass
-      if 75% of the PMC members vote in agreement.</p>   
-      
-   <p>5.4 A contributor can, at any time, nominate a committer to be on the PMC,
-      by calling for a vote.  If two thirds, or more, of the active committers 
-      vote in agreement then the nomination is given to the PMC.  The person
-      becomes a new PMC member if 75% or more of the PMC members vote in
-      agreement, with no dissenting votes among the PMC members.  This individual
-      should be elected based on merit for the evolution of the project and 
-      demonstration of commitment.</p>
-   <p>5.5 In cases where the subproject is unable to directly provide a 
-      representative on the PMC, another member of the PMC will be required to
-      represent that subproject on the PMC.  This will be strongly discouraged.
-      It is preferable that all subprojects have direct representation on the
-      PMC.</p>
-   <p>5.6 At least every twelve months, or more often if directed by the ASF
-      board, the PMC members will elect a Chairperson from among themselves;
-      the person with the most votes from the other PMC members is recommended
-      to the ASF board for the position of Chairperson, and with the ASF board's
-      approval, becomes the Chairperson for the new term.</p>
-   <p>5.7 Upon agreement by the Apache Board, the recommended Chairperson will,
-      if they are not already, be appointed an officer of the corporation.  See
-      <jump href="http://www.apache.org/foundation/bylaws.html">
-      http://www.apache.org/foundation/bylaws.html</jump> for more information.</p>
-   <p>5.8 The PMC is responsible for maintaining and updating this charter. 
-      Development must follow the process outlined below, so any change to the 
-      development process necessitates a change to the charter. Proposed changes
-      to this charter by the PMC are passed if 75% or more of the PMC members
-      approve the proposal, with no dissenting votes. However, an active Apache
-      Xalan committer may challenge the change.</p>
-   <p>5.9 An active Apache Xalan committer may challenge a change to this charter
-      proposed by the PMC within two weeks of its proposal.  When challenged the
-      proposed change is passed if within two weeks of the challenge the active
-      committers approve the change with a two-thirds majority vote.</p>
-   <p>5.10 The PMC ultimately makes the decisions for the project, not the individual
-      people.  At any time the PMC can reject patches or other contributions to the
-      project if 75% or more of the PMC members vote to reject the contribution.</p>
-   <p>5.11 A PMC member may resign their membership at any time.  However, in the
-      unlikely event that a member of the PMC becomes disruptive to the process,
-      such as ceasing to take part in PMC votes, the PMC member may be removed from
-      the PMC by a vote among the other PMC members.  The PMC member is removed if
-      75% or more of the other PMC members approve the removal, with no dissenting
-      votes among the other PMC members.</p>
-   <p>5.12 A person remains a PMC member until he or she resigns, is removed by a
-      vote from among the other PMC members, dies or is incapacitated.</p>
-  </s2> 
-
-  <s2 title="6 SUBPROJECTS">
-   <p>6.1 A subproject of the Apache Xalan project is responsible for a component 
-      or application whose scope is well defined.  Each subproject has its own set 
-      of developers, and is responsible for approving its own committers. Apache 
-      Xalan is composed of subprojects which fit into one of two categories:</p>
-   <p>(a) An XSLT processor implementation in some particular programming
-      language.  There may be multiple processors for a given language if
-      the API's the processors support are sufficiently dissimilar.  At the
-      time of writing, there is one processor for C++ and two for Java.</p>
-   <p>(b) A set of components which are used in related applications and are
-      tightly bound, usually through internal API's, to one (or more) of the
-      processor subprojects.</p>
-   <p>6.2 A new subproject proposal is submitted to the PMC, and then accepted
-      by a majority Apache Xalan project active committer vote within two weeks
-      after the proposal.</p>
-   <p>6.3 Each subproject must have a set of requirements as well as an
-      up-to-date release plan and design document on its dedicated web page.</p>
-   <p>6.4 It is recommended that each subproject have a smoke-test system
-      that works at least as a basic integration test.</p>
-   <p>6.5 A subproject may be removed if 75% or more of the PMC members approve
-      the proposal, there are no dissenting votes among the PMC members,
-      and no challenges by active Apache Xalan project committers
-      within two weeks after the proposal.
-      A contributor may challenge the proposed removal
-      of a subproject within two weeks of the proposal.
-      In this case the proposed removal is passed if within two weeks of the
-      challenge the active committers approve the removal with a two-thirds
-      majority vote. Any subproject removal is subject to the approval of the
-      ASF board.</p>
-  </s2>     
-  
-  <s2 title="7 CONTRIBUTORS">
-   <p>7.1 Like all Apache projects, the Apache Xalan project is a
-      meritocracy -- the more work you do, the more you are allowed to do.</p>
-   <p>7.2 People who make regular and substantial contributions may become
-      committers as described below. Contributions include: participating in
-      mailing lists, reporting issues or bugs in issue-records in the Issue Database, 
-      providing patches, and proposing changes to a product.</p>
-   <p>7.3 In order to ensure that all code contained in the Apache Xalan
-      project's code repository is free of licensing, intellectual property and patent
-      issues, any person wishing to contribute a new feature to Apache Xalan must either
-      sign:</p>
-   <p>a) If contributing as an individual, sign the &quot;Individual
-      Contributor License Agreement (CLA)&quot;
-      (<jump href="http://www.apache.org/licenses/icla.txt">http://www.apache.org/licenses/icla.txt</jump>)
-      and file a copy with the Secretary of the Corporation; or </p>      
-   <p>b) If making the contribution as part of their employment
-      responsibilities, sign the &quot;Corporate CLA (CCLA)&quot;, 
-      (<jump href="http://www.apache.org/licenses/cla-corporate.txt">http://www.apache.org/licenses/cla-corporate.txt</jump>)
-      and file a copy with the Secretary of the Corporation.</p>
-   <p>7.4 If the contribution in question is a small bugfix, the contributor need
-      not sign a CLA, but need only provide the following information, attaching
-      it to the communication containing the patch:</p>
-   <p>a) Name and employer</p>
-   <p>b) Are you the author of the code being contributed?</p>
-   <p>c) Do you have the right to grant the copyright and patent
-      licenses for the contribution that are set forth in the ASF v.2.0
-      license (<jump href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</jump>)?</p>
-   <p>d) Does your employer have any rights to code that you have
-      written, for example, through your contract for employment?  If
-      so, has your employer given you permission to contribute the code
-      on its behalf or waived its rights in the code?</p>
-   <p>e) Are you aware of any third-party licenses or other
-      restrictions (such as related patents or trademarks) that could
-      apply to your contribution?  If so, what are they?</p>
-  </s2>   
-  
-  <s2 title="8 COMMITTERS">
-   <p>8.1 The Apache Xalan project has a set of committers. If there
-      are subprojects, each subproject will also have a set of committers.
-      Committers are contributors who have read/write access to the source code 
-      repository. New committers are added when a contributor is nominated by a 
-      committer and approved by at least 50 percent of the active committers for 
-      that subproject with no opposing votes.  In most cases, new committers will 
-      already be participating in the development process by submitting suggestions
-      and/or fixes via issue-records in the Issue Database or mailing lists.</p>
-   <p>8.2 For the purposes of voting, committers will be classed as &quot;active&quot; or
-      &quot;inactive&quot;. Only active committers will be included in the totals used to
-      determine the success or failure of a particular vote.</p>
-   <p>8.3 Committers remain active as long as they are contributing code or
-      posting to the project or subproject mailing lists.  If a committers has
-      neither contributed code nor posted to the mailing lists in 3
-      months, a member of the PMC will e-mail the committer,
-      the project or subproject development list, and the PMC mailing list
-      notifying the committer that they are now in inactive status.</p>
-   <p>8.4 An inactive status will not prevent a committer committing new code
-      changes or posting to the mailing lists.  Either of these activities will
-      automatically re-activate the committer for the purposes of voting.</p>
-  </s2>   
-  
-  <s2 title="9 INFRASTRUCTURE">
-   <p>9.1 The Apache Xalan project relies on the Apache XML project
-      and the Apache Infrastructure project for the following:</p>
-   <p>a) Issue Database -- This is a system with issue-records,
-      for tracking bugs, issues, features and requests.</p>
-   <p>b) Repository -- The xalan.apache.org project has its set
-      of parts that make up the software, and these parts are
-      managed in a repository. Committers make changes to the source code,
-      documentation and other associated parts that are stored in
-      the repository. Any subproject will have its set of committers
-      for its repository.</p>
-   <p>c) Website -- The website <jump href="http://xalan.apache.org">xalan.apache.org</jump> 
-      will contain information about the Apache Xalan project and its subprojects,
-      including documentation, downloads of releases, and this charter.</p>
-   <p>d) Mailing Lists -- appropriate mailing lists will be created
-      at the discretion of the PMC. Such mailing lists could
-      for example include: a PMC mailing list, a general mailing list,
-      project or subproject public developer mailing lists,
-      project or subproject public user mailing lists.</p>
-  </s2> 
-  
-  <s2 title="10 LICENSING">
-   <p>10.1 All contributions to the Apache Xalan project adhere to the &quot;Apache
-      Software Foundation License, Version 2.0&quot;
-      (<jump href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</jump>).
-      All further contributions, including patches, must be made under the same terms.</p>
-   <p>10.2 When a committer is considering integrating a contribution
-      from a contributor who has no CLA on file with the Corporation,
-      it is the responsibility of the committer, in consultation with
-      the PMC, to conduct due diligence on the pedigree of the
-      contribution under consideration; see sections 7.3 and 7.4.  </p>
-  </s2>     
-  
-  <s2 title="11 THE DEVELOPMENT PROCESS"> 
-   <p>11.1 For a committer to commit a change to the MAIN branch of the
-      repository an issue-record must be opened in the &quot;Issue Database&quot;
-      to track the change. The status of the issue must be kept up to date.</p>
-   <p>11.2 No voting is required to commit changes, but one other active 
-      committer must review the changes.  Before the changes are committed, the reviewer
-      must add a comment in the corresponding issue-record indicating that
-      they have reviewed and approve the changes.</p>
-   <p>11.3 Issue-records and reviews are not required for committing changes to
-      other experimental branches (not the MAIN branch) in a repository.</p>
-  </s2> 
-  
-  <s2 title="12 VOTING">
-   <p>12.1 Unless otherwise stated in this mission, votes cast on Apache Xalan
-      proposals must be made within two weeks of the proposal. A challenge to
-      a proposal must also be made within two weeks of the proposal. Likewise,
-      votes cast on challenges must be cast within two weeks of the challenge.</p>
-  </s2> 
-  
-  <s2 title="13 RELATIONSHIP TO OTHER APACHE PROJECTS">
-   <p>13.1 The Apache Xalan project should work closely with other Apache
-      projects, such as Xerces and XML, to avoid redundancy
-      and achieve a coherent architecture among Apache Xalan and these
-      projects.</p>
-  </s2>       
-</s1>
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd"
+[<!ENTITY % entity-c-values SYSTEM "../entities-c.ent" >
+%entity-c-values; ]>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+-->
+<s1 title="Xalan Project Charter">
+  <s2 title="Xalan Project Charter">
+  <p>The following charter applies to all Xalan projects.</p>
+  </s2>
+
+  <s2 title="1 INTRODUCTION">
+   <p>1.1 Apache Xalan is a collaborative software development project
+      dedicated to providing robust, full-featured, commercial-quality, and
+      freely available XSLT support on a wide variety of platforms. This
+      project is managed in cooperation with various individuals worldwide
+      (both independent and company-affiliated experts), who use the
+      Internet to communicate, plan, and develop XSLT software and related
+      documentation.</p>
+   <p>1.2 This charter briefly describes the mission, history, organization
+      and processes of the project.</p>
+  </s2>
+
+  <s2 title="2 MISSION">
+   <p>2.1 Apache Xalan exists to promote the use of XSLT. We view XSLT
+      (Extensible Stylesheet Language Transformations) as a compelling 
+      paradigm that transforms XML documents, thereby facilitating the
+      exchange, transformation, and presentation of knowledge. The ability
+      to transform XML documents into usable information has great potential
+      to improve the functionality and use of information systems. We intend
+      to build freely available XSLT processing components in order to
+      engender such improvements.</p>
+   <p>2.2 Apache Xalan consists of a set of components that transform XML
+      documents.  Where appropriate, these components plug into other XML
+      components using standard APIs (formal, de facto, or proposed).  The
+      components must be high performance, reliable, and easy to use.  Where
+      inter-related, the components must be part of an underlying architectural
+      orchestration that will allow them to work together without major
+      negotiations or breakage.</p>
+   <p>2.3 We believe that the best way to define this XML transformation
+      architecture is by having both individuals and corporations
+      collaborate on the best possible infrastructure, APIs, code, testing,
+      and release cycles. Components must be vendor neutral and usable as
+      core components for all.</p>
+   <p>2.4 In order to achieve a coherent architecture between Apache Xalan
+      components and other components and applications, standards (formal or
+      de facto) will be used as much as possible for both protocols and
+      APIs. Where appropriate, experiences and lessons learned will be fed
+      back to standards bodies in an effort to assist in the development of 
+      those standards.  We will also encourage the innovation of new
+      protocols, APIs, and components in order to seed new concepts not
+      yet defined by standards.</p>
+  </s2>
+  
+  <s2 title="3 HISTORY">
+   <p>3.1 This project was established under the direction of the Apache
+     Software Foundation in October 2004 to facilitate joint open-source
+     development.  Prior to October 2004 this project was a subproject
+     of the Apache XML project.</p>
+  </s2>
+  
+  <s2 title="4 TERMS">
+   <p>4.1 The ASF Board.  The management board of the Apache Software 
+      Foundation.</p>
+   <p>4.2 The Project.  The Apache Xalan project; intended to refer to the 
+      source code, website, subprojects, and community that are Apache Xalan.</p>
+   <p>4.3 Subproject.  The Apache Xalan project may have subprojects; a 
+      subproject is responsible for a component or application whose scope
+      is well defined.</p>
+   <p>4.4 Product.  Some deliverable (usually a binary or source package)
+      that a subproject makes available to the public.  Subprojects may have
+      multiple products.</p>
+   <p>4.5 Release.  A specific version of a product.  Subprojects may have
+      multiple releases of a given product.</p>
+   <p>4.6 Contributor.  Anyone who makes a contribution to the development
+      of the Apache Xalan project.</p>
+   <p>4.7 Committer.  The Apache Xalan project has a set of committers.  
+      Committers are contributors who have read/write access to the source
+      code repository.</p>
+   <p>4.8 PMC. The PMC (Project Management Committee) is the group of people
+      that form the entity that makes decisions and controls the project.  
+      Individual people or committers do not control the project.</p>
+  </s2>     
+  
+  <s2 title="5 THE PROJECT MANAGEMENT COMMITTEE">
+   <p>5.1 The Apache Xalan project is managed by a core group of committers 
+      known as the Project Management Committee [PMC]. Subprojects, if any,
+      much each have at least one representative committer on the PMC.</p>
+   <p>5.2 The activities of the PMC are coordinated by the Chairperson,
+      who is an officer of the corporation and reports to the Apache
+      Board.  The Chairperson will, on the request of the Apache Board, 
+      provide reports to the Board on issues related to the running of 
+      the Apache Xalan project.</p>
+   <p>5.3 The PMC has the following responsibilities:</p>
+   <p>a) Accepting new subproject proposals, formally submitting these
+      proposals for Apache Xalan committer vote, and creating the subproject
+      (see SUBPROJECTS below).  This is done in collaboration with the 
+      Incubator (see <jump href="http://incubator.apache.org">http://incubator.apache.org</jump>).</p>
+   <p>b) Facilitating code or other donations by individuals or companies,
+      in collaboration with the Incubator.</p>
+   <p>c) Resolving license issues and other legal issues in conjunction with
+      the ASF board.</p>
+   <p>d) Ensuring that administrative and infrastructure work is completed.</p>
+   <p>e) Facilitating relationships among projects and subprojects.</p>
+   <p>f) Facilitating relationships between the Apache Xalan project and the 
+      external world.</p>
+   <p>g) Overseeing Apache Xalan to ensure that the mission defined in this 
+      document is being fulfilled.</p>
+   <p>h) Resolving conflicts within the project.</p>
+   <p>i) Reporting to the ASF board (through the Chair) on the progress
+      of the project.</p>
+   <p>j) Propose new releases of projects or subprojects.  Such proposals pass
+      if 75% of the PMC members vote in agreement.</p>   
+      
+   <p>5.4 A contributor can, at any time, nominate a committer to be on the PMC,
+      by calling for a vote.  If two thirds, or more, of the active committers 
+      vote in agreement then the nomination is given to the PMC.  The person
+      becomes a new PMC member if 75% or more of the PMC members vote in
+      agreement, with no dissenting votes among the PMC members.  This individual
+      should be elected based on merit for the evolution of the project and 
+      demonstration of commitment.</p>
+   <p>5.5 In cases where the subproject is unable to directly provide a 
+      representative on the PMC, another member of the PMC will be required to
+      represent that subproject on the PMC.  This will be strongly discouraged.
+      It is preferable that all subprojects have direct representation on the
+      PMC.</p>
+   <p>5.6 At least every twelve months, or more often if directed by the ASF
+      board, the PMC members will elect a Chairperson from among themselves;
+      the person with the most votes from the other PMC members is recommended
+      to the ASF board for the position of Chairperson, and with the ASF board's
+      approval, becomes the Chairperson for the new term.</p>
+   <p>5.7 Upon agreement by the Apache Board, the recommended Chairperson will,
+      if they are not already, be appointed an officer of the corporation.  See
+      <jump href="http://www.apache.org/foundation/bylaws.html">
+      http://www.apache.org/foundation/bylaws.html</jump> for more information.</p>
+   <p>5.8 The PMC is responsible for maintaining and updating this charter. 
+      Development must follow the process outlined below, so any change to the 
+      development process necessitates a change to the charter. Proposed changes
+      to this charter by the PMC are passed if 75% or more of the PMC members
+      approve the proposal, with no dissenting votes. However, an active Apache
+      Xalan committer may challenge the change.</p>
+   <p>5.9 An active Apache Xalan committer may challenge a change to this charter
+      proposed by the PMC within two weeks of its proposal.  When challenged the
+      proposed change is passed if within two weeks of the challenge the active
+      committers approve the change with a two-thirds majority vote.</p>
+   <p>5.10 The PMC ultimately makes the decisions for the project, not the individual
+      people.  At any time the PMC can reject patches or other contributions to the
+      project if 75% or more of the PMC members vote to reject the contribution.</p>
+   <p>5.11 A PMC member may resign their membership at any time.  However, in the
+      unlikely event that a member of the PMC becomes disruptive to the process,
+      such as ceasing to take part in PMC votes, the PMC member may be removed from
+      the PMC by a vote among the other PMC members.  The PMC member is removed if
+      75% or more of the other PMC members approve the removal, with no dissenting
+      votes among the other PMC members.</p>
+   <p>5.12 A person remains a PMC member until he or she resigns, is removed by a
+      vote from among the other PMC members, dies or is incapacitated.</p>
+  </s2> 
+
+  <s2 title="6 SUBPROJECTS">
+   <p>6.1 A subproject of the Apache Xalan project is responsible for a component 
+      or application whose scope is well defined.  Each subproject has its own set 
+      of developers, and is responsible for approving its own committers. Apache 
+      Xalan is composed of subprojects which fit into one of two categories:</p>
+   <p>(a) An XSLT processor implementation in some particular programming
+      language.  There may be multiple processors for a given language if
+      the API's the processors support are sufficiently dissimilar.  At the
+      time of writing, there is one processor for C++ and two for Java.</p>
+   <p>(b) A set of components which are used in related applications and are
+      tightly bound, usually through internal API's, to one (or more) of the
+      processor subprojects.</p>
+   <p>6.2 A new subproject proposal is submitted to the PMC, and then accepted
+      by a majority Apache Xalan project active committer vote within two weeks
+      after the proposal.</p>
+   <p>6.3 Each subproject must have a set of requirements as well as an
+      up-to-date release plan and design document on its dedicated web page.</p>
+   <p>6.4 It is recommended that each subproject have a smoke-test system
+      that works at least as a basic integration test.</p>
+   <p>6.5 A subproject may be removed if 75% or more of the PMC members approve
+      the proposal, there are no dissenting votes among the PMC members,
+      and no challenges by active Apache Xalan project committers
+      within two weeks after the proposal.
+      A contributor may challenge the proposed removal
+      of a subproject within two weeks of the proposal.
+      In this case the proposed removal is passed if within two weeks of the
+      challenge the active committers approve the removal with a two-thirds
+      majority vote. Any subproject removal is subject to the approval of the
+      ASF board.</p>
+  </s2>     
+  
+  <s2 title="7 CONTRIBUTORS">
+   <p>7.1 Like all Apache projects, the Apache Xalan project is a
+      meritocracy -- the more work you do, the more you are allowed to do.</p>
+   <p>7.2 People who make regular and substantial contributions may become
+      committers as described below. Contributions include: participating in
+      mailing lists, reporting issues or bugs in issue-records in the Issue Database, 
+      providing patches, and proposing changes to a product.</p>
+   <p>7.3 In order to ensure that all code contained in the Apache Xalan
+      project's code repository is free of licensing, intellectual property and patent
+      issues, any person wishing to contribute a new feature to Apache Xalan must either
+      sign:</p>
+   <p>a) If contributing as an individual, sign the &quot;Individual
+      Contributor License Agreement (CLA)&quot;
+      (<jump href="http://www.apache.org/licenses/icla.txt">http://www.apache.org/licenses/icla.txt</jump>)
+      and file a copy with the Secretary of the Corporation; or </p>      
+   <p>b) If making the contribution as part of their employment
+      responsibilities, sign the &quot;Corporate CLA (CCLA)&quot;, 
+      (<jump href="http://www.apache.org/licenses/cla-corporate.txt">http://www.apache.org/licenses/cla-corporate.txt</jump>)
+      and file a copy with the Secretary of the Corporation.</p>
+   <p>7.4 If the contribution in question is a small bugfix, the contributor need
+      not sign a CLA, but need only provide the following information, attaching
+      it to the communication containing the patch:</p>
+   <p>a) Name and employer</p>
+   <p>b) Are you the author of the code being contributed?</p>
+   <p>c) Do you have the right to grant the copyright and patent
+      licenses for the contribution that are set forth in the ASF v.2.0
+      license (<jump href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</jump>)?</p>
+   <p>d) Does your employer have any rights to code that you have
+      written, for example, through your contract for employment?  If
+      so, has your employer given you permission to contribute the code
+      on its behalf or waived its rights in the code?</p>
+   <p>e) Are you aware of any third-party licenses or other
+      restrictions (such as related patents or trademarks) that could
+      apply to your contribution?  If so, what are they?</p>
+  </s2>   
+  
+  <s2 title="8 COMMITTERS">
+   <p>8.1 The Apache Xalan project has a set of committers. If there
+      are subprojects, each subproject will also have a set of committers.
+      Committers are contributors who have read/write access to the source code 
+      repository. New committers are added when a contributor is nominated by a 
+      committer and approved by at least 50 percent of the active committers for 
+      that subproject with no opposing votes.  In most cases, new committers will 
+      already be participating in the development process by submitting suggestions
+      and/or fixes via issue-records in the Issue Database or mailing lists.</p>
+   <p>8.2 For the purposes of voting, committers will be classed as &quot;active&quot; or
+      &quot;inactive&quot;. Only active committers will be included in the totals used to
+      determine the success or failure of a particular vote.</p>
+   <p>8.3 Committers remain active as long as they are contributing code or
+      posting to the project or subproject mailing lists.  If a committers has
+      neither contributed code nor posted to the mailing lists in 3
+      months, a member of the PMC will e-mail the committer,
+      the project or subproject development list, and the PMC mailing list
+      notifying the committer that they are now in inactive status.</p>
+   <p>8.4 An inactive status will not prevent a committer committing new code
+      changes or posting to the mailing lists.  Either of these activities will
+      automatically re-activate the committer for the purposes of voting.</p>
+  </s2>   
+  
+  <s2 title="9 INFRASTRUCTURE">
+   <p>9.1 The Apache Xalan project relies on the Apache XML project
+      and the Apache Infrastructure project for the following:</p>
+   <p>a) Issue Database -- This is a system with issue-records,
+      for tracking bugs, issues, features and requests.</p>
+   <p>b) Repository -- The xalan.apache.org project has its set
+      of parts that make up the software, and these parts are
+      managed in a repository. Committers make changes to the source code,
+      documentation and other associated parts that are stored in
+      the repository. Any subproject will have its set of committers
+      for its repository.</p>
+   <p>c) Website -- The website <jump href="http://xalan.apache.org">xalan.apache.org</jump> 
+      will contain information about the Apache Xalan project and its subprojects,
+      including documentation, downloads of releases, and this charter.</p>
+   <p>d) Mailing Lists -- appropriate mailing lists will be created
+      at the discretion of the PMC. Such mailing lists could
+      for example include: a PMC mailing list, a general mailing list,
+      project or subproject public developer mailing lists,
+      project or subproject public user mailing lists.</p>
+  </s2> 
+  
+  <s2 title="10 LICENSING">
+   <p>10.1 All contributions to the Apache Xalan project adhere to the &quot;Apache
+      Software Foundation License, Version 2.0&quot;
+      (<jump href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</jump>).
+      All further contributions, including patches, must be made under the same terms.</p>
+   <p>10.2 When a committer is considering integrating a contribution
+      from a contributor who has no CLA on file with the Corporation,
+      it is the responsibility of the committer, in consultation with
+      the PMC, to conduct due diligence on the pedigree of the
+      contribution under consideration; see sections 7.3 and 7.4.  </p>
+  </s2>     
+  
+  <s2 title="11 THE DEVELOPMENT PROCESS"> 
+   <p>11.1 For a committer to commit a change to the MAIN branch of the
+      repository an issue-record must be opened in the &quot;Issue Database&quot;
+      to track the change. The status of the issue must be kept up to date.</p>
+   <p>11.2 No voting is required to commit changes, but one other active 
+      committer must review the changes.  Before the changes are committed, the reviewer
+      must add a comment in the corresponding issue-record indicating that
+      they have reviewed and approve the changes.</p>
+   <p>11.3 Issue-records and reviews are not required for committing changes to
+      other experimental branches (not the MAIN branch) in a repository.</p>
+  </s2> 
+  
+  <s2 title="12 VOTING">
+   <p>12.1 Unless otherwise stated in this mission, votes cast on Apache Xalan
+      proposals must be made within two weeks of the proposal. A challenge to
+      a proposal must also be made within two weeks of the proposal. Likewise,
+      votes cast on challenges must be cast within two weeks of the challenge.</p>
+  </s2> 
+  
+  <s2 title="13 RELATIONSHIP TO OTHER APACHE PROJECTS">
+   <p>13.1 The Apache Xalan project should work closely with other Apache
+      projects, such as Xerces and XML, to avoid redundancy
+      and achieve a coherent architecture among Apache Xalan and these
+      projects.</p>
+  </s2>       
+</s1>



---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org