.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0

Build
=====

.. note::
   * This section is used to describe how a software component is built from source
     into something ready for use either in a run-time environment or to build other
     components.

   * This section is typically provided for a platform-component, application, and sdk; and
     referenced in developer guides.

   * This note must be removed after content has been added.


Environment
-----------


Steps
-----
