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.8.4
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
aclocal --print

"aclocal --print" shows the directory for m4 macros. Download the the following into there (use sudo):
# http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_cxx_compile_stdcxx_11.m4
# http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_prog_doxygen.m4
# http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_check_openssl.m4
# http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_lib_sqlite3.m4
# http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_prefix_config_h.m4

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
