.. _section-target-bundle: Overview of the Target Bundle ============================= This section provides an overview of the target package contents, the types of libraries included in the bundle, and the library names and descriptions. When installed, the target bundle (``rti_connext_dds_cert--target-.rtipkg``) adds the following to the |me| directory: .. code-block:: none --rti_connext_dds-/ | +--rti_connext_dds_cert-/ | +--lib/ +--CERT | +--- - The ``lib/`` directory contains the libraries needed to build |me| applications. - ``CERT`` contains pre-built static CERT profile Release and Debug libraries. .. _section-libraries: Library types ............. |me| provides precompiled binaries for supported architectures. This section explains the different library types and gives a general description of the binaries shipped by RTI. In this section, the following terms are used: - *toolchain* refers to the compiler, linker, and archiver for a specific CPU architecture, excluding dependencies in standard header files and libraries. - *platform* refers to the hardware, BSPs, OS kernel, and C/C++ libraries that are not included in the toolchain (such as ``libc``, ``libc++``, and the network stack). |me| consists of two libraries: a Platform Independent Library (PIL) and a Platform Support Library (PSL). The PIL is an ``rti_me`` library that includes all functionality for |me| except for platform integration code. The PSL is a library that supports OS integration and network stack integration, including transports (such as UDPv4) and mutex and semaphore support. This is illustrated below: .. figure:: /images/PIL_Overview.png :width: 70% :align: center An overview of |me| (RCC) libraries The main benefit of splitting |me| functionality into two libraries is that the PIL does not need to be recertified for every platform. PSLs can be written for the same PIL without having to recompile or recertify the platform-independent code. RTI provides the PIL as a pre-compiled binary in the target bundle, as described above. However, RTI does not provide pre-compiled PSLs for |me|; you must build the PSL for your target architecture from the source code provided in the :ref:`Host Bundle `. Refer to :ref:`psl_compiling` and the Safety Integration Manual for instructions on how to build the PSL. .. note:: The PIL is compiled without standard C header files and is only dependent on the toolchain. This is different from the integrated libraries, which are compiled with standard C header files. The PSL must be compiled against the standard C header files, as well as other platform-dependent header files. Library descriptions .................... The following libraries are included in the target bundle. Note that the names listed below do not include platform-specific prefixes or suffixes. Depending on the target architecture, the library name is prefixed with lib and the library suffix also varies between target architectures. The following naming conventions are also used: - Static libraries have a z suffix. - Debug libraries have a d suffix. - Release libraries do not have an additional suffix. For example, ``rti_mezd`` indicates a static debug library, while ``rti_mez`` indicates a static release library. .. list-table:: Target Bundle Libraries :header-rows: 1 :widths: 30 70 * - Library Name - Description * - ``rti_me`` - Includes the following: * The core functionality for |me|, including the DDS C API. * The Dynamic Participant Static Endpoint (DPSE) plugin. * The Reader and Writer History plugins. * - ``rti_me_netiozcopy`` - Includes the Zero Copy v2 transport.