build: Fix compilation on Ubuntu platform and add work-around for ndn-cxx regression
Note that on Ubuntu 12.04, either boost libraries or compiler needs to be upgraded.
Change-Id: I33f1089f961f99abf3d1803bf833e76ff7fb528d
Refs: #2379, #2380, #2382, #2381, #2383
diff --git a/docs/source/faq.rst b/docs/source/faq.rst
index 068afb0..2a83682 100644
--- a/docs/source/faq.rst
+++ b/docs/source/faq.rst
@@ -5,7 +5,8 @@
---------------
.. note::
- **My ubuntu/redhat/freebsd have an old version of boost libraries. How can I get the latest one?**
+ **My ubuntu/redhat/freebsd have an old version of boost libraries. How can I get the
+ latest one?**
.. _Installing boost libraries:
@@ -15,25 +16,30 @@
.. role:: red
.. note::
- **The following instructions are for those who want to install latest version of boost libraries** :red:`and has root access`.
+ **The following instructions are for those who want to install latest version of boost
+ libraries** :red:`and has root access`.
-The following commands would install the latest version of boost libraries (at the time of writing, version 1.53) ot ``/usr/local``, assuming you have a root access to your machine.
-If you don't have root access, please refer to section :ref:`Installing boost libraries to a non-privileged location`.
+The following commands would install the latest version of boost libraries (at the time of
+writing, version 1.53) ot ``/usr/local``, assuming you have a root access to your machine. If
+you don't have root access, please refer to section :ref:`Installing boost libraries to a
+non-privileged location`.
.. note::
- If you are using Ubuntyu, make sure that you have installed ``libbz2-dev``, otherwise not all libraries required by ndnSIM will be installed (see :ref:`Common pitfalls`)
+ If you are using Ubuntu, make sure that you have installed ``libbz2-dev``, otherwise not
+ all libraries required by ndnSIM will be installed (see :ref:`Common pitfalls`)
.. code-block:: bash
:linenos:
- wget http://downloads.sourceforge.net/project/boost/boost/1.53.0/boost_1_53_0.tar.bz2
- tar jxf boost_1_53_0.tar.bz2
- cd boost_1_53_0
+ wget http://downloads.sourceforge.net/project/boost/boost/1.57.0/boost_1_57_0.tar.bz2
+ tar jxf boost_1_57_0.tar.bz2
+ cd boost_1_57_0
./bootstrap.sh
sudo ./b2 --prefix=/usr/local install
-The following commands should allow compilation and run of NS-3 simulations with custom install of boost libraries:
+The following commands should allow compilation and run of NS-3 simulations with custom install
+of boost libraries:
.. code-block:: bash
:linenos:
@@ -44,7 +50,9 @@
LD_LIBRARY_PATH=/usr/local/lib NS_LOG=ndn.Face:ndn.Consumer ./waf --run=ndn-simple
.. note::
- `LD_LIBRARY_PATH=/usr/local/lib` is necessary on Linux platform in order for the dynamic linker to find libraries installed in a location different from one of the folders specified in /etc/ld.so.conf.
+ ``LD_LIBRARY_PATH=/usr/local/lib`` is necessary on Linux platform in order for the dynamic
+ linker to find libraries installed in a location different from one of the folders
+ specified in ``/etc/ld.so.conf``.
.. _Installing boost libraries to a non-privileged location:
@@ -52,17 +60,20 @@
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. note::
- **Follow these general instructions if you are trying to installboost libraries to a non-privileged location** :red:`(i.e., you do not have root access),` **but something is going wrong.**
+ **Follow these general instructions if you are trying to installboost libraries to a
+ non-privileged location** :red:`(i.e., you do not have root access),` **but something is
+ going wrong.**
-Normally, to compile and install boost libraries in non-privileged mode, you would need to issue following commands (e.g., for boost version 1.53.0):
+Normally, to compile and install boost libraries in non-privileged mode, you would need to
+issue following commands (e.g., for boost version 1.57.0):
.. code-block:: bash
:linenos:
export BOOSTDIR=/home/non-privileged-user/boost
- wget http://downloads.sourceforge.net/project/boost/boost/1.53.0/boost_1_53_0.tar.bz2
- tar jxf boost_1_53_0.tar.bz2
- cd boost_1_53_0
+ wget http://downloads.sourceforge.net/project/boost/boost/1.57.0/boost_1_57_0.tar.bz2
+ tar jxf boost_1_57_0.tar.bz2
+ cd boost_1_57_0
./bootstrap.sh
./b2 --prefix=$BOOSTDIR install
@@ -73,8 +84,9 @@
Common pitfalls
^^^^^^^^^^^^^^^
-The common pitfalls is with the **boost iostreams** library, which is required by ndnSIM, but failed to build because of the missing bzip2 library.
-This problem can be easily fixed by downloading and installing bzip2 library, e.g., using the following steps:
+The common pitfalls is with the **boost iostreams** library, which is required by ndnSIM, but
+failed to build because of the missing bzip2 library. This problem can be easily fixed by
+downloading and installing bzip2 library, e.g., using the following steps:
.. code-block:: bash
:linenos:
@@ -84,11 +96,14 @@
cd bzip2-1.0.6
make PREFIX=$BOOSTDIR CFLAGS="-fPIC -O2 -g" install
-Afte bzip2 library is installed, you may recompile and reinstall boost libraries using custom compilation flags::
+Afte bzip2 library is installed, you may recompile and reinstall boost libraries using custom
+compilation flags::
./b2 --prefix=$BOOSTDIR cxxflags=-I$BOOSTDIR/include linkflags=-L$BOOSTDIR/lib install
-Alternatively, you can solve this particular problem by installing development package for bzip2 library (:red:`if you have root access`). For example, on Ubuntu 12.04 it would be the following command::
+Alternatively, you can solve this particular problem by installing development package for
+bzip2 library (:red:`if you have root access`). For example, on Ubuntu 12.04 it would be the
+following command::
sudo apt-get install libbz2-dev
@@ -97,7 +112,8 @@
./b2 --prefix=$BOOSTDIR
-The following commands should allow compilation and run of NS-3 simulations with custom install of boost libraries::
+The following commands should allow compilation and run of NS-3 simulations with custom install
+of boost libraries::
cd <ns-3>
./waf configure --boost-includes=$BOOSTDIR/include --boost-libs=$BOOSTDIR/lib --enable-examples --enable-ndn-plugins=topology,mobility
@@ -105,7 +121,9 @@
LD_LIBRARY_PATH=$BOOSTDIR/lib NS_LOG=ndn.Face:ndn.Consumer ./waf --run=ndn-simple
.. note::
- `LD_LIBRARY_PATH=$BOOSTDIR/lib` is necessary on Linux platform in order for the dynamic linker to find libraries installed in a location different from one of the folders specified in /etc/ld.so.conf.
+ ``LD_LIBRARY_PATH=$BOOSTDIR/lib`` is necessary on Linux platform in order for the dynamic
+ linker to find libraries installed in a location different from one of the folders
+ specified in /etc/ld.so.conf.
@@ -119,8 +137,8 @@
Waf: Entering directory `/ndnSIM/ns-3/build'
Could not find a task generator for the name 'ns3-visualizer'..
-Something is wrong with your python bindings and python bindings dependencies.
-Please follow the :ref:`requirements` section that lists what should be installed in order to run visualizer.
+Something is wrong with your python bindings and python bindings dependencies. Please follow
+the :ref:`requirements` section that lists what should be installed in order to run visualizer.
Code questions
--------------