## Documentation
-Documentation is generated with `doxygen` tool.
+Documentation is generated with `doxygen` tool. Dependency to `doxygen`
+tool is optional. If not installed, then `doxygen-doc` target will not
+be created to Makefile.
By default `make doxygen-doc` creates HTML, PDF and PS documents (if
the needed tools are available). The documents are created to:
### Dependencies
-Currently, the following libraries are required while building:
+Build-time dependencies:
- boost-devel
- hiredis-devel
+ boost
+ hiredis
+ doxygen (optional)
+
+Commands to install dependent packages in Fedora:
+
+ sudo dnf install boost-devel
+ sudo dnf install hiredis-devel
+ sudo dnf install doxygen
+
+Commands to install dependent packages in Debian/Ubuntu:
+
+ sudo apt install libboost-all-dev
+ sudo apt install libhiredis-dev
+ sudo apt install doxygen
### Compilation in the source directory
headers into to `/usr/local/include`. If this is not desired, then
provide different path when running `configure`, for example:
- ./configure --prefix=$HOME
+ ./configure --prefix=$HOME/usr/local
+
+In above example SDL pkg-config .pc file is installed to `$HOME/usr/local/lib/pkgconfig`
+directory. This directory should be included to `PKG_CONFIG_PATH` while building
+the application which is using the SDL API library.
Note that `configure` command allows plethora of additional options.
For more info:
make install
+In some cases dynamic linker cache needs to be manually refreshed after SDL API
+has been re-installed:
+
+ ldconfig
+
### Redis modules
When Redis is used, SDL requires that the following Redis extension commands
make testrunner
./testrunner --help
+## Running unit tests with gcov
+
+Enable unit test gcov code coverage analysis by configuring gcov reporting
+directory:
+
+ configure --with-gcov-report-dir=DIR
+
+Directory can be an absolute path or a relative path to an SDL source root.
+Unit test build creates directory if it does not exist.
+
+Build and run unit tests with code coverage analysis:
+
+ make test_gcov
+
+After successful unit test run code coverage (.gcov) result files are in
+a directory, what was defined by '--with-gcov-report-dir' configure option.
+
+In addition, graphical gcov front-ends such as lcov can be used for coverage
+analysis:
+
+ lcov --directory tst/ --directory src --capture --output-file coverage.info
+ genhtml coverage.info --output-directory out
+
+Open the out/index.html using any web browser.
+
## Using SDL in application pod
SDL is not yet available in O-RAN-SC PackageCloud.io repository.