blob: 4a30aa9be4bbc77f0f54d189d1f6513566fb5279 [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
Mark Horvathed3980e2021-03-05 13:12:20 +010038 - Arm Compiler v6.10.1+
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>`__.
Shawn Shan8a46ad52020-11-26 14:54:50 +080051 On the page select *GNU Arm Embedded Toolchain: 7-2018-q2-update* or an
52 above version.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020053
David Hu0d64a642021-03-22 10:37:23 +080054 - GNU Arm compiler version *10-2020-q4-major* has an issue in CMSE support.
55 The bug is reported in `here <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99157>`__.
56 Select other GNU Arm compiler versions instead.
57
TTornblom8a8b4522020-06-10 11:13:32 +020058 - The IAR Arm compilers above are provided via IAR Embedded Workbench (Windows) or
59 IAR build tools for linux.
60 For information, see
61 `here <https://www.iar.com/iar-embedded-workbench/#!?architecture=Arm>`__ or
62 `here <https://www.iar.com/iar-embedded-workbench/build-tools-for-linux/>`__.
63
Anton Komlevc4cadb02020-11-02 12:54:29 +000064*****
65CMake
66*****
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020067
Raef Coles4ebad292020-11-12 16:39:51 +000068The build-system is CMake based and supports the version 3.15 or higher.
Antonio de Angelis065ce4a2019-06-04 14:02:33 +010069
Anton Komlevc4cadb02020-11-02 12:54:29 +000070 - Please use the latest build version available.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020071 - Recent versions of CMake can be downloaded from
72 https://cmake.org/download/, and older releases are available from
73 https://cmake.org/files.
74
Anton Komlevc4cadb02020-11-02 12:54:29 +000075CMake handles all external dependencies, but if you wish to alter this
Anton Komlevb8e3af02020-08-28 10:23:57 +010076behaviour, see :ref:`docs/getting_started/tfm_build_instruction:Manual
77dependency management`
Minos Galanakisac6b06c2020-03-19 12:57:02 +000078
Anton Komlevc4cadb02020-11-02 12:54:29 +000079********
80GNU make
81********
82
83TF-M project builds using the "Unix Makefiles" generator of CMake
84and thus GNU make is needed for the build.
85
86 - On Linux please use the version available in your distribution.
87 - On Windows, GNU make v3.81 or higher shall work fine.
88
89CMake generators other than "Unix Makefiles" may work too, but are not
90officially supported. You may have a good luck with Ninja.
91
Ludovic Barre8a77bdd2020-03-26 19:53:07 +010092********************************************
93Tools for configuring and programming boards
94********************************************
95
Anton Komlevc4cadb02020-11-02 12:54:29 +000096Please follow a board secific documentation for building and programming
97tools.
Ludovic Barre8a77bdd2020-03-26 19:53:07 +010098
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020099**************
Anton Komlevc4cadb02020-11-02 12:54:29 +0000100Typical setups
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200101**************
102
Anton Komlevc4cadb02020-11-02 12:54:29 +0000103This section lists steps to set-up TF-M build environment under Linux and Windows.
104Please also check the `Exceptions and special cases`_ chapter for any special
105requirements depending on the tools you are using.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200106
Anton Komlevc4cadb02020-11-02 12:54:29 +0000107Ubuntu
108======
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200109
David Vincze4a6555e2019-11-06 09:32:13 +0100110Install the following tools:
111
Minos Galanakis3b740a12020-10-15 11:10:26 +0100112 - Arm DS |DEV_STUDIO_VERSION|.
Anton Komlevc4cadb02020-11-02 12:54:29 +0000113 - Git tools v2.10.0
114 - CMake (see the `CMake`_ chapter)
115 - GNU Make (see the `GNU make`_ chapter)
116 - SRecord v1.58 (for Musca test chip boards)
117 - Python3 and the pip package manager (from Python 3.4 it's included)
118 - The necessary Python3 packages are listed in the requirements.txt file.
119 To install all needed just do:
David Vincze4a6555e2019-11-06 09:32:13 +0100120
Anton Komlevc4cadb02020-11-02 12:54:29 +0000121.. code-block:: bash
David Vincze4a6555e2019-11-06 09:32:13 +0100122
Anton Komlevc4cadb02020-11-02 12:54:29 +0000123 pip install -r tools/requirements.txt
David Vincze4a6555e2019-11-06 09:32:13 +0100124
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200125
Anton Komlevc4cadb02020-11-02 12:54:29 +0000126Setup environment variables in Linux
127------------------------------------
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200128
Minos Galanakis3b740a12020-10-15 11:10:26 +0100129To import Arm Compiler v6.13 in your bash shell console:
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200130
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200131.. code-block:: bash
132
Minos Galanakis3b740a12020-10-15 11:10:26 +0100133 export PATH=<ARM_DS_PATH>/sw/ARMCompiler6.13/bin:$PATH
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100134 export ARM_TOOL_VARIANT=ult
Minos Galanakis3b740a12020-10-15 11:10:26 +0100135 export ARM_PRODUCT_PATH=<ARM_DS_PATH>/sw/mappings
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100136 export ARMLMD_LICENSE_FILE=<LICENSE_FILE_PATH>
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200137
138To import CMake in your bash shell console:
139
140.. code-block:: bash
141
TTornblom8a8b4522020-06-10 11:13:32 +0200142 export PATH=<CMake path>/bin:$PATH
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200143
144To import GNU Arm in your bash shell console:
145
146.. code-block:: bash
147
TTornblom8a8b4522020-06-10 11:13:32 +0200148 export PATH=<bash path>/bin:$PATH
149
Anton Komlevc4cadb02020-11-02 12:54:29 +0000150To import IAR Arm compiler in your bash shell console:
TTornblom8a8b4522020-06-10 11:13:32 +0200151
152.. code-block:: bash
153
154 export PATH=<IAR compiler path>/bin:$PATH
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200155
Anton Komlevc4cadb02020-11-02 12:54:29 +0000156Windows
157=======
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200158
David Vincze4a6555e2019-11-06 09:32:13 +0100159Install the following tools:
160
Minos Galanakis3b740a12020-10-15 11:10:26 +0100161 - uVision |KEIL_VERSION| or Arm DS |DEV_STUDIO_VERSION| (Arm DS Ultimate Edition)
Minos Galanakisf216e2b2020-11-09 17:12:01 +0000162 or GNU Arm compiler v7.3.1+
Anton Komlevc4cadb02020-11-02 12:54:29 +0000163 - Git client latest version (https://git-scm.com/download/win)
164 - CMake (`native Windows version <https://cmake.org/download/>`__,
165 see the `CMake`_ chapter)
166 - GNU make
167 - `SRecord v1.63 <https://sourceforge.net/projects/srecord/>`__ (for Musca test
168 chip boards)
169 - Python3 `(native Windows version) <https://www.python.org/downloads/>`__ and
170 the pip package manager (from Python 3.4 it's included)
171 - The necessary Python3 packages are listed in the requirements.txt file.
172 To install all needed just do:
Anton Komlev211aacf2020-11-02 12:48:11 +0000173
Anton Komlevb759e672020-11-02 12:15:44 +0000174.. code-block:: bash
175
Anton Komlevc4cadb02020-11-02 12:54:29 +0000176 pip install -r tools\requirements.txt
177
178Setup environment variables in Windows
179--------------------------------------
180
181Add CMake to your PATH variable:
182
183.. code-block:: bash
184
185 set PATH=<CMake_Path>\bin;$PATH
186
187There are several configurations depending on a toolset you are using.
188The typical cases are listed below.
189
Minos Galanakis3b740a12020-10-15 11:10:26 +0100190Armclang + Arm DS
191^^^^^^^^^^^^^^^^^
Anton Komlevc4cadb02020-11-02 12:54:29 +0000192.. code-block:: bash
193
Minos Galanakis3b740a12020-10-15 11:10:26 +0100194 set PATH=<ARM_DS_PATH>\sw\ARMCompiler6.13\bin;$PATH
195 set ARM_PRODUCT_PATH=<ARM_DS_PATH>\sw\mappings
Anton Komlevc4cadb02020-11-02 12:54:29 +0000196 set ARM_TOOL_VARIANT=ult
197 set ARMLMD_LICENSE_FILE=<LICENSE_FILE_PATH>
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200198
199Armclang + Keil MDK Arm
200^^^^^^^^^^^^^^^^^^^^^^^
201
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200202.. code-block:: bash
203
Anton Komlevc4cadb02020-11-02 12:54:29 +0000204 set PATH=<uVision path>\ARM\ARMCLANG\bin;$PATH
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200205
206GNU Arm
207^^^^^^^
208
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200209.. code-block:: bash
210
Anton Komlevc4cadb02020-11-02 12:54:29 +0000211 set PATH=<GNU Arm path>\bin;$PATH
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200212
Anton Komlevc4cadb02020-11-02 12:54:29 +0000213**************************
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200214Building the documentation
Anton Komlevc4cadb02020-11-02 12:54:29 +0000215**************************
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200216
Anton Komlevc4cadb02020-11-02 12:54:29 +0000217The build system is prepared to support generation of two documents:
218The Reference Manual and the User Guide.
219The Reference Manual is Doxygen based, while the User Guide is
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200220Sphinx based. Both document can be generated in HTML and PDF format.
221
Anton Komlevc4cadb02020-11-02 12:54:29 +0000222Support for document generation in the build environment is not mandatory.
223Missing document generation tools will not block building the TF-M firmware.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200224
225To compile the TF-M Reference Manual
Anton Komlevc4cadb02020-11-02 12:54:29 +0000226====================================
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200227
228The following additional tools are needed:
229
230 - Doxygen v1.8.0 or later
231 - Graphviz dot v2.38.0 or later
232 - PlantUML v1.2018.11 or later
233 - Java runtime environment 1.8 or later (for running PlantUML)
Anton Komlevc4cadb02020-11-02 12:54:29 +0000234 - LaTeX - for PDF generation only
235 - PdfLaTeX - for PDF generation only
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200236
Anton Komlevc4cadb02020-11-02 12:54:29 +0000237Set-up the needed tools and environment in Linux
238------------------------------------------------
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200239
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200240.. code-block:: bash
241
242 sudo apt-get install -y doxygen graphviz default-jre
243 mkdir ~/plantuml
244 curl -L http://sourceforge.net/projects/plantuml/files/plantuml.jar/download --output ~/plantuml/plantuml.jar
Anton Komlevc4cadb02020-11-02 12:54:29 +0000245 export PLANTUML_JAR_PATH=~/plantuml/plantuml.jar
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200246
247For PDF generation:
248
249.. code-block:: bash
250
251 sudo apt-get install -y doxygen-latex
252
Anton Komlevc4cadb02020-11-02 12:54:29 +0000253Set-up the needed tools and environment in Windows
254--------------------------------------------------
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200255
256Download and install the following tools:
Anton Komlevc4cadb02020-11-02 12:54:29 +0000257
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200258 - `Doxygen
259 1.8.8 <https://sourceforge.net/projects/doxygen/files/snapshots/doxygen-1.8-svn/windows/doxygenw20140924_1_8_8.zip/download>`__
260 - `Graphviz
261 2.38 <https://graphviz.gitlab.io/_pages/Download/windows/graphviz-2.38.msi>`__
Minos Galanakis3b740a12020-10-15 11:10:26 +0100262 - The Java runtime is part of the Arm DS installation or can be
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200263 `downloaded from here <https://www.java.com/en/download/>`__
264 - `PlantUML <http://sourceforge.net/projects/plantuml/files/plantuml.jar/download>`__
Anton Komlevc4cadb02020-11-02 12:54:29 +0000265 - `MikTeX <https://miktex.org/download>`__ - for PDF generation only
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200266
Anton Komlevc4cadb02020-11-02 12:54:29 +0000267Set the environment variables, assuming that:
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200268
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200269 - doxygen, dot, and MikTeX binaries are available on the PATH.
Minos Galanakis3b740a12020-10-15 11:10:26 +0100270 - Java JVM is used from Arm DS installation.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200271
272::
273
Anton Komlevc4cadb02020-11-02 12:54:29 +0000274 set PLANTUML_JAR_PATH=<plantuml_Path>\plantuml.jar
Minos Galanakis3b740a12020-10-15 11:10:26 +0100275 set PATH=$PATH;<ARM_DS_PATH>\sw\java\bin
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200276
277To compile the TF-M User Guide
Anton Komlevc4cadb02020-11-02 12:54:29 +0000278==============================
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200279
280The following additional tools are needed:
281
282 - Python3 and the following modules:
283 - Sphinx v1.7.9
284 - m2r v0.2.0
285 - sphinxcontrib-plantuml
286 - sphinx-rtd-theme
287 - Graphviz dot v2.38.0 or later
288 - PlantUML v1.2018.11 or later
289 - Java runtime environment 1.8 or later (for running PlantUML)
Anton Komlevc4cadb02020-11-02 12:54:29 +0000290 - LaTeX - for PDF generation only
291 - PdfLaTeX - for PDF generation only
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200292
Anton Komlevc4cadb02020-11-02 12:54:29 +0000293Set-up the tools and environment in Linux
294-----------------------------------------
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200295
296.. code-block:: bash
297
298 sudo apt-get install -y python3 graphviz default-jre
Anton Komlevc4cadb02020-11-02 12:54:29 +0000299 pip install -r tools/requirements.txt
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200300 mkdir ~/plantuml
301 curl -L http://sourceforge.net/projects/plantuml/files/plantuml.jar/download --output ~/plantuml/plantuml.jar
302
303For PDF generation:
304
305.. code-block:: bash
306
307 sudo apt-get install -y doxygen-latex
Anton Komlevc4cadb02020-11-02 12:54:29 +0000308 export PLANTUML_JAR_PATH=~/plantuml/plantuml.jar
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200309
Anton Komlevc4cadb02020-11-02 12:54:29 +0000310Set-up the tools and environment in Windows
311-------------------------------------------
312
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200313Download and install the following tools:
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100314
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200315 - `Graphviz 2.38 <https://graphviz.gitlab.io/_pages/Download/windows/graphviz-2.38.msi>`__
Minos Galanakis3b740a12020-10-15 11:10:26 +0100316 - 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 +0200317 - `PlantUML <http://sourceforge.net/projects/plantuml/files/plantuml.jar/download>`__
Anton Komlevc4cadb02020-11-02 12:54:29 +0000318 - `MikTeX <https://miktex.org/download>`__ - for PDF generation only
319 - Python3 `(native Windows version) <https://www.python.org/downloads/>`__
320 - The necessary Python3 packages are listed in the requirements.txt file.
321 To install all needed packages just do:
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200322
Anton Komlevc4cadb02020-11-02 12:54:29 +0000323.. code-block:: bash
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200324
Anton Komlevc4cadb02020-11-02 12:54:29 +0000325 pip install -r tools\requirements.txt
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200326
327.. Note::
328 When building the documentation the first time, MikTeX might
329 prompt for installing missing LaTeX components. Please allow the MikTeX
330 package manager to set-up these.
331
Anton Komlevc4cadb02020-11-02 12:54:29 +0000332Set the environment variables, assuming that:
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200333
334 - plantuml.jar is available at c:\\plantuml\\plantuml.jar
335 - doxygen, dot, and MikTeX binaries are available on the PATH.
336 - Java JVM is used from DS5 installation.
337
338.. code-block:: bash
339
Anton Komlevc4cadb02020-11-02 12:54:29 +0000340 set PLANTUML_JAR_PATH=<plantuml_Path>\plantuml.jar
Minos Galanakis3b740a12020-10-15 11:10:26 +0100341 set PATH=$PATH;<ARM_DS_PATH>\sw\java\bin
Anton Komlevc4cadb02020-11-02 12:54:29 +0000342
343****************************
344Exceptions and special cases
345****************************
346
347ArmClang
348========
349 - Arm compiler specific environment variable may need updating based on
350 specific products and licenses as explained in
351 `product-and-toolkit-configuration <https://developer.arm.com/products/software-development-tools/license-management/resources/product-and-toolkit-configuration>`__.
352
Anton Komlevc4cadb02020-11-02 12:54:29 +0000353MikTeX
354======
355 - When building the documentation the first time, MikTeX might prompt for
356 installing missing LaTeX components. Please allow the MikTeX package
357 manager to set-up these.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200358
Galanakis, Minos757139a2019-11-11 15:00:11 +0000359**************************
360Tool & Dependency overview
361**************************
362
363To build the TF-M firmware the following tools are needed:
364
365.. csv-table:: Tool dependencies
366 :header: "Name", "Version", "Component"
367
Anton Komlevc4cadb02020-11-02 12:54:29 +0000368 "C compiler",See `C compilers`_,"Firmware"
369 "CMake",See `CMake`_,
370 "GNU Make",See `GNU make`_,
371 "tf-m-tests",`CMake`_ handles it,
372 "mbed-crypto",`CMake`_ handles it,
373 "MCUboot",`CMake`_ handles it,
Galanakis, Minos757139a2019-11-11 15:00:11 +0000374 "Python",3.x,"Firmware, User Guide"
375 "yaml",,"Firmware"
376 "pyasn1",,"Firmware"
377 "jinja2",,"Firmware"
378 "cryptography",,"Firmware"
379 "cbor",,"Firmware"
Balint Matyi3bae8832020-06-22 15:34:12 +0200380 "click",,"Firmware"
Balint Matyid9abb492020-06-22 08:35:52 +0100381 "imgtool",,"Firmware"
Galanakis, Minos757139a2019-11-11 15:00:11 +0000382 "Doxygen",">1.8","Reference manual"
383 "Sphinx",">1.4","User Guide"
384 "sphinxcontrib-plantuml",,"User Guide"
385 "sphinx-trd-theme",,"User Guide"
386 "Git",,
387 "PlantUML",">v1.2018.11","Reference Manual, User Guide"
388 "Graphviz dot",">v2.38.0","Reference manual"
389 "Java runtime environment (JRE)",">1.8","Reference Manual, User Guide"
390 "LaTex",,"pdf version of Reference Manual and User Guide"
391 "PdfLaTex",,"pdf version of Reference Manual and User Guide"
392
393Dependency chain:
394
395.. uml::
396
397 @startuml
398 skinparam state {
399 BackgroundColor #92AEE0
400 FontColor black
401 FontSize 16
402 AttributeFontColor black
403 AttributeFontSize 16
404 BackgroundColor<<pdf>> #A293E2
405 BackgroundColor<<doc>> #90DED6
406 }
407 state fw as "Firmware" : TF-M binary
408 state c_comp as "C Compiler" : C99
409 state gmake as "GNU make"
410 state u_guide as "User Guide" <<doc>>
411 state refman as "Reference Manual" <<doc>>
412 state rtd_theme as "sphinx-rtd-theme" <<doc>>
413 state sphnix_puml as "sphinxcontrib-plantuml" <<doc>>
414 state JRE as "JRE" <<doc>> : Java Runtime Environment
415 state gwiz as "Graphwiz dot" <<doc>>
416 state Sphinx as "Sphinx" <<doc>>
417 state m2r as "m2r" <<doc>>
418 state PlantUML as "PlantUML" <<doc>>
419 state LaTex as "LaTex" <<pdf>>
420 state PdfLaTex as "PdfLaTex" <<<<pdf>>>>
421 state Doxygen as "Doxygen" <<doc>>
422
423 [*] --> fw
424 fw --> c_comp
425 fw --> CMake
426 CMake --> gmake
427 fw --> cryptography
428 fw --> pyasn1
429 fw --> yaml
430 fw --> jinja2
431 fw --> cbor
Balint Matyi3bae8832020-06-22 15:34:12 +0200432 fw --> click
Balint Matyid9abb492020-06-22 08:35:52 +0100433 fw --> imgtool
Galanakis, Minos757139a2019-11-11 15:00:11 +0000434 cryptography --> Python3
435 pyasn1 --> Python3
436 yaml --> Python3
437 jinja2 --> Python3
438 cbor --> Python3
Balint Matyi3bae8832020-06-22 15:34:12 +0200439 click --> Python3
Balint Matyid9abb492020-06-22 08:35:52 +0100440 imgtool --> Python3
Galanakis, Minos757139a2019-11-11 15:00:11 +0000441
442 [*] --> u_guide
443 u_guide --> Sphinx
444 Sphinx --> m2r
445 Sphinx --> rtd_theme
446 Sphinx --> sphnix_puml
447 m2r --> Python3
448 rtd_theme --> Python3
449 sphnix_puml --> Python3
450 Sphinx --> PlantUML
451 PlantUML --> JRE
452 PlantUML --> gwiz
453 Sphinx --> LaTex
454 LaTex --> PdfLaTex
455
456 [*] --> refman
457 refman --> Doxygen
458 Doxygen --> PlantUML
459 Doxygen --> LaTex
460 state Legend {
461 state x as "For PDF generation only" <<pdf>>
462 state y as "For document generation only" <<doc>>
463 state z as "Mandatory"
464 }
465
466 @enduml
467
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200468--------------
469
Mark Horvathed3980e2021-03-05 13:12:20 +0100470*Copyright (c) 2017-2021, Arm Limited. All rights reserved.*