зеркало из https://github.com/mozilla/gecko-dev.git
181 строка
4.4 KiB
HTML
181 строка
4.4 KiB
HTML
|
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||
|
<html>
|
||
|
<head>
|
||
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||
|
<meta name="Author" content="Suresh Duddi">
|
||
|
<meta name="GENERATOR" content="Mozilla/4.71 [en] (X11; U; Linux 2.2.12-20 i686) [Netscape]">
|
||
|
</head>
|
||
|
<body>
|
||
|
|
||
|
<center>
|
||
|
<h2>
|
||
|
Standalone XPCOM v 0.5</h2></center>
|
||
|
|
||
|
<center>Version 0.5
|
||
|
<br>15 May 2000
|
||
|
<br>Suresh Duddi <dp@netscape.com>
|
||
|
<hr WIDTH="100%"></center>
|
||
|
|
||
|
<h3>
|
||
|
1.0 Requirements</h3>
|
||
|
Standalone XPCOM is a tree configuration, that when built, provides a minimal
|
||
|
set of libraries (shared mostly) that can be used to get all features of
|
||
|
XPCOM. The contents of this standalone XPCOM in general are:
|
||
|
<ul>
|
||
|
<li>
|
||
|
NSPR : mozilla/nsprpub</li>
|
||
|
|
||
|
<li>
|
||
|
Registry : mozilla/modules/libreg</li>
|
||
|
|
||
|
<li>
|
||
|
XPCOM : mozilla/xpcom</li>
|
||
|
</ul>
|
||
|
|
||
|
<h3>
|
||
|
</h3>
|
||
|
|
||
|
<h3>
|
||
|
2.0 Building Standalone XPCOM</h3>
|
||
|
Here are the instructions for building the Standalone XPCOM on unix:
|
||
|
<br><b></b>
|
||
|
<ol><b>Step 1 : Pull the sources</b>
|
||
|
<li>
|
||
|
<tt>cvs co mozilla/nsprpub mozilla/modules/libreg mozilla/xpcom</tt></li>
|
||
|
|
||
|
<li>
|
||
|
<get other required files under mozilla/></li>
|
||
|
</ol>
|
||
|
|
||
|
<ol>
|
||
|
<br><b>Step 2 : Building XPCOM Standalone</b>
|
||
|
<li>
|
||
|
<tt>cd mozilla; configure --enable-xpcom-standalone</tt></li>
|
||
|
|
||
|
<li>
|
||
|
<tt>cd nsprpub; gmake; cd ..</tt></li>
|
||
|
|
||
|
<li>
|
||
|
<tt>cd modules/libreg; gmake; cd ../..</tt></li>
|
||
|
|
||
|
<li>
|
||
|
<tt>cd xpcom; gmake; cd ..</tt></li>
|
||
|
</ol>
|
||
|
|
||
|
<h3>
|
||
|
</h3>
|
||
|
|
||
|
<h3>
|
||
|
3.0 Testing Standalone XPCOM</h3>
|
||
|
<tt>xpcom/sample</tt> contains a sample application and a component. This
|
||
|
should get built by default.
|
||
|
<ul>
|
||
|
<li>
|
||
|
<tt>nsTestSample</tt> is the sample application. This should have been
|
||
|
installed in your <tt>bin/</tt> directory.</li>
|
||
|
|
||
|
<li>
|
||
|
<tt>libsample.so (unix) </tt>is the sample component implementation that
|
||
|
the sample application will try to instantiate. This should have been installed
|
||
|
in your <tt>bin/components</tt> directory</li>
|
||
|
</ul>
|
||
|
To run the test,
|
||
|
<ol>
|
||
|
<li>
|
||
|
cd to your <tt>bin/</tt> directory</li>
|
||
|
|
||
|
<li>
|
||
|
setenv LD_LIBRARY_PATH .</li>
|
||
|
|
||
|
<li>
|
||
|
<tt>./nsTestSample<br>
|
||
|
Warning: MOZILLA_FIVE_HOME not set.</tt></li>
|
||
|
|
||
|
<br><tt>nsNativeComponentLoader: autoregistering begins.</tt>
|
||
|
<br><tt>nsNativeComponentLoader: autoregistering succeeded</tt>
|
||
|
<br><tt>Inital print: initial value</tt>
|
||
|
<br><tt>Set value to : XPCOM defies gravity</tt>
|
||
|
<br><tt>Final print: XPCOM defies gravity</tt>
|
||
|
<br><b><tt>Test passed.</tt></b></ol>
|
||
|
|
||
|
<h3>
|
||
|
</h3>
|
||
|
|
||
|
<h3>
|
||
|
4.0 Test FAILED: What went wrong ?</h3>
|
||
|
The most common case of why the sample would have failed if you didn't
|
||
|
run it from the bin directoy. Here are some error messsages and possible
|
||
|
ways of fixing them.
|
||
|
<ol>
|
||
|
<li>
|
||
|
<b><tt>./nsTestSample: error in loading shared libraries: libxpcom.so:
|
||
|
cannot open shared object file: No such file or directory</tt></b></li>
|
||
|
|
||
|
<ol>LD_LIBRARY_PATH not set. To fix "<tt>setenv LD_LIBRARY_PATH ."</tt></ol>
|
||
|
|
||
|
<li>
|
||
|
<b>Link errors when building xpcom standalone</b></li>
|
||
|
|
||
|
<ol>This is mostly due to the fact that probably xpcom is not being built
|
||
|
standalone. Make sure you did "<tt>configure --enable-xpcom-standalone"</tt></ol>
|
||
|
</ol>
|
||
|
|
||
|
<h3>
|
||
|
5.0 Whats the difference between Standalone and non-Standalone XPCOM</h3>
|
||
|
Here is what we had to do to get a working standalone XPCOM
|
||
|
<ol>
|
||
|
<li>
|
||
|
Disabled all forms of unicode conversion. nsString, nsCRT were using this
|
||
|
in various forms. Only ASCII is expected to work. Other charsets including
|
||
|
unicode are not guaranteed to work.</li>
|
||
|
|
||
|
<li>
|
||
|
Disabled nsUnicharInputStream. This causes nsPersistentProperties to fail
|
||
|
always.</li>
|
||
|
|
||
|
<li>
|
||
|
Disabled control of XPT from preferences.</li>
|
||
|
|
||
|
<li>
|
||
|
Disabled use of ZIP format of XPT files.</li>
|
||
|
</ol>
|
||
|
|
||
|
<h3>
|
||
|
6.0 TODO for v 1.0</h3>
|
||
|
|
||
|
<ol>
|
||
|
<li>
|
||
|
Enable XPCOM to work with unicode. Unicode, ASCII and ISO8859-1 will
|
||
|
be the charset that will be self supported by XPCOM.</li>
|
||
|
|
||
|
<li>
|
||
|
Optional exclusion of specific features into standalone XPCOM like unicode
|
||
|
support, registry, xpconnect. Tweeking these options will cause reduction
|
||
|
in memory requirements and size.</li>
|
||
|
|
||
|
<li>
|
||
|
Get <tt>xpcom/tests</tt> directory upto date and documented.</li>
|
||
|
|
||
|
<li>
|
||
|
Make standalone XPCOM the only deliverable from xpcom. No more <tt>#ifndef
|
||
|
XPCOM_STANDALONE</tt></li>
|
||
|
|
||
|
<li>
|
||
|
Update this document for both Windows and Mac.</li>
|
||
|
|
||
|
<li>
|
||
|
API freeze and documentation</li>
|
||
|
</ol>
|
||
|
|
||
|
<h3>
|
||
|
</h3>
|
||
|
|
||
|
<h3>
|
||
|
7.0 Future (post v 1.0)</h3>
|
||
|
mmh! let me think...
|
||
|
<p>
|
||
|
<hr WIDTH="100%">
|
||
|
<br>Suresh Duddi <dp@netscape.com>
|
||
|
</body>
|
||
|
</html>
|