updated docs
This commit is contained in:
parent
5e4be184a3
commit
562d95759f
|
@ -28,13 +28,6 @@ bittorrent protocol or clients that don't support this extension or the
|
||||||
one you want to add.</p>
|
one you want to add.</p>
|
||||||
<p>To advertise to other clients that you support, one bit from the reserved
|
<p>To advertise to other clients that you support, one bit from the reserved
|
||||||
bytes is used.</p>
|
bytes is used.</p>
|
||||||
<p>Right now, two bits have known usages.</p>
|
|
||||||
<blockquote>
|
|
||||||
<ul class="simple">
|
|
||||||
<li>[7] & 1 is used by Mainline for DHT support</li>
|
|
||||||
<li>[7] & 2 is used by XBT client for peer-exchange support</li>
|
|
||||||
</ul>
|
|
||||||
</blockquote>
|
|
||||||
<p>The bit selected for the extension protocol is bit 20 from the right (counting
|
<p>The bit selected for the extension protocol is bit 20 from the right (counting
|
||||||
starts at 0). So (reserved_byte[5] & 0x10) is the expression to use for checking
|
starts at 0). So (reserved_byte[5] & 0x10) is the expression to use for checking
|
||||||
if the client supports extended messaging.</p>
|
if the client supports extended messaging.</p>
|
||||||
|
|
|
@ -13,11 +13,6 @@ one you want to add.
|
||||||
To advertise to other clients that you support, one bit from the reserved
|
To advertise to other clients that you support, one bit from the reserved
|
||||||
bytes is used.
|
bytes is used.
|
||||||
|
|
||||||
Right now, two bits have known usages.
|
|
||||||
|
|
||||||
* [7] & 1 is used by Mainline for DHT support
|
|
||||||
* [7] & 2 is used by XBT client for peer-exchange support
|
|
||||||
|
|
||||||
The bit selected for the extension protocol is bit 20 from the right (counting
|
The bit selected for the extension protocol is bit 20 from the right (counting
|
||||||
starts at 0). So (reserved_byte[5] & 0x10) is the expression to use for checking
|
starts at 0). So (reserved_byte[5] & 0x10) is the expression to use for checking
|
||||||
if the client supports extended messaging.
|
if the client supports extended messaging.
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
<li><a class="reference" href="examples.html">examples</a></li>
|
<li><a class="reference" href="examples.html">examples</a></li>
|
||||||
<li><a class="reference" href="manual.html">api documentation</a></li>
|
<li><a class="reference" href="manual.html">api documentation</a></li>
|
||||||
<li><a class="reference" href="client_test.png">screenshot</a></li>
|
<li><a class="reference" href="client_test.png">screenshot</a></li>
|
||||||
|
<li><a class="reference" href="extension_protocol.html">extensions</a></li>
|
||||||
<li><a class="reference" href="http://lists.sourceforge.net/lists/listinfo/libtorrent-discuss">mailing list</a> (<a class="reference" href="http://dir.gmane.org/gmane.network.bit-torrent.libtorrent">archive</a>)</li>
|
<li><a class="reference" href="http://lists.sourceforge.net/lists/listinfo/libtorrent-discuss">mailing list</a> (<a class="reference" href="http://dir.gmane.org/gmane.network.bit-torrent.libtorrent">archive</a>)</li>
|
||||||
<li><a class="reference" href="projects.html">who's using libtorrent?</a></li>
|
<li><a class="reference" href="projects.html">who's using libtorrent?</a></li>
|
||||||
<li><a class="reference" href="http://sourceforge.net/tracker/?group_id=79942&atid=558250">report bugs</a></li>
|
<li><a class="reference" href="http://sourceforge.net/tracker/?group_id=79942&atid=558250">report bugs</a></li>
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
* examples_
|
* examples_
|
||||||
* `api documentation`_
|
* `api documentation`_
|
||||||
* screenshot_
|
* screenshot_
|
||||||
|
* extensions_
|
||||||
* `mailing list`_ (archive_)
|
* `mailing list`_ (archive_)
|
||||||
* `who's using libtorrent?`_
|
* `who's using libtorrent?`_
|
||||||
* `report bugs`_
|
* `report bugs`_
|
||||||
|
@ -33,6 +34,7 @@ libtorrent
|
||||||
.. _examples: examples.html
|
.. _examples: examples.html
|
||||||
.. _`api documentation`: manual.html
|
.. _`api documentation`: manual.html
|
||||||
.. _screenshot: client_test.png
|
.. _screenshot: client_test.png
|
||||||
|
.. _extensions: extension_protocol.html
|
||||||
.. _mailing list: http://lists.sourceforge.net/lists/listinfo/libtorrent-discuss
|
.. _mailing list: http://lists.sourceforge.net/lists/listinfo/libtorrent-discuss
|
||||||
.. _archive: http://dir.gmane.org/gmane.network.bit-torrent.libtorrent
|
.. _archive: http://dir.gmane.org/gmane.network.bit-torrent.libtorrent
|
||||||
.. _`who's using libtorrent?`: projects.html
|
.. _`who's using libtorrent?`: projects.html
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
<td>Xi Stan</td></tr>
|
<td>Xi Stan</td></tr>
|
||||||
<tr><th class="docinfo-name">Contact:</th>
|
<tr><th class="docinfo-name">Contact:</th>
|
||||||
<td><a class="first last reference" href="mailto:stan8688@gmail.com">stan8688@gmail.com</a></td></tr>
|
<td><a class="first last reference" href="mailto:stan8688@gmail.com">stan8688@gmail.com</a></td></tr>
|
||||||
|
<tr class="field"><th class="docinfo-name">Last Updates:</th><td class="field-body">Francois Dermu, Nov 6 18:24 PST 2006</td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<div class="section" id="prerequisites">
|
<div class="section" id="prerequisites">
|
||||||
|
@ -37,11 +39,12 @@
|
||||||
<h1><a name="step-1-acquire-the-source-code-from-cvs">Step 1: Acquire the source code from cvs</a></h1>
|
<h1><a name="step-1-acquire-the-source-code-from-cvs">Step 1: Acquire the source code from cvs</a></h1>
|
||||||
<p>Create a directory for the project:</p>
|
<p>Create a directory for the project:</p>
|
||||||
<pre class="literal-block">
|
<pre class="literal-block">
|
||||||
mkdir /home/you/work
|
mkdir ${HOME}/work
|
||||||
cd /home/you/work
|
cd ${HOME}/work
|
||||||
</pre>
|
</pre>
|
||||||
<p>Check out <tt class="docutils literal"><span class="pre">boost</span></tt>, <tt class="docutils literal"><span class="pre">libtorrent</span></tt>, <tt class="docutils literal"><span class="pre">asio</span></tt> source code from cvs
|
<p>Check out <tt class="docutils literal"><span class="pre">boost</span></tt>, <tt class="docutils literal"><span class="pre">libtorrent</span></tt>, <tt class="docutils literal"><span class="pre">asio</span></tt> source code from cvs
|
||||||
by executing the following commands:</p>
|
by executing the following commands:</p>
|
||||||
|
<p><em>No password needed (just hit enter when prompted)</em></p>
|
||||||
<pre class="literal-block">
|
<pre class="literal-block">
|
||||||
cvs -d:pserver:anonymous@boost.cvs.sourceforge.net:/cvsroot/boost login
|
cvs -d:pserver:anonymous@boost.cvs.sourceforge.net:/cvsroot/boost login
|
||||||
cvs -z3 -d:pserver:anonymous@boost.cvs.sourceforge.net:/cvsroot/boost checkout boost
|
cvs -z3 -d:pserver:anonymous@boost.cvs.sourceforge.net:/cvsroot/boost checkout boost
|
||||||
|
@ -59,18 +62,19 @@ cvs -d:pserver:anonymous@asio.cvs.sourceforge.net:/cvsroot/asio login
|
||||||
<div class="section" id="step-2-building-boost">
|
<div class="section" id="step-2-building-boost">
|
||||||
<h1><a name="step-2-building-boost">Step 2: Building boost</a></h1>
|
<h1><a name="step-2-building-boost">Step 2: Building boost</a></h1>
|
||||||
<p>To build boost, first build boost-build and then use that to build
|
<p>To build boost, first build boost-build and then use that to build
|
||||||
the library themselves:</p>
|
the libraries themselves:</p>
|
||||||
<pre class="literal-block">
|
<pre class="literal-block">
|
||||||
cd /home/you/boost
|
BASE_DIR=${HOME} <em>### Feel free to change this one.</em>
|
||||||
set BOOST_BUILD_PATH=/home/you/boost/tools/build/v2
|
BOOST_ROOT=${BASE_DIR}/boost
|
||||||
set BOOST_ROOT=/home/you/boost
|
BOOST_BUILD_PATH=${BOOST_ROOT}/tools/build/v2
|
||||||
cd /home/you/boost/tools/build/boost-build/jam_src
|
cd ${BOOST_ROOT}/tools/jam/src
|
||||||
./build.sh
|
./build.sh
|
||||||
cp /bin.linuxx86/bjam /usr/bin
|
sudo cp ./bin.linuxx86/bjam /usr/bin
|
||||||
cd /home/you/boost
|
cd $BOOST_ROOT
|
||||||
bjam -sTOOLS=gcc install
|
sudo bjam -sTOOLS=gcc install
|
||||||
</pre>
|
</pre>
|
||||||
<p>If you're successful you will see the followinf files in <tt class="docutils literal"><span class="pre">/usr/local/lib</span></tt>:</p>
|
<p><em>It takes about 45 min. (so if you want to grap a coke, now is the time)</em></p>
|
||||||
|
<p>If you're successful you will see the following files in <tt class="docutils literal"><span class="pre">/usr/local/lib</span></tt>:</p>
|
||||||
<pre class="literal-block">
|
<pre class="literal-block">
|
||||||
libboost_date_time-gcc-d-1_31.so
|
libboost_date_time-gcc-d-1_31.so
|
||||||
libboost_date_time-gcc-mt-d-1_31.so
|
libboost_date_time-gcc-mt-d-1_31.so
|
||||||
|
@ -84,18 +88,51 @@ libboost_date_time-gcc-mt-1_31.a
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="step-3-copy-asio-into-the-libtorrent-directory">
|
<div class="section" id="step-3-copy-asio-into-the-libtorrent-directory">
|
||||||
<h1><a name="step-3-copy-asio-into-the-libtorrent-directory">Step 3: Copy asio into the libtorrent directory</a></h1>
|
<h1><a name="step-3-copy-asio-into-the-libtorrent-directory">Step 3: Copy asio into the libtorrent directory</a></h1>
|
||||||
|
<p>Skip this step if you're using a released tarball.</p>
|
||||||
<p>Execute the following command:</p>
|
<p>Execute the following command:</p>
|
||||||
<pre class="literal-block">
|
<pre class="literal-block">
|
||||||
cp -R /home/you/asio/include/asio* /home/you/libtorrent/include/libtorrent
|
cp -R ${BASE_DIR}/asio/include/asio* ${BASE_DIR}/libtorrent/include/libtorrent
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="step-4-building-libtorrent">
|
<div class="section" id="step-4-building-libtorrent">
|
||||||
<h1><a name="step-4-building-libtorrent">Step 4: Building libtorrent</a></h1>
|
<h1><a name="step-4-building-libtorrent">Step 4: Building libtorrent</a></h1>
|
||||||
|
<div class="section" id="building-with-autotools">
|
||||||
|
<h2><a name="building-with-autotools">building with autotools</a></h2>
|
||||||
|
<p>First of all, you need to install automake and autoconf. Many unix/linux systems
|
||||||
|
comes with these preinstalled. The prerequisites for building libtorrent are
|
||||||
|
boost.thread, boost.date_time and boost.filesystem. Those are the <em>compiled</em> boost
|
||||||
|
libraries needed. The headers-only libraries needed include (but is not necessarily
|
||||||
|
limited to) boost.bind, boost.ref, boost.multi_index, boost.optional,
|
||||||
|
boost.lexical_cast, boost.integer, boost.iterator, boost.tuple, boost.array,
|
||||||
|
boost.function, boost.smart_ptr, boost.preprocessor, boost.static_assert.</p>
|
||||||
|
<p>If you want to build the client_test example, you'll also need boost.regex and boost.program_options.</p>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="generating-the-build-system">
|
||||||
|
<h2><a name="generating-the-build-system">generating the build system</a></h2>
|
||||||
|
<p>No build system is present if libtorrent is checked out from CVS - it needs to be
|
||||||
|
generated first. If you're building from a released tarball, you may skip directly
|
||||||
|
to <a class="reference" href="#running-configure">running configure</a>.</p>
|
||||||
|
<p>Execute the following commands, in the given order, to generate the build system:</p>
|
||||||
|
<pre class="literal-block">
|
||||||
|
cd ${BASE_DIR}/libtorrent
|
||||||
|
CXXFLAGS="-I/usr/local/include/boost-1_35 -I${BASE_DIR}/libtorrent/include/libtorrent"
|
||||||
|
LDFLAGS=-L/usr/local/lib
|
||||||
|
|
||||||
|
aclocal -I m4
|
||||||
|
autoheader
|
||||||
|
libtoolize --copy --force
|
||||||
|
automake --add-missing --copy --gnu
|
||||||
|
autoconf
|
||||||
|
</pre>
|
||||||
|
<p>On darwin/OSX you have to run glibtoolize instead of libtoolize.</p>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="running-configure">
|
||||||
|
<h2><a name="running-configure">running configure</a></h2>
|
||||||
<p>To use the auto tools to build libtorrent, execute the following commands:</p>
|
<p>To use the auto tools to build libtorrent, execute the following commands:</p>
|
||||||
<pre class="literal-block">
|
<pre class="literal-block">
|
||||||
cd /home/you/libtorrent
|
cd ${BASE_DIR}/libtorrent
|
||||||
export CXXFLAGS=-I/usr/local/include/boost-1_35
|
CXXFLAGS="-I/usr/local/include/boost-1_35 -I${BASE_DIR}/libtorrent/include/libtorrent"
|
||||||
export LDFLAGS=-L/usr/local/lib
|
LDFLAGS=-L/usr/local/lib
|
||||||
|
|
||||||
./configure --with-boost-date-time=boost_date_time-gcc \
|
./configure --with-boost-date-time=boost_date_time-gcc \
|
||||||
--with-boost-filesystem=boost_filesystem-gcc \
|
--with-boost-filesystem=boost_filesystem-gcc \
|
||||||
|
@ -104,7 +141,7 @@ export LDFLAGS=-L/usr/local/lib
|
||||||
make
|
make
|
||||||
sudo make install
|
sudo make install
|
||||||
</pre>
|
</pre>
|
||||||
<p>If successful, you will see the following file:</p>
|
<p>If successful, you will see the following files:</p>
|
||||||
<pre class="literal-block">
|
<pre class="literal-block">
|
||||||
/usr/local/lib/libtorrent.a
|
/usr/local/lib/libtorrent.a
|
||||||
/usr/local/lib/libtorrent.so.0
|
/usr/local/lib/libtorrent.so.0
|
||||||
|
@ -114,5 +151,6 @@ sudo make install
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -5,6 +5,8 @@ Building libtorrent on Ubuntu 6.06
|
||||||
:Date: Oct 12, 2006
|
:Date: Oct 12, 2006
|
||||||
:Author: Xi Stan
|
:Author: Xi Stan
|
||||||
:Contact: stan8688@gmail.com
|
:Contact: stan8688@gmail.com
|
||||||
|
:Last Updates: Francois Dermu, Nov 6 18:24 PST 2006
|
||||||
|
|
||||||
|
|
||||||
Prerequisites
|
Prerequisites
|
||||||
=============
|
=============
|
||||||
|
@ -20,11 +22,15 @@ Step 1: Acquire the source code from cvs
|
||||||
|
|
||||||
Create a directory for the project::
|
Create a directory for the project::
|
||||||
|
|
||||||
mkdir /home/you/work
|
mkdir ${HOME}/work
|
||||||
cd /home/you/work
|
cd ${HOME}/work
|
||||||
|
|
||||||
Check out ``boost``, ``libtorrent``, ``asio`` source code from cvs
|
Check out ``boost``, ``libtorrent``, ``asio`` source code from cvs
|
||||||
by executing the following commands::
|
by executing the following commands:
|
||||||
|
|
||||||
|
*No password needed (just hit enter when prompted)*
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
cvs -d:pserver:anonymous@boost.cvs.sourceforge.net:/cvsroot/boost login
|
cvs -d:pserver:anonymous@boost.cvs.sourceforge.net:/cvsroot/boost login
|
||||||
cvs -z3 -d:pserver:anonymous@boost.cvs.sourceforge.net:/cvsroot/boost checkout boost
|
cvs -z3 -d:pserver:anonymous@boost.cvs.sourceforge.net:/cvsroot/boost checkout boost
|
||||||
|
@ -42,18 +48,23 @@ Step 2: Building boost
|
||||||
======================
|
======================
|
||||||
|
|
||||||
To build boost, first build boost-build and then use that to build
|
To build boost, first build boost-build and then use that to build
|
||||||
the library themselves::
|
the libraries themselves:
|
||||||
|
|
||||||
cd /home/you/boost
|
.. parsed-literal::
|
||||||
set BOOST_BUILD_PATH=/home/you/boost/tools/build/v2
|
|
||||||
set BOOST_ROOT=/home/you/boost
|
|
||||||
cd /home/you/boost/tools/build/boost-build/jam_src
|
|
||||||
./build.sh
|
|
||||||
cp /bin.linuxx86/bjam /usr/bin
|
|
||||||
cd /home/you/boost
|
|
||||||
bjam -sTOOLS=gcc install
|
|
||||||
|
|
||||||
If you're successful you will see the followinf files in ``/usr/local/lib``::
|
BASE_DIR=${HOME} *### Feel free to change this one.*
|
||||||
|
BOOST_ROOT=${BASE_DIR}/boost
|
||||||
|
BOOST_BUILD_PATH=${BOOST_ROOT}/tools/build/v2
|
||||||
|
cd ${BOOST_ROOT}/tools/jam/src
|
||||||
|
./build.sh
|
||||||
|
sudo cp ./bin.linuxx86/bjam /usr/bin
|
||||||
|
cd $BOOST_ROOT
|
||||||
|
sudo bjam -sTOOLS=gcc install
|
||||||
|
|
||||||
|
*It takes about 45 min. (so if you want to grap a coke, now is the time)*
|
||||||
|
|
||||||
|
|
||||||
|
If you're successful you will see the following files in ``/usr/local/lib``::
|
||||||
|
|
||||||
libboost_date_time-gcc-d-1_31.so
|
libboost_date_time-gcc-d-1_31.so
|
||||||
libboost_date_time-gcc-mt-d-1_31.so
|
libboost_date_time-gcc-mt-d-1_31.so
|
||||||
|
@ -67,27 +78,66 @@ If you're successful you will see the followinf files in ``/usr/local/lib``::
|
||||||
Step 3: Copy asio into the libtorrent directory
|
Step 3: Copy asio into the libtorrent directory
|
||||||
===============================================
|
===============================================
|
||||||
|
|
||||||
|
Skip this step if you're using a released tarball.
|
||||||
|
|
||||||
Execute the following command::
|
Execute the following command::
|
||||||
|
|
||||||
cp -R /home/you/asio/include/asio* /home/you/libtorrent/include/libtorrent
|
cp -R ${BASE_DIR}/asio/include/asio* ${BASE_DIR}/libtorrent/include/libtorrent
|
||||||
|
|
||||||
Step 4: Building libtorrent
|
Step 4: Building libtorrent
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
|
building with autotools
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
First of all, you need to install automake and autoconf. Many unix/linux systems
|
||||||
|
comes with these preinstalled. The prerequisites for building libtorrent are
|
||||||
|
boost.thread, boost.date_time and boost.filesystem. Those are the *compiled* boost
|
||||||
|
libraries needed. The headers-only libraries needed include (but is not necessarily
|
||||||
|
limited to) boost.bind, boost.ref, boost.multi_index, boost.optional,
|
||||||
|
boost.lexical_cast, boost.integer, boost.iterator, boost.tuple, boost.array,
|
||||||
|
boost.function, boost.smart_ptr, boost.preprocessor, boost.static_assert.
|
||||||
|
|
||||||
|
If you want to build the client_test example, you'll also need boost.regex and boost.program_options.
|
||||||
|
|
||||||
|
generating the build system
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
No build system is present if libtorrent is checked out from CVS - it needs to be
|
||||||
|
generated first. If you're building from a released tarball, you may skip directly
|
||||||
|
to `running configure`_.
|
||||||
|
|
||||||
|
Execute the following commands, in the given order, to generate the build system::
|
||||||
|
|
||||||
|
cd ${BASE_DIR}/libtorrent
|
||||||
|
CXXFLAGS="-I/usr/local/include/boost-1_35 -I${BASE_DIR}/libtorrent/include/libtorrent"
|
||||||
|
LDFLAGS=-L/usr/local/lib
|
||||||
|
|
||||||
|
aclocal -I m4
|
||||||
|
autoheader
|
||||||
|
libtoolize --copy --force
|
||||||
|
automake --add-missing --copy --gnu
|
||||||
|
autoconf
|
||||||
|
|
||||||
|
On darwin/OSX you have to run glibtoolize instead of libtoolize.
|
||||||
|
|
||||||
|
running configure
|
||||||
|
-----------------
|
||||||
|
|
||||||
To use the auto tools to build libtorrent, execute the following commands::
|
To use the auto tools to build libtorrent, execute the following commands::
|
||||||
|
|
||||||
cd /home/you/libtorrent
|
cd ${BASE_DIR}/libtorrent
|
||||||
export CXXFLAGS=-I/usr/local/include/boost-1_35
|
CXXFLAGS="-I/usr/local/include/boost-1_35 -I${BASE_DIR}/libtorrent/include/libtorrent"
|
||||||
export LDFLAGS=-L/usr/local/lib
|
LDFLAGS=-L/usr/local/lib
|
||||||
|
|
||||||
./configure --with-boost-date-time=boost_date_time-gcc \
|
./configure --with-boost-date-time=boost_date_time-gcc \
|
||||||
--with-boost-filesystem=boost_filesystem-gcc \
|
--with-boost-filesystem=boost_filesystem-gcc \
|
||||||
--with-boost-thread=boost_thread-gcc-mt
|
--with-boost-thread=boost_thread-gcc-mt
|
||||||
|
|
||||||
make
|
make
|
||||||
sudo make install
|
sudo make install
|
||||||
|
|
||||||
If successful, you will see the following file::
|
If successful, you will see the following files::
|
||||||
|
|
||||||
/usr/local/lib/libtorrent.a
|
/usr/local/lib/libtorrent.a
|
||||||
/usr/local/lib/libtorrent.so.0
|
/usr/local/lib/libtorrent.so.0
|
||||||
|
|
Loading…
Reference in New Issue