blob: 2f7b1c8eed850ed4811158c22f8bf9c9daf16599 [file] [log] [blame]
Galanakis, Minos41f85972019-09-30 15:56:40 +01001#####################
2Software requirements
3#####################
Gyorgy Szingdb9783c2019-04-17 21:08:48 +02004
Antonio de Angelis065ce4a2019-06-04 14:02:33 +01005.. |KEIL_VERSION| replace:: v5.25.2
Minos Galanakis3b740a12020-10-15 11:10:26 +01006.. |DEV_STUDIO_VERSION| replace:: 2019.1
Antonio de Angelis065ce4a2019-06-04 14:02:33 +01007
Galanakis, Minos757139a2019-11-11 15:00:11 +00008A quick reference table is included in the
Minos Galanakise4094012020-06-12 14:25:34 +01009:ref:`docs/getting_started/tfm_sw_requirement:Tool & Dependency overview` section
Galanakis, Minos757139a2019-11-11 15:00:11 +000010of this document.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020011
12****************************
13Supported build environments
14****************************
15
16TF-M officially supports a limited set of build environments and setups. In
17this context, official support means that the environments listed below
18are actively used by team members and active developers hence users should
19be able to recreate the same configurations by following the instructions
20described below. In case of problems, the TF-M team provides support
21only for these environments, but building in other environments can still be
22possible.
23
24The following environments are supported:
Kevin Townsend0f869bb2019-08-01 21:06:48 +020025
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020026 - Ubuntu 16.04 x64
27 - Ubuntu 18.04 x64
Anton Komlevc4cadb02020-11-02 12:54:29 +000028 - Windows 10 x64
Mingyang Sun1e590642019-09-24 10:46:21 +080029
Anton Komlevc4cadb02020-11-02 12:54:29 +000030***********
31C compilers
32***********
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020033
34To compile TF-M code, at least one of the supported compiler toolchains have to
35be available in the build environment. The currently supported compiler
36versions are:
Antonio de Angelis065ce4a2019-06-04 14:02:33 +010037
Anton Komlevc4cadb02020-11-02 12:54:29 +000038 - Arm Compiler v6.10.1+, v6.11, v6.12, v6.13
Minos Galanakisf216e2b2020-11-09 17:12:01 +000039 - GNU Arm compiler v7.3.1+
Anton Komlevc4cadb02020-11-02 12:54:29 +000040 - IAR Arm compiler v8.42.x, v8.50.x
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020041
42.. Note::
Antonio de Angelis065ce4a2019-06-04 14:02:33 +010043 - The Arm compilers above are provided via Keil uVision |KEIL_VERSION|
Minos Galanakis3b740a12020-10-15 11:10:26 +010044 or greater and Arm Development Studio
Antonio de Angelis065ce4a2019-06-04 14:02:33 +010045 |DEV_STUDIO_VERSION| or greater, or they can be downloaded as standalone
46 packages from
47 `here <https://developer.arm.com/products/software-development-tools/compilers/arm-compiler/downloads/version-6>`__.
48
Antonio de Angelis065ce4a2019-06-04 14:02:33 +010049 - The GNU Arm compiler can be downloaded from
50 `here <https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads>`__.
51 On the page select *GNU Arm Embedded Toolchain: 6-2017-q1-update*
52 or *GNU Arm Embedded Toolchain: 7-2018-q2-update*
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020053
TTornblom8a8b4522020-06-10 11:13:32 +020054 - The IAR Arm compilers above are provided via IAR Embedded Workbench (Windows) or
55 IAR build tools for linux.
56 For information, see
57 `here <https://www.iar.com/iar-embedded-workbench/#!?architecture=Arm>`__ or
58 `here <https://www.iar.com/iar-embedded-workbench/build-tools-for-linux/>`__.
59
Anton Komlevc4cadb02020-11-02 12:54:29 +000060*****
61CMake
62*****
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020063
Raef Coles4ebad292020-11-12 16:39:51 +000064The build-system is CMake based and supports the version 3.15 or higher.
Antonio de Angelis065ce4a2019-06-04 14:02:33 +010065
Anton Komlevc4cadb02020-11-02 12:54:29 +000066 - Please use the latest build version available.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020067 - Recent versions of CMake can be downloaded from
68 https://cmake.org/download/, and older releases are available from
69 https://cmake.org/files.
70
Anton Komlevc4cadb02020-11-02 12:54:29 +000071CMake handles all external dependencies, but if you wish to alter this
Anton Komlevb8e3af02020-08-28 10:23:57 +010072behaviour, see :ref:`docs/getting_started/tfm_build_instruction:Manual
73dependency management`
Minos Galanakisac6b06c2020-03-19 12:57:02 +000074
Anton Komlevc4cadb02020-11-02 12:54:29 +000075********
76GNU make
77********
78
79TF-M project builds using the "Unix Makefiles" generator of CMake
80and thus GNU make is needed for the build.
81
82 - On Linux please use the version available in your distribution.
83 - On Windows, GNU make v3.81 or higher shall work fine.
84
85CMake generators other than "Unix Makefiles" may work too, but are not
86officially supported. You may have a good luck with Ninja.
87
Ludovic Barre8a77bdd2020-03-26 19:53:07 +010088********************************************
89Tools for configuring and programming boards
90********************************************
91
Anton Komlevc4cadb02020-11-02 12:54:29 +000092Please follow a board secific documentation for building and programming
93tools.
Ludovic Barre8a77bdd2020-03-26 19:53:07 +010094
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020095**************
Anton Komlevc4cadb02020-11-02 12:54:29 +000096Typical setups
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020097**************
98
Anton Komlevc4cadb02020-11-02 12:54:29 +000099This section lists steps to set-up TF-M build environment under Linux and Windows.
100Please also check the `Exceptions and special cases`_ chapter for any special
101requirements depending on the tools you are using.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200102
Anton Komlevc4cadb02020-11-02 12:54:29 +0000103Ubuntu
104======
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200105
David Vincze4a6555e2019-11-06 09:32:13 +0100106Install the following tools:
107
Minos Galanakis3b740a12020-10-15 11:10:26 +0100108 - Arm DS |DEV_STUDIO_VERSION|.
Anton Komlevc4cadb02020-11-02 12:54:29 +0000109 - Git tools v2.10.0
110 - CMake (see the `CMake`_ chapter)
111 - GNU Make (see the `GNU make`_ chapter)
112 - SRecord v1.58 (for Musca test chip boards)
113 - Python3 and the pip package manager (from Python 3.4 it's included)
114 - The necessary Python3 packages are listed in the requirements.txt file.
115 To install all needed just do:
David Vincze4a6555e2019-11-06 09:32:13 +0100116
Anton Komlevc4cadb02020-11-02 12:54:29 +0000117.. code-block:: bash
David Vincze4a6555e2019-11-06 09:32:13 +0100118
Anton Komlevc4cadb02020-11-02 12:54:29 +0000119 pip install -r tools/requirements.txt
David Vincze4a6555e2019-11-06 09:32:13 +0100120
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200121
Anton Komlevc4cadb02020-11-02 12:54:29 +0000122Setup environment variables in Linux
123------------------------------------
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200124
Minos Galanakis3b740a12020-10-15 11:10:26 +0100125To import Arm Compiler v6.13 in your bash shell console:
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200126
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200127.. code-block:: bash
128
Minos Galanakis3b740a12020-10-15 11:10:26 +0100129 export PATH=<ARM_DS_PATH>/sw/ARMCompiler6.13/bin:$PATH
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100130 export ARM_TOOL_VARIANT=ult
Minos Galanakis3b740a12020-10-15 11:10:26 +0100131 export ARM_PRODUCT_PATH=<ARM_DS_PATH>/sw/mappings
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100132 export ARMLMD_LICENSE_FILE=<LICENSE_FILE_PATH>
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200133
134To import CMake in your bash shell console:
135
136.. code-block:: bash
137
TTornblom8a8b4522020-06-10 11:13:32 +0200138 export PATH=<CMake path>/bin:$PATH
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200139
140To import GNU Arm in your bash shell console:
141
142.. code-block:: bash
143
TTornblom8a8b4522020-06-10 11:13:32 +0200144 export PATH=<bash path>/bin:$PATH
145
Anton Komlevc4cadb02020-11-02 12:54:29 +0000146To import IAR Arm compiler in your bash shell console:
TTornblom8a8b4522020-06-10 11:13:32 +0200147
148.. code-block:: bash
149
150 export PATH=<IAR compiler path>/bin:$PATH
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200151
Anton Komlevc4cadb02020-11-02 12:54:29 +0000152Windows
153=======
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200154
David Vincze4a6555e2019-11-06 09:32:13 +0100155Install the following tools:
156
Minos Galanakis3b740a12020-10-15 11:10:26 +0100157 - uVision |KEIL_VERSION| or Arm DS |DEV_STUDIO_VERSION| (Arm DS Ultimate Edition)
Minos Galanakisf216e2b2020-11-09 17:12:01 +0000158 or GNU Arm compiler v7.3.1+
Anton Komlevc4cadb02020-11-02 12:54:29 +0000159 - Git client latest version (https://git-scm.com/download/win)
160 - CMake (`native Windows version <https://cmake.org/download/>`__,
161 see the `CMake`_ chapter)
162 - GNU make
163 - `SRecord v1.63 <https://sourceforge.net/projects/srecord/>`__ (for Musca test
164 chip boards)
165 - Python3 `(native Windows version) <https://www.python.org/downloads/>`__ and
166 the pip package manager (from Python 3.4 it's included)
167 - The necessary Python3 packages are listed in the requirements.txt file.
168 To install all needed just do:
Anton Komlev211aacf2020-11-02 12:48:11 +0000169
Anton Komlevb759e672020-11-02 12:15:44 +0000170.. code-block:: bash
171
Anton Komlevc4cadb02020-11-02 12:54:29 +0000172 pip install -r tools\requirements.txt
173
174Setup environment variables in Windows
175--------------------------------------
176
177Add CMake to your PATH variable:
178
179.. code-block:: bash
180
181 set PATH=<CMake_Path>\bin;$PATH
182
183There are several configurations depending on a toolset you are using.
184The typical cases are listed below.
185
Minos Galanakis3b740a12020-10-15 11:10:26 +0100186Armclang + Arm DS
187^^^^^^^^^^^^^^^^^
Anton Komlevc4cadb02020-11-02 12:54:29 +0000188.. code-block:: bash
189
Minos Galanakis3b740a12020-10-15 11:10:26 +0100190 set PATH=<ARM_DS_PATH>\sw\ARMCompiler6.13\bin;$PATH
191 set ARM_PRODUCT_PATH=<ARM_DS_PATH>\sw\mappings
Anton Komlevc4cadb02020-11-02 12:54:29 +0000192 set ARM_TOOL_VARIANT=ult
193 set ARMLMD_LICENSE_FILE=<LICENSE_FILE_PATH>
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200194
195Armclang + Keil MDK Arm
196^^^^^^^^^^^^^^^^^^^^^^^
197
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200198.. code-block:: bash
199
Anton Komlevc4cadb02020-11-02 12:54:29 +0000200 set PATH=<uVision path>\ARM\ARMCLANG\bin;$PATH
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200201
202GNU Arm
203^^^^^^^
204
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200205.. code-block:: bash
206
Anton Komlevc4cadb02020-11-02 12:54:29 +0000207 set PATH=<GNU Arm path>\bin;$PATH
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200208
Anton Komlevc4cadb02020-11-02 12:54:29 +0000209**************************
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200210Building the documentation
Anton Komlevc4cadb02020-11-02 12:54:29 +0000211**************************
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200212
Anton Komlevc4cadb02020-11-02 12:54:29 +0000213The build system is prepared to support generation of two documents:
214The Reference Manual and the User Guide.
215The Reference Manual is Doxygen based, while the User Guide is
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200216Sphinx based. Both document can be generated in HTML and PDF format.
217
Anton Komlevc4cadb02020-11-02 12:54:29 +0000218Support for document generation in the build environment is not mandatory.
219Missing document generation tools will not block building the TF-M firmware.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200220
221To compile the TF-M Reference Manual
Anton Komlevc4cadb02020-11-02 12:54:29 +0000222====================================
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200223
224The following additional tools are needed:
225
226 - Doxygen v1.8.0 or later
227 - Graphviz dot v2.38.0 or later
228 - PlantUML v1.2018.11 or later
229 - Java runtime environment 1.8 or later (for running PlantUML)
Anton Komlevc4cadb02020-11-02 12:54:29 +0000230 - LaTeX - for PDF generation only
231 - PdfLaTeX - for PDF generation only
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200232
Anton Komlevc4cadb02020-11-02 12:54:29 +0000233Set-up the needed tools and environment in Linux
234------------------------------------------------
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200235
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200236.. code-block:: bash
237
238 sudo apt-get install -y doxygen graphviz default-jre
239 mkdir ~/plantuml
240 curl -L http://sourceforge.net/projects/plantuml/files/plantuml.jar/download --output ~/plantuml/plantuml.jar
Anton Komlevc4cadb02020-11-02 12:54:29 +0000241 export PLANTUML_JAR_PATH=~/plantuml/plantuml.jar
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200242
243For PDF generation:
244
245.. code-block:: bash
246
247 sudo apt-get install -y doxygen-latex
248
Anton Komlevc4cadb02020-11-02 12:54:29 +0000249Set-up the needed tools and environment in Windows
250--------------------------------------------------
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200251
252Download and install the following tools:
Anton Komlevc4cadb02020-11-02 12:54:29 +0000253
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200254 - `Doxygen
255 1.8.8 <https://sourceforge.net/projects/doxygen/files/snapshots/doxygen-1.8-svn/windows/doxygenw20140924_1_8_8.zip/download>`__
256 - `Graphviz
257 2.38 <https://graphviz.gitlab.io/_pages/Download/windows/graphviz-2.38.msi>`__
Minos Galanakis3b740a12020-10-15 11:10:26 +0100258 - The Java runtime is part of the Arm DS installation or can be
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200259 `downloaded from here <https://www.java.com/en/download/>`__
260 - `PlantUML <http://sourceforge.net/projects/plantuml/files/plantuml.jar/download>`__
Anton Komlevc4cadb02020-11-02 12:54:29 +0000261 - `MikTeX <https://miktex.org/download>`__ - for PDF generation only
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200262
Anton Komlevc4cadb02020-11-02 12:54:29 +0000263Set the environment variables, assuming that:
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200264
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200265 - doxygen, dot, and MikTeX binaries are available on the PATH.
Minos Galanakis3b740a12020-10-15 11:10:26 +0100266 - Java JVM is used from Arm DS installation.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200267
268::
269
Anton Komlevc4cadb02020-11-02 12:54:29 +0000270 set PLANTUML_JAR_PATH=<plantuml_Path>\plantuml.jar
Minos Galanakis3b740a12020-10-15 11:10:26 +0100271 set PATH=$PATH;<ARM_DS_PATH>\sw\java\bin
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200272
273To compile the TF-M User Guide
Anton Komlevc4cadb02020-11-02 12:54:29 +0000274==============================
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200275
276The following additional tools are needed:
277
278 - Python3 and the following modules:
279 - Sphinx v1.7.9
280 - m2r v0.2.0
281 - sphinxcontrib-plantuml
282 - sphinx-rtd-theme
283 - Graphviz dot v2.38.0 or later
284 - PlantUML v1.2018.11 or later
285 - Java runtime environment 1.8 or later (for running PlantUML)
Anton Komlevc4cadb02020-11-02 12:54:29 +0000286 - LaTeX - for PDF generation only
287 - PdfLaTeX - for PDF generation only
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200288
Anton Komlevc4cadb02020-11-02 12:54:29 +0000289Set-up the tools and environment in Linux
290-----------------------------------------
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200291
292.. code-block:: bash
293
294 sudo apt-get install -y python3 graphviz default-jre
Anton Komlevc4cadb02020-11-02 12:54:29 +0000295 pip install -r tools/requirements.txt
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200296 mkdir ~/plantuml
297 curl -L http://sourceforge.net/projects/plantuml/files/plantuml.jar/download --output ~/plantuml/plantuml.jar
298
299For PDF generation:
300
301.. code-block:: bash
302
303 sudo apt-get install -y doxygen-latex
Anton Komlevc4cadb02020-11-02 12:54:29 +0000304 export PLANTUML_JAR_PATH=~/plantuml/plantuml.jar
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200305
Anton Komlevc4cadb02020-11-02 12:54:29 +0000306Set-up the tools and environment in Windows
307-------------------------------------------
308
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200309Download and install the following tools:
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100310
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200311 - `Graphviz 2.38 <https://graphviz.gitlab.io/_pages/Download/windows/graphviz-2.38.msi>`__
Minos Galanakis3b740a12020-10-15 11:10:26 +0100312 - The Java runtime is part of the Arm DS installation or can be `downloaded from here <https://www.java.com/en/download/>`__
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200313 - `PlantUML <http://sourceforge.net/projects/plantuml/files/plantuml.jar/download>`__
Anton Komlevc4cadb02020-11-02 12:54:29 +0000314 - `MikTeX <https://miktex.org/download>`__ - for PDF generation only
315 - Python3 `(native Windows version) <https://www.python.org/downloads/>`__
316 - The necessary Python3 packages are listed in the requirements.txt file.
317 To install all needed packages just do:
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200318
Anton Komlevc4cadb02020-11-02 12:54:29 +0000319.. code-block:: bash
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200320
Anton Komlevc4cadb02020-11-02 12:54:29 +0000321 pip install -r tools\requirements.txt
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200322
323.. Note::
324 When building the documentation the first time, MikTeX might
325 prompt for installing missing LaTeX components. Please allow the MikTeX
326 package manager to set-up these.
327
Anton Komlevc4cadb02020-11-02 12:54:29 +0000328Set the environment variables, assuming that:
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200329
330 - plantuml.jar is available at c:\\plantuml\\plantuml.jar
331 - doxygen, dot, and MikTeX binaries are available on the PATH.
332 - Java JVM is used from DS5 installation.
333
334.. code-block:: bash
335
Anton Komlevc4cadb02020-11-02 12:54:29 +0000336 set PLANTUML_JAR_PATH=<plantuml_Path>\plantuml.jar
Minos Galanakis3b740a12020-10-15 11:10:26 +0100337 set PATH=$PATH;<ARM_DS_PATH>\sw\java\bin
Anton Komlevc4cadb02020-11-02 12:54:29 +0000338
339****************************
340Exceptions and special cases
341****************************
342
343ArmClang
344========
345 - Arm compiler specific environment variable may need updating based on
346 specific products and licenses as explained in
347 `product-and-toolkit-configuration <https://developer.arm.com/products/software-development-tools/license-management/resources/product-and-toolkit-configuration>`__.
348
Anton Komlevc4cadb02020-11-02 12:54:29 +0000349MikTeX
350======
351 - When building the documentation the first time, MikTeX might prompt for
352 installing missing LaTeX components. Please allow the MikTeX package
353 manager to set-up these.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200354
Galanakis, Minos757139a2019-11-11 15:00:11 +0000355**************************
356Tool & Dependency overview
357**************************
358
359To build the TF-M firmware the following tools are needed:
360
361.. csv-table:: Tool dependencies
362 :header: "Name", "Version", "Component"
363
Anton Komlevc4cadb02020-11-02 12:54:29 +0000364 "C compiler",See `C compilers`_,"Firmware"
365 "CMake",See `CMake`_,
366 "GNU Make",See `GNU make`_,
367 "tf-m-tests",`CMake`_ handles it,
368 "mbed-crypto",`CMake`_ handles it,
369 "MCUboot",`CMake`_ handles it,
Galanakis, Minos757139a2019-11-11 15:00:11 +0000370 "Python",3.x,"Firmware, User Guide"
371 "yaml",,"Firmware"
372 "pyasn1",,"Firmware"
373 "jinja2",,"Firmware"
374 "cryptography",,"Firmware"
375 "cbor",,"Firmware"
Balint Matyi3bae8832020-06-22 15:34:12 +0200376 "click",,"Firmware"
Balint Matyid9abb492020-06-22 08:35:52 +0100377 "imgtool",,"Firmware"
Galanakis, Minos757139a2019-11-11 15:00:11 +0000378 "Doxygen",">1.8","Reference manual"
379 "Sphinx",">1.4","User Guide"
380 "sphinxcontrib-plantuml",,"User Guide"
381 "sphinx-trd-theme",,"User Guide"
382 "Git",,
383 "PlantUML",">v1.2018.11","Reference Manual, User Guide"
384 "Graphviz dot",">v2.38.0","Reference manual"
385 "Java runtime environment (JRE)",">1.8","Reference Manual, User Guide"
386 "LaTex",,"pdf version of Reference Manual and User Guide"
387 "PdfLaTex",,"pdf version of Reference Manual and User Guide"
388
389Dependency chain:
390
391.. uml::
392
393 @startuml
394 skinparam state {
395 BackgroundColor #92AEE0
396 FontColor black
397 FontSize 16
398 AttributeFontColor black
399 AttributeFontSize 16
400 BackgroundColor<<pdf>> #A293E2
401 BackgroundColor<<doc>> #90DED6
402 }
403 state fw as "Firmware" : TF-M binary
404 state c_comp as "C Compiler" : C99
405 state gmake as "GNU make"
406 state u_guide as "User Guide" <<doc>>
407 state refman as "Reference Manual" <<doc>>
408 state rtd_theme as "sphinx-rtd-theme" <<doc>>
409 state sphnix_puml as "sphinxcontrib-plantuml" <<doc>>
410 state JRE as "JRE" <<doc>> : Java Runtime Environment
411 state gwiz as "Graphwiz dot" <<doc>>
412 state Sphinx as "Sphinx" <<doc>>
413 state m2r as "m2r" <<doc>>
414 state PlantUML as "PlantUML" <<doc>>
415 state LaTex as "LaTex" <<pdf>>
416 state PdfLaTex as "PdfLaTex" <<<<pdf>>>>
417 state Doxygen as "Doxygen" <<doc>>
418
419 [*] --> fw
420 fw --> c_comp
421 fw --> CMake
422 CMake --> gmake
423 fw --> cryptography
424 fw --> pyasn1
425 fw --> yaml
426 fw --> jinja2
427 fw --> cbor
Balint Matyi3bae8832020-06-22 15:34:12 +0200428 fw --> click
Balint Matyid9abb492020-06-22 08:35:52 +0100429 fw --> imgtool
Galanakis, Minos757139a2019-11-11 15:00:11 +0000430 cryptography --> Python3
431 pyasn1 --> Python3
432 yaml --> Python3
433 jinja2 --> Python3
434 cbor --> Python3
Balint Matyi3bae8832020-06-22 15:34:12 +0200435 click --> Python3
Balint Matyid9abb492020-06-22 08:35:52 +0100436 imgtool --> Python3
Galanakis, Minos757139a2019-11-11 15:00:11 +0000437
438 [*] --> u_guide
439 u_guide --> Sphinx
440 Sphinx --> m2r
441 Sphinx --> rtd_theme
442 Sphinx --> sphnix_puml
443 m2r --> Python3
444 rtd_theme --> Python3
445 sphnix_puml --> Python3
446 Sphinx --> PlantUML
447 PlantUML --> JRE
448 PlantUML --> gwiz
449 Sphinx --> LaTex
450 LaTex --> PdfLaTex
451
452 [*] --> refman
453 refman --> Doxygen
454 Doxygen --> PlantUML
455 Doxygen --> LaTex
456 state Legend {
457 state x as "For PDF generation only" <<pdf>>
458 state y as "For document generation only" <<doc>>
459 state z as "Mandatory"
460 }
461
462 @enduml
463
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200464--------------
465
Ronald Cronc0c38fa2019-09-23 09:36:56 +0200466*Copyright (c) 2017-2020, Arm Limited. All rights reserved.*