| <?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="Building on Windows and UNIX"> |
| |
| <ul> |
| <li><link anchor="WinNT">Building on Windows using Microsoft Visual C++</link></li> |
| <li><link anchor="UNIX">Building on UNIX/Linux/Mac OS X platforms</link></li> |
| <li><link anchor="CygWin">Building on Windows using Cygwin</link></li> |
| <li><link anchor="WinBorlandCC">Building on Windows using Borland C++</link></li> |
| <li><link anchor="WinBorlandBuilder">Building on Windows using Borland C++ Builder</link></li> |
| <li><link anchor="WinIntel">Building 64 bit libraries on Windows using Intel C++</link></li> |
| </ul> |
| |
| <anchor name="WinNT"/> |
| <s2 title="Building on Windows using Microsoft Visual C++"> |
| <p>&XercesCName; source distribution comes with Microsoft Visual C++ projects and solutions to |
| help you build &XercesCName;. The following describes the steps you need |
| to build &XercesCName;.</p> |
| |
| <s3 title="Building &XercesCName; library"> |
| <p>To build &XercesCName; from the source distribution (using MSVC), you will |
| need to open the solution containing the project. If you are |
| building your application, you may want to add the &XercesCName; |
| project inside your application's solution.</p> |
| <p>The solutions containing the &XercesCName; project files and |
| all other samples are in the following sub-directories in the |
| &XercesCSrcInstallDir; directory:</p> |
| |
| <source> |
| (For VC6) Projects\Win32\VC6\xerces-all\xerces-all.dsw |
| (For VC7.1) Projects\Win32\VC7.1\xerces-all\xerces-all.sln |
| (For VC8) Projects\Win32\VC8\xerces-all\xerces-all.sln |
| </source> |
| |
| <p>Once you have the solution open, you need to build the |
| project marked <em>XercesLib</em>. You can select |
| Debug/Release, Static/DLL, and, for VC8, 32/64 bit |
| builds using the Configuration Manager dialog.</p> |
| |
| <p>If you want to include the &XercesCName; project into |
| your own solution, you need to pick up:</p> |
| <source> |
| (For VC6) Projects\Win32\VC6\xerces-all\XercesLib\XercesLib.dsp |
| (For VC7.1) Projects\Win32\VC7.1\xerces-all\XercesLib\XercesLib.vcproj |
| (For VC8) Projects\Win32\VC8\xerces-all\XercesLib\XercesLib.vcproj |
| </source> |
| |
| <p>You must make sure that you are linking your application with |
| the &XercesCWindowsLib;.lib library (or Debug/Static version of it |
| and also make sure that the associated DLL is somewhere in your |
| path.</p> |
| |
| <note>If you are linking your application to a static library, |
| then you will need to compile your application with the |
| XML_LIBRARY preprocessor define in order |
| to turn off the DLL import/export mechanism. This is |
| also the case for the Mingw-msys platform.</note> |
| |
| <note>If you are working on the AlphaWorks version which uses ICU, |
| you must have the ICU data DLL named <code>icudata.dll</code> |
| available from your path setting. For finding out where you |
| can get ICU from and build it, look at the |
| <jump href="build-misc.html#faq-1">How to Build ICU</jump>.</note> |
| |
| <note>If the library is built with the ICU message loader, |
| or message catalog loader, then you need to make sure |
| the XERCESC_NLS_HOME environment variable points to the |
| $XERCESCROOT/msg directory where the message files reside.</note> |
| |
| </s3> |
| <s3 title="Building samples"> |
| <p>If you are using the source package, inside the same solution |
| (xerces-all.dsw or xerces-all.sln), you'll find several other |
| projects. These are for the samples. Select all the samples |
| and right click on the selection. Then choose "Build (selection |
| only)" to build all the samples in one shot.</p> |
| </s3> |
| </s2> |
| |
| <anchor name="UNIX"/> |
| <s2 title="Building on UNIX/Linux/Mac OS X platforms"> |
| |
| <p>&XercesCName; uses |
| <jump href="http://www.gnu.org/software/make/make.html">GNU make</jump> |
| to build the libraries and samples. You must first make sure you |
| have GNU make installed on your system before proceeding. On some |
| platforms GNU make is called gmake instead of make. |
| If you do not have GNU make, ask your system administrator |
| to get it for you.</p> |
| |
| <p><em>Do not jump into the build directly before reading this.</em></p> |
| |
| <p>Spending some time reading the following instructions will save |
| you a lot of wasted time and support-related e-mail communication. |
| The &XercesCName; build instructions are a little different from |
| normal product builds. Specifically, there are some wrapper-scripts |
| that have been written to make life easier for you. You are free |
| not to use these scripts and use the configure script and |
| GNU Make directly, but we want to make sure you |
| <jump href="#runConfigure-example">know what you are by-passing</jump> |
| and what risks you are taking. So read the following instructions |
| carefully before attempting to build it yourself.</p> |
| |
| <p>Besides having all necessary build tools, you also need to know what |
| compilers we have tested &XercesCName; on. The following table lists the |
| relevant platforms and compilers.</p> |
| |
| &build-winunix-supported-platforms; |
| |
| <!-- note about building on untested platforms - see entities.ent --> |
| &build-winunix-note; |
| |
| <p><em>Differences between the UNIX platforms:</em> The description below is |
| generic, but as every programmer is aware, there are minor differences |
| within the various UNIX flavors the world has been bestowed with. |
| The one difference that you need to watch out in the discussion below, |
| pertains to the system environment variable for finding libraries. |
| On <em>Linux</em> and <em>Solaris</em>, the environment variable name is called |
| <code>LD_LIBRARY_PATH</code>, on <em>AIX</em> it is <code>LIBPATH</code>, |
| on <em>Mac OS X</em> it is <code>DYLD_LIBRARY_PATH</code>, |
| while on <em>HP-UX</em> it is <code>SHLIB_PATH</code>. The following |
| discussion assumes you are working on Linux, but it is with subtle |
| understanding that you know how to interpret it for the other UNIX flavors.</p> |
| |
| <note>If you wish to build &XercesCName; with ICU, |
| look at the <jump href="build-misc.html#faq-1">Building &XercesCName; with ICU</jump>. |
| It tells you where you can get ICU and how to build &XercesCName; with it.</note> |
| |
| <s3 title="Setting build environment variables"> |
| <p>Before doing the build, you must first set your environment variables |
| to pick-up the compiler and also specify where you extracted &XercesCName; |
| on your machine. |
| While the first one is probably set for you by the system administrator, just |
| make sure you can invoke the compiler. You may do so by typing the |
| compiler invocation command without any parameters (e.g. xlc_r, or g++, or cc) |
| and check if you get a proper response back.</p> |
| <p>Next set your &XercesCName; root path as follows:</p> |
| <source>export XERCESCROOT=<full-path-to-&XercesCSrcInstallDir;></source> |
| |
| <p>This should be the full path of the directory where you extracted &XercesCName;.</p> |
| </s3> |
| |
| <s3 title="Building &XercesCName; library"> |
| <p>As mentioned earlier, to build &XercesCName; from the source distribution, |
| you will need GNU make.</p> |
| |
| <p>If you look into the src/xercesc sub-directory in &XercesCSrcInstallDir;, |
| you will notice the familiar configure script. It is tempting to run |
| this script directly as is normally the case, but wait a minute. |
| Even if you are |
| using the default compilers like |
| <jump href="http://www.gnu.org/software/gcc/gcc.html">gcc</jump> and |
| <jump href="http://www.gnu.org/software/gcc/gcc.html">g++</jump> |
| you need to export a few more |
| environment variables before you can invoke configure.</p> |
| |
| <p>Rather than make you to figure out what strange environment |
| variables you need to use, we have provided you with a wrapper |
| script that does the job for you. All you need to do is tell |
| the script what your compiler is, and what options you are going to use |
| inside your build, and the script does everything for you. Here |
| is what the script takes as input:</p> |
| |
| <source> |
| runConfigure: Helper script to run "configure" for one of the |
| supported platforms |
| Usage: runConfigure "options" |
| where options may be any of the following: |
| -p <platform> (accepts 'aix', 'beos', 'linux', 'freebsd', |
| 'netbsd', 'solaris', 'hp-10', 'hp-11', 'openserver', 'unixware', |
| 'os400', 'os390', 'irix', 'ptx', 'tru64', 'macosx', 'cygwin', |
| 'qnx', 'interix', 'mingw-msys') |
| [required; no default] |
| -c <C compiler name> (e.g. gcc, cc, xlc_r, qcc, icc, icpc or ecc) |
| [default is make default; cc for gnu make] |
| -x <C++ compiler name> (e.g. g++, CC, aCC, xlC_r, xlC_rv5compat, QCC, |
| icc, icpc or ecc) [default is make default; g++ for gnu make] |
| -d (specifies that you want to build debug version) |
| [default: no debug] |
| -m <message loader> can be 'inmem', 'icu', 'MsgFile' or |
| 'iconv' [default: inmem] |
| -n <net accessor> can be 'fileonly', 'libwww', 'socket', 'winsock' or |
| 'native' [default: socket] |
| -t <transcoder> can be 'icu', 'Iconv400', 'Uniconv390', 'Win32', |
| 'IconvFBSD', 'IconvGNU' or 'native' |
| [default: native] |
| -r <thread option> can be 'pthread' or 'dce' |
| (AIX, HP-11, and Solaris) or 'sproc' (IRIX) or 'none' |
| [default: pthread] |
| -s (specifies that you want to build static libraries) [default: shared] |
| -b <bitsToBuild> (accepts '64', '32') [default: 32] |
| -l <extra linker options> |
| -z <extra compiler options> |
| -P <install-prefix> |
| -C <any one extra configure options> |
| -h (get help on the above commands) |
| </source> |
| |
| <note>&XercesCName; can be built as either a standalone library or as a library |
| dependent on International Components for Unicode (ICU). For simplicity, the |
| following discussion only explains standalone builds.</note> |
| |
| <anchor name="runConfigure-example"/> |
| <p>Some additional explanation may be helpful for some of the options:</p> |
| <ul><li><em>-m <message loader>, -t <transcoder> </em> |
| <br />If you specify <code>icu</code> as the value for either of |
| these options, you must already have set the |
| environment variable ICUROOT to point to the ICU distribution directory.</li> |
| <li><em>-n <net accessor></em> |
| <br />The default value <code>socket</code> handles HTTP URL's. |
| The value <code>native</code> is only supported for Mac OS X. The |
| value <code>winsock</code> is only supported on Mingw-msys. |
| </li> |
| </ul> |
| <p>One of the common ways to build &XercesCName; is as follows:</p> |
| |
| <source> |
| cd src/xercesc |
| ./runConfigure -plinux -cgcc -xg++ -minmem -nsocket -tnative -rpthread |
| </source> |
| |
| <p>The response will be something like the following (extra line |
| breaks have been added for readability). See especially the end, |
| which tells you how <em>configure</em> was invoked.</p> |
| <source> |
| Generating makefiles with the following options ... |
| Platform: linux |
| C Compiler: gcc |
| C++ Compiler: g++ |
| Message Loader: inmem |
| Net Accessor: socket |
| Transcoder: native |
| Thread option: pthread |
| Library type: shared |
| bitsToBuild option: 32 |
| Extra compile options: |
| Extra link options: |
| Extra configure options: |
| Debug is OFF |
| |
| checking for gcc... gcc |
| checking for C compiler default output file name... a.out |
| checking whether the C compiler works... yes |
| checking whether we are cross compiling... no |
| checking for suffix of executables... |
| checking for suffix of object files... o |
| checking whether we are using the GNU C compiler... yes |
| checking whether gcc accepts -g... yes |
| checking for gcc option to accept ISO C89... none needed |
| checking whether we are using the GNU C++ compiler... yes |
| checking whether g++ accepts -g... yes |
| checking for a BSD-compatible install... /usr/bin/install -c |
| checking for autoconf... autoconf |
| checking how to run the C preprocessor... gcc -E |
| checking for grep that handles long lines and -e... /bin/grep |
| checking for egrep... /bin/grep -E |
| checking for ANSI C header files... yes |
| checking for sys/types.h... yes |
| checking for sys/stat.h... yes |
| checking for stdlib.h... yes |
| checking for string.h... yes |
| checking for memory.h... yes |
| checking for strings.h... yes |
| checking for inttypes.h... yes |
| checking for stdint.h... yes |
| checking for unistd.h... yes |
| checking for XMLByte... no |
| checking build system type... i686-unknown-linux-gnu |
| checking host system type... i686-unknown-linux-gnu |
| configure: creating ./config.status |
| config.status: creating Makefile |
| config.status: creating util/Makefile |
| config.status: creating util/Transcoders/Cygwin/Makefile |
| config.status: creating util/Transcoders/Win32/Makefile |
| config.status: creating util/Transcoders/ICU/Makefile |
| config.status: creating util/Transcoders/Iconv/Makefile |
| config.status: creating util/Transcoders/Iconv390/Makefile |
| config.status: creating util/Transcoders/Uniconv390/Makefile |
| config.status: creating util/Transcoders/Iconv400/Makefile |
| config.status: creating util/Transcoders/IconvFBSD/Makefile |
| config.status: creating util/Transcoders/IconvGNU/Makefile |
| config.status: creating util/Transcoders/MacOSUnicodeConverter/Makefile |
| config.status: creating util/Platforms/Makefile |
| config.status: creating util/Platforms/Solaris/Makefile |
| config.status: creating util/Platforms/AIX/Makefile |
| config.status: creating util/Platforms/BeOS/Makefile |
| config.status: creating util/Platforms/QNX/Makefile |
| config.status: creating util/Platforms/Linux/Makefile |
| config.status: creating util/Platforms/FreeBSD/Makefile |
| config.status: creating util/Platforms/NetBSD/Makefile |
| config.status: creating util/Platforms/HPUX/Makefile |
| config.status: creating util/Platforms/OS390/Makefile |
| config.status: creating util/Platforms/OS400/Makefile |
| config.status: creating util/Platforms/IRIX/Makefile |
| config.status: creating util/Platforms/PTX/Makefile |
| config.status: creating util/Platforms/OpenServer/Makefile |
| config.status: creating util/Platforms/UnixWare/Makefile |
| config.status: creating util/Platforms/Tru64/Makefile |
| config.status: creating util/Platforms/MacOS/Makefile |
| config.status: creating util/Platforms/Win32/Makefile |
| config.status: creating util/Platforms/Cygwin/Makefile |
| config.status: creating util/Compilers/Makefile |
| config.status: creating util/MsgLoaders/InMemory/Makefile |
| config.status: creating util/MsgLoaders/ICU/Makefile |
| config.status: creating util/MsgLoaders/ICU/resources/Makefile |
| config.status: creating util/MsgLoaders/MsgCatalog/Makefile |
| config.status: creating util/MsgLoaders/MsgFile/Makefile |
| config.status: creating util/NetAccessors/Socket/Makefile |
| config.status: creating util/NetAccessors/WinSock/Makefile |
| config.status: creating util/NetAccessors/libWWW/Makefile |
| config.status: creating util/NetAccessors/MacOSURLAccessCF/Makefile |
| config.status: creating util/regx/Makefile |
| config.status: creating validators/Makefile |
| config.status: creating validators/common/Makefile |
| config.status: creating validators/datatype/Makefile |
| config.status: creating validators/DTD/Makefile |
| config.status: creating validators/schema/Makefile |
| config.status: creating validators/schema/identity/Makefile |
| config.status: creating framework/Makefile |
| config.status: creating framework/psvi/Makefile |
| config.status: creating dom/Makefile |
| config.status: creating dom/impl/Makefile |
| config.status: creating dom/deprecated/Makefile |
| config.status: creating parsers/Makefile |
| config.status: creating internal/Makefile |
| config.status: creating sax/Makefile |
| config.status: creating sax2/Makefile |
| config.status: creating ../../obj/Makefile |
| config.status: executing default commands |
| |
| Having build problems? |
| Read instructions at http://xerces.apache.org/xerces-c/build.html |
| Still cannot resolve it? |
| Find out if someone else had the same problem before. |
| Go to http://marc.theaimsgroup.com/?l=xerces-c-dev |
| |
| In future, you may also directly type the following commands to create |
| the Makefiles. |
| |
| export TRANSCODER="NATIVE" |
| export MESSAGELOADER="INMEM" |
| export NETACCESSOR="Socket" |
| export THREADS="pthread" |
| export LIBTYPE="shared" |
| export BITSTOBUILD="32" |
| export CC="gcc" |
| export CXX="g++" |
| export CXXFLAGS=" -w -O2 -DNDEBUG -DPROJ_XMLPARSER -DPROJ_XMLUTIL -DPROJ_PARSERS |
| -DPROJ_SAX4C -DPROJ_SAX2 -DPROJ_DOM -DPROJ_DEPRECATED_DOM -DPROJ_VALIDATORS -DX |
| ML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER -DXML_USE_PTHREADS -DXML_ |
| USE_NETACCESSOR_SOCKET " |
| export CFLAGS=" -w -O2 -DNDEBUG -DPROJ_XMLPARSER -DPROJ_XMLUTIL -DPROJ_PARSERS - |
| DPROJ_SAX4C -DPROJ_SAX2 -DPROJ_DOM -DPROJ_DEPRECATED_DOM -DPROJ_VALIDATORS -DXML |
| _USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER -DXML_USE_PTHREADS -DXML_US |
| E_NETACCESSOR_SOCKET " |
| export LDFLAGS=" " |
| export LIBS=" -lpthread " |
| configure |
| |
| If the result of the above commands look OK to you, go to the directory |
| src/xercesc and type "make" (or "gmake") to make the XERCES-C system. |
| </source> |
| |
| <p>So now you see what the wrapper script has actually been doing! It has |
| invoked <code>configure</code> |
| to create the Makefiles in the individual sub-directories, but in addition |
| to that, it has set a few environment variables to correctly configure |
| your compiler and compiler flags too.</p> |
| |
| <note>If you are building a 64 bit &XercesCName; |
| using g++ that by default generated 32 bit code (or vice |
| versa), then you will need to specify additional compiler |
| and linker options via the -z and -l runConfigure options |
| in order to switch the compiler into 64 bit mode (or 32 bit |
| mode). These options are architecture-specific and you |
| may need to consult the GCC manual to determine which |
| ones to use. For the x86-64, PowerPC, and SPARC |
| architectures these options are -m64 (64 bit mode) and |
| -m32 (32 bit mode). Note also that if you are using |
| the packageBinaries.pl script to build &XercesCName; |
| then you may need to modify this script to pass the |
| necessary options to runConfigure. |
| </note> |
| |
| <p>Now that the Makefiles are all created, you are ready to do the actual build.</p> |
| |
| <source>make</source> |
| |
| <p>Is that it? Yes, that's all you need to build &XercesCName;. The libraries |
| can be found in the lib sub-directory </p> |
| |
| <note>If the library is built with the ICU message loader, |
| or message catalog loader, then you need to make sure |
| the XERCESC_NLS_HOME environment variable points to the |
| $XERCESCROOT/msg directory where the message files reside.</note> |
| |
| </s3> |
| |
| <s3 title="Building samples"> |
| <p>The building process for the samples is similar to building |
| the Xerces-C++ libraries. The samples directory contains the |
| runConfigure script which is very similar to the one found |
| in src/xercesc except it has fewer options. To see available |
| options, run: |
| </p> |
| |
| <source> |
| cd samples |
| ./runConfigure -h |
| </source> |
| |
| <p>To continue our build procedure from the previous section, |
| we execute runConfigure with the following options:</p> |
| |
| <source> |
| ./runConfigure -plinux -cgcc -xg++ -rpthread |
| </source> |
| |
| <p>After that we can run GNU make to build the samples:</p> |
| |
| <source> |
| make |
| </source> |
| |
| <p>The sample executable can be found in the bin sub-directory in |
| &XercesCSrcInstallDir;. To delete all the generated object |
| files and executables, run:</p> |
| <source> |
| make clean |
| </source> |
| </s3> |
| |
| |
| <s3 title="Building a single-threaded library"> |
| <p>To build Xerces-C++ as a single-threaded library on UNIX platforms you |
| have to pass the -rnone option to runConfigure. The following additional |
| steps are neccessary for certain platforms:</p> |
| |
| <p>For Aix - </p> |
| <ul> |
| <li>Replace <code>xlc_r</code> and <code>xlC_r</code> compilers with |
| <code>xlc</code> and <code>xlC</code> respectively</li> |
| <li>Replace <code>makeC++SharedLib_r</code> with <code>makeC++SharedLib</code> in |
| Makefile.incl</li> |
| </ul> |
| </s3> |
| </s2> |
| |
| <anchor name="CygWin"/> |
| <s2 title="Building on Windows using Cygwin"> |
| <p><em>Do not jump into the build directly before reading this.</em></p> |
| |
| <p>&XercesCName; may be built in the |
| <jump href="http://www.cygwin.com">Cygwin</jump> environment for use |
| by Cygwin applications. As with the <jump href="#UNIX">UNIX</jump> |
| platforms, &XercesCName; on Cygwin uses |
| <jump href="http://www.gnu.org">GNU</jump> tools. Therefore, with a |
| couple of notable exceptions, &XercesCName; on Cygwin is built using |
| the same instructions as the UNIX platforms. The build environment |
| variable XERCESCROOT must be set to the proper path containing the |
| &XercesCName; sources and <em>runConfigure</em> must be run with the |
| "-pcygwin -cgcc -xg++" arguments.</p> |
| |
| <p>Note that Cygwin is different from the UNIX platforms in the way |
| that it finds libraries at run time. While UNIX platforms may use the |
| environment variable LD_LIBRARY_PATH, Cygwin uses the PATH environment |
| variable.</p> |
| |
| <p>There is an issue with the |
| <jump href="http://www.gnu.org/software/gcc/gcc.html">gcc/g++</jump> |
| compiler version 2.95, where C++ exceptions thrown from a dll will |
| cause the application to crash, regardless of whether there is a "catch" |
| statement. This bug doesn't occur in tests using gcc 3.1 or 3.2, so it |
| is recommended that you use gcc 3.1 or higher.</p> |
| </s2> |
| |
| <anchor name="WinBorlandBuilder"/> |
| <s2 title="Building on Windows using Borland C++ Builder"> |
| <p>&XercesCName; source distribution comes with Borland C++ Builder 6 projects to help you |
| build &XercesCName;. The following describes the steps you need to build |
| &XercesCName;.</p> |
| |
| <s3 title="Building &XercesCName; library"> |
| <p> The library and demo projects are all contained in the Xerces-all project group: |
| </p> |
| |
| <ul> |
| <li> &XercesCSrcInstallDir;\Projects\Win32\BCB6\Xerces-all\Xerces-all.bpg </li> |
| </ul> |
| |
| <p> Each project in the group refers a directory below \Xerces-all. |
| For example, the XercesLib project files are contained in the directory |
| </p> |
| |
| <ul> |
| <li> &XercesCSrcInstallDir;\Projects\Win32\BCB6\Xerces-all\XercesLib </li> |
| </ul> |
| |
| <p> To build any project, open the project manager. Double click on the project |
| name. Then select "Project|Build" from the menu. For example, double click |
| on XercesLib.dll in the manager. Then select "Project|Build XercesLib" from |
| the menu. |
| |
| Once the library has been built, include XercesLib.lib with in application's |
| project and place XercesLib.dll somewhere in your path. |
| </p> |
| |
| </s3> |
| </s2> |
| |
| <anchor name="WinBorlandCC"/> |
| <s2 title="Building on Windows using Borland C++"> |
| <p>&XercesCName; source distribution comes with Borland C++ Compiler make files to help you |
| build &XercesCName;. The following describes the steps you need to build |
| &XercesCName;.</p> |
| |
| <ol> |
| <li>Change directory to <code> &XercesCSrcInstallDir;\Projects\Win32\BCC.551\Xerces-all</code></li> |
| <li>Run <code>MakeBuildDirs.bat</code>.</li> |
| <li>Then issue</li> |
| <ul> |
| <li><code>make -f Xerces-all.mak</code> |
| <br/>to build the dll (without deprecated DOM API) and tests, or</li> |
| <li><code>make -f Xerces-all.mak -DWITHDEPRDOM=Y</code> |
| <br/>to build the dll with deprecated DOM API (approx. 300k larger) and tests</li> |
| </ul> |
| </ol> |
| </s2> |
| |
| <anchor name="WinIntel"/> |
| <s2 title="Building 64 bit libraries on Windows using Intel C++"> |
| <p>&XercesCName; source distribution comes with Microsoft Visual C++ NMake Files which |
| work with Intel C++ Compiler. The following describes the steps you need |
| to build &XercesCName; 64 bit binary using Intel C++ Compiler.</p> |
| |
| <s3 title="Building &XercesCName; library"> |
| <p>&XercesCName; source distribution provides a makefile <code>all.mak</code> |
| which will build everything including samples, tests and the parser library.</p> |
| <source> |
| cd &XercesCSrcInstallDir;\Projects\Win32\VC6\xerces-all\all |
| nmake -f all.mak "CFG=all - Win64 Release" CPP=ecl.exe |
| </source> |
| |
| <p>If you want to just build the &XercesCName; parser library alone, then</p> |
| <source> |
| cd &XercesCSrcInstallDir;\Projects\Win32\VC6\xerces-all\XercesLib |
| nmake -f XercesLib.mak "CFG=XercesLib - Win64 Release" CPP=ecl.exe |
| </source> |
| |
| <p>You must make sure that you are linking your application with |
| the &XercesCWindowsLib;.lib library and also make sure that |
| the associated DLL is somewhere in your path.</p> |
| </s3> |
| </s2> |
| </s1> |