]>
Commit | Line | Data |
---|---|---|
2d523c23 EA |
1 | # |
2 | ||
6a53b729 | 3 | mainmenu "Buildroot $BR2_VERSION Configuration" |
2d523c23 EA |
4 | |
5 | config BR2_HAVE_DOT_CONFIG | |
6 | bool | |
7 | default y | |
8 | ||
f5b8cd4a BRF |
9 | config BR2_VERSION |
10 | string | |
56c68bcd | 11 | option env="BR2_VERSION_FULL" |
f5b8cd4a | 12 | |
1d4104f0 FP |
13 | config BR2_HOSTARCH |
14 | string | |
15 | option env="HOSTARCH" | |
16 | ||
a4239f7f TP |
17 | config BR2_EXTERNAL |
18 | string | |
19 | option env="BR2_EXTERNAL" | |
20 | ||
4802db3d YM |
21 | config BR2_BUILD_DIR |
22 | string | |
23 | option env="BUILD_DIR" | |
24 | ||
12825f7a AV |
25 | # Hidden config symbols for packages to check system gcc version |
26 | config BR2_HOST_GCC_VERSION | |
27 | string | |
28 | option env="HOST_GCC_VERSION" | |
29 | ||
8fce6d7c BK |
30 | config BR2_HOST_GCC_AT_LEAST_4_6 |
31 | bool | |
32 | default y if BR2_HOST_GCC_VERSION = "4 6" | |
33 | ||
12825f7a AV |
34 | config BR2_HOST_GCC_AT_LEAST_4_7 |
35 | bool | |
36 | default y if BR2_HOST_GCC_VERSION = "4 7" | |
8fce6d7c | 37 | select BR2_HOST_GCC_AT_LEAST_4_6 |
12825f7a AV |
38 | |
39 | config BR2_HOST_GCC_AT_LEAST_4_8 | |
40 | bool | |
41 | default y if BR2_HOST_GCC_VERSION = "4 8" | |
42 | select BR2_HOST_GCC_AT_LEAST_4_7 | |
43 | ||
44 | config BR2_HOST_GCC_AT_LEAST_4_9 | |
45 | bool | |
46 | default y if BR2_HOST_GCC_VERSION = "4 9" | |
47 | select BR2_HOST_GCC_AT_LEAST_4_8 | |
48 | ||
49 | config BR2_HOST_GCC_AT_LEAST_5 | |
50 | bool | |
51 | default y if BR2_HOST_GCC_VERSION = "5" | |
52 | select BR2_HOST_GCC_AT_LEAST_4_9 | |
53 | ||
3d217578 MB |
54 | config BR2_HOST_GCC_AT_LEAST_6 |
55 | bool | |
56 | default y if BR2_HOST_GCC_VERSION = "6" | |
57 | select BR2_HOST_GCC_AT_LEAST_5 | |
58 | ||
aac3d2b4 MH |
59 | # Hidden boolean selected by packages in need of Java in order to build |
60 | # (example: xbmc) | |
0721c713 | 61 | config BR2_NEEDS_HOST_JAVA |
aac3d2b4 MH |
62 | bool |
63 | ||
8f9da282 MH |
64 | # Hidden boolean selected by packages in need of javac in order to build |
65 | # (example: classpath) | |
66 | config BR2_NEEDS_HOST_JAVAC | |
67 | bool | |
68 | ||
69 | # Hidden boolean selected by packages in need of jar in order to build | |
70 | # (example: classpath) | |
71 | config BR2_NEEDS_HOST_JAR | |
72 | bool | |
73 | ||
70d6037e TP |
74 | # Hidden boolean selected by pre-built packages for x86, when they |
75 | # need to run on x86-64 machines (example: pre-built external | |
76 | # toolchains, binary tools like SAM-BA, etc.). | |
77 | config BR2_HOSTARCH_NEEDS_IA32_LIBS | |
78 | bool | |
79 | ||
0e4bc502 TP |
80 | # Hidden boolean selected by packages that need to build 32 bits |
81 | # binaries with the host compiler, even on 64 bits build machines (e.g | |
82 | # bootloaders). | |
83 | config BR2_HOSTARCH_NEEDS_IA32_COMPILER | |
84 | bool | |
85 | ||
79ee3c1f | 86 | source "arch/Config.in" |
7d8a59b4 | 87 | |
8e5fb3fb EA |
88 | menu "Build options" |
89 | ||
15929265 TP |
90 | menu "Commands" |
91 | ||
2d523c23 | 92 | config BR2_WGET |
8e5fb3fb | 93 | string "Wget command" |
6871b165 | 94 | default "wget --passive-ftp -nd -t 3" |
2d523c23 | 95 | |
cf71111b MP |
96 | config BR2_SVN |
97 | string "Subversion (svn) command" | |
98 | default "svn" | |
e30cf26c | 99 | |
cf71111b MP |
100 | config BR2_BZR |
101 | string "Bazaar (bzr) command" | |
102 | default "bzr" | |
df03cdaf | 103 | |
85f54fbe | 104 | config BR2_GIT |
cf71111b MP |
105 | string "Git command" |
106 | default "git" | |
85f54fbe | 107 | |
15eb1faf GZ |
108 | config BR2_CVS |
109 | string "CVS command" | |
110 | default "cvs" | |
111 | ||
2690e76a DW |
112 | config BR2_LOCALFILES |
113 | string "Local files retrieval command" | |
114 | default "cp" | |
115 | ||
c61788f0 TDS |
116 | config BR2_SCP |
117 | string "Secure copy (scp) command" | |
118 | default "scp" | |
119 | ||
120 | config BR2_SSH | |
121 | string "Secure shell (ssh) command" | |
122 | default "ssh" | |
123 | ||
f694c076 TDS |
124 | config BR2_HG |
125 | string "Mercurial (hg) command" | |
126 | default "hg" | |
127 | ||
859b9137 BRF |
128 | config BR2_ZCAT |
129 | string "zcat command" | |
a9612bfd | 130 | default "gzip -d -c" |
859b9137 | 131 | help |
65f9b937 MK |
132 | Command to be used to extract a gzip'ed file to stdout. zcat |
133 | is identical to gunzip -c except that the former may not be | |
134 | available on your system. | |
a9612bfd BRF |
135 | Default is "gzip -d -c" |
136 | Other possible values include "gunzip -c" or "zcat". | |
6e2823c1 BRF |
137 | |
138 | config BR2_BZCAT | |
139 | string "bzcat command" | |
140 | default "bzcat" | |
141 | help | |
142 | Command to be used to extract a bzip2'ed file to stdout. | |
143 | bzcat is identical to bunzip2 -c except that the former may | |
144 | not be available on your system. | |
145 | Default is "bzcat" | |
146 | Other possible values include "bunzip2 -c" or "bzip2 -d -c". | |
859b9137 | 147 | |
177b4b4a AN |
148 | config BR2_XZCAT |
149 | string "xzcat command" | |
150 | default "xzcat" | |
151 | help | |
152 | Command to be used to extract a xz'ed file to stdout. | |
153 | Default is "xzcat" | |
154 | ||
ce90aae1 BRF |
155 | config BR2_TAR_OPTIONS |
156 | string "Tar options" | |
7df4de6c BRF |
157 | default "" |
158 | help | |
159 | Options to pass to tar when extracting the sources. | |
160 | E.g. " -v --exclude='*.svn*'" to exclude all .svn internal files | |
161 | and to be verbose. | |
ce90aae1 | 162 | |
15929265 TP |
163 | endmenu |
164 | ||
4e0170d6 AVEM |
165 | config BR2_DEFCONFIG_FROM_ENV |
166 | string | |
167 | option env="BR2_DEFCONFIG" | |
168 | ||
169 | config BR2_DEFCONFIG | |
170 | string "Location to save buildroot config" | |
171 | default BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != "" | |
172 | default "$(CONFIG_DIR)/defconfig" | |
173 | help | |
65f9b937 MK |
174 | When running 'make savedefconfig', the defconfig file will be |
175 | saved in this location. | |
4e0170d6 | 176 | |
59a63a91 MF |
177 | config BR2_DL_DIR |
178 | string "Download dir" | |
be695dcc | 179 | default "$(TOPDIR)/dl" |
59a63a91 MF |
180 | help |
181 | Directory to store all the source files that we need to fetch. | |
6768021c | 182 | If the Linux shell environment has defined the BR2_DL_DIR |
65f9b937 MK |
183 | environment variable, then this overrides this configuration |
184 | item. | |
59a63a91 | 185 | |
be695dcc | 186 | The default is $(TOPDIR)/dl |
4b0d5a80 | 187 | |
a2b4f7fb GZ |
188 | config BR2_HOST_DIR |
189 | string "Host dir" | |
190 | default "$(BASE_DIR)/host" | |
191 | help | |
65f9b937 MK |
192 | Directory to store all the binary files that are built for the |
193 | host. This includes the cross compilation toolchain when | |
194 | building the internal buildroot toolchain. | |
a2b4f7fb GZ |
195 | |
196 | The default is $(BASE_DIR)/host | |
197 | ||
8008007c TP |
198 | menu "Mirrors and Download locations" |
199 | ||
200 | config BR2_PRIMARY_SITE | |
201 | string "Primary download site" | |
202 | default "" | |
203 | help | |
65f9b937 MK |
204 | Primary site to download from. If this option is set then |
205 | buildroot will try to download package source first from this | |
206 | site and try the default if the file is not found. | |
4a9d9807 JP |
207 | Valid URIs are: |
208 | - URIs recognized by $(WGET) | |
209 | - local URIs of the form file://absolutepath | |
210 | - scp URIs of the form scp://[user@]host:path. | |
8008007c | 211 | |
5a83e084 TDS |
212 | config BR2_PRIMARY_SITE_ONLY |
213 | bool "Only allow downloads from primary download site" | |
214 | depends on BR2_PRIMARY_SITE != "" | |
215 | help | |
216 | If this option is enabled, downloads will only be attempted | |
217 | from the primary download site. Other locations, like the | |
218 | package's official download location or the backup download | |
65f9b937 MK |
219 | site, will not be considered. Therefore, if the package is not |
220 | present on the primary site, the download fails. | |
5a83e084 | 221 | |
65f9b937 MK |
222 | This is useful for project developers who want to ensure that |
223 | the project can be built even if the upstream tarball | |
5a83e084 TDS |
224 | locations disappear. |
225 | ||
226 | if !BR2_PRIMARY_SITE_ONLY | |
227 | ||
8008007c TP |
228 | config BR2_BACKUP_SITE |
229 | string "Backup download site" | |
4a9eb20d | 230 | default "http://sources.buildroot.net" |
8008007c | 231 | help |
65f9b937 MK |
232 | Backup site to download from. If this option is set then |
233 | buildroot will fall back to download package sources from here | |
234 | if the normal location fails. | |
8008007c TP |
235 | |
236 | config BR2_KERNEL_MIRROR | |
237 | string "Kernel.org mirror" | |
de76cb7d | 238 | default "https://cdn.kernel.org/pub" |
8008007c | 239 | help |
de76cb7d | 240 | kernel.org is mirrored on a number of servers around the |
65f9b937 | 241 | world. The following allows you to select your preferred |
de76cb7d AB |
242 | mirror. By default, a CDN is used, which automatically |
243 | redirects to a mirror geographically close to you. | |
8008007c | 244 | |
65f9b937 MK |
245 | Have a look on the kernel.org site for a list of mirrors, then |
246 | enter the URL to the base directory. Examples: | |
8008007c TP |
247 | |
248 | http://www.XX.kernel.org/pub (XX = country code) | |
249 | http://mirror.aarnet.edu.au/pub/ftp.kernel.org | |
250 | ||
251 | config BR2_GNU_MIRROR | |
252 | string "GNU Software mirror" | |
3999f0ad | 253 | default "http://ftpmirror.gnu.org" |
8008007c | 254 | help |
3999f0ad | 255 | GNU has multiple software mirrors scattered around the |
65f9b937 | 256 | world. The following allows you to select your preferred |
3999f0ad TP |
257 | mirror. By default, a generic address is used, which |
258 | automatically selects an up-to-date and local mirror. | |
8008007c | 259 | |
65f9b937 MK |
260 | Have a look on the gnu.org site for a list of mirrors, then |
261 | enter the URL to the base directory. Examples: | |
8008007c TP |
262 | |
263 | http://ftp.gnu.org/pub/gnu | |
264 | http://mirror.aarnet.edu.au/pub/gnu | |
265 | ||
72afb294 FP |
266 | config BR2_LUAROCKS_MIRROR |
267 | string "LuaRocks mirror" | |
0b8411af | 268 | default "http://rocks.moonscript.org" |
72afb294 FP |
269 | help |
270 | LuaRocks repository. | |
271 | ||
272 | See http://luarocks.org | |
273 | ||
9fbb1699 FP |
274 | config BR2_CPAN_MIRROR |
275 | string "CPAN mirror (Perl packages)" | |
32567d12 | 276 | default "http://cpan.metacpan.org" |
9fbb1699 | 277 | help |
65f9b937 MK |
278 | CPAN (Comprehensive Perl Archive Network) is a repository of |
279 | Perl packages. It has multiple software mirrors scattered | |
9fbb1699 FP |
280 | around the world. This option allows you to select a mirror. |
281 | ||
282 | The list of mirrors is available at: | |
283 | http://search.cpan.org/mirror | |
284 | ||
3318a5a7 YM |
285 | endif |
286 | ||
8008007c | 287 | endmenu |
aa41d377 | 288 | |
8e5fb3fb | 289 | config BR2_JLEVEL |
5016aa02 NL |
290 | int "Number of jobs to run simultaneously (0 for auto)" |
291 | default "0" | |
8e5fb3fb | 292 | help |
65f9b937 MK |
293 | Number of jobs to run simultaneously. If 0, determine |
294 | automatically according to number of CPUs on the host system. | |
93ab6d30 | 295 | |
17b66aff TP |
296 | config BR2_CCACHE |
297 | bool "Enable compiler cache" | |
298 | help | |
65f9b937 MK |
299 | This option will enable the use of ccache, a compiler cache. |
300 | It will cache the result of previous builds to speed up future | |
301 | builds. By default, the cache is stored in | |
17b66aff TP |
302 | $HOME/.buildroot-ccache. |
303 | ||
f044e037 | 304 | Note that Buildroot does not try to invalidate the cache |
65f9b937 MK |
305 | contents when the compiler changes in an incompatible way. |
306 | Therefore, if you make a change to the compiler version and/or | |
307 | configuration, you are responsible for purging the ccache | |
308 | cache by removing the $HOME/.buildroot-ccache directory. | |
f044e037 | 309 | |
dd79f2df DM |
310 | if BR2_CCACHE |
311 | ||
43329076 TDS |
312 | config BR2_CCACHE_DIR |
313 | string "Compiler cache location" | |
43329076 TDS |
314 | default "$(HOME)/.buildroot-ccache" |
315 | help | |
316 | Where ccache should store cached files. | |
317 | ||
dd79f2df DM |
318 | config BR2_CCACHE_INITIAL_SETUP |
319 | string "Compiler cache initial setup" | |
320 | help | |
65f9b937 MK |
321 | Initial ccache settings to apply, such as --max-files or |
322 | --max-size. | |
dd79f2df | 323 | |
65f9b937 MK |
324 | For example, if your project is known to require more space |
325 | than the default max cache size, then you might want to | |
326 | increase the cache size to a suitable amount using the -M | |
327 | (--max-size) option. | |
dd79f2df | 328 | |
65f9b937 MK |
329 | The string you specify here is passed verbatim to ccache. |
330 | Refer to ccache documentation for more details. | |
dd79f2df | 331 | |
65f9b937 MK |
332 | These initial settings are applied after ccache has been |
333 | compiled. | |
dd79f2df | 334 | |
1e97b278 AV |
335 | config BR2_CCACHE_USE_BASEDIR |
336 | bool "Use relative paths" | |
337 | default y | |
338 | help | |
339 | Allow ccache to convert absolute paths within the output | |
340 | directory into relative paths. | |
341 | ||
65f9b937 MK |
342 | During the build, many -I include directives are given with an |
343 | absolute path. These absolute paths end up in the hashes that | |
344 | are computed by ccache. Therefore, when you build from a | |
345 | different directory, the hash will be different and the cached | |
346 | object will not be used. | |
1e97b278 AV |
347 | |
348 | To improve cache performance, set this option to y. This | |
349 | allows ccache to rewrite absolute paths within the output | |
65f9b937 MK |
350 | directory into relative paths. Note that only paths within the |
351 | output directory will be rewritten; therefore, if you change | |
352 | BR2_HOST_DIR to point outside the output directory and | |
1e97b278 AV |
353 | subsequently move it to a different location, this will lead |
354 | to cache misses. | |
355 | ||
356 | This option has as a result that the debug information in the | |
357 | object files also has only relative paths. Therefore, make | |
358 | sure you cd to the build directory before starting gdb. See | |
65f9b937 MK |
359 | the section "COMPILING IN DIFFERENT DIRECTORIES" in the ccache |
360 | manual for more information. | |
1e97b278 | 361 | |
dd79f2df DM |
362 | endif |
363 | ||
7779fd74 | 364 | config BR2_DEPRECATED |
8515ef02 | 365 | bool "Show options and packages that are deprecated or obsolete" |
7779fd74 | 366 | help |
8515ef02 GZ |
367 | This option shows outdated/obsolete versions of packages and |
368 | options that are otherwise hidden. | |
ba7c48f3 | 369 | |
ba4ad9d2 TDS |
370 | if BR2_DEPRECATED |
371 | ||
429a1164 VOR |
372 | config BR2_DEPRECATED_SINCE_2015_11 |
373 | bool | |
374 | default y | |
375 | ||
07941f42 GZ |
376 | config BR2_DEPRECATED_SINCE_2016_02 |
377 | bool | |
378 | default y | |
379 | ||
bca107ee GZ |
380 | config BR2_DEPRECATED_SINCE_2016_05 |
381 | bool | |
382 | default y | |
383 | ||
995da6ea JF |
384 | config BR2_DEPRECATED_SINCE_2016_08 |
385 | bool | |
386 | default y | |
387 | ||
ac1f324a GZ |
388 | config BR2_DEPRECATED_SINCE_2016_11 |
389 | bool | |
390 | default y | |
391 | ||
ba4ad9d2 TDS |
392 | endif |
393 | ||
41f6b79f JV |
394 | config BR2_ENABLE_DEBUG |
395 | bool "build packages with debugging symbols" | |
41f6b79f | 396 | help |
a9a34676 TP |
397 | Build packages with debugging symbols enabled. All libraries |
398 | and binaries in the 'staging' directory will have debugging | |
399 | symbols, which allows remote debugging even if libraries and | |
400 | binaries are stripped on the target. Whether libraries and | |
401 | binaries are stripped on the target is controlled by the | |
402 | BR2_STRIP_* options below. | |
41f6b79f JV |
403 | |
404 | if BR2_ENABLE_DEBUG | |
405 | choice | |
406 | prompt "gcc debug level" | |
407 | default BR2_DEBUG_2 | |
408 | help | |
409 | Set the debug level for gcc | |
410 | ||
411 | config BR2_DEBUG_1 | |
412 | bool "debug level 1" | |
413 | help | |
65f9b937 MK |
414 | Debug level 1 produces minimal information, enough for making |
415 | backtraces in parts of the program that you don't plan to | |
416 | debug. This includes descriptions of functions and external | |
417 | variables, but no information about local variables and no | |
418 | line numbers. | |
41f6b79f JV |
419 | |
420 | config BR2_DEBUG_2 | |
421 | bool "debug level 2" | |
422 | help | |
423 | The default gcc debug level is 2 | |
424 | ||
425 | config BR2_DEBUG_3 | |
426 | bool "debug level 3" | |
427 | help | |
65f9b937 MK |
428 | Level 3 includes extra information, such as all the macro |
429 | definitions present in the program. Some debuggers support | |
430 | macro expansion when you use -g3. | |
41f6b79f JV |
431 | endchoice |
432 | endif | |
433 | ||
bbd251a0 | 434 | choice |
a9a34676 | 435 | prompt "strip command for binaries on target" |
bbd251a0 | 436 | default BR2_STRIP_strip |
bbd251a0 BRF |
437 | |
438 | config BR2_STRIP_strip | |
439 | bool "strip" | |
9f2bf30e | 440 | depends on !BR2_PACKAGE_HOST_ELF2FLT |
bbd251a0 | 441 | help |
a9a34676 | 442 | Binaries and libraries in the target filesystem will be |
65f9b937 MK |
443 | stripped using the normal 'strip' command. This allows to save |
444 | space, mainly by removing debugging symbols. Debugging symbols | |
445 | on the target are needed for native debugging, but not when | |
446 | remote debugging is used. | |
85f54fbe | 447 | |
bbd251a0 BRF |
448 | config BR2_STRIP_none |
449 | bool "none" | |
450 | help | |
65f9b937 | 451 | Do not strip binaries and libraries in the target filesystem. |
bbd251a0 BRF |
452 | endchoice |
453 | ||
2a97045d TDS |
454 | config BR2_STRIP_EXCLUDE_FILES |
455 | string "executables that should not be stripped" | |
456 | depends on !BR2_STRIP_none | |
457 | default "" | |
458 | help | |
65f9b937 MK |
459 | You may specify a space-separated list of binaries and |
460 | libraries here that should not be stripped on the target. | |
2a97045d TDS |
461 | |
462 | config BR2_STRIP_EXCLUDE_DIRS | |
463 | string "directories that should be skipped when stripping" | |
464 | depends on !BR2_STRIP_none | |
465 | default "" | |
466 | help | |
65f9b937 MK |
467 | You may specify a space-separated list of directories that |
468 | should be skipped when stripping. Binaries and libraries in | |
469 | these directories will not be touched. The directories should | |
470 | be specified relative to the target directory, without leading | |
471 | slash. | |
2a97045d | 472 | |
41f6b79f JV |
473 | choice |
474 | prompt "gcc optimization level" | |
7eb796ba | 475 | default BR2_OPTIMIZE_S |
923f42a3 | 476 | help |
41f6b79f JV |
477 | Set the optimization level for gcc |
478 | ||
479 | config BR2_OPTIMIZE_0 | |
480 | bool "optimization level 0" | |
481 | help | |
02a623dd | 482 | Do not optimize. This is the default. |
41f6b79f JV |
483 | |
484 | config BR2_OPTIMIZE_1 | |
485 | bool "optimization level 1" | |
486 | help | |
65f9b937 MK |
487 | Optimize. Optimizing compilation takes somewhat more time, and |
488 | a lot more memory for a large function. With -O, the compiler | |
489 | tries to reduce code size and execution time, without | |
490 | performing any optimizations that take a great deal of | |
491 | compilation time. -O turns on the following optimization | |
02a623dd PK |
492 | flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability |
493 | -fcprop-registers -floop-optimize -fif-conversion | |
494 | -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts | |
495 | -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename | |
65f9b937 MK |
496 | -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants. -O |
497 | also turns on -fomit-frame-pointer on machines where doing so | |
498 | does not interfere with debugging. | |
41f6b79f JV |
499 | |
500 | config BR2_OPTIMIZE_2 | |
501 | bool "optimization level 2" | |
502 | help | |
65f9b937 MK |
503 | Optimize even more. GCC performs nearly all supported |
504 | optimizations that do not involve a space-speed tradeoff. The | |
505 | compiler does not perform loop unrolling or function inlining | |
506 | when you specify -O2. As compared to -O, this option increases | |
507 | both compilation time and the performance of the generated | |
508 | code. -O2 turns on all optimization flags specified by -O. It | |
509 | also turns on the following optimization flags: | |
510 | -fthread-jumps -fcrossjumping -foptimize-sibling-calls | |
02a623dd | 511 | -fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm |
65f9b937 MK |
512 | -fexpensive-optimizations -fstrength-reduce |
513 | -frerun-cse-after-loop -frerun-loop-opt -fcaller-saves | |
514 | -fpeephole2 -fschedule-insns -fschedule-insns2 | |
515 | -fsched-interblock -fsched-spec -fregmove -fstrict-aliasing | |
516 | -fdelete-null-pointer-checks -freorder-blocks | |
517 | -freorder-functions -falign-functions -falign-jumps | |
518 | -falign-loops -falign-labels -ftree-vrp -ftree-pre. Please | |
519 | note the warning under -fgcse about invoking -O2 on programs | |
41f6b79f JV |
520 | that use computed gotos. |
521 | ||
522 | config BR2_OPTIMIZE_3 | |
523 | bool "optimization level 3" | |
524 | help | |
65f9b937 MK |
525 | Optimize yet more. -O3 turns on all optimizations specified by |
526 | -O2 and also turns on the -finline-functions, -funswitch-loops | |
527 | and -fgcse-after-reload options. | |
41f6b79f | 528 | |
5ff84592 MK |
529 | config BR2_OPTIMIZE_G |
530 | bool "optimize for debugging" | |
531 | depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 | |
532 | help | |
533 | Optimize for debugging. This enables optimizations that do not | |
65f9b937 MK |
534 | interfere with debugging. It should be the optimization level |
535 | of choice for the standard edit-compile-debug cycle, offering | |
536 | a reasonable level of optimization while maintaining fast | |
537 | compilation and a good debugging experience. | |
41f6b79f JV |
538 | |
539 | config BR2_OPTIMIZE_S | |
540 | bool "optimize for size" | |
541 | help | |
65f9b937 MK |
542 | Optimize for size. -Os enables all -O2 optimizations that do |
543 | not typically increase code size. It also performs further | |
544 | optimizations designed to reduce code size. -Os disables the | |
545 | following optimization flags: -falign-functions -falign-jumps | |
546 | -falign-loops -falign-labels -freorder-blocks | |
547 | -freorder-blocks-and-partition -fprefetch-loop-arrays | |
41f6b79f | 548 | -ftree-vect-loop-version |
02a623dd | 549 | |
41f6b79f | 550 | endchoice |
923f42a3 | 551 | |
09a1a10f PH |
552 | config BR2_GOOGLE_BREAKPAD_ENABLE |
553 | bool "Enable google-breakpad support" | |
554 | select BR2_PACKAGE_GOOGLE_BREAKPAD | |
555 | depends on BR2_INSTALL_LIBSTDCPP | |
556 | depends on BR2_TOOLCHAIN_USES_GLIBC | |
557 | depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS | |
558 | help | |
65f9b937 MK |
559 | This option will enable the use of google breakpad, a library |
560 | and tool suite that allows you to distribute an application to | |
561 | users with compiler-provided debugging information removed, | |
562 | record crashes in compact "minidump" files, send them back to | |
563 | your server and produce C and C++ stack traces from these | |
564 | minidumps. Breakpad can also write minidumps on request for | |
565 | programs that have not crashed. | |
09a1a10f PH |
566 | |
567 | if BR2_GOOGLE_BREAKPAD_ENABLE | |
568 | ||
569 | config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES | |
570 | string "List of executables and libraries to extract symbols from" | |
571 | default "" | |
572 | help | |
573 | You may specify a space-separated list of binaries and | |
574 | libraries with full paths relative to $(TARGET_DIR) of which | |
575 | debug symbols will be dumped for further use with google | |
576 | breakpad. | |
577 | ||
578 | A directory structure that can be used by minidump-stackwalk | |
579 | will be created at: | |
580 | ||
581 | $(STAGING_DIR)/usr/share/google-breakpad-symbols | |
582 | ||
583 | endif | |
584 | ||
d29c7196 | 585 | choice |
c5866be0 | 586 | bool "build code with Stack Smashing Protection" |
d29c7196 | 587 | default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy |
c5866be0 TP |
588 | depends on BR2_TOOLCHAIN_HAS_SSP |
589 | help | |
d29c7196 SN |
590 | Enable stack smashing protection support using GCC's |
591 | -fstack-protector option family. | |
c5866be0 | 592 | |
65f9b937 MK |
593 | See |
594 | http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt | |
bed4e278 | 595 | for details. |
c5866be0 | 596 | |
65f9b937 MK |
597 | Note that this requires the toolchain to have SSP support. |
598 | This is always the case for glibc and eglibc toolchain, but is | |
599 | optional in uClibc toolchains. | |
c5866be0 | 600 | |
d29c7196 SN |
601 | config BR2_SSP_NONE |
602 | bool "None" | |
603 | help | |
604 | Disable stack-smashing protection. | |
605 | ||
606 | config BR2_SSP_REGULAR | |
607 | bool "-fstack-protector" | |
608 | help | |
609 | Emit extra code to check for buffer overflows, such as stack | |
610 | smashing attacks. This is done by adding a guard variable to | |
611 | functions with vulnerable objects. This includes functions | |
612 | that call alloca, and functions with buffers larger than 8 | |
613 | bytes. The guards are initialized when a function is entered | |
614 | and then checked when the function exits. If a guard check | |
615 | fails, an error message is printed and the program exits. | |
616 | ||
617 | config BR2_SSP_STRONG | |
618 | bool "-fstack-protector-strong" | |
619 | depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 | |
620 | help | |
621 | Like -fstack-protector but includes additional functions to be | |
622 | protected - those that have local array definitions, or have | |
623 | references to local frame addresses. | |
624 | ||
625 | comment "Stack Smashing Protection strong needs a toolchain w/ gcc >= 4.9" | |
626 | depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 | |
627 | ||
628 | config BR2_SSP_ALL | |
629 | bool "-fstack-protector-all" | |
630 | help | |
631 | Like -fstack-protector except that all functions are | |
632 | protected. This option might have a significant performance | |
633 | impact on the compiled binaries. | |
634 | ||
635 | endchoice | |
636 | ||
637 | comment "Stack Smashing Protection needs a toolchain w/ SSP" | |
c5866be0 TP |
638 | depends on !BR2_TOOLCHAIN_HAS_SSP |
639 | ||
158001f5 TP |
640 | choice |
641 | bool "libraries" | |
f1d3e098 | 642 | default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED |
158001f5 TP |
643 | default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED |
644 | help | |
645 | Select the type of libraries you want to use on the target. | |
646 | ||
65f9b937 MK |
647 | The default is to build dynamic libraries and use those on the |
648 | target filesystem, except when the architecture and/or the | |
649 | selected binary format does not support shared libraries. | |
158001f5 | 650 | |
665e13c8 | 651 | config BR2_STATIC_LIBS |
158001f5 | 652 | bool "static only" |
3096f34d | 653 | help |
65f9b937 | 654 | Build and use only static libraries. No shared libraries will |
d9312d63 | 655 | be installed on the target. This potentially increases your |
65f9b937 MK |
656 | code size and should only be used if you know what you are |
657 | doing. Note that some packages may not be available when this | |
658 | option is enabled, due to their need for dynamic library | |
659 | support. | |
3096f34d | 660 | |
158001f5 TP |
661 | config BR2_SHARED_LIBS |
662 | bool "shared only" | |
663 | depends on BR2_BINFMT_SUPPORTS_SHARED | |
664 | help | |
665 | Build and use only shared libraries. This is the recommended | |
666 | solution as it saves space and build time. | |
667 | ||
668 | config BR2_SHARED_STATIC_LIBS | |
669 | bool "both static and shared" | |
670 | depends on BR2_BINFMT_SUPPORTS_SHARED | |
671 | help | |
672 | Build both shared and static libraries, but link executables | |
673 | dynamically. While building both shared and static libraries | |
674 | take more time and more disk space, having static libraries | |
675 | may be useful to link some of the applications statically. | |
7d9c0df0 | 676 | |
158001f5 | 677 | endchoice |
7d9c0df0 | 678 | |
3096f34d | 679 | |
ee0246e1 TP |
680 | config BR2_PACKAGE_OVERRIDE_FILE |
681 | string "location of a package override file" | |
eda3d0e1 | 682 | default "$(CONFIG_DIR)/local.mk" |
ee0246e1 TP |
683 | help |
684 | A package override file is a short makefile that contains | |
65f9b937 MK |
685 | variable definitions of the form <pkg>_OVERRIDE_SRCDIR, which |
686 | allows to tell Buildroot to use an existing directory as the | |
687 | source directory for a particular package. See the Buildroot | |
688 | documentation for more details on this feature. | |
ee0246e1 | 689 | |
5538e476 | 690 | config BR2_GLOBAL_PATCH_DIR |
bc4f79d6 | 691 | string "global patch directories" |
5538e476 | 692 | help |
65f9b937 MK |
693 | You may specify a space separated list of one or more |
694 | directories containing global package patches. For a specific | |
695 | version <packageversion> of a specific package <packagename>, | |
696 | patches are applied as follows: | |
5538e476 | 697 | |
65f9b937 MK |
698 | First, the default Buildroot patch set for the package is |
699 | applied from the package's directory in Buildroot. | |
5538e476 | 700 | |
bc4f79d6 RB |
701 | Then for every directory - <global-patch-dir> - that exists in |
702 | BR2_GLOBAL_PATCH_DIR, if the directory | |
65f9b937 MK |
703 | <global-patch-dir>/<packagename>/<packageversion>/ exists, |
704 | then all *.patch files in this directory will be applied. | |
5538e476 | 705 | |
65f9b937 MK |
706 | Otherwise, if the directory <global-patch-dir>/<packagename> |
707 | exists, then all *.patch files in the directory will be | |
708 | applied. | |
5538e476 | 709 | |
4ac8f78d TP |
710 | menu "Advanced" |
711 | ||
712 | config BR2_COMPILER_PARANOID_UNSAFE_PATH | |
713 | bool "paranoid check of library/header paths" | |
61c8854c | 714 | default y |
4ac8f78d TP |
715 | help |
716 | By default, when this option is disabled, when the Buildroot | |
65f9b937 MK |
717 | cross-compiler will encounter an unsafe library or header path |
718 | (such as /usr/include, or /usr/lib), the compiler will display | |
719 | a warning. | |
4ac8f78d | 720 | |
65f9b937 MK |
721 | By enabling this option, this warning is turned into an error, |
722 | which will completely abort the build when such unsafe paths | |
723 | are encountered. | |
4ac8f78d TP |
724 | |
725 | Note that this mechanism is available for both the internal | |
f9d311ed RN |
726 | toolchain (through the toolchain wrapper and binutils patches) |
727 | and external toolchain backends (through the toolchain wrapper). | |
4ac8f78d | 728 | |
71574a65 GC |
729 | config BR2_REPRODUCIBLE |
730 | bool "Make the build reproducible (experimental)" | |
a446ab74 JG |
731 | help |
732 | This option will remove all sources of non-reproducibility | |
733 | from the build process. For a given Buildroot configuration, | |
734 | this allows to generate exactly identical binaries from one | |
735 | build to the other, including on different machines. | |
736 | ||
737 | This is labeled as an experimental feature, as not all | |
738 | packages behave properly to ensure reproducibility. | |
71574a65 | 739 | |
8e5fb3fb | 740 | endmenu |
2d523c23 | 741 | |
1ac2cdd7 YM |
742 | endmenu |
743 | ||
50100394 BRF |
744 | source "toolchain/Config.in" |
745 | ||
6c3e3ad4 | 746 | source "system/Config.in" |
beb43c7d | 747 | |
24403857 | 748 | source "linux/Config.in" |
50100394 | 749 | |
24403857 | 750 | source "package/Config.in" |
d06e8022 | 751 | |
05852415 TP |
752 | source "fs/Config.in" |
753 | ||
649b5b92 TP |
754 | source "boot/Config.in" |
755 | ||
24403857 | 756 | source "package/Config.in.host" |
ebcfa987 AVEM |
757 | |
758 | source "Config.in.legacy" | |
8eb8aaf9 | 759 | |
f4ea4b98 PK |
760 | menu "User-provided options" |
761 | depends on BR2_EXTERNAL != "support/dummy-external" | |
762 | ||
8eb8aaf9 | 763 | source "$BR2_EXTERNAL/Config.in" |
f4ea4b98 PK |
764 | |
765 | endmenu | |
4802db3d YM |
766 | |
767 | source "$BR2_BUILD_DIR/.br2-external.in" |