You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by tn...@apache.org on 2002/11/08 16:55:56 UTC
cvs commit: xml-xerces/c/doc build-misc.xml faq-distrib.xml program-others.xml program.xml
tng 2002/11/08 07:55:56
Modified: c/doc build-misc.xml faq-distrib.xml program-others.xml
program.xml
Log:
Documentation update: move porting guideline to programming guide.
Revision Changes Path
1.11 +2 -85 xml-xerces/c/doc/build-misc.xml
Index: build-misc.xml
===================================================================
RCS file: /home/cvs/xml-xerces/c/doc/build-misc.xml,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- build-misc.xml 25 Jun 2002 21:03:16 -0000 1.10
+++ build-misc.xml 8 Nov 2002 15:55:56 -0000 1.11
@@ -201,91 +201,8 @@
<s2 title="I wish to port &XercesCProjectName; to my favourite platform. Do you have any suggestions?">
<p>All platform dependent code in &XercesCProjectName; has been
isolated to a couple of files, which should ease the porting
- effort. Here are the basic steps that should be followed to
- port &XercesCProjectName;.</p>
-
- <ol>
-
- <li>The directory <code>src/xercesc/util/Platforms</code> contains the
- platform sensitive files while <code>src/xercesc/util/Compilers</code> contains
- all development environment sensitive files. Each operating
- system has a file of its own and each development environment
- has another one of its own too.
-
- <br/>
-
- As an example, the Win32 platform as a <code>Win32Defs.hpp</code> file
- and the Visual C++ environment has a <code>VCPPDefs.hpp</code> file.
- These files set up certain define tokens, typedefs,
- constants, etc... that will drive the rest of the code to
- do the right thing for that platform and development
- environment. AIX/CSet have their own <code>AIXDefs.hpp</code> and
- <code>CSetDefs.hpp</code> files, and so on. You should create new
- versions of these files for your platform and environment
- and follow the comments in them to set up your own.
- Probably the comments in the Win32 and Visual C++ will be
- the best to follow, since that is where the main
- development is done.</li>
-
- <li>Next, edit the file <code>XercesDefs.hpp</code>, which is where all
- of the fundamental stuff comes into the system. You will
- see conditional sections in there where the above
- per-platform and per-environment headers are brought in.
- Add the new ones for your platform under the appropriate
- conditionals.</li>
-
- <li>Now edit <code>AutoSense.hpp</code>. Here we set canonical &XercesCProjectName;
- internal <code>#define</code> tokens which indicate the platform and
- compiler. These definitions are based on known platform
- and compiler defines.
- <br/>
- <code>AutoSense.hpp</code> is included in <code>XercesDefs.hpp</code> and the
- canonical platform and compiler settings thus defined will
- make the particular platform and compiler headers to be
- the included at compilation.
- <br/>
- It might be a little tricky to decipher this file so be
- careful. If you are using say another compiler on Win32,
- probably it will use similar tokens so that the platform
- will get picked up already using what is already there.</li>
-
- <li>Once this is done, you will then need to implement a
- version of the <ref>platform utilities</ref> for your platform.
- Each operating system has a file which implements some
- methods of the XMLPlatformUtils class, specific to that
- operating system. These are not terribly complex, so it
- should not be a lot of work. The Win32 version is called
- <code>Win32PlatformUtils.cpp</code>, the AIX version is
- <code>AIXPlatformUtils.cpp</code> and so on. Create one for your
- platform, with the correct name, and empty out all of the
- implementation so that just the empty shells of the
- methods are there (with dummy returns where needed to make
- the compiler happy.) Once you've done that, you can start
- to get it to build without any real implementation.</li>
-
- <li>Once you have the system building, then start
- implementing your own platform utilities methods. Follow
- the comments in the Win32 version as to what they do, the
- comments will be improved in subsequent versions, but they
- should be fairly obvious now. Once you have these
- implementations done, you should be able to start
- debugging the system using the demo programs.</li>
- </ol>
-
- <p>Other concerns are:</p>
-
- <ul>
- <li>Does ICU compile on your platform? If not, then you'll need to
- create a transcoder implementation that uses your local transcoding
- services. The Iconv transcoder should work for you, though perhaps
- with some modifications.</li>
- <li>What message loader will you use? To get started, you can use the
- "in memory" one, which is very simple and easy. Then, once you get
- going, you may want to adapt the message catalog message loader, or
- write one of your own that uses local services.</li>
- </ul>
-
- <p>That is the work required in a nutshell!</p>
+ effort. Please refer to <jump href="program-others.html#PortingGuidelines">Porting
+ Guidelines</jump> for further details.</p>
</s2>
1.26 +1 -1 xml-xerces/c/doc/faq-distrib.xml
Index: faq-distrib.xml
===================================================================
RCS file: /home/cvs/xml-xerces/c/doc/faq-distrib.xml,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- faq-distrib.xml 23 Aug 2002 14:09:37 -0000 1.25
+++ faq-distrib.xml 8 Nov 2002 15:55:56 -0000 1.26
@@ -211,7 +211,7 @@
many platforms as there are. Again, due to limited resources
we cannot do all the ports. We will help you make this port
happen. Here are some <jump
- href="build-misc.html#faq-4">Porting
+ href="program-others.html#PortingGuidelines">Porting
Guidelines</jump>.</p>
<p>We strongly encourage you to submit the changes that
1.7 +95 -0 xml-xerces/c/doc/program-others.xml
Index: program-others.xml
===================================================================
RCS file: /home/cvs/xml-xerces/c/doc/program-others.xml,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- program-others.xml 8 Nov 2002 15:28:02 -0000 1.6
+++ program-others.xml 8 Nov 2002 15:55:56 -0000 1.7
@@ -273,6 +273,101 @@
</s2>
+ <anchor name="PortingGuidelines"/>
+ <s2 title="Porting Guidelines">
+
+ <p>All platform dependent code in &XercesCProjectName; has been
+ isolated to a couple of files, which should ease the porting
+ effort. Here are the basic steps that should be followed to
+ port &XercesCProjectName;.</p>
+
+ <ol>
+
+ <li>The directory <code>src/xercesc/util/Platforms</code> contains the
+ platform sensitive files while <code>src/xercesc/util/Compilers</code> contains
+ all development environment sensitive files. Each operating
+ system has a file of its own and each development environment
+ has another one of its own too.
+
+ <br/>
+
+ As an example, the Win32 platform as a <code>Win32Defs.hpp</code> file
+ and the Visual C++ environment has a <code>VCPPDefs.hpp</code> file.
+ These files set up certain define tokens, typedefs,
+ constants, etc... that will drive the rest of the code to
+ do the right thing for that platform and development
+ environment. AIX/CSet have their own <code>AIXDefs.hpp</code> and
+ <code>CSetDefs.hpp</code> files, and so on. You should create new
+ versions of these files for your platform and environment
+ and follow the comments in them to set up your own.
+ Probably the comments in the Win32 and Visual C++ will be
+ the best to follow, since that is where the main
+ development is done.</li>
+
+ <li>Next, edit the file <code>XercesDefs.hpp</code>, which is where all
+ of the fundamental stuff comes into the system. You will
+ see conditional sections in there where the above
+ per-platform and per-environment headers are brought in.
+ Add the new ones for your platform under the appropriate
+ conditionals.</li>
+
+ <li>Now edit <code>AutoSense.hpp</code>. Here we set canonical &XercesCProjectName;
+ internal <code>#define</code> tokens which indicate the platform and
+ compiler. These definitions are based on known platform
+ and compiler defines.
+ <br/>
+ <code>AutoSense.hpp</code> is included in <code>XercesDefs.hpp</code> and the
+ canonical platform and compiler settings thus defined will
+ make the particular platform and compiler headers to be
+ the included at compilation.
+ <br/>
+ It might be a little tricky to decipher this file so be
+ careful. If you are using say another compiler on Win32,
+ probably it will use similar tokens so that the platform
+ will get picked up already using what is already there.</li>
+
+ <li>Once this is done, you will then need to implement a
+ version of the <ref>platform utilities</ref> for your platform.
+ Each operating system has a file which implements some
+ methods of the XMLPlatformUtils class, specific to that
+ operating system. These are not terribly complex, so it
+ should not be a lot of work. The Win32 version is called
+ <code>Win32PlatformUtils.cpp</code>, the AIX version is
+ <code>AIXPlatformUtils.cpp</code> and so on. Create one for your
+ platform, with the correct name, and empty out all of the
+ implementation so that just the empty shells of the
+ methods are there (with dummy returns where needed to make
+ the compiler happy.) Once you've done that, you can start
+ to get it to build without any real implementation.</li>
+
+ <li>Once you have the system building, then start
+ implementing your own platform utilities methods. Follow
+ the comments in the Win32 version as to what they do, the
+ comments will be improved in subsequent versions, but they
+ should be fairly obvious now. Once you have these
+ implementations done, you should be able to start
+ debugging the system using the demo programs.</li>
+ </ol>
+
+ <p>Other concerns are:</p>
+
+ <ul>
+ <li>Does ICU compile on your platform? If not, then you'll need to
+ create a transcoder implementation that uses your local transcoding
+ services. The Iconv transcoder should work for you, though perhaps
+ with some modifications.</li>
+ <li>What message loader will you use? To get started, you can use the
+ "in memory" one, which is very simple and easy. Then, once you get
+ going, you may want to adapt the message catalog message loader, or
+ write one of your own that uses local services.</li>
+ <li>What should I define XMLCh to be? Please refer to <jump
+ href="build-misc.html#XMLChInfo">What should I define XMLCh to be?</jump> for
+ further details.</li>
+ </ul>
+
+ <p>That is the work required in a nutshell!</p>
+ </s2>
+
<anchor name="CPPNamespace"/>
<s2 title="Using C++ Namespace">
1.32 +1 -0 xml-xerces/c/doc/program.xml
Index: program.xml
===================================================================
RCS file: /home/cvs/xml-xerces/c/doc/program.xml,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- program.xml 8 Nov 2002 15:28:02 -0000 1.31
+++ program.xml 8 Nov 2002 15:55:56 -0000 1.32
@@ -78,6 +78,7 @@
<li><jump href="program-others.html#GrammarCache">Preparsing Grammar and Grammar Caching</jump></li>
<li><jump href="program-others.html#LoadableMessageText">Loadable Message Text</jump></li>
<li><jump href="program-others.html#PluggableTranscoders">Pluggable Transcoders</jump></li>
+ <li><jump href="program-others.html#PortingGuidelines">Porting Guidelines</jump></li>
<li><jump href="program-others.html#CPPNamespace">Using C++ Namespace</jump></li>
</ul>
</s2>
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org