blob: cf8bfccb68474245437adc348cf17ece71dda61c [file] [log] [blame] [view]
Alexander Afanasyev08eecea2014-03-28 10:23:30 -07001NFD: NDN Forwarding Daemon
2==========================
Alexander Afanasyev2aa39622014-01-22 11:51:11 -08003
Junxiao Shi336e4f72014-01-22 19:38:31 -07004## Prerequisites
Alexander Afanasyev2aa39622014-01-22 11:51:11 -08005
Alexander Afanasyev08eecea2014-03-28 10:23:30 -07006* [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 Afanasyevc1d6a6b2014-04-08 18:04:57 -070021 Comes with base on OS X 10.8 and 10.9:
Alexander Afanasyev08eecea2014-03-28 10:23:30 -070022
23 On Ubuntu >= 12.04:
24
25 sudo apt-get install libpcap-dev
26
Alexander Afanasyev49272f72014-04-06 21:49:46 -070027To build manpages and API documentation:
Alexander Afanasyev08eecea2014-03-28 10:23:30 -070028
29* `doxygen`
Alexander Afanasyev49272f72014-04-06 21:49:46 -070030* `graphviz`
31* `python-sphinx`
Alexander Afanasyev08eecea2014-03-28 10:23:30 -070032
Alexander Afanasyevc1d6a6b2014-04-08 18:04:57 -070033 On OS X 10.8 and 10.9 with macports:
Alexander Afanasyev08eecea2014-03-28 10:23:30 -070034
Alexander Afanasyev49272f72014-04-06 21:49:46 -070035 sudo port install doxygen graphviz py27-sphinx sphinx_select
36 sudo port select sphinx py27-sphinx
Alexander Afanasyev08eecea2014-03-28 10:23:30 -070037
38 On Ubuntu >= 12.04:
39
Alexander Afanasyev49272f72014-04-06 21:49:46 -070040 sudo apt-get install doxygen graphviz python-sphinx
41
42
Junxiao Shi336e4f72014-01-22 19:38:31 -070043## Build
Alexander Afanasyev2aa39622014-01-22 11:51:11 -080044
45The following commands should be used to build NFD:
46
47 ./waf configure
48 ./waf
Alexander Afanasyev2aa39622014-01-22 11:51:11 -080049 sudo ./waf install
50
Alexander Afanasyevc1d6a6b2014-04-08 18:04:57 -070051Refer to `README.md` file for more options that can be used during `configure` stage and
52how to properly configure and run NFD.
Alexander Afanasyev2aa39622014-01-22 11:51:11 -080053
Alexander Afanasyevc1d6a6b2014-04-08 18:04:57 -070054In some configurations, configuration step may require small modification. For example,
55on OSX that uses macports (correct the path if macports was not installed in the default
56path `/opt/local`):
Alexander Afanasyev08eecea2014-03-28 10:23:30 -070057
Alexander Afanasyevc1d6a6b2014-04-08 18:04:57 -070058 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
63On 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 Afanasyev08eecea2014-03-28 10:23:30 -070066 ./waf configure
67 ./waf
68 sudo ./waf install
Alexander Afanasyev49272f72014-04-06 21:49:46 -070069
70# Building API documentation
71
72The following commands can be used to build API documentation in `build/docs/doxygen`
73
74 ./waf doxygen
75
Alexander Afanasyevc1d6a6b2014-04-08 18:04:57 -070076Note 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 Afanasyev49272f72014-04-06 21:49:46 -070082For more details, refer to `./waf --help`.
Alexander Afanasyevc1d6a6b2014-04-08 18:04:57 -070083
84Additional documentation in `build/docs` can be built using (requires `python-sphinx` package)
85
86 ./waf sphinx