You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
342 lines
14 KiB
342 lines
14 KiB
<?xml version="1.0" standalone="no"?>
|
|
<!--
|
|
* 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.
|
|
-->
|
|
|
|
<!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
|
|
|
|
<s1 title="Build Instructions">
|
|
<s2 title="Build Instructions">
|
|
|
|
<p>Build instructions are provided for the following platforms and
|
|
compilers:</p>
|
|
|
|
<ul>
|
|
<li><link anchor="UNIX">UNIX/Linux/Mac OS X/Cygwin/MinGW</link></li>
|
|
<li><link anchor="Windows">Windows using Microsoft Visual C++</link></li>
|
|
<li><link anchor="BorlandCC">Windows using Borland C++</link></li>
|
|
</ul>
|
|
|
|
<anchor name="UNIX"/>
|
|
<s3 title="Building on UNIX/Linux/Mac OS X/Cygwin/MinGW platforms">
|
|
|
|
<p>For building on UNIX and UNIX-like (GNU/Linux, Max OS X,
|
|
Cygwin, MinGW-MSYS) platforms &XercesCName; uses the
|
|
GNU automake-based build systems and requires that you
|
|
have <jump href="http://www.gnu.org/software/make/make.html">GNU
|
|
make</jump> installed. On some platforms GNU make is called gmake
|
|
instead of make.</p>
|
|
|
|
<p>As with all automake-based projects the build process is divided
|
|
into two parts: configuration and building. The configuration
|
|
part is performed using the <code>configure</code> script that
|
|
can be found in the <code>&XercesC3SrcInstallDir;</code> directory.
|
|
The build part is performed by invoking <code>make</code>.</p>
|
|
|
|
<p>Besides the standard <code>configure</code> options which
|
|
you can view by running <code>configure --help</code>,
|
|
&XercesCName; provides a number of project-specific options
|
|
that are worth mentioning. You can specify one option for
|
|
each category outlined below. If you do not specify anything
|
|
for a particular category then <code>configure</code> will
|
|
select the most appropriate default. At the end of its
|
|
execution <code>configure</code> prints the selected
|
|
values for each category.</p>
|
|
|
|
|
|
<p>Net Accessor (used to access network resources):</p>
|
|
|
|
<table>
|
|
<tr>
|
|
<th>Option</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
<tr>
|
|
<td><code>--enable-netaccessor-curl</code></td>
|
|
<td>use the libcurl library</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>--enable-netaccessor-socket</code></td>
|
|
<td>use plain sockets</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>--enable-netaccessor-cfurl</code></td>
|
|
<td>use the CFURL API (only on Mac OS X)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>--enable-netaccessor-winsock</code></td>
|
|
<td>use WinSock (only on Windows, Cygwin, MinGW)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>--disable-network</code></td>
|
|
<td>disable network support</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p>Transcoder (used to convert between internal UTF-16 and other encodings):</p>
|
|
|
|
<table>
|
|
<tr>
|
|
<th>Option</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
<tr>
|
|
<td><code>--enable-transcoder-gnuiconv</code></td>
|
|
<td>use the GNU iconv library</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>--enable-transcoder-iconv</code></td>
|
|
<td>use the iconv library</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>--enable-transcoder-icu</code></td>
|
|
<td>use the ICU library</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>--enable-transcoder-macosunicodeconverter</code></td>
|
|
<td>use Mac OS X APIs (only on Mac OS X)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>--enable-transcoder-windows</code></td>
|
|
<td>use Windows APIs (only on Windows, Cygwin, MinGW)</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p>Message Loader (used to access diagnostics messages):</p>
|
|
|
|
<table>
|
|
<tr>
|
|
<th>Option</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
<tr>
|
|
<td><code>--enable-msgloader-inmemory</code></td>
|
|
<td>store the messages in memory</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>--enable-msgloader-icu</code></td>
|
|
<td>store the messages using the ICU resource bundles</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>--enable-msgloader-iconv</code></td>
|
|
<td>store the messages in the iconv message catalog</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p>Thread support is enabled by default and can be disabled with the
|
|
<code>--disable-threads</code> option.</p>
|
|
|
|
<p>By default <code>configure</code> selects both shared and static
|
|
libraries. You can use the <code>--disable-shared</code> and
|
|
<code>--disable-static</code> options to avoid building the
|
|
version you don't need.</p>
|
|
|
|
<p>Finally, to make the build process cleaner the &XercesCName;
|
|
build system hides actual compiler commands being executed
|
|
by <code>make</code>. If you would like to see those then you
|
|
can specify the <code>--disable-pretty-make</code> option.</p>
|
|
|
|
<p>If you need to specify compiler executables that should be
|
|
used to build &XercesCName;, you can set the CC and CXX
|
|
variables when invoking <code>configure</code>. Similarly,
|
|
if you need to specify additional compiler or linker options,
|
|
you can set the CFLAGS, CXXFLAGS, and LDFLAGS variables.
|
|
For example:</p>
|
|
|
|
<source>./configure --disable-static CC=gcc-4.3 CXX=g++-4.3 CFLAGS=-O3 CXXFLAGS=-O3</source>
|
|
|
|
<p>Once the configuration part is complete you can run
|
|
<code>make</code> (or <code>gmake</code>). Running
|
|
<code>make</code> from the <code>&XercesC3SrcInstallDir;</code>
|
|
directory builds &XercesCName; library and examples. The
|
|
library is placed into the <code>src/.libs</code> directory. If
|
|
you like to build only the library, you can run make from
|
|
<code>&XercesC3SrcInstallDir;/src</code>.</p>
|
|
|
|
<p>If you would like to build the tests and run the
|
|
automated test suite, run <code>make check</code>
|
|
from the <code>&XercesC3SrcInstallDir;</code>
|
|
directory. The automated test suite required
|
|
Perl and the <code>diff</code> command.</p>
|
|
|
|
<p>Finally, to install the library and examples you can run
|
|
<code>make install</code> (or <code>gmake install</code>).
|
|
To change the installation directory, use the <code>--prefix</code>
|
|
<code>configure</code> option.</p>
|
|
|
|
<p>Some platforms and configurations require extra
|
|
<code>configure</code> and <code>make</code> options
|
|
which are shown in the following table.</p>
|
|
|
|
<table>
|
|
<tr>
|
|
<th>Platform</th>
|
|
<th>Compiler</th>
|
|
<th>Options</th>
|
|
</tr>
|
|
<tr>
|
|
<td>Solaris x86</td>
|
|
<td>Sun CC</td>
|
|
<td><code>./configure CXX=CC CC=cc</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Solaris x86-64</td>
|
|
<td>Sun CC</td>
|
|
<td><code>./configure CXX=CC CC=cc CFLAGS=-xarch=amd64 CXXFLAGS=-xarch=amd64</code><br/>
|
|
(for newer Sun CC versions use -m64 instead of -xarch=amd64)</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Solaris SPARC</td>
|
|
<td>Sun CC</td>
|
|
<td><code>./configure CXX=CC CC=cc</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Solaris SPARCv9</td>
|
|
<td>Sun CC</td>
|
|
<td><code>./configure CXX=CC CC=cc CFLAGS=-xarch=v9 CXXFLAGS=-xarch=v9</code><br/>
|
|
(for newer Sun CC versions use -m64 instead of -xarch=v9)</td>
|
|
</tr>
|
|
<tr>
|
|
<td>AIX PowerPC</td>
|
|
<td>IBM XL C++</td>
|
|
<td><code>./configure CXX=xlC_r CC=xlc_r</code><br/>
|
|
<code>gmake libxerces_c_la_LDFLAGS=-qmkshrobj</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>AIX PowerPC-64</td>
|
|
<td>IBM XL C++</td>
|
|
<td><code>export OBJECT_MODE=64</code><br/>
|
|
<code>./configure CXX=xlC_r CC=xlc_r CXXFLAGS=-q64 CFLAGS=-q64</code><br/>
|
|
<code>gmake libxerces_c_la_LDFLAGS=-qmkshrobj</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>HP-UX IA-64-32</td>
|
|
<td>HP aCC</td>
|
|
<td><code>./configure CXX=aCC CC=aCC CFLAGS=-mt CXXFLAGS=-mt LDFLAGS=-mt</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>HP-UX IA-64</td>
|
|
<td>HP aCC</td>
|
|
<td><code>./configure CXX=aCC CC=aCC CFLAGS="-mt +DD64" CXXFLAGS="-mt +DD64" LDFLAGS="-mt +DD64"</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Mac OS X x86-64</td>
|
|
<td>GCC</td>
|
|
<td><code>./configure CFLAGS="-arch x86_64" CXXFLAGS="-arch x86_64" </code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Mac OS X PowerPC-64</td>
|
|
<td>GCC</td>
|
|
<td><code>./configure CFLAGS="-arch ppc64" CXXFLAGS="-arch ppc64"</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Mac OS X x86/PowerPC</td>
|
|
<td>GCC</td>
|
|
<td><code>./configure --disable-dependency-tracking CFLAGS="-arch i386 -arch ppc" CXXFLAGS="-arch i386 -arch ppc"</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Mingw x86</td>
|
|
<td>GCC</td>
|
|
<td><code>./configure LDFLAGS=-no-undefined</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Cygwin x86</td>
|
|
<td>GCC</td>
|
|
<td><code>./configure LDFLAGS=-no-undefined</code></td>
|
|
</tr>
|
|
</table>
|
|
<p/>
|
|
|
|
<note>
|
|
Note that different UNIX platforms use different system
|
|
environment variable for finding shared libraries. On Linux
|
|
and Solaris, the environment variable name is
|
|
<code>LD_LIBRARY_PATH</code>, on AIX it is
|
|
<code>LIBPATH</code>, on Mac OS X it is
|
|
<code>DYLD_LIBRARY_PATH</code>, and on HP-UX
|
|
it is <code>SHLIB_PATH</code>.
|
|
</note>
|
|
|
|
<note>
|
|
Note that Cygwin and MinGW are different from the UNIX platforms
|
|
in the way they find shared libraries at run time. While UNIX
|
|
platforms may use the <code>LD_LIBRARY_PATH</code> environment
|
|
variable, Cygwin and MinGW use the <code>PATH</code> environment
|
|
variable.
|
|
</note>
|
|
</s3>
|
|
|
|
<anchor name="Windows"/>
|
|
<s3 title="Building on Windows using Microsoft Visual C++">
|
|
<p>&XercesCName; source distribution comes with Microsoft Visual C++ projects and solutions.
|
|
The following describes the steps you need to build with this compiler.</p>
|
|
|
|
<p>To build &XercesCName; from the source distribution you will
|
|
need to open the solution containing the project. The solutions
|
|
containing the &XercesCName; project files are in the following
|
|
sub-directories in the <code>&XercesC3SrcInstallDir;</code>
|
|
directory:</p>
|
|
|
|
<source>
|
|
(For VC7.1) projects\Win32\VC7.1\xerces-all\xerces-all.sln
|
|
(For VC8.0) projects\Win32\VC8\xerces-all\xerces-all.sln
|
|
(For VC9.0) projects\Win32\VC9\xerces-all\xerces-all.sln
|
|
(For VC10.0) projects\Win32\VC10\xerces-all\xerces-all.sln
|
|
(For VC11.0) projects\Win32\VC11\xerces-all\xerces-all.sln
|
|
(For VC12.0) projects\Win32\VC12\xerces-all\xerces-all.sln
|
|
</source>
|
|
|
|
<p>Once you have the solution open, you need to build the
|
|
project named <code>XercesLib</code>. You can select
|
|
Debug/Release, Static/DLL, and, for VC8+,
|
|
32/64 bit builds using the Configuration Manager dialog.
|
|
You can also select whether the &XercesCName; library
|
|
should use ICU for transcoding.</p>
|
|
|
|
<p>When building your own applications you need to make sure
|
|
that you are linking your application with the
|
|
&XercesC3WindowsLib;.lib (Release) and/or
|
|
&XercesC3WindowsLib;D.lib (Debug)
|
|
libraries (or the static versions of them)
|
|
and also that the associated DLLs are somewhere in the
|
|
executable/DLL search path (<code>PATH</code>).</p>
|
|
|
|
<note>If you are linking your application to the static
|
|
&XercesCName; library,
|
|
then you will need to compile your application with the
|
|
XERCES_STATIC_LIBRARY preprocessor macro defined in order
|
|
to turn off the DLL import/export mechanism.</note>
|
|
|
|
<p>If you would also like to build tests and/or samples, inside
|
|
the solution files mentioned above, you'll find several other
|
|
projects which are for the tests and samples. Select all
|
|
the tests/samples that you would like to build and then
|
|
right click on the selection. Choose "Build (selection
|
|
only)" to build all the selected projects in one shot.</p>
|
|
</s3>
|
|
|
|
<anchor name="BorlandCC"/>
|
|
<s3 title="Building on Windows using Borland C++">
|
|
<p>&XercesCName; source distribution comes with the Borland C++ makefiles. The
|
|
following describes the steps you need to build &XercesCName; with this compiler.</p>
|
|
<ol>
|
|
<li>Change to the <code>&XercesC3SrcInstallDir;\projects\Win32\BCC5\Xerces-all</code> directory</li>
|
|
<li>Run <code>MakeBuildDirs.bat</code></li>
|
|
<li><code>make -f Xerces-all.mak</code> to build the library, examples, and tests.</li>
|
|
</ol>
|
|
</s3>
|
|
</s2>
|
|
</s1>
|