You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by bo...@apache.org on 2007/11/18 15:40:05 UTC
svn commit: r596088 - in /xerces/c/branches/xerces-2.8/doc:
build-winunix.xml build.xml readme.xml
Author: borisk
Date: Sun Nov 18 06:40:05 2007
New Revision: 596088
URL: http://svn.apache.org/viewvc?rev=596088&view=rev
Log:
Add MinGW build instructions. Patch by Justin Dearing.
Modified:
xerces/c/branches/xerces-2.8/doc/build-winunix.xml
xerces/c/branches/xerces-2.8/doc/build.xml
xerces/c/branches/xerces-2.8/doc/readme.xml
Modified: xerces/c/branches/xerces-2.8/doc/build-winunix.xml
URL: http://svn.apache.org/viewvc/xerces/c/branches/xerces-2.8/doc/build-winunix.xml?rev=596088&r1=596087&r2=596088&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.8/doc/build-winunix.xml (original)
+++ xerces/c/branches/xerces-2.8/doc/build-winunix.xml Sun Nov 18 06:40:05 2007
@@ -24,6 +24,7 @@
<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="MinGW">Building on Windows using MinGW-MSYS</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>
@@ -155,7 +156,12 @@
<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>
+ <p>This should be the full path of the directory where you extracted &XercesCName;.
+ Note that this path should not have any spaces in it or the build process will fail. The
+ only UNIX environments where this is likely to occur in are
+ <jump href="#MinGW">MinGW</jump> and <jump href="#CygWin">Cygwin</jump> as the home
+ directories are by default '/home/User Name' and '/cygdrive/c/Documents and Settings/'
+ respectively. On Windows user names can, and often do, contain spaces.</p>
</s3>
<s3 title="Building &XercesCName; library">
@@ -468,28 +474,70 @@
<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>
+ <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
+ "-p cygwin -c gcc -x g++" arguments.</p>
+
+ <p>Cygwin's GCC also has the ability to build MinGW targeted binaries.
+ This is supported via the -mno-cygwin compiler switch. In that case the
+ arguments to runConfigure should be
+ '-p mingw-msys -c gcc -x g++ -z -mno-cygwin -l -mno-cygwin -C --host=i686-mingw32'.
+ Note that both the compiler and linker flags need to be set.</p>
+
+ <p>Also 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 gcc/g++ 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="MinGW"/>
+ <s2 title="Building on Windows using MinGW">
+ <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.mingw.org/msys.shtml">MinGW-MSYS</jump> environment for use
+ by MinGW applications. As with the <jump href="#UNIX">UNIX</jump>
+ platforms, &XercesCName; on MinGW uses
+ <jump href="http://www.gnu.org">GNU</jump> tools. Therefore, with a
+ couple of notable exceptions, &XercesCName; on MinGW 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
+ "-pmingw-msys -cgcc -xg++" arguments. It is also possible to build
+ &XercesCName; libraries for MinGW using Cygwin. For more information
+ on how to do this see the <jump href="#CygWin">Building on Windows
+ using Cygwin</jump> section.</p>
+
+ <p>Note that MinGW 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, MinGW uses the PATH environment
+ variable.</p>
+
+ <p>When linking against the static version of &XercesCName;, be sure to
+ use the '-DXML_LIBRARY' compiler flag. Otherwise the functions in the
+ header files will be marked as to be imported from a DLL and the linker will fail.</p>
+
+ <p>Also note that you can run into a bug found in older MinGW's dllwrap utility,
+ which is used by &XercesCName; build system to link DLLs. For more information
+ see the following <jump href="http://marc.info/?l=xerces-c-users&m=118891009725180&w=2">
+ mailing list post</jump>.</p>
+
+ <p>There is an issue with the gcc/g++ 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"/>
Modified: xerces/c/branches/xerces-2.8/doc/build.xml
URL: http://svn.apache.org/viewvc/xerces/c/branches/xerces-2.8/doc/build.xml?rev=596088&r1=596087&r2=596088&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.8/doc/build.xml (original)
+++ xerces/c/branches/xerces-2.8/doc/build.xml Sun Nov 18 06:40:05 2007
@@ -27,6 +27,7 @@
<li><jump href="build-winunix.html#WinNT">Building on Windows using Microsoft Visual C++</jump></li>
<li><jump href="build-winunix.html#UNIX">Building on UNIX/Linux/Mac OS X platforms</jump></li>
<li><jump href="build-winunix.html#CygWin">Building on Windows using Cygwin</jump></li>
+ <li><jump href="build-winunix.html#MinGW">Building on Windows using MinGW-MSYS</jump></li>
<li><jump href="build-winunix.html#WinBorlandCC">Building on Windows using Borland C++</jump></li>
<li><jump href="build-winunix.html#WinBorlandBuilder">Building on Windows using Borland C++ Builder</jump></li>
<li><jump href="build-winunix.html#WinIntel">Building 64 bit libraries on Windows using Intel C++</jump></li>
Modified: xerces/c/branches/xerces-2.8/doc/readme.xml
URL: http://svn.apache.org/viewvc/xerces/c/branches/xerces-2.8/doc/readme.xml?rev=596088&r1=596087&r2=596088&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.8/doc/readme.xml (original)
+++ xerces/c/branches/xerces-2.8/doc/readme.xml Sun Nov 18 06:40:05 2007
@@ -110,6 +110,8 @@
<s2 title="Other Platforms and Compilers">
<ul>
<li>MS Visual C++ 6.0</li>
+ <li>Cygwin</li>
+ <li>MinGW-MSYS</li>
<li>GCC 3.2.x</li>
<li>Solaris 8, 9</li>
<li>AIX 5.1, 5.2</li>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org