Alexander Afanasyev | 553d0c8 | 2014-01-28 19:19:39 -0800 | [diff] [blame^] | 1 | NDN-CPP-dev: A dev version of Named Data Networking client library for C++ |
| 2 | =========================================================================== |
| 3 | |
| 4 | Prerequisites |
| 5 | ------------- |
| 6 | |
| 7 | (These are prerequisites to build NDN-CPP. To do development of NDN-CPP code and update the build system, |
| 8 | see Development Prerequisites.) |
| 9 | |
| 10 | Required: |
| 11 | |
| 12 | * libcrypto |
| 13 | * libsqlite3 |
| 14 | * libcrypto++ |
| 15 | * boost libraries |
| 16 | * OSX Security framework (on OSX platform only) |
| 17 | |
| 18 | Following are the detailed steps for each platform to install the prerequisites. |
| 19 | |
| 20 | * Mac OS X 10.7.3, Mac OS X 10.8.4 |
| 21 | |
| 22 | Install Xcode. |
| 23 | In Xcode Preferences > Downloads, install "Command Line Tools". |
| 24 | |
| 25 | * Mac OS X 10.9 |
| 26 | |
| 27 | Install Xcode. (Xcode on OS X 10.9 seems to already have the Command Line Tools.) |
| 28 | |
| 29 | If using macports, dependencies can be installed using the following commands: |
| 30 | |
| 31 | sudo port install boost sqlite3 libcryptopp |
| 32 | |
| 33 | * Ubuntu 12.04 (64 bit and 32 bit), Ubuntu 13.04 (64 bit) |
| 34 | |
| 35 | In a terminal, enter: |
| 36 | |
| 37 | sudo apt-get install build-essential |
| 38 | sudo apt-get install libboost-all-dev libssl-dev libsqlite3-dev libcrypto++-dev |
| 39 | |
| 40 | * Windows Cygwin |
| 41 | |
| 42 | Cygwin is tested on Windows 7 64-bit with the "Devel" packages selected to install at the top level of the |
| 43 | cygwin installer. This includes libcrypto and libsqlite3. |
| 44 | |
| 45 | Build |
| 46 | ----- |
| 47 | |
| 48 | (These are instructions to build NDN-CPP. To do development of NDN-CPP code and update the build system, see Development.) |
| 49 | |
| 50 | To build in a terminal, change directory to the NDN-CPP root. Enter: |
| 51 | |
| 52 | ./waf configure |
| 53 | ./waf |
| 54 | sudo ./waf install |
| 55 | |
| 56 | This makes and installs the following items: |
| 57 | |
| 58 | * ``<LIBPATH>/libndn-cpp-dev.*``: static and dynamic NDN C++ libraries |
| 59 | * ``<LIBPATH>/pkgconfig/libndn-cpp-dev.pc``: pkgconfig file storing all neccessary flags |
| 60 | to build against the library. For example, if pkgconfig or pkgconf package is |
| 61 | installed and PKG_CONFIG_PATH is configured properly (or ``<LIBPATH>/pkgconfig`` is a |
| 62 | default path), ``pkgconfig --libs --clflags libndn-cpp-dev`` will return all necessary |
| 63 | compile and link flags for the library. |
| 64 | * ``<BINPATH>/tlvdump``: a simple tool to dump contents of TLV-formatted data |
| 65 | * ``<BINPATH>/ndncatchunks3``: a simplified equivalent to ndncatchunks2 in NDNx package |
| 66 | * ``<BINPATH>/ndnputchunks3``: a simplified equivalent to ndnputchunks2 in NDNx package |
| 67 | |
| 68 | If configured with tests: ``./waf configure --with-tests``), the above commands will |
| 69 | also produce: |
| 70 | |
| 71 | * ``build/tests/unit-tests``: A tool to run unit tests for the library |
| 72 | |
| 73 | Documentation |
| 74 | ------------- |
| 75 | |
| 76 | To make documentation, enter: |
| 77 | |
| 78 | ./waf doxygen |
| 79 | |
| 80 | This will produce doxygen API code documentation in: |
| 81 | |
| 82 | * build/doc/html |
| 83 | |
| 84 | Supported platforms |
| 85 | ------------------- |
| 86 | |
| 87 | (to be confirmed) |
| 88 | |
| 89 | NDN-CPP is tested on the following platforms: |
| 90 | Ubuntu 12.04 (64 bit and 32 bit) (gcc 4.6.3) |
| 91 | Ubuntu 13.04 (64 bit) (gcc 4.7.3) |
| 92 | Mac OS X 10.8.4 (clang 4.2) |
| 93 | Mac OS X 10.8.4 (gcc 4.2) |
| 94 | |
| 95 | Development Prerequisites |
| 96 | ------------------------- |
| 97 | |
| 98 | These steps are only needed to do development of NDN-CPP code and update the build system. |
| 99 | First follow the Prerequisites above for your platforms. |
| 100 | |
| 101 | * Mac OS X 10.7.3, Mac OS X 10.8.4, Mac OS X 10.9 |
| 102 | |
| 103 | Install MacPorts from http://www.macports.org/install.php |
| 104 | In a terminal, enter: |
| 105 | |
| 106 | sudo port install doxygen |
| 107 | |
| 108 | * Ubuntu 12.04 (64 bit and 32 bit), Ubuntu 13.04 (64 bit) |
| 109 | |
| 110 | In a terminal, enter: |
| 111 | |
| 112 | sudo apt-get install doxygen |
| 113 | |
| 114 | Development |
| 115 | ----------- |
| 116 | |
| 117 | Follow Development Prerequisites above for your platform. |