X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=BUILD;h=bf4121af1c9992ce4695152605f4765803bcf555;hb=8761b5d1ab23c663814b8f83191e4a32a20e1429;hp=811490dce8e7d374ddf816dab9b356c1b7f4ea7b;hpb=29cb100165e8f6ed4b2c7f1e94fdca0fcc8e7e81;p=ric-plt%2Flib%2Frmr.git diff --git a/BUILD b/BUILD index 811490d..bf4121a 100644 --- a/BUILD +++ b/BUILD @@ -18,9 +18,9 @@ # -Building RMr +Building RMR -The RIC Message Router (RMr) is built with CMake, and requires +The RIC Message Router (RMR) is built with CMake, and requires a modern gcc compiler and make 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 @@ -34,7 +34,7 @@ interactively. Bash is assumed necessary for CMake. Build process -To build RMr, the usual CMake steps are followed: +To build RMR, the usual CMake steps are followed: mkdir build cd build cmake .. [options] @@ -50,10 +50,11 @@ 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= 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; uee installed packages + -DSKIP_EXTERNALS=1 Do not use Nano/NNG submodules when building; use installed packages Packages @@ -68,8 +69,8 @@ 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 -programm tests. If tests pass, then an image is created in the +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 @@ -120,7 +121,7 @@ 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 ooptions work when +each system needs, but the following linker options work when libraries are installed in the system spots: -lrmr_nng -lnng -lpthread @@ -132,19 +133,19 @@ a different spot (e.g. in $HOME/usr): Libraries -RMr supports both NNG and Nanomsg as underlying transport. They -are separate beasts, and while an NNG based program can -communicate with a Nanomsg based programme, their APIs are NOT -compatible. For this reason, and others, RMr generates two -libraries and requires that the underlying transport be selected -at link time rather than run time. The RMr API for both underlying -mechanisms is the same, so generating a NNG and Nanomsg version -of a programme should require no extra work; other than adding -a second link statement and giving it a different name. - -Nanomsg is on its way out with respect to community support. RMr -will continue to support Nanomsg for a short period of time, but -new programmes should NOT use Nanomsg. +RMR supports only NNG as the underlying transport. Nanomsg +support was dropped starting with version 1.0.45 as Nanomsg +has reached end of life. The package generation and install +will produce a single RMR library: librmr_nng. RMR is designed +to support different underlying transport mechanisms, which +might require separate libraries, and thus the library name is +given a suffix of _nng to reflect the transport mechanism +in use. + +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