update build docs

This commit is contained in:
arvidn 2017-09-05 15:10:15 +02:00 committed by Arvid Norberg
parent e36b066020
commit 1280361236
1 changed files with 32 additions and 32 deletions

View File

@ -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``. |