Alexander Afanasyev | 08eecea | 2014-03-28 10:23:30 -0700 | [diff] [blame] | 1 | NFD: NDN Forwarding Daemon |
| 2 | ========================== |
Alexander Afanasyev | 2aa3962 | 2014-01-22 11:51:11 -0800 | [diff] [blame] | 3 | |
Junxiao Shi | 336e4f7 | 2014-01-22 19:38:31 -0700 | [diff] [blame] | 4 | ## Prerequisites |
Alexander Afanasyev | 2aa3962 | 2014-01-22 11:51:11 -0800 | [diff] [blame] | 5 | |
Alexander Afanasyev | 08eecea | 2014-03-28 10:23:30 -0700 | [diff] [blame] | 6 | * [ndn-cpp-dev library](https://github.com/named-data/ndn-cpp-dev) and |
| 7 | its requirements: |
| 8 | |
| 9 | * `libcrypto` |
| 10 | * `libsqlite3` |
| 11 | * `libcrypto++` |
| 12 | * `pkg-config` |
| 13 | * Boost libraries (>= 1.48) |
| 14 | * OSX Security framework (on OSX platform only) |
| 15 | |
| 16 | Refer to https://github.com/named-data/ndn-cpp-dev/blob/master/INSTALL.md |
| 17 | for detailed installation instructions. |
| 18 | |
| 19 | * `libpcap` |
| 20 | |
Alexander Afanasyev | c1d6a6b | 2014-04-08 18:04:57 -0700 | [diff] [blame] | 21 | Comes with base on OS X 10.8 and 10.9: |
Alexander Afanasyev | 08eecea | 2014-03-28 10:23:30 -0700 | [diff] [blame] | 22 | |
| 23 | On Ubuntu >= 12.04: |
| 24 | |
| 25 | sudo apt-get install libpcap-dev |
| 26 | |
Alexander Afanasyev | 49272f7 | 2014-04-06 21:49:46 -0700 | [diff] [blame] | 27 | To build manpages and API documentation: |
Alexander Afanasyev | 08eecea | 2014-03-28 10:23:30 -0700 | [diff] [blame] | 28 | |
| 29 | * `doxygen` |
Alexander Afanasyev | 49272f7 | 2014-04-06 21:49:46 -0700 | [diff] [blame] | 30 | * `graphviz` |
| 31 | * `python-sphinx` |
Alexander Afanasyev | 08eecea | 2014-03-28 10:23:30 -0700 | [diff] [blame] | 32 | |
Alexander Afanasyev | c1d6a6b | 2014-04-08 18:04:57 -0700 | [diff] [blame] | 33 | On OS X 10.8 and 10.9 with macports: |
Alexander Afanasyev | 08eecea | 2014-03-28 10:23:30 -0700 | [diff] [blame] | 34 | |
Alexander Afanasyev | 49272f7 | 2014-04-06 21:49:46 -0700 | [diff] [blame] | 35 | sudo port install doxygen graphviz py27-sphinx sphinx_select |
| 36 | sudo port select sphinx py27-sphinx |
Alexander Afanasyev | 08eecea | 2014-03-28 10:23:30 -0700 | [diff] [blame] | 37 | |
| 38 | On Ubuntu >= 12.04: |
| 39 | |
Alexander Afanasyev | 49272f7 | 2014-04-06 21:49:46 -0700 | [diff] [blame] | 40 | sudo apt-get install doxygen graphviz python-sphinx |
| 41 | |
| 42 | |
Junxiao Shi | 336e4f7 | 2014-01-22 19:38:31 -0700 | [diff] [blame] | 43 | ## Build |
Alexander Afanasyev | 2aa3962 | 2014-01-22 11:51:11 -0800 | [diff] [blame] | 44 | |
| 45 | The following commands should be used to build NFD: |
| 46 | |
| 47 | ./waf configure |
| 48 | ./waf |
Alexander Afanasyev | 2aa3962 | 2014-01-22 11:51:11 -0800 | [diff] [blame] | 49 | sudo ./waf install |
| 50 | |
Alexander Afanasyev | c1d6a6b | 2014-04-08 18:04:57 -0700 | [diff] [blame] | 51 | Refer to `README.md` file for more options that can be used during `configure` stage and |
| 52 | how to properly configure and run NFD. |
Alexander Afanasyev | 2aa3962 | 2014-01-22 11:51:11 -0800 | [diff] [blame] | 53 | |
Alexander Afanasyev | c1d6a6b | 2014-04-08 18:04:57 -0700 | [diff] [blame] | 54 | In some configurations, configuration step may require small modification. For example, |
| 55 | on OSX that uses macports (correct the path if macports was not installed in the default |
| 56 | path `/opt/local`): |
Alexander Afanasyev | 08eecea | 2014-03-28 10:23:30 -0700 | [diff] [blame] | 57 | |
Alexander Afanasyev | c1d6a6b | 2014-04-08 18:04:57 -0700 | [diff] [blame] | 58 | export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:$PKG_CONFIG_PATH |
| 59 | ./waf configure |
| 60 | ./waf |
| 61 | sudo ./waf install |
| 62 | |
| 63 | On some Linux distributions (e.g., Fedora 20): |
| 64 | |
| 65 | export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/usr/lib64/pkgconfig:$PKG_CONFIG_PATH |
Alexander Afanasyev | 08eecea | 2014-03-28 10:23:30 -0700 | [diff] [blame] | 66 | ./waf configure |
| 67 | ./waf |
| 68 | sudo ./waf install |
Alexander Afanasyev | 49272f7 | 2014-04-06 21:49:46 -0700 | [diff] [blame] | 69 | |
| 70 | # Building API documentation |
| 71 | |
| 72 | The following commands can be used to build API documentation in `build/docs/doxygen` |
| 73 | |
| 74 | ./waf doxygen |
| 75 | |
Alexander Afanasyev | c1d6a6b | 2014-04-08 18:04:57 -0700 | [diff] [blame] | 76 | Note that manpages are automatically created and installed during the normal build process |
| 77 | (e.g., during `./waf` and `./waf install`), if `python-sphinx` module is detected during |
| 78 | `./waf configure` stage. By default, manpages are installed into `${PREFIX}/share/man` |
| 79 | (where default value for `PREFIX` is `/usr/local`). This location can be changed during |
| 80 | `./waf configure` stage using `--prefix`, `--datarootdir`, or `--mandir` options. |
| 81 | |
Alexander Afanasyev | 49272f7 | 2014-04-06 21:49:46 -0700 | [diff] [blame] | 82 | For more details, refer to `./waf --help`. |
Alexander Afanasyev | c1d6a6b | 2014-04-08 18:04:57 -0700 | [diff] [blame] | 83 | |
| 84 | Additional documentation in `build/docs` can be built using (requires `python-sphinx` package) |
| 85 | |
| 86 | ./waf sphinx |