147 lines
4.5 KiB
ReStructuredText
147 lines
4.5 KiB
ReStructuredText
==================================
|
|
Building libtorrent on Ubuntu 6.06
|
|
==================================
|
|
|
|
:Date: Nov 6, 2006
|
|
:Authors: Xi Stan, Francois Dermu
|
|
:Contact: stan8688@gmail.com
|
|
|
|
|
|
Prerequisites
|
|
=============
|
|
|
|
To build libtorrent, you need the following libraries:
|
|
|
|
* http://www.rasterbar.com/products/libtorrent/index.html
|
|
* http://www.boost.org
|
|
* http://asio.sourceforge.net/
|
|
|
|
Step 1: Acquire the source code from cvs
|
|
========================================
|
|
|
|
Create a directory for the project::
|
|
|
|
mkdir ${HOME}/work
|
|
cd ${HOME}/work
|
|
|
|
Check out ``boost``, ``libtorrent``, ``asio`` source code from cvs
|
|
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 -z3 -d:pserver:anonymous@boost.cvs.sourceforge.net:/cvsroot/boost checkout boost
|
|
cvs -d:pserver:anonymous@boost.cvs.sourceforge.net:/cvsroot/boost logout
|
|
|
|
cvs -d:pserver:anonymous@libtorrent.cvs.sourceforge.net:/cvsroot/libtorrent login
|
|
cvs -z3 -d:pserver:anonymous@libtorrent.cvs.sourceforge.net:/cvsroot/libtorrent co -P libtorrent
|
|
cvs -d:pserver:anonymous@libtorrent.cvs.sourceforge.net:/cvsroot/libtorrent logout
|
|
|
|
cvs -d:pserver:anonymous@asio.cvs.sourceforge.net:/cvsroot/asio login
|
|
cvs -z3 -d:pserver:anonymous@asio.cvs.sourceforge.net:/cvsroot/asio co -P asio
|
|
cvs -d:pserver:anonymous@asio.cvs.sourceforge.net:/cvsroot/asio login
|
|
|
|
Step 2: Building boost
|
|
======================
|
|
|
|
To build boost, first build boost-build and then use that to build
|
|
the libraries themselves:
|
|
|
|
.. parsed-literal::
|
|
|
|
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-mt-d-1_31.so
|
|
libboost_date_time-gcc-1_31.so
|
|
libboost_date_time-gcc-mt-1_31.so
|
|
libboost_date_time-gcc-d-1_31.a
|
|
libboost_date_time-gcc-mt-d-1_31.a
|
|
libboost_date_time-gcc-1_31.a
|
|
libboost_date_time-gcc-mt-1_31.a
|
|
|
|
Step 3: Copy asio into the libtorrent directory
|
|
===============================================
|
|
|
|
Skip this step if you're using a released tarball.
|
|
|
|
Execute the following command::
|
|
|
|
cp -R ${BASE_DIR}/asio/include/asio* ${BASE_DIR}/libtorrent/include/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::
|
|
|
|
cd ${BASE_DIR}/libtorrent
|
|
CXXFLAGS="-I/usr/local/include/boost-1_35 -I${BASE_DIR}/libtorrent/include/libtorrent"
|
|
LDFLAGS=-L/usr/local/lib
|
|
|
|
./configure --with-boost-date-time=boost_date_time-gcc \
|
|
--with-boost-filesystem=boost_filesystem-gcc \
|
|
--with-boost-thread=boost_thread-gcc-mt
|
|
|
|
make
|
|
sudo make install
|
|
|
|
If successful, you will see the following files::
|
|
|
|
/usr/local/lib/libtorrent.a
|
|
/usr/local/lib/libtorrent.so.0
|
|
/usr/local/lib/libtorrent.la
|
|
/usr/local/lib/libtorrent.so.0.1.0
|
|
/usr/local/lib/libtorrent.so
|
|
|