@@ -151,19 +151,7 @@ package. There can be many different versions of the same tool available at the
151151- (` arduino ` , ` avrdude ` , ` 6.1 ` )
152152- .....
153153
154- Each tool version may come in different build flavours for different OS. Each flavour is listed under the ` systems `
155- array. In the example above ` avr-gcc ` comes with builds for:
156-
157- - ARM Linux 32-bit (` arm-linux-gnueabihf ` ),
158- - ARM Linux 64-bit (` aarch64-linux-gnu ` ),
159- - macOS 64-bit (` x86_64-apple-darwin14 ` ),
160- - Windows (` i686-mingw32 ` ),
161- - Linux 32-bit (` i686-linux-gnu ` ),
162- - Linux 64-bit (` x86_64-linux-gnu ` )
163-
164- The IDE will take care to install the right flavour based on the ` host ` value, or fail if a needed flavour is
165- missing.<br > Note that this information is not used to select the toolchain during compilation. If you want this
166- specific version to be used, you should use the notation ` {runtime.tools.TOOLNAME-VERSION.path} ` in the platform.txt.
154+ The ` systems ` field lists all available [ Tools Flavours] ( #tools-flavours-available-builds-made-for-different-os ) .
167155
168156The other fields are:
169157
@@ -176,6 +164,56 @@ The other fields are:
176164 macOS you can use the command ` shasum -a 256 filename ` to generate SHA-256 checksums. There are free options for
177165 Windows, including md5deep. There are also online utilities for generating checksums.
178166
167+ #### Tools flavours (available builds made for different OS)
168+
169+ Each tool version may come in different build flavours for different OS. Each flavour is listed under the ` systems `
170+ array. The IDE will take care to install the right flavour for the user's OS by matching the ` host ` value with the
171+ following table or fail if a needed flavour is missing.
172+
173+ | OS flavour | ` host ` regexp value | ` host ` suggested value |
174+ | ------------ | ------------------------------------- | ---------------------------------- |
175+ | Linux 32 | ` i[3456]86-.*linux-gnu ` | ` i686-linux-gnu ` |
176+ | Linux 64 | ` x86_64-.*linux-gnu ` | ` x86_64-linux-gnu ` |
177+ | Linux Arm | ` arm.*-linux-gnueabihf ` | ` arm-linux-gnueabihf ` |
178+ | Linux Arm64 | ` (aarch64\|arm64)-linux-gnu ` | ` aarch64-linux-gnu ` |
179+ | Windows 32 | ` i[3456]86-.*(mingw32\|cygwin) ` | ` i686-mingw32 ` or ` i686-cygwin ` |
180+ | Windows 64 | ` (amd64\|x86_64)-.*(mingw32\|cygwin) ` | ` x86_64-migw32 ` or ` x86_64-cygwin ` |
181+ | MacOSX 32 | ` i[3456]86-apple-darwin.* ` | ` i686-apple-darwin ` |
182+ | MacOSX 64 | ` x86_64-apple-darwin.* ` | ` x86_64-apple-darwin ` |
183+ | MacOSX Arm64 | ` arm64-apple-darwin.* ` | ` arm64-apple-darwin ` |
184+ | FreeBSD 32 | ` i?[3456]86-freebsd[0-9]* ` | ` i686-freebsd ` |
185+ | FreeBSD 64 | ` amd64-freebsd[0-9]* ` | ` amd64-freebsd ` |
186+ | FreeBSD Arm | ` arm.*-freebsd[0-9]* ` | ` arm-freebsd ` |
187+
188+ The ` host ` value is matched with the regexp, this means that a more specific value for the ` host ` field is allowed (for
189+ example you may write ` x86_64-apple-darwin14.1 ` for MacOSX instead of the suggested ` x86_64-apple-darwin ` ), by the way,
190+ we recommend to keep it simple and stick to the suggested value in the table.
191+
192+ Some OS allows to run different flavours:
193+
194+ | The OS... | ...may also run builds for |
195+ | ------------ | -------------------------- |
196+ | Windows 64 | Windows 32 |
197+ | MacOSX 64 | MacOSX 32 |
198+ | MacOSX Arm64 | MacOSX 64 or MacOSX 32 |
199+
200+ This is taken into account when the tools are downloaded (for example if we are on a Windows 64 machine and the needed
201+ tool is available only for the Windows 32 flavour, then the Windows 32 flavour will be downloaded and used).
202+
203+ For completeness, the previous example ` avr-gcc ` comes with builds for:
204+
205+ - ARM Linux 32 (` arm-linux-gnueabihf ` ),
206+ - ARM Linux 64 (` aarch64-linux-gnu ` ),
207+ - MacOSX 64 (` x86_64-apple-darwin14 ` ),
208+ - Windows 32 (` i686-mingw32 ` ),
209+ - Linux 32 (` i686-linux-gnu ` ),
210+ - Linux 64 (` x86_64-linux-gnu ` )
211+ - MacOSX Arm64 will use the MacOSX 64 flavour
212+ - Windows 64 will use the Windows 32 flavour
213+
214+ Note: this information is not used to select the toolchain during compilation. If you want a specific version to be
215+ used, you should use the notation ` {runtime.tools.TOOLNAME-VERSION.path} ` in the platform.txt.
216+
179217### Platforms definitions
180218
181219Finally, let's see how ` PLATFORMS ` are made.
0 commit comments