diff --git a/doc/build.rst b/doc/build.rst index 9bae20c7335f0f2a2383e426d761d279a050fb12..eb6c38f1f81d76f2ff2e631b4b8b8ce11c2e3508 100644 --- a/doc/build.rst +++ b/doc/build.rst @@ -49,8 +49,8 @@ There are also *optional* packages that enable specific functionality in Knot DN .. [#] Requires C99, ``__attribute__((cleanup))`` and ``-MMD -MP`` for dependency file generation. GCC, Clang and ICC are supported. .. [#] You can use variables ``<dependency>_CFLAGS`` and ``<dependency>_LIBS`` to configure dependencies manually (i.e. ``libknot_CFLAGS`` and ``libknot_LIBS``). -Docker image -~~~~~~~~~~~~ +Getting Docker image +-------------------- Docker images require only either Linux or a Linux VM (see boot2docker_ on OS X). @@ -65,8 +65,10 @@ You can hack on the container by changing the container entrypoint to shell like $ docker run -it --entrypoint=/bin/bash cznic/knot-resolver +.. tip:: You can build the Docker image yourself with ``docker build -t knot-resolver scripts``. + Building from sources -~~~~~~~~~~~~~~~~~~~~~ +--------------------- The Knot DNS Resolver depends on the development version of the Knot DNS library, and a reasonably recent version of `libuv`. Several dependencies may not be in the packages yet, the script pulls and installs all dependencies in a chroot. @@ -93,18 +95,20 @@ Usually you only really need to rebuild `libknot`. $ make check libknot_CFLAGS="-I/opt/include" libknot_LIBS="-L/opt/lib -lknot -lknot-int -ldnssec" -.. note:: If the dependencies lie outside of library search path, you need to add them somehow. - Try ``LD_LIBRARY_PATH`` on Linux/BSD, and ``DYLD_FALLBACK_LIBRARY_PATH`` on OS X. Otherwise you might - need to add the locations to the linker search path. +.. warning:: If the dependencies lie outside of library search path, you need to add them somehow. + Try ``LD_LIBRARY_PATH`` on Linux/BSD, and ``DYLD_FALLBACK_LIBRARY_PATH`` on OS X. + Otherwise you need to add the locations to linker search path. When you have all the dependencies ready, you can build, test and install. .. code-block:: bash - $ make + $ make PREFIX="/usr/local" $ make check $ make install +.. note:: Always build with ``PREFIX`` if you want to install, as it is hardcoded in the executable for module search path. + Alternatively you can build only specific parts of the project, i.e. ``library``. .. code-block:: bash diff --git a/doc/index.rst b/doc/index.rst index 18f4d2e1f87862edb0badf1d4318305a0034594e..47527df9548322e2eedf762c829cbeee5eb6bbb6 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -1,17 +1,17 @@ +################# Knot DNS Resolver -================= +################# The Knot DNS Resolver is a minimalistic caching resolver implementation. The project provides both a resolver library and a small daemon. Modular architecture of the library keeps the core tiny and efficient, and provides a state-machine like API for extensions. .. toctree:: - :maxdepth: 2 + :maxdepth: 4 build lib daemon - config modules diff --git a/lib/README.rst b/lib/README.rst index 8852320040cdb8536fd597f6aa084749785984e6..7213951fb5377b694a1eba4191a01b5715e949d0 100644 --- a/lib/README.rst +++ b/lib/README.rst @@ -1,5 +1,6 @@ +************************* Knot DNS Resolver library -========================= +************************* Requirements ------------ diff --git a/modules/README.rst b/modules/README.rst index 325f17a258ac9b6e049359845e28030bfe4e6b06..ec9f27ef64dee90aa8e12ce515eb5b694e052c82 100644 --- a/modules/README.rst +++ b/modules/README.rst @@ -1,5 +1,6 @@ +**************************** Knot DNS Resolver extensions -============================ +**************************** The resolver :ref:`library <lib_index>` leverages the `processing API`_ from the libknot to separate packet processing code into layers. In order to keep the core library sane and coverable, there are only two built-in layers: