Building Documentation
To build FRR documentation, first install the dependencies.
Notice that if you plan to only build html documentation, you only
need the package python3-sphinx.
sudo apt-get install -y python3-sphinx \
texlive-latex-base texlive-latex-extra latexmk
To prepare for building both user and developer documentation, do:
cd doc
make
User documentation
To build html user documentation:
cd user
make html
This will generate html documentation files under _build/html/.
With the main page named index.html.
PDF can then be built by:
cd user
make pdf
The generated PDF file will be saved at _build/latex/FRR.pdf
Developer documentation
To build the developer documentation:
cd developer
make html
This will generate html documentation files under _build/html/.
With the main page named index.html.
PDF can then be built by:
cd developer
make pdf
The generated PDF file will be saved at _build/latex/FRR.pdf
Building HTML without configuring FRR
The make html targets under doc/user and doc/developer call into the
top-level build system and expect a tree that has been through ./configure
(and usually ./bootstrap.sh first if you build from Git).
If you only need HTML and have not configured the repository, run Sphinx
from the repository root. Install python3-sphinx as above. For the
developer manual you should also install graphviz (diagrams) and, if you
want the same HTML theme as a full build, python3-sphinx-rtd-theme.
cd frr
python3 -m sphinx -b html -d doc/user/_build/.doctrees \
doc/user doc/user/_build/html
python3 -m sphinx -b html -d doc/developer/_build/.doctrees \
doc/developer doc/developer/_build/html
The generated trees are doc/user/_build/html/ and
doc/developer/_build/html/, each with index.html at the top.
When config.status is absent, conf.py uses built-in defaults for version
and install-path substitutions; values are filled from config.status when
you build inside a configured tree.
PDF, Info, and other formats are still built through make in a configured
build directory, since those flows rely on the Automake/Sphinx integration.