#
#==================================================================================
#       Copyright (c) 2019 Nokia
#       Copyright (c) 2018-2019 AT&T Intellectual Property.
#
#   Licensed under the Apache License, Version 2.0 (the "License");
#   you may not use this file except in compliance with the License.
#   You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.
#==================================================================================
#

Building RMR

The RIC Message Router (RMR) is built with CMake, and requires cmake
version 3, make and a modern gcc compiler to be installed on the build
system. Typically, installing the following list of packages in a
container (Ubuntu) is all that is needed to craft a development
environment (containerised builds are also the recommended approach):

 gcc git make vim cmake g++ ksh bash

Kshell and vi are needed only if you wish to use the container
interactively. Bash is assumed necessary for CMake.


Build process
To build RMR, the usual CMake steps are followed:
	mkdir build
	cd build
	cmake .. [options]
	make package


On a Debian/Ubuntu system, this will create a .deb (provided the
system supports this) in the build directory.  It's that simple.

The following flags may be given on the 'cmake' command line (options)
which are outside of "normal" CMake flags and affect the
configuration:

  -DBUILD_DOC=1         Man pages generated
  -DDEV_PKG=1			Development package configuration
  -DIGNORE_LIBDIR		Ignore the system preferred library directory and install in /usr/local/lib
  -DMAN_PREFIX=<path>	Supply a path where man pages are installed (default: /usr/share/man)
  -DPACK_EXTERNALS=1	Include external libraries used to build in the run-time package
  -DPRESERVE_PTYPE=1	Do not change the processor type when naming deb packages
  -DSKIP_EXTERNALS=1	Do not use Nano/NNG submodules when building; use installed packages
						(See caution in the 'Libraries' section below)


Packages

The build can be configured to generate either a run-time or
development package. The run-time generation is the default and the
-DDEV_PKG=1 option must be given to generate the development package.
The run-time package contains only the shared library files (*.so),
and the development package contains the headers, man pages (if the
man option is set) and archive (.a) files.  Resulting package names
are illustrated in the CI section below.

Continuous Integration Build

Use the Dockerfile in the ci/ subdirectory. This installs all the
required tools, then builds RMR and executes the unit and program
tests. If tests pass, then an image is created in the local registry
with both run-time and development packages.

To support the distribution of package(s) created during the build by
the CI process, a YAML file is left in the /tmp directory
(build_packages.yml) which contains a list of the packages available
from the image.  Currently, both .deb and .rpm packages are generated.

The following is a sample YAML file generated during this process:

   ---
   files:
     - /tmp/rmr-dev_1.0.34_x86_64.deb
     - /tmp/rmr-dev-1.0.34-x86_64.rpm
     - /tmp/rmr_1.0.34_x86_64.deb
     - /tmp/rmr-1.0.34-x86_64.rpm
   ...



Alternatives

To build in a non-Linux environment, or to build with an alternate
install path (or both) read on.

Instead of using 'make package' as listed above, using 'make install'
will build and install on the local system.  By default, the target
install is into /usr/local which may not be desired.  To install into
an alternate path add these two options when the 'cmake ..' command is
given:

  -DCMAKE_INSTALL_PREFIX=/path/to/dir
  -DMAN_PREFIX=/path/to/dir


The first will cause the make process to install into the named
directory, which can be in your home directory. The second defines
where manual pages are placed (if not defined /usr/share/man is the
target).  Manual pages are generally NOT built as the required tool
has yet to be incorporated into the build process and generally is not
available on most systems.


Compiling and Linking User Applications

Should the Rmr and NNG/Nano libraries be installed in a directory
outside of the normal system spots (e.g. not in /usr/local) it might
be necessary to define the specific directory for libraries (.e.g -L)
on the command line, or via environment variables
(e.g.. C_INCLUDE_PATH, LD_LIBRARY_PATH, LIBRARY_PATH).  It may also be
necessary to have the library directory defined in the environment at
run time.  It is difficult to know what each system needs, but the
following linker options work when libraries are installed in the
system spots:

	-lrmr_nng -lnng -lpthread

Adding -L is one way to compensate when libraries are installed in a
different spot (e.g. in $HOME/usr):

	-L $HOME/usr -lrmr_nng -lnng -lpthread


Libraries

RMR is designed to support different underlying transport mechanisms,
which might require separate libraries, and thus the library name is
given a suffix that reflects the transport mechanism in use. RMR
supports NNG and SI95 as the underlying transports. Nanomsg support
was dropped starting with version 1.0.45 as Nanomsg has reached end of
life. The package generation and install will produce two RMR
libraries: librmr_nng and librmr_si.

NNG version with a commit ID of 906d5ea1b3d67bece941d8a4e0a049e5f6c65051
is required to build RMR.  That version (as yet untagged) adds a
new error state which we must trap.  While application environments
are encouraged to also build and install at least this version of
NNG, RMR is still compatable back to the version tagged as 1.1.1.
If you opt to build with the -DSKIP_EXTERNALS=1 flag set, you must
ensure that this version of NNG is present in your build environment.
If you do not set this flag, the proper NNG source will be used
automatically.

Regardless of transport mechanism supported by an RMR library, the RMR
API will be identical, thus it is possible for an application to shift
mechanisms simply by referencing a different library (should multiple
RMR libraries become available).

Manual Pages

By default the deb created does not include the manual pages. To
enable their creation, and subsequent inclusion in the deb, add the
following option to the cmake command:

	-DBUILD_DOC=1

This will cause the {X}fm text formatting package to be fetched
(github) and built at cmake time (must exist before building) and will
trigger the generation of the man pages in both postscript and troff
format.  The troff pages are placed into the deb and the postscript
pages are left in the build directory for the developer to convert to
PDF, or otherwise use.

Debug Mode

Because RMR is designed to keep its overhead to an absolute minimum,
messages written to standard error are by default very limited.  The
route table collection thread provides the means to enable debug
messages on the fly, but only because that thread does not impact the
sending and receiving of user messages.

If it becomes necessary, for development or problem soving, to have
the RMR functions generate debugging messages the following
CMake flag can be given when the CMake environment is created:
	-DDEBUG=n

The value for 'n' should be 1 or 2 to enable debugging.  The default
when not given is the same as setting n to zero.

When running in debug mode, RMR will log messages received, sent, and
other useful information.  Because debugging uses fprintf() there is a
significant amount of overhead with logging this information and thus
in debugging mode the user should not expect that usual message rates
can be achieved, and in some cases may cause messages to drop if TCP
queues become full.
