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