From: Marek VavruĊĦa Date: Sun, 12 Apr 2015 19:54:50 +0000 (+0200) Subject: doc: updated build and index hierarchy X-Git-Tag: v1.0.0-beta1~250^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7acc7cb65c4e26dcb4614e0fa7bae20105ef4536;p=thirdparty%2Fknot-resolver.git doc: updated build and index hierarchy --- diff --git a/doc/build.rst b/doc/build.rst index 9bae20c73..eb6c38f1f 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 ``_CFLAGS`` and ``_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 18f4d2e1f..47527df95 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 885232004..7213951fb 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 325f17a25..ec9f27ef6 100644 --- a/modules/README.rst +++ b/modules/README.rst @@ -1,5 +1,6 @@ +**************************** Knot DNS Resolver extensions -============================ +**************************** The resolver :ref:`library ` 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: