Standalone libraries:
---------------------

binrpc - A library that provides common interface for different communication
         methods (UNIX sockets, TCP, UDP) using binary RPC as a transport form
         of data. The interface is documented directly in binrpc_api.h file and
         can by generated into HTML form by using Doxygen. There is no
         difference between compilation "with" or "without" SER (see compilation
         section below).

Libraries common to modules:
---------------------------

cds - Common Data Structures (basic string operations, dynamic string,
      vector, message queue, ...)

presence - Library holding common structures and functions about presence
           (API for internal subscriptions, common presence structures,
           common presence data formats)
           requires internal libraries: cds

xcap - Common XCAP operations and structures (XCAP authorization documents
       and XCAP resource lists processing)
       requires external libraries: libxml2, libcurl3 (nonSER version)
       requires internal libraries: cds

shm_regex - Wrapper functions for regcomp, regexec, regfree and regerror
	    using shared memory. See 'man regex' for details.

Used by modules: pa, rls, dialog, rpa

trie - Common digit trie implementation for prefix matching, used by
       carrierroute and userblocklist

Used by IMS modules: icscf, usrloc_scscf, usrloc_pcscf, registrar_scscf, registrar_pcscf

ims - IMS extensions helpers. Generally just getters.

Usage:
-----

All libraries except shm_regex can be compiled "with ser" or "without ser".
Compilation without ser may be useful for debugging purposes or for example for 
searching for memory leaks with some tool like valgrind.
shm_regex library can be compiled only with ser.

Compilation with ser:
--------------------

Compilation and installation of these libraries is NOT DONE by running
main Kamailio makefile now - it MUST be done MANUALLY. To compile and install
libraries simply run

   make install

in lib directory. You can select destination directory like in the case
of ser, for example:

   make install prefix="/my/ser/directory"
   
AFTER COMPILATION of libraries you can COMPILE MODULES using this 
libraries like PA, RLS or dialog.


Running with Kamailio (Linux):
----------------

The path to installed libraries must be known to linker on startup. This
can be done by setting variable LD_LIBRARY_PATH before running Kamailio. For
example, if libraries were installed to default directory (/usr/local),
you should set LD_LIBRARY_PATH=/usr/local/lib/kamailio. In the case of 
nonstandard installation, you can use something like 
LD_LIBRARY_PATH=/my/ser/directory/lib/kamailio.

Compilation without ser:
--------------------
Use the alternate makefile, Makefile.noser:

   make -f Makefile.noser install

Documentation
-------------
Documentation for all libraries is (or will be) in 
docbook-XML format and it is stored in doc directory (for example cds/doc 
contains documentation for Common Data Structures library).

Documentation can be translated into HTML using a XSLT processor
which is able to work with "include" directives.
For example
   xmlto html cds/doc/cds.xml
will create HTML documentation for CDS library in current directory.
