ndn-cxx uses continuous integration testing and has been tested on the following platforms:
python
>= 2.6libcrypto
libsqlite3
libcrypto++
pkg-config
Following are the detailed steps for each platform to install the prerequisites.
Mac OS X
Install Xcode. In Xcode Preferences > Downloads, install "Command Line Tools".
If using macports, dependencies can be installed using the following commands:
sudo port install pkgconfig boost sqlite3 libcryptopp
Ubuntu 12.04, Ubuntu 13.10
In a terminal, enter:
sudo apt-get install build-essential sudo apt-get install libssl-dev libsqlite3-dev libcrypto++-dev # For Ubuntu 12.04 sudo apt-get install libboost1.48-all-dev # For Ubuntu 13.10 sudo apt-get install libboost-all-dev
To build tutorials, manpages, and API documentation the following dependencies need to be installed:
doxygen
graphviz
python-sphinx
The following lists steps for common platforms to install these prerequisites:
On OS X 10.8 and 10.9 with macports:
sudo port install doxygen graphviz py27-sphinx sphinx_select sudo port select sphinx py27-sphinx
On Ubuntu >= 12.04:
sudo apt-get install doxygen graphviz python-sphinx
(These are instructions to build ndn-cxx. To do development of ndn-cxx code and update the build system, see Development.)
To build in a terminal, change directory to the ndn-cxx root. Enter:
./waf configure ./waf sudo ./waf install
This builds and installs the following items:
<LIBPATH>/libndn-cxx.a
: static NDN C++ library<LIBPATH>/pkgconfig/libndn-cxx.pc
: pkgconfig file storing all neccessary flags to build against the library. For example, if pkgconfig or pkgconf package is installed and PKG_CONFIG_PATH
is configured properly (or <LIBPATH>/pkgconfig
is a default path), pkgconfig --libs --clflags libndn-cxx
will return all necessary compile and link flags for the library.<BINPATH>/tlvdump
: a simple tool to dump contents of TLV-formatted data<BINPATH>/ndncatchunks3
: a simplified equivalent to ndncatchunks2 in NDNx package<BINPATH>/ndnputchunks3
: a simplified equivalent to ndnputchunks2 in NDNx package<BINPATH>/ndnsec
: tool to manage NDN keys and certificates<BINPATH>/ndnsec-*
: convenience scripts for ndnsec
toolsIf configured with tests: ./waf configure --with-tests
), the above commands will also produce:
build/unit-tests
: A unit test binary for the libraryndn-cxx tutorials and API documentation can be built using the following commands:
# Full set of documentation (tutorials + API) in build/docs ./waf docs # Only tutorials in `build/docs` ./waf sphinx # Only API docs in `build/docs/doxygen` ./waf doxgyen
Manpages are automatically created and installed during the normal build process (e.g., during ./waf
and ./waf install
), if python-sphinx
module is detected during ./waf configure
stage. By default, manpages are installed into ${PREFIX}/share/man
(where default value for PREFIX
is /usr/local
). This location can be changed during ./waf configure
stage using --prefix
, --datarootdir
, or --mandir
options.
For more details, refer to ./waf --help
.
The following is the suggested configure commands for development build.
./waf configure --debug --with-tests ./waf sudo ./waf install
In the development build all compiler optimizations are disabled by default and all warnings are treated as error. The default behavior can be overridden by setting CXXFLAGS
environment variable before running ./waf configure
:
CXXFLAGS="-O1 -g3" ./waf configure --debug --with-tests ...