update build docs
This commit is contained in:
parent
e36b066020
commit
1280361236
|
@ -12,10 +12,9 @@ libtorrent manual
|
||||||
downloading and building
|
downloading and building
|
||||||
========================
|
========================
|
||||||
|
|
||||||
To acquire the latest version of libtorrent, you'll have to grab it from SVN.
|
To download the latest version of libtorrent, clone the `github repo`__.
|
||||||
You'll find instructions on how to do this here__ (see subversion access).
|
|
||||||
|
|
||||||
__ http://sourceforge.net/svn/?group_id=79942
|
__ https://github.com/arvidn/libtorrent
|
||||||
|
|
||||||
The build systems supported "out of the box" in libtorrent are boost-build v2
|
The build systems supported "out of the box" in libtorrent are boost-build v2
|
||||||
(BBv2) and autotools (for unix-like systems). If you still can't build after
|
(BBv2) and autotools (for unix-like systems). If you still can't build after
|
||||||
|
@ -38,15 +37,18 @@ IRC channel on ``irc.freenode.net``.
|
||||||
configuration options in the pkg-config file. Always use pkg-config
|
configuration options in the pkg-config file. Always use pkg-config
|
||||||
when linking against libtorrent.
|
when linking against libtorrent.
|
||||||
|
|
||||||
building from svn
|
building from git
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
To build libtorrent from svn you need to check out the libtorrent sources from
|
To build libtorrent from git you need to clone the libtorrent repo from
|
||||||
sourceforge. If you downloaded a release tarball, you can skip this section.
|
github. If you downloaded a release `tarball`__, you can skip this section.
|
||||||
|
|
||||||
To check out libtorrent follow these instructions__.
|
__ https://github.com/arvidn/libtorrent/releases/latest
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
git clone https://github.com/arvidn/libtorrent.git
|
||||||
|
|
||||||
__ http://sourceforge.net/svn/?group_id=79942
|
|
||||||
|
|
||||||
building with BBv2
|
building with BBv2
|
||||||
------------------
|
------------------
|
||||||
|
@ -75,7 +77,7 @@ You'll find boost here__.
|
||||||
__ http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=8041&release_id=619445
|
__ http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=8041&release_id=619445
|
||||||
|
|
||||||
Extract the archive to some directory where you want it. For the sake of this
|
Extract the archive to some directory where you want it. For the sake of this
|
||||||
guide, let's assume you extract the package to ``c:\boost_1_55_0`` (I'm using
|
guide, let's assume you extract the package to ``c:\boost_1_64_0`` (I'm using
|
||||||
a windows path in this example since if you're on linux/unix you're more likely
|
a windows path in this example since if you're on linux/unix you're more likely
|
||||||
to use the autotools). You'll need at least version 1.49 of the boost library
|
to use the autotools). You'll need at least version 1.49 of the boost library
|
||||||
in order to build libtorrent.
|
in order to build libtorrent.
|
||||||
|
@ -86,7 +88,7 @@ Step 2: Setup BBv2
|
||||||
|
|
||||||
First you need to build ``bjam``. You do this by opening a terminal (In
|
First you need to build ``bjam``. You do this by opening a terminal (In
|
||||||
windows, run ``cmd``). Change directory to
|
windows, run ``cmd``). Change directory to
|
||||||
``c:\boost_1_55_0\tools\jam\src``. Then run the script called
|
``c:\boost_1_64_0\tools\jam\src``. Then run the script called
|
||||||
``build.bat`` or ``build.sh`` on a unix system. This will build ``bjam`` and
|
``build.bat`` or ``build.sh`` on a unix system. This will build ``bjam`` and
|
||||||
place it in a directory starting with ``bin.`` and then have the name of your
|
place it in a directory starting with ``bin.`` and then have the name of your
|
||||||
platform. Copy the ``bjam.exe`` (or ``bjam`` on a unix system) to a place
|
platform. Copy the ``bjam.exe`` (or ``bjam`` on a unix system) to a place
|
||||||
|
@ -101,16 +103,16 @@ set the environment variable ``BOOST_BUILD_PATH``. This is the path that tells
|
||||||
``bjam`` where it can find boost-build, your configuration file and all the
|
``bjam`` where it can find boost-build, your configuration file and all the
|
||||||
toolsets (descriptions used by boost-build to know how to use different
|
toolsets (descriptions used by boost-build to know how to use different
|
||||||
compilers on different platforms). Assuming the boost install path above, set
|
compilers on different platforms). Assuming the boost install path above, set
|
||||||
it to ``c:\boost_1_55_0\tools\build\v2``.
|
it to ``c:\boost_1_64_0\tools\build\v2``.
|
||||||
|
|
||||||
To set an environment variable in windows, type for example::
|
To set an environment variable in windows, type for example::
|
||||||
|
|
||||||
set BOOST_BUILD_PATH=c:\boost_1_55_0\tools\build\v2
|
set BOOST_BUILD_PATH=c:\boost_1_64_0\tools\build\v2
|
||||||
|
|
||||||
In a terminal window.
|
In a terminal window.
|
||||||
|
|
||||||
The last thing to do to complete the setup of BBv2 is to modify your
|
The last thing to do to complete the setup of BBv2 is to modify your
|
||||||
``user-config.jam`` file. It is located in ``c:\boost_1_55_0\tools\build\v2``.
|
``user-config.jam`` file. It is located in ``c:\boost_1_64_0\tools\build\v2``.
|
||||||
Depending on your platform and which compiler you're using, you should add a
|
Depending on your platform and which compiler you're using, you should add a
|
||||||
line for each compiler and compiler version you have installed on your system
|
line for each compiler and compiler version you have installed on your system
|
||||||
that you want to be able to use with BBv2. For example, if you're using
|
that you want to be able to use with BBv2. For example, if you're using
|
||||||
|
@ -148,7 +150,7 @@ Step 3: Building libtorrent
|
||||||
When building libtorrent, the ``Jamfile`` expects the environment variable
|
When building libtorrent, the ``Jamfile`` expects the environment variable
|
||||||
``BOOST_ROOT`` to be set to the boost installation directory. It uses this to
|
``BOOST_ROOT`` to be set to the boost installation directory. It uses this to
|
||||||
find the boost libraries it depends on, so they can be built and their headers
|
find the boost libraries it depends on, so they can be built and their headers
|
||||||
files found. So, set this to ``c:\boost_1_55_0``. You only need this if you're
|
files found. So, set this to ``c:\boost_1_64_0``. You only need this if you're
|
||||||
building against a source distribution of boost.
|
building against a source distribution of boost.
|
||||||
|
|
||||||
Then the only thing left is simply to invoke ``bjam``. If you want to specify
|
Then the only thing left is simply to invoke ``bjam``. If you want to specify
|
||||||
|
@ -224,8 +226,8 @@ from a cygwin terminal, you'll have to run it from a ``cmd`` terminal. The same
|
||||||
cygwin, if you're building with gcc in cygwin you'll have to run it from a cygwin terminal.
|
cygwin, if you're building with gcc in cygwin you'll have to run it from a cygwin terminal.
|
||||||
Also, make sure the paths are correct in the different environments. In cygwin, the paths
|
Also, make sure the paths are correct in the different environments. In cygwin, the paths
|
||||||
(``BOOST_BUILD_PATH`` and ``BOOST_ROOT``) should be in the typical unix-format (e.g.
|
(``BOOST_BUILD_PATH`` and ``BOOST_ROOT``) should be in the typical unix-format (e.g.
|
||||||
``/cygdrive/c/boost_1_55_0``). In the windows environment, they should have the typical
|
``/cygdrive/c/boost_1_64_0``). In the windows environment, they should have the typical
|
||||||
windows format (``c:/boost_1_55_0``).
|
windows format (``c:/boost_1_64_0``).
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
In Jamfiles, spaces are separators. It's typically easiest to avoid spaces
|
In Jamfiles, spaces are separators. It's typically easiest to avoid spaces
|
||||||
|
@ -388,12 +390,12 @@ building with autotools
|
||||||
First of all, you need to install ``automake`` and ``autoconf``. Many
|
First of all, you need to install ``automake`` and ``autoconf``. Many
|
||||||
unix/linux systems comes with these preinstalled.
|
unix/linux systems comes with these preinstalled.
|
||||||
|
|
||||||
The prerequisites for building libtorrent are boost.thread, boost.date_time
|
The prerequisites for building libtorrent are boost.system, boost.chrono and
|
||||||
and boost.filesystem. Those are the *compiled* boost libraries needed. The
|
boost.random. Those are the *compiled* boost libraries needed. The headers-only
|
||||||
headers-only libraries needed include (but is not necessarily limited to)
|
libraries needed include (but is not necessarily limited to) boost.bind,
|
||||||
boost.bind, boost.ref, boost.multi_index, boost.optional, boost.lexical_cast,
|
boost.ref, boost.multi_index, boost.optional, boost.lexical_cast, boost.integer,
|
||||||
boost.integer, boost.iterator, boost.tuple, boost.array, boost.function,
|
boost.iterator, boost.tuple, boost.array, boost.function, boost.smart_ptr,
|
||||||
boost.smart_ptr, boost.preprocessor, boost.static_assert.
|
boost.preprocessor, boost.static_assert.
|
||||||
|
|
||||||
If you want to build the ``client_test`` example, you'll also need boost.regex
|
If you want to build the ``client_test`` example, you'll also need boost.regex
|
||||||
and boost.program_options.
|
and boost.program_options.
|
||||||
|
@ -452,12 +454,14 @@ the suffix ``mt``.
|
||||||
You know that the boost libraries were found if you see the following output
|
You know that the boost libraries were found if you see the following output
|
||||||
from the configure script::
|
from the configure script::
|
||||||
|
|
||||||
checking whether the Boost::DateTime library is available... yes
|
Checking for boost libraries:
|
||||||
checking for main in -lboost_date_time... yes
|
checking for boostlib >= 1.53... yes
|
||||||
checking whether the Boost::Filesystem library is available... yes
|
checking whether the Boost::System library is available... yes
|
||||||
checking for main in -lboost_filesystem... yes
|
checking for exit in -lboost_system... yes
|
||||||
checking whether the Boost::Thread library is available... yes
|
checking whether the Boost::Chrono library is available... yes
|
||||||
checking for main in -lboost_thread... yes
|
checking for exit in -lboost_chrono-mt... yes
|
||||||
|
checking whether the Boost::Random library is available... yes
|
||||||
|
checking for exit in -lboost_random-mt... yes
|
||||||
|
|
||||||
Another possible source of problems may be if the path to your libtorrent
|
Another possible source of problems may be if the path to your libtorrent
|
||||||
directory contains spaces. Make sure you either rename the directories with
|
directory contains spaces. Make sure you either rename the directories with
|
||||||
|
@ -532,10 +536,6 @@ defines you can use to control the build.
|
||||||
| | peer_log_alert. With this build flag, you |
|
| | peer_log_alert. With this build flag, you |
|
||||||
| | cannot enable those alerts. |
|
| | cannot enable those alerts. |
|
||||||
+----------------------------------------+-------------------------------------------------+
|
+----------------------------------------+-------------------------------------------------+
|
||||||
| ``TORRENT_STORAGE_DEBUG`` | This will enable extra expensive invariant |
|
|
||||||
| | checks in the storage, including logging of |
|
|
||||||
| | piece sorting. |
|
|
||||||
+----------------------------------------+-------------------------------------------------+
|
|
||||||
| ``TORRENT_DISK_STATS`` | This will create a log of all disk activity |
|
| ``TORRENT_DISK_STATS`` | This will create a log of all disk activity |
|
||||||
| | which later can parsed and graphed using |
|
| | which later can parsed and graphed using |
|
||||||
| | ``parse_disk_log.py``. |
|
| | ``parse_disk_log.py``. |
|
||||||
|
|
Loading…
Reference in New Issue