@@ -151,19 +151,7 @@ package. There can be many different versions of the same tool available at the
151
151
- (` arduino ` , ` avrdude ` , ` 6.1 ` )
152
152
- .....
153
153
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 ) .
167
155
168
156
The other fields are:
169
157
@@ -176,6 +164,56 @@ The other fields are:
176
164
macOS you can use the command ` shasum -a 256 filename ` to generate SHA-256 checksums. There are free options for
177
165
Windows, including md5deep. There are also online utilities for generating checksums.
178
166
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
+
179
217
### Platforms definitions
180
218
181
219
Finally, let's see how ` PLATFORMS ` are made.
0 commit comments