blob: 91869d274edadf173b7034929892090c82f56654 [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.. |DS5_VERSION| replace:: v5.29.1
6.. |KEIL_VERSION| replace:: v5.25.2
7.. |DEV_STUDIO_VERSION| replace:: 2018.0
8
Galanakis, Minos757139a2019-11-11 15:00:11 +00009A quick reference table is included in the
Minos Galanakise4094012020-06-12 14:25:34 +010010:ref:`docs/getting_started/tfm_sw_requirement:Tool & Dependency overview` section
Galanakis, Minos757139a2019-11-11 15:00:11 +000011of this document.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020012
13****************************
14Supported build environments
15****************************
16
17TF-M officially supports a limited set of build environments and setups. In
18this context, official support means that the environments listed below
19are actively used by team members and active developers hence users should
20be able to recreate the same configurations by following the instructions
21described below. In case of problems, the TF-M team provides support
22only for these environments, but building in other environments can still be
23possible.
24
25The following environments are supported:
Kevin Townsend0f869bb2019-08-01 21:06:48 +020026
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020027 - Ubuntu 16.04 x64
28 - Ubuntu 18.04 x64
Mingyang Sun1e590642019-09-24 10:46:21 +080029 - Windows 10 x64 + git-bash (MinGW) + gnumake from DS-5 or msys2.
30 - Windows 10 x64 + Cygwin x64 (example configuration is provided for
31 this Windows setup only).
32
33.. note::
34 Some tools (i.e. python3 and CMake) must NOT be installed from
35 Cygwin and instead a native windows version is needed. Please see the
36 chapter `Windows + Cygwin setup`_ below.
TTornblom8a8b4522020-06-10 11:13:32 +020037 IAR requires Ubuntu 18.04 or later.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020038
39*********************
40Supported C compilers
41*********************
42
43To compile TF-M code, at least one of the supported compiler toolchains have to
44be available in the build environment. The currently supported compiler
45versions are:
Antonio de Angelis065ce4a2019-06-04 14:02:33 +010046
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020047 - Arm Compiler v6.10
48 - Arm Compiler v6.11
Gary Morrison81fb08c2019-05-30 10:14:35 -050049 - Arm Compiler v6.12
Ronald Cronc0c38fa2019-09-23 09:36:56 +020050 - Arm Compiler v6.13
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020051 - GNU Arm compiler v6.3.1
52 - GNU Arm compiler v7.3
TTornblom8a8b4522020-06-10 11:13:32 +020053 - IAR Arm compiler v8.42.x
54 - IAR Arm compiler v8.50.x
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020055
56.. Note::
Antonio de Angelis065ce4a2019-06-04 14:02:33 +010057 - The Arm compilers above are provided via Keil uVision |KEIL_VERSION|
58 or greater, DS-5 |DS5_VERSION| or greater, and Development Studio
59 |DEV_STUDIO_VERSION| or greater, or they can be downloaded as standalone
60 packages from
61 `here <https://developer.arm.com/products/software-development-tools/compilers/arm-compiler/downloads/version-6>`__.
62
63 - Arm compiler specific environment variable may need updating based
64 on specific products and licenses as explained in
65 `product-and-toolkit-configuration <https://developer.arm.com/products/software-development-tools/license-management/resources/product-and-toolkit-configuration>`__.
66
67 - The GNU Arm compiler can be downloaded from
68 `here <https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads>`__.
69 On the page select *GNU Arm Embedded Toolchain: 6-2017-q1-update*
70 or *GNU Arm Embedded Toolchain: 7-2018-q2-update*
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020071
TTornblom8a8b4522020-06-10 11:13:32 +020072 - The IAR Arm compilers above are provided via IAR Embedded Workbench (Windows) or
73 IAR build tools for linux.
74 For information, see
75 `here <https://www.iar.com/iar-embedded-workbench/#!?architecture=Arm>`__ or
76 `here <https://www.iar.com/iar-embedded-workbench/build-tools-for-linux/>`__.
77
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020078************************
79Supported CMake versions
80************************
81
82The build-system is CMake based and supports the following versions:
Antonio de Angelis065ce4a2019-06-04 14:02:33 +010083
84 - 3.7
85 - 3.10
86 - 3.11
87 - 3.12
88 - 3.13
89 - 3.14
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020090
91.. Note::
92 - Please use the latest build version available (i.e. 3.7.2 instead of
93 3.7.0).
94 While it is preferable to use the newest version this is not required
95 and any version from the above list should work.
96 - Recent versions of CMake can be downloaded from
97 https://cmake.org/download/, and older releases are available from
98 https://cmake.org/files.
Mingyang Sun1e590642019-09-24 10:46:21 +080099 - For Cygwin users, please use a native windows CMake version
100 instead of the version installed with Cygwin.
TTornblom8a8b4522020-06-10 11:13:32 +0200101 - IAR requires version 3.14 or later.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200102
103***************************
104Supported GNU make versions
105***************************
106
107The TF-M team builds using the "Unix Makefiles" generator of CMake and
108thus GNU make is needed for the build. On Linux please use the version
109available from the official repository of your distribution.
110
111On Windows the following binaries are supported:
Kevin Townsend0f869bb2019-08-01 21:06:48 +0200112
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200113 - GNU make v4.2.1 executable from Cygwin
114 - GNU make v4.2.1 executable from msys2
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100115 - GNU make v4.2 executable from DS5 |DS5_VERSION| (see <DS5 directory>/bin)
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200116
TTornblom8a8b4522020-06-10 11:13:32 +0200117CMake is quite tolerant to GNU make versions and basically any
118"reasonably recent" GNU make version should work.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200119
120CMake generators other than "Unix Makefiles" may work, but are not
121officially supported.
122
Minos Galanakisac6b06c2020-03-19 12:57:02 +0000123*********************
124External dependencies
125*********************
126
127In order to build TF-M the following external projects are required:
128
129 - `Mbed Crypto library <https://github.com/ARMmbed/mbed-crypto>`__ v3.0.1
130 is used as crypto library on the secure side
David Vincze91e7ac82020-06-25 15:30:32 +0200131 - `MCUboot <https://github.com/JuulLabs-OSS/mcuboot>`__ v1.6.0 is used as
132 the default bootloader in TF-M
Kevin Peng6710c822020-05-21 16:52:14 +0800133
134And the following TF-M projects as well:
135 - `TF-M tests <https://git.trustedfirmware.org/TF-M/tf-m-tests.git>`__
Minos Galanakisac6b06c2020-03-19 12:57:02 +0000136
137Each of the listed dependencies should be placed in a common root directory
138with trustedfirmware-m
139
140.. code-block:: bash
141
142 .
Minos Galanakisac6b06c2020-03-19 12:57:02 +0000143 ├── mbed-crypto
David Vincze91e7ac82020-06-25 15:30:32 +0200144 ├── mcuboot
Kevin Peng6710c822020-05-21 16:52:14 +0800145 ├── tf-m-tests
Minos Galanakisac6b06c2020-03-19 12:57:02 +0000146 └── trusted-firmware-m
147
Ludovic Barre8a77bdd2020-03-26 19:53:07 +0100148********************************************
149Tools for configuring and programming boards
150********************************************
151
Kevin Peng6710c822020-05-21 16:52:14 +0800152For stm32l5xx boards, `STM32_Programmer_CLI <https://www.st.com/en/development-tools/stm32cubeprog.html>`__
Ludovic Barre8a77bdd2020-03-26 19:53:07 +0100153is used to configure security protections and to write the code in internal flash.
154A version is available for Linux and Windows host machine.
155
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200156**************
157Example setups
158**************
159
160This section lists dependencies and some exact and tested steps to set-up a
161TF-M-m build environment under various OSes.
162
Mingyang Sun1e590642019-09-24 10:46:21 +0800163Ubuntu setup
164============
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200165
David Vincze4a6555e2019-11-06 09:32:13 +0100166Install the following tools:
167
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100168- DS-5 |DS5_VERSION|.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200169- Git tools v2.10.0
170- CMake (see the "Supported CMake versions" chapter)
171- GNU Make (see the "Supported make versions" chapter)
David Vincze4a6555e2019-11-06 09:32:13 +0100172- Python3 and the pip package manager (from Python 3.4 it's included)
Balint Matyid9abb492020-06-22 08:35:52 +0100173- Python3 packages: *cryptography, pyasn1, yaml, jinja2 v2.10, cbor v1.0.0, click, imgtool v1.6.0*
David Vincze4a6555e2019-11-06 09:32:13 +0100174
175 .. code-block:: bash
176
Balint Matyid9abb492020-06-22 08:35:52 +0100177 pip3 install --user cryptography pyasn1 pyyaml jinja2 cbor click imgtool
David Vincze4a6555e2019-11-06 09:32:13 +0100178
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200179- SRecord v1.58 (for Musca test chip boards)
180
181Setup a shell to enable compiler toolchain and CMake after installation.
182------------------------------------------------------------------------
183
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100184To import Arm Compiler v6.10 in your bash shell console:
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200185
186.. Warning::
187 Arm compiler specific environment variable may need updating based on
188 specific products and licenses as explained in
189 `product-and-toolkit-configuration <https://developer.arm.com/products/software-development-tools/license-management/resources/product-and-toolkit-configuration>`__.
190
191.. code-block:: bash
192
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100193 export PATH=<DS-5_PATH>/sw/ARMCompiler6.10/bin:$PATH
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100194 export ARM_TOOL_VARIANT=ult
195 export ARM_PRODUCT_PATH=<DS-5_PATH>/sw/mappings
196 export ARMLMD_LICENSE_FILE=<LICENSE_FILE_PATH>
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200197
198To import CMake in your bash shell console:
199
200.. code-block:: bash
201
TTornblom8a8b4522020-06-10 11:13:32 +0200202 export PATH=<CMake path>/bin:$PATH
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200203
204To import GNU Arm in your bash shell console:
205
206.. code-block:: bash
207
TTornblom8a8b4522020-06-10 11:13:32 +0200208 export PATH=<bash path>/bin:$PATH
209
210 To import IAR Arm compiler in your bash shell console:
211
212.. code-block:: bash
213
214 export PATH=<IAR compiler path>/bin:$PATH
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200215
Mingyang Sun1e590642019-09-24 10:46:21 +0800216Windows + Cygwin setup
217======================
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200218
David Vincze4a6555e2019-11-06 09:32:13 +0100219Install the following tools:
220
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100221- uVision |KEIL_VERSION| or DS-5 |DS5_VERSION| (DS-5 Ultimate Edition) which
222 provides the Arm Compiler v6.10 compiler or GNU Arm compiler v6.3.1.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200223- Git client latest version (https://git-scm.com/download/win)
Mingyang Sun1e590642019-09-24 10:46:21 +0800224- CMake (`native Windows version <https://cmake.org/download/>`__,
225 see the `Supported CMake versions`_ chapter)
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200226- `Cygwin <https://www.cygwin.com/>`__. Tests done with version 2.877
227 (64 bits)
228- GNU make should be installed by selecting appropriate package during
229 cygwin
230 installation.
David Vincze4a6555e2019-11-06 09:32:13 +0100231- Python3 `(native Windows version) <https://www.python.org/downloads/>`__ and
232 the pip package manager (from Python 3.4 it's included)
Balint Matyid9abb492020-06-22 08:35:52 +0100233- Python3 packages: *cryptography, pyasn1, yaml, jinja2 v2.10, cbor v1.0.0, click imgtool v1.6.0*
David Vincze4a6555e2019-11-06 09:32:13 +0100234
235 .. code-block:: bash
236
Balint Matyid9abb492020-06-22 08:35:52 +0100237 pip3 install --user cryptography pyasn1 pyyaml jinja2 cbor click imgtool
David Vincze4a6555e2019-11-06 09:32:13 +0100238
Jamie Foxb8a92702019-06-05 17:19:31 +0100239- `SRecord v1.63 <https://sourceforge.net/projects/srecord/>`__ (for Musca test
240 chip boards)
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200241
242Setup Cygwin to enable a compiler toolchain and CMake after installation.
243-------------------------------------------------------------------------
244
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100245If applicable, import Arm Compiler v6.10 in your shell console. To make this
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200246change permanent, add the command line into ~/.bashrc
247
248Armclang + DS-5
249^^^^^^^^^^^^^^^
250.. Note::
251
252 - Arm compiler specific environment variable may need updating based on
253 specific products and licenses as explained in
254 `product-and-toolkit-configuration <https://developer.arm.com/products/software-development-tools/license-management/resources/product-and-toolkit-configuration>`__.
255 - Arm licensing related environment variables must use Windows paths, and not
256 the Cygwin specific one relative to */cygrive*.
257
258.. code-block:: bash
259
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100260 export PATH=/cygdrive/c/<DS-5_PATH>/sw/ARMCompiler6.10/bin:$PATH
261 export ARM_PRODUCT_PATH=C:/<DS-5_PATH>/sw/mappings
262 export ARM_TOOL_VARIANT=ult
263 export ARMLMD_LICENSE_FILE=<LICENSE_FILE_PATH>
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200264
265Armclang + Keil MDK Arm
266^^^^^^^^^^^^^^^^^^^^^^^
267
268.. Note::
269
270 - Arm compiler specific environment variable may need updating based
271 on specific products and licenses as explained in
272 `product-and-toolkit-configuration <https://developer.arm.com/products/software-development-tools/license-management/resources/product-and-toolkit-configuration>`__.
273
274.. code-block:: bash
275
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100276 export PATH=/cygdrive/c/<uVision path>/ARM/ARMCLANG/bin:$PATH
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200277
278GNU Arm
279^^^^^^^
280
281If applicable, import GNU Arm compiler v6.3.1 in your shell console. To make
282this change permanent, add the command line into ~/.bashrc
283
284.. code-block:: bash
285
286 export PATH=<GNU Arm path>/bin:$PATH
287
288CMake
289^^^^^
290
291To import CMake in your bash shell console:
292
293.. code-block:: bash
294
295 export PATH=/cygdrive/c/<CMake path>/bin:$PATH
296
297Building the documentation
298==========================
299
300The build system is prepared to support generation of two documents.
301The Reference Manual which is Doxygen based, and the User Guide which is
302Sphinx based. Both document can be generated in HTML and PDF format.
303
304.. Note::
305
306 Support for document generation in the build environment is not mandatory.
307 Missing document generation tools will not block building the TF-M
308 firmware.
309
310To compile the TF-M Reference Manual
311------------------------------------
312
313The following additional tools are needed:
314
315 - Doxygen v1.8.0 or later
316 - Graphviz dot v2.38.0 or later
317 - PlantUML v1.2018.11 or later
318 - Java runtime environment 1.8 or later (for running PlantUML)
319
320For PDF generation the following tools are needed in addition to the
321above list:
322
323 - LaTeX
324 - PdfLaTeX
325
326Set-up the needed tools
327^^^^^^^^^^^^^^^^^^^^^^^
328
329Linux
330"""""
331.. code-block:: bash
332
333 sudo apt-get install -y doxygen graphviz default-jre
334 mkdir ~/plantuml
335 curl -L http://sourceforge.net/projects/plantuml/files/plantuml.jar/download --output ~/plantuml/plantuml.jar
336
337For PDF generation:
338
339.. code-block:: bash
340
341 sudo apt-get install -y doxygen-latex
342
343Windows + Cygwin
344""""""""""""""""
345
346Download and install the following tools:
347 - `Doxygen
348 1.8.8 <https://sourceforge.net/projects/doxygen/files/snapshots/doxygen-1.8-svn/windows/doxygenw20140924_1_8_8.zip/download>`__
349 - `Graphviz
350 2.38 <https://graphviz.gitlab.io/_pages/Download/windows/graphviz-2.38.msi>`__
351 - The Java runtime is part of the DS5 installation or can be
352 `downloaded from here <https://www.java.com/en/download/>`__
353 - `PlantUML <http://sourceforge.net/projects/plantuml/files/plantuml.jar/download>`__
354
355For PDF generation:
356
357 - `MikTeX <https://miktex.org/download>`__
358
359 .. Note::
360 When building the documentation the first time, MikTeX might prompt for
361 installing missing LaTeX components. Please allow the MikTeX package
362 manager to set-up these.
363
364Configure the shell
365^^^^^^^^^^^^^^^^^^^
366
367Linux
368"""""
369
370::
371
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100372 export PLANTUML_JAR_PATH=~/plantuml/plantuml.jar
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200373
374Windows + Cygwin
375""""""""""""""""
376
377Assumptions for the settings below:
378
379 - plantuml.jar is available at c:\\plantuml\\plantuml.jar
380 - doxygen, dot, and MikTeX binaries are available on the PATH.
381 - Java JVM is used from DS5 installation.
382
383::
384
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100385 export PLANTUML_JAR_PATH=c:/plantuml/plantuml.jar
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200386 export PATH=$PATH:/cygdrive/c/<DS-5 path>/sw/java/bin
387
388To compile the TF-M User Guide
389------------------------------
390
391The following additional tools are needed:
392
393 - Python3 and the following modules:
394 - Sphinx v1.7.9
395 - m2r v0.2.0
396 - sphinxcontrib-plantuml
397 - sphinx-rtd-theme
398 - Graphviz dot v2.38.0 or later
399 - PlantUML v1.2018.11 or later
400 - Java runtime environment 1.8 or later (for running PlantUML)
401
402For PDF generation the following tools are needed in addition to the
403above list:
404
405 - LaTeX
406 - PdfLaTeX
407
408Set-up the needed tools
409^^^^^^^^^^^^^^^^^^^^^^^
410
411Linux
412"""""
413
414.. code-block:: bash
415
416 sudo apt-get install -y python3 graphviz default-jre
417 pip --user install m2r Sphinx sphinx-rtd-theme sphinxcontrib-plantuml
418 mkdir ~/plantuml
419 curl -L http://sourceforge.net/projects/plantuml/files/plantuml.jar/download --output ~/plantuml/plantuml.jar
420
421For PDF generation:
422
423.. code-block:: bash
424
425 sudo apt-get install -y doxygen-latex
426
427Windows + Cygwin
428""""""""""""""""
429Download and install the following tools:
430 - Python3 `(native Windows version) <https://www.python.org/downloads/>`__
431 - Pip packages *m2r, Sphinx, sphinx-rtd-theme sphinxcontrib-plantuml*
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100432
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200433 .. code-block:: bash
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100434
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200435 pip --user install m2r Sphinx sphinx-rtd-theme sphinxcontrib-plantuml
Antonio de Angelis065ce4a2019-06-04 14:02:33 +0100436
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200437 - `Graphviz 2.38 <https://graphviz.gitlab.io/_pages/Download/windows/graphviz-2.38.msi>`__
438 - The Java runtime is part of the DS5 installation or can be
439 `downloaded from here <https://www.java.com/en/download/>`__
440 - `PlantUML <http://sourceforge.net/projects/plantuml/files/plantuml.jar/download>`__
441
442For PDF generation:
443
444- `MikTeX <https://miktex.org/download>`__
445
446.. Note::
447 When building the documentation the first time, MikTeX might
448 prompt for installing missing LaTeX components. Please allow the MikTeX
449 package manager to set-up these.
450
451Configure the shell
452^^^^^^^^^^^^^^^^^^^
453
454Linux
455"""""
456.. code-block:: bash
457
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100458 export PLANTUML_JAR_PATH=~/plantuml/plantuml.jar
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200459
460Windows + Cygwin
461""""""""""""""""
462
463Assumptions for the settings below:
464
465 - plantuml.jar is available at c:\\plantuml\\plantuml.jar
466 - doxygen, dot, and MikTeX binaries are available on the PATH.
467 - Java JVM is used from DS5 installation.
468
469.. code-block:: bash
470
Vikas Katariya1c361cd2019-08-23 15:05:02 +0100471 export PLANTUML_JAR_PATH=c:/plantuml/plantuml.jar
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200472 export PATH=$PATH:/cygdrive/c/<DS-5 path>/sw/java/bin
473
Galanakis, Minos757139a2019-11-11 15:00:11 +0000474**************************
475Tool & Dependency overview
476**************************
477
478To build the TF-M firmware the following tools are needed:
479
480.. csv-table:: Tool dependencies
481 :header: "Name", "Version", "Component"
482
483 "C compiler",See `Supported C compilers`_,"Firmware"
484 "CMake",See `Supported CMake versions`_,
485 "GNU Make",See `Supported GNU make versions`_,
Kevin Peng6710c822020-05-21 16:52:14 +0800486 "tf-m-tests",See `External dependencies`_,
Minos Galanakisac6b06c2020-03-19 12:57:02 +0000487 "mbed-crypto",See `External dependencies`_,
David Vincze91e7ac82020-06-25 15:30:32 +0200488 "MCUboot",See `External dependencies`_,
Galanakis, Minos757139a2019-11-11 15:00:11 +0000489 "Python",3.x,"Firmware, User Guide"
490 "yaml",,"Firmware"
491 "pyasn1",,"Firmware"
492 "jinja2",,"Firmware"
493 "cryptography",,"Firmware"
494 "cbor",,"Firmware"
Balint Matyi3bae8832020-06-22 15:34:12 +0200495 "click",,"Firmware"
Balint Matyid9abb492020-06-22 08:35:52 +0100496 "imgtool",,"Firmware"
Galanakis, Minos757139a2019-11-11 15:00:11 +0000497 "Doxygen",">1.8","Reference manual"
498 "Sphinx",">1.4","User Guide"
499 "sphinxcontrib-plantuml",,"User Guide"
500 "sphinx-trd-theme",,"User Guide"
501 "Git",,
502 "PlantUML",">v1.2018.11","Reference Manual, User Guide"
503 "Graphviz dot",">v2.38.0","Reference manual"
504 "Java runtime environment (JRE)",">1.8","Reference Manual, User Guide"
505 "LaTex",,"pdf version of Reference Manual and User Guide"
506 "PdfLaTex",,"pdf version of Reference Manual and User Guide"
507
508Dependency chain:
509
510.. uml::
511
512 @startuml
513 skinparam state {
514 BackgroundColor #92AEE0
515 FontColor black
516 FontSize 16
517 AttributeFontColor black
518 AttributeFontSize 16
519 BackgroundColor<<pdf>> #A293E2
520 BackgroundColor<<doc>> #90DED6
521 }
522 state fw as "Firmware" : TF-M binary
523 state c_comp as "C Compiler" : C99
524 state gmake as "GNU make"
525 state u_guide as "User Guide" <<doc>>
526 state refman as "Reference Manual" <<doc>>
527 state rtd_theme as "sphinx-rtd-theme" <<doc>>
528 state sphnix_puml as "sphinxcontrib-plantuml" <<doc>>
529 state JRE as "JRE" <<doc>> : Java Runtime Environment
530 state gwiz as "Graphwiz dot" <<doc>>
531 state Sphinx as "Sphinx" <<doc>>
532 state m2r as "m2r" <<doc>>
533 state PlantUML as "PlantUML" <<doc>>
534 state LaTex as "LaTex" <<pdf>>
535 state PdfLaTex as "PdfLaTex" <<<<pdf>>>>
536 state Doxygen as "Doxygen" <<doc>>
537
538 [*] --> fw
539 fw --> c_comp
540 fw --> CMake
541 CMake --> gmake
542 fw --> cryptography
543 fw --> pyasn1
544 fw --> yaml
545 fw --> jinja2
546 fw --> cbor
Balint Matyi3bae8832020-06-22 15:34:12 +0200547 fw --> click
Balint Matyid9abb492020-06-22 08:35:52 +0100548 fw --> imgtool
Galanakis, Minos757139a2019-11-11 15:00:11 +0000549 cryptography --> Python3
550 pyasn1 --> Python3
551 yaml --> Python3
552 jinja2 --> Python3
553 cbor --> Python3
Balint Matyi3bae8832020-06-22 15:34:12 +0200554 click --> Python3
Balint Matyid9abb492020-06-22 08:35:52 +0100555 imgtool --> Python3
Galanakis, Minos757139a2019-11-11 15:00:11 +0000556
557 [*] --> u_guide
558 u_guide --> Sphinx
559 Sphinx --> m2r
560 Sphinx --> rtd_theme
561 Sphinx --> sphnix_puml
562 m2r --> Python3
563 rtd_theme --> Python3
564 sphnix_puml --> Python3
565 Sphinx --> PlantUML
566 PlantUML --> JRE
567 PlantUML --> gwiz
568 Sphinx --> LaTex
569 LaTex --> PdfLaTex
570
571 [*] --> refman
572 refman --> Doxygen
573 Doxygen --> PlantUML
574 Doxygen --> LaTex
575 state Legend {
576 state x as "For PDF generation only" <<pdf>>
577 state y as "For document generation only" <<doc>>
578 state z as "Mandatory"
579 }
580
581 @enduml
582
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200583--------------
584
Ronald Cronc0c38fa2019-09-23 09:36:56 +0200585*Copyright (c) 2017-2020, Arm Limited. All rights reserved.*