NDN-CPP:  A Named Data Networking client library for C++ and C
-------------------------------------------------------------

Prerequisites
-------------
(These are prerequisites to build NDN-CPP.  To do development of NDN-CPP code and update the build system, see Development.)

Required: libcrypto
Optional: libsqlite3 (for key storage)
Optional: OSX Security framework (for key storage)

Following are the detailed steps for each platform to install the prerequisites.

* Ubuntu 12.04
In a terminal, enter:
sudo apt-get install build-essential
sudo apt-get install libssl-dev

* Windows Cygwin
Cygwin is tested on Windows 7 64-bit with the "Devel" packages selected to install at the top level of the
cygwin installer.  This includes libcrypto and libsqlite3.

* Mac OS X 10.7.3, Mac OS X 10.8.4
Install Xcode.
In Xcode Preferences > Downloads, install "Command Line Tools".

* Mac OS X 10.9
Install Xcode.  (Xcode on OS X 10.9 seems to already have the Command Line Tools.)

Build
-----
(These are instructions to build NDN-CPP. To do development of NDN-CPP code and update the build system, see Development.)

To build in a terminal, change directory to the NDN-CPP root.  Enter:

./configure
make
make install

To make documentation, enter:
make doxygen-doc

Files
-----

This makes the following libraries:

.libs/libndn-c.a: The core C code for encoding and communication.
.libs/libndn-cpp.a: The C++ library API.  (If linking to libndn-cpp, don't link to libndn-c since it is included.)

This makes the following test files:

bin/test-get-async: Connect to one of the NDN testbed hubs, express an interest and display the received data.
bin/test-publish-async: Connect to the local NDN hub, accept interests with prefix /testecho and echo back a data packet.
bin/test-encode-decode-interest: Encode and decode an interest, testing interest selectors and the name URI.
bin/test-encode-decode-data: Encode and decode a data packet, including signing the data packet.
bin/test-encode-decode-forwarding-entry: Encode and decode a data packet, including signing the data packet.

Running make doxygen-doc puts code documentation in:
doc/html

Supported platforms
-------------------

NDN-CPP is tested on the following platforms:
Ubuntu 12.04 (gcc 4.6.3)
Mac OS X 10.8.4 (clang 4.2)
Mac OS X 10.8.4 (gcc 4.2)

Development
-----------
These steps are only needed to do development of NDN-CPP code and update the build system.
First follow the prerequisites above for your platforms.

* Mac OS X 10.7.3, Mac OS X 10.8.4, Mac OS X 10.9
Install MacPorts from http://www.macports.org/install.php
In a terminal, enter:
sudo port install automake
sudo port install autoconf
sudo port install libtool

Now you can add source code files and update Makefile.am.  
After updating, change directory to the NDN-CPP root and enter the following to build the Makefile:
./autogen.sh
