blob: 8920b727ce8e5e34875bd28f74d86b67cd7b94d5 [file] [log] [blame]
Eric Andersen2d523c22004-10-09 01:06:03 +00001#
2
Peter Korsgaard6a53b722011-02-02 14:53:23 +01003mainmenu "Buildroot $BR2_VERSION Configuration"
Eric Andersen2d523c22004-10-09 01:06:03 +00004
5config BR2_HAVE_DOT_CONFIG
6 bool
7 default y
8
Bernhard Reutner-Fischerf5b8cd42007-09-25 11:37:31 +00009config BR2_VERSION
10 string
Yann E. MORIN56c68bc2010-10-31 17:35:14 +010011 option env="BR2_VERSION_FULL"
Bernhard Reutner-Fischerf5b8cd42007-09-25 11:37:31 +000012
Francois Perrad1d4104f2012-07-18 15:59:09 +020013config BR2_HOSTARCH
14 string
15 option env="HOSTARCH"
16
Yann E. MORIN4802db32016-07-17 12:34:26 +020017config BR2_BUILD_DIR
18 string
19 option env="BUILD_DIR"
20
Arnout Vandecappelle12825f72015-12-31 01:34:13 +010021# Hidden config symbols for packages to check system gcc version
22config BR2_HOST_GCC_VERSION
23 string
24 option env="HOST_GCC_VERSION"
25
Thomas Petazzonie488b562016-10-26 21:11:34 +020026config BR2_HOST_GCC_AT_LEAST_4_5
27 bool
28 default y if BR2_HOST_GCC_VERSION = "4 5"
29
Bernd Kuhls8fce6d72016-03-19 21:25:35 +010030config BR2_HOST_GCC_AT_LEAST_4_6
31 bool
32 default y if BR2_HOST_GCC_VERSION = "4 6"
Thomas Petazzonie488b562016-10-26 21:11:34 +020033 select BR2_HOST_GCC_AT_LEAST_4_5
Bernd Kuhls8fce6d72016-03-19 21:25:35 +010034
Arnout Vandecappelle12825f72015-12-31 01:34:13 +010035config BR2_HOST_GCC_AT_LEAST_4_7
36 bool
37 default y if BR2_HOST_GCC_VERSION = "4 7"
Bernd Kuhls8fce6d72016-03-19 21:25:35 +010038 select BR2_HOST_GCC_AT_LEAST_4_6
Arnout Vandecappelle12825f72015-12-31 01:34:13 +010039
40config BR2_HOST_GCC_AT_LEAST_4_8
41 bool
42 default y if BR2_HOST_GCC_VERSION = "4 8"
43 select BR2_HOST_GCC_AT_LEAST_4_7
44
45config BR2_HOST_GCC_AT_LEAST_4_9
46 bool
47 default y if BR2_HOST_GCC_VERSION = "4 9"
48 select BR2_HOST_GCC_AT_LEAST_4_8
49
50config BR2_HOST_GCC_AT_LEAST_5
51 bool
52 default y if BR2_HOST_GCC_VERSION = "5"
53 select BR2_HOST_GCC_AT_LEAST_4_9
54
Martin Bark3d217572016-06-06 11:18:14 +010055config BR2_HOST_GCC_AT_LEAST_6
56 bool
57 default y if BR2_HOST_GCC_VERSION = "6"
58 select BR2_HOST_GCC_AT_LEAST_5
59
Adrián Pérez de Castro435b4cc2017-07-05 16:06:33 +030060config BR2_HOST_GCC_AT_LEAST_7
61 bool
62 default y if BR2_HOST_GCC_VERSION = "7"
63 select BR2_HOST_GCC_AT_LEAST_6
64
Maxime Hadjinlianaac3d2b2014-02-18 00:37:12 +010065# Hidden boolean selected by packages in need of Java in order to build
Bernd Kuhls4f3fdf12017-10-01 21:04:30 +020066# (example: kodi)
Maxime Hadjinlian0721c712014-02-19 16:33:50 +010067config BR2_NEEDS_HOST_JAVA
Maxime Hadjinlianaac3d2b2014-02-18 00:37:12 +010068 bool
69
Maxime Hadjinlian8f9da282014-05-04 00:45:44 +020070# Hidden boolean selected by packages in need of javac in order to build
71# (example: classpath)
72config BR2_NEEDS_HOST_JAVAC
73 bool
74
75# Hidden boolean selected by packages in need of jar in order to build
76# (example: classpath)
77config BR2_NEEDS_HOST_JAR
78 bool
79
Thomas Petazzoni70d60372012-12-29 06:14:49 +000080# Hidden boolean selected by pre-built packages for x86, when they
81# need to run on x86-64 machines (example: pre-built external
82# toolchains, binary tools like SAM-BA, etc.).
83config BR2_HOSTARCH_NEEDS_IA32_LIBS
84 bool
85
Thomas Petazzoni0e4bc502013-11-11 17:47:25 +010086# Hidden boolean selected by packages that need to build 32 bits
87# binaries with the host compiler, even on 64 bits build machines (e.g
88# bootloaders).
89config BR2_HOSTARCH_NEEDS_IA32_COMPILER
90 bool
91
Yann E. MORINde0df992016-12-04 10:43:04 +010092# Hidden boolean selected by packages that need the host to have an
93# UTF8 locale.
94config BR2_NEEDS_HOST_UTF8_LOCALE
95 bool
96
Thomas Petazzoni79ee3c12012-11-03 08:27:59 +000097source "arch/Config.in"
Bernhard Reutner-Fischer7d8a59b2007-07-08 16:28:54 +000098
Eric Andersen8e5fb3f2004-12-11 13:01:10 +000099menu "Build options"
100
Thomas Petazzoni15929262010-04-10 22:55:01 +0200101menu "Commands"
102
Eric Andersen2d523c22004-10-09 01:06:03 +0000103config BR2_WGET
Eric Andersen8e5fb3f2004-12-11 13:01:10 +0000104 string "Wget command"
Peter Korsgaard6871b162010-11-04 19:16:43 +0100105 default "wget --passive-ftp -nd -t 3"
Eric Andersen2d523c22004-10-09 01:06:03 +0000106
Maxime Petazzonicf711112010-09-02 12:09:45 +0200107config BR2_SVN
108 string "Subversion (svn) command"
109 default "svn"
Eric Andersene30cf262005-01-23 11:20:30 +0000110
Maxime Petazzonicf711112010-09-02 12:09:45 +0200111config BR2_BZR
112 string "Bazaar (bzr) command"
113 default "bzr"
Sven Neumanndf03cda2009-08-07 11:57:54 +0200114
Ulf Samuelsson85f54fb2007-08-24 05:31:07 +0000115config BR2_GIT
Maxime Petazzonicf711112010-09-02 12:09:45 +0200116 string "Git command"
117 default "git"
Ulf Samuelsson85f54fb2007-08-24 05:31:07 +0000118
Gustavo Zacarias15eb1fa2013-09-11 09:12:04 -0300119config BR2_CVS
120 string "CVS command"
121 default "cvs"
122
David Wagner2690e762011-09-29 21:57:46 +0200123config BR2_LOCALFILES
124 string "Local files retrieval command"
125 default "cp"
126
Thomas De Schampheleirec61788f2011-10-19 09:25:40 +0200127config BR2_SCP
128 string "Secure copy (scp) command"
129 default "scp"
130
131config BR2_SSH
132 string "Secure shell (ssh) command"
133 default "ssh"
134
Thomas De Schampheleiref694c072011-10-19 09:25:47 +0200135config BR2_HG
136 string "Mercurial (hg) command"
137 default "hg"
138
Bernhard Reutner-Fischer859b9132006-10-01 15:07:45 +0000139config BR2_ZCAT
140 string "zcat command"
Bernhard Reutner-Fischera9612bf2007-03-09 08:26:10 +0000141 default "gzip -d -c"
Bernhard Reutner-Fischer859b9132006-10-01 15:07:45 +0000142 help
Martin Kelly65f9b932016-05-31 09:57:22 -0700143 Command to be used to extract a gzip'ed file to stdout. zcat
144 is identical to gunzip -c except that the former may not be
145 available on your system.
Bernhard Reutner-Fischera9612bf2007-03-09 08:26:10 +0000146 Default is "gzip -d -c"
147 Other possible values include "gunzip -c" or "zcat".
Bernhard Reutner-Fischer6e2823c2006-11-17 15:43:51 +0000148
149config BR2_BZCAT
150 string "bzcat command"
151 default "bzcat"
152 help
153 Command to be used to extract a bzip2'ed file to stdout.
154 bzcat is identical to bunzip2 -c except that the former may
155 not be available on your system.
156 Default is "bzcat"
157 Other possible values include "bunzip2 -c" or "bzip2 -d -c".
Bernhard Reutner-Fischer859b9132006-10-01 15:07:45 +0000158
Allan W. Nielsen177b4b42011-05-10 08:17:05 +0200159config BR2_XZCAT
160 string "xzcat command"
161 default "xzcat"
162 help
163 Command to be used to extract a xz'ed file to stdout.
164 Default is "xzcat"
165
Baruch Siachf1650322017-02-12 22:15:39 +0200166config BR2_LZCAT
167 string "lzcat command"
168 default "lzip -d -c"
169 help
170 Command to be used to extract a lzip'ed file to stdout.
171 Default is "lzip -d -c"
172
Bernhard Reutner-Fischerce90aae2005-12-10 14:59:02 +0000173config BR2_TAR_OPTIONS
174 string "Tar options"
Bernhard Reutner-Fischer7df4de62005-12-10 15:36:43 +0000175 default ""
176 help
177 Options to pass to tar when extracting the sources.
178 E.g. " -v --exclude='*.svn*'" to exclude all .svn internal files
179 and to be verbose.
Bernhard Reutner-Fischerce90aae2005-12-10 14:59:02 +0000180
Thomas Petazzoni15929262010-04-10 22:55:01 +0200181endmenu
182
Arnout Vandecappelle (Essensium/Mind)4e0170d2013-02-06 21:50:57 +0000183config BR2_DEFCONFIG_FROM_ENV
184 string
185 option env="BR2_DEFCONFIG"
186
187config BR2_DEFCONFIG
188 string "Location to save buildroot config"
189 default BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != ""
190 default "$(CONFIG_DIR)/defconfig"
191 help
Martin Kelly65f9b932016-05-31 09:57:22 -0700192 When running 'make savedefconfig', the defconfig file will be
193 saved in this location.
Arnout Vandecappelle (Essensium/Mind)4e0170d2013-02-06 21:50:57 +0000194
Mike Frysinger59a63a92005-10-01 00:35:24 +0000195config BR2_DL_DIR
196 string "Download dir"
H Hartley Sweetenbe695dc2009-09-23 08:46:52 +0200197 default "$(TOPDIR)/dl"
Mike Frysinger59a63a92005-10-01 00:35:24 +0000198 help
199 Directory to store all the source files that we need to fetch.
Arnout Vandecappelle67680212014-02-04 16:18:51 +0100200 If the Linux shell environment has defined the BR2_DL_DIR
Martin Kelly65f9b932016-05-31 09:57:22 -0700201 environment variable, then this overrides this configuration
202 item.
Mike Frysinger59a63a92005-10-01 00:35:24 +0000203
H Hartley Sweetenbe695dc2009-09-23 08:46:52 +0200204 The default is $(TOPDIR)/dl
Bernhard Reutner-Fischer4b0d5a82007-09-26 21:12:38 +0000205
Gustavo Zacariasa2b4f7f2011-02-02 10:05:56 -0300206config BR2_HOST_DIR
207 string "Host dir"
208 default "$(BASE_DIR)/host"
209 help
Martin Kelly65f9b932016-05-31 09:57:22 -0700210 Directory to store all the binary files that are built for the
211 host. This includes the cross compilation toolchain when
212 building the internal buildroot toolchain.
Gustavo Zacariasa2b4f7f2011-02-02 10:05:56 -0300213
214 The default is $(BASE_DIR)/host
215
Thomas Petazzoni80080072010-12-05 21:52:37 +0100216menu "Mirrors and Download locations"
217
218config BR2_PRIMARY_SITE
219 string "Primary download site"
220 default ""
221 help
Martin Kelly65f9b932016-05-31 09:57:22 -0700222 Primary site to download from. If this option is set then
223 buildroot will try to download package source first from this
224 site and try the default if the file is not found.
Jérôme Pouiller4a9d9802015-11-18 10:03:25 +0100225 Valid URIs are:
226 - URIs recognized by $(WGET)
227 - local URIs of the form file://absolutepath
228 - scp URIs of the form scp://[user@]host:path.
Thomas Petazzoni80080072010-12-05 21:52:37 +0100229
Thomas De Schampheleire5a83e082012-06-22 07:37:03 +0200230config BR2_PRIMARY_SITE_ONLY
231 bool "Only allow downloads from primary download site"
232 depends on BR2_PRIMARY_SITE != ""
233 help
234 If this option is enabled, downloads will only be attempted
235 from the primary download site. Other locations, like the
236 package's official download location or the backup download
Martin Kelly65f9b932016-05-31 09:57:22 -0700237 site, will not be considered. Therefore, if the package is not
238 present on the primary site, the download fails.
Thomas De Schampheleire5a83e082012-06-22 07:37:03 +0200239
Martin Kelly65f9b932016-05-31 09:57:22 -0700240 This is useful for project developers who want to ensure that
241 the project can be built even if the upstream tarball
Thomas De Schampheleire5a83e082012-06-22 07:37:03 +0200242 locations disappear.
243
244if !BR2_PRIMARY_SITE_ONLY
245
Thomas Petazzoni80080072010-12-05 21:52:37 +0100246config BR2_BACKUP_SITE
247 string "Backup download site"
Peter Seiderer4a9eb202014-02-21 23:33:36 +0100248 default "http://sources.buildroot.net"
Thomas Petazzoni80080072010-12-05 21:52:37 +0100249 help
Martin Kelly65f9b932016-05-31 09:57:22 -0700250 Backup site to download from. If this option is set then
251 buildroot will fall back to download package sources from here
252 if the normal location fails.
Thomas Petazzoni80080072010-12-05 21:52:37 +0100253
Thomas Petazzoni80080072010-12-05 21:52:37 +0100254config BR2_KERNEL_MIRROR
255 string "Kernel.org mirror"
Alexey Brodkinde76cb72016-05-23 18:36:53 +0300256 default "https://cdn.kernel.org/pub"
Thomas Petazzoni80080072010-12-05 21:52:37 +0100257 help
Alexey Brodkinde76cb72016-05-23 18:36:53 +0300258 kernel.org is mirrored on a number of servers around the
Martin Kelly65f9b932016-05-31 09:57:22 -0700259 world. The following allows you to select your preferred
Alexey Brodkinde76cb72016-05-23 18:36:53 +0300260 mirror. By default, a CDN is used, which automatically
261 redirects to a mirror geographically close to you.
Thomas Petazzoni80080072010-12-05 21:52:37 +0100262
Martin Kelly65f9b932016-05-31 09:57:22 -0700263 Have a look on the kernel.org site for a list of mirrors, then
264 enter the URL to the base directory. Examples:
Thomas Petazzoni80080072010-12-05 21:52:37 +0100265
266 http://www.XX.kernel.org/pub (XX = country code)
267 http://mirror.aarnet.edu.au/pub/ftp.kernel.org
268
269config BR2_GNU_MIRROR
270 string "GNU Software mirror"
Thomas Petazzoni3999f0a2016-05-24 20:48:26 +0200271 default "http://ftpmirror.gnu.org"
Thomas Petazzoni80080072010-12-05 21:52:37 +0100272 help
Thomas Petazzoni3999f0a2016-05-24 20:48:26 +0200273 GNU has multiple software mirrors scattered around the
Martin Kelly65f9b932016-05-31 09:57:22 -0700274 world. The following allows you to select your preferred
Thomas Petazzoni3999f0a2016-05-24 20:48:26 +0200275 mirror. By default, a generic address is used, which
276 automatically selects an up-to-date and local mirror.
Thomas Petazzoni80080072010-12-05 21:52:37 +0100277
Martin Kelly65f9b932016-05-31 09:57:22 -0700278 Have a look on the gnu.org site for a list of mirrors, then
279 enter the URL to the base directory. Examples:
Thomas Petazzoni80080072010-12-05 21:52:37 +0100280
281 http://ftp.gnu.org/pub/gnu
282 http://mirror.aarnet.edu.au/pub/gnu
283
Francois Perrad72afb292014-01-11 16:42:07 +0100284config BR2_LUAROCKS_MIRROR
285 string "LuaRocks mirror"
Francois Perrad0b8411a2014-07-25 20:21:24 +0200286 default "http://rocks.moonscript.org"
Francois Perrad72afb292014-01-11 16:42:07 +0100287 help
288 LuaRocks repository.
289
290 See http://luarocks.org
291
Francois Perrad9fbb1692014-02-23 15:17:16 +0100292config BR2_CPAN_MIRROR
293 string "CPAN mirror (Perl packages)"
Yann E. MORIN32567d12014-07-19 12:09:19 +0200294 default "http://cpan.metacpan.org"
Francois Perrad9fbb1692014-02-23 15:17:16 +0100295 help
Martin Kelly65f9b932016-05-31 09:57:22 -0700296 CPAN (Comprehensive Perl Archive Network) is a repository of
297 Perl packages. It has multiple software mirrors scattered
Francois Perrad9fbb1692014-02-23 15:17:16 +0100298 around the world. This option allows you to select a mirror.
299
300 The list of mirrors is available at:
301 http://search.cpan.org/mirror
302
Yann E. MORIN3318a5a2015-07-14 09:42:40 +0200303endif
304
Thomas Petazzoni80080072010-12-05 21:52:37 +0100305endmenu
Thomas Petazzoniaa41d372010-04-10 22:55:38 +0200306
Eric Andersen8e5fb3f2004-12-11 13:01:10 +0000307config BR2_JLEVEL
Nathan Lynch5016aa02012-06-16 09:37:17 +0000308 int "Number of jobs to run simultaneously (0 for auto)"
309 default "0"
Eric Andersen8e5fb3f2004-12-11 13:01:10 +0000310 help
Martin Kelly65f9b932016-05-31 09:57:22 -0700311 Number of jobs to run simultaneously. If 0, determine
312 automatically according to number of CPUs on the host system.
Bernhard Reutner-Fischer93ab6d32007-01-28 12:03:58 +0000313
Thomas Petazzoni17b66af2010-12-07 21:09:56 +0100314config BR2_CCACHE
315 bool "Enable compiler cache"
316 help
Martin Kelly65f9b932016-05-31 09:57:22 -0700317 This option will enable the use of ccache, a compiler cache.
318 It will cache the result of previous builds to speed up future
319 builds. By default, the cache is stored in
Thomas Petazzoni17b66af2010-12-07 21:09:56 +0100320 $HOME/.buildroot-ccache.
321
Thomas Petazzonif044e032012-03-07 20:26:50 +0100322 Note that Buildroot does not try to invalidate the cache
Martin Kelly65f9b932016-05-31 09:57:22 -0700323 contents when the compiler changes in an incompatible way.
324 Therefore, if you make a change to the compiler version and/or
325 configuration, you are responsible for purging the ccache
326 cache by removing the $HOME/.buildroot-ccache directory.
Thomas Petazzonif044e032012-03-07 20:26:50 +0100327
Danomi Manchegodd79f2d2014-04-30 22:05:07 -0400328if BR2_CCACHE
329
Thomas De Schampheleire43329072012-05-16 21:39:28 +0200330config BR2_CCACHE_DIR
331 string "Compiler cache location"
Thomas De Schampheleire43329072012-05-16 21:39:28 +0200332 default "$(HOME)/.buildroot-ccache"
333 help
334 Where ccache should store cached files.
335
Danomi Manchegodd79f2d2014-04-30 22:05:07 -0400336config BR2_CCACHE_INITIAL_SETUP
337 string "Compiler cache initial setup"
338 help
Martin Kelly65f9b932016-05-31 09:57:22 -0700339 Initial ccache settings to apply, such as --max-files or
340 --max-size.
Danomi Manchegodd79f2d2014-04-30 22:05:07 -0400341
Martin Kelly65f9b932016-05-31 09:57:22 -0700342 For example, if your project is known to require more space
343 than the default max cache size, then you might want to
344 increase the cache size to a suitable amount using the -M
345 (--max-size) option.
Danomi Manchegodd79f2d2014-04-30 22:05:07 -0400346
Martin Kelly65f9b932016-05-31 09:57:22 -0700347 The string you specify here is passed verbatim to ccache.
348 Refer to ccache documentation for more details.
Danomi Manchegodd79f2d2014-04-30 22:05:07 -0400349
Martin Kelly65f9b932016-05-31 09:57:22 -0700350 These initial settings are applied after ccache has been
351 compiled.
Danomi Manchegodd79f2d2014-04-30 22:05:07 -0400352
Arnout Vandecappelle1e97b272015-10-04 16:25:32 +0100353config BR2_CCACHE_USE_BASEDIR
354 bool "Use relative paths"
355 default y
356 help
357 Allow ccache to convert absolute paths within the output
358 directory into relative paths.
359
Martin Kelly65f9b932016-05-31 09:57:22 -0700360 During the build, many -I include directives are given with an
361 absolute path. These absolute paths end up in the hashes that
362 are computed by ccache. Therefore, when you build from a
363 different directory, the hash will be different and the cached
364 object will not be used.
Arnout Vandecappelle1e97b272015-10-04 16:25:32 +0100365
366 To improve cache performance, set this option to y. This
367 allows ccache to rewrite absolute paths within the output
Martin Kelly65f9b932016-05-31 09:57:22 -0700368 directory into relative paths. Note that only paths within the
369 output directory will be rewritten; therefore, if you change
370 BR2_HOST_DIR to point outside the output directory and
Arnout Vandecappelle1e97b272015-10-04 16:25:32 +0100371 subsequently move it to a different location, this will lead
372 to cache misses.
373
374 This option has as a result that the debug information in the
375 object files also has only relative paths. Therefore, make
376 sure you cd to the build directory before starting gdb. See
Martin Kelly65f9b932016-05-31 09:57:22 -0700377 the section "COMPILING IN DIFFERENT DIRECTORIES" in the ccache
378 manual for more information.
Arnout Vandecappelle1e97b272015-10-04 16:25:32 +0100379
Danomi Manchegodd79f2d2014-04-30 22:05:07 -0400380endif
381
John Voltz41f6b792008-03-12 13:07:10 +0000382config BR2_ENABLE_DEBUG
383 bool "build packages with debugging symbols"
John Voltz41f6b792008-03-12 13:07:10 +0000384 help
Thomas Petazzonia9a34672012-03-14 23:49:58 +0100385 Build packages with debugging symbols enabled. All libraries
386 and binaries in the 'staging' directory will have debugging
387 symbols, which allows remote debugging even if libraries and
388 binaries are stripped on the target. Whether libraries and
389 binaries are stripped on the target is controlled by the
390 BR2_STRIP_* options below.
John Voltz41f6b792008-03-12 13:07:10 +0000391
392if BR2_ENABLE_DEBUG
393choice
394 prompt "gcc debug level"
395 default BR2_DEBUG_2
396 help
397 Set the debug level for gcc
398
399config BR2_DEBUG_1
400 bool "debug level 1"
401 help
Martin Kelly65f9b932016-05-31 09:57:22 -0700402 Debug level 1 produces minimal information, enough for making
403 backtraces in parts of the program that you don't plan to
404 debug. This includes descriptions of functions and external
405 variables, but no information about local variables and no
406 line numbers.
John Voltz41f6b792008-03-12 13:07:10 +0000407
408config BR2_DEBUG_2
409 bool "debug level 2"
410 help
411 The default gcc debug level is 2
412
413config BR2_DEBUG_3
414 bool "debug level 3"
415 help
Martin Kelly65f9b932016-05-31 09:57:22 -0700416 Level 3 includes extra information, such as all the macro
417 definitions present in the program. Some debuggers support
418 macro expansion when you use -g3.
John Voltz41f6b792008-03-12 13:07:10 +0000419endchoice
420endif
421
Bernhard Reutner-Fischerbbd251a2007-07-31 18:06:50 +0000422config BR2_STRIP_strip
Yann E. MORIN0d643fd2017-07-01 14:51:21 +0200423 bool "strip target binaries"
Axel Lin9f2bf302013-09-03 17:39:53 +0800424 depends on !BR2_PACKAGE_HOST_ELF2FLT
Yann E. MORIN0d643fd2017-07-01 14:51:21 +0200425 default y
Bernhard Reutner-Fischerbbd251a2007-07-31 18:06:50 +0000426 help
Thomas Petazzonia9a34672012-03-14 23:49:58 +0100427 Binaries and libraries in the target filesystem will be
Martin Kelly65f9b932016-05-31 09:57:22 -0700428 stripped using the normal 'strip' command. This allows to save
429 space, mainly by removing debugging symbols. Debugging symbols
430 on the target are needed for native debugging, but not when
431 remote debugging is used.
Ulf Samuelsson85f54fb2007-08-24 05:31:07 +0000432
Thomas De Schampheleire2a970452012-06-21 19:34:50 +0000433config BR2_STRIP_EXCLUDE_FILES
434 string "executables that should not be stripped"
Yann E. MORINb9b4d1e2017-07-01 14:51:19 +0200435 depends on BR2_STRIP_strip
Thomas De Schampheleire2a970452012-06-21 19:34:50 +0000436 default ""
437 help
Martin Kelly65f9b932016-05-31 09:57:22 -0700438 You may specify a space-separated list of binaries and
439 libraries here that should not be stripped on the target.
Thomas De Schampheleire2a970452012-06-21 19:34:50 +0000440
441config BR2_STRIP_EXCLUDE_DIRS
442 string "directories that should be skipped when stripping"
Yann E. MORINb9b4d1e2017-07-01 14:51:19 +0200443 depends on BR2_STRIP_strip
Thomas De Schampheleire2a970452012-06-21 19:34:50 +0000444 default ""
445 help
Martin Kelly65f9b932016-05-31 09:57:22 -0700446 You may specify a space-separated list of directories that
447 should be skipped when stripping. Binaries and libraries in
448 these directories will not be touched. The directories should
449 be specified relative to the target directory, without leading
450 slash.
Thomas De Schampheleire2a970452012-06-21 19:34:50 +0000451
John Voltz41f6b792008-03-12 13:07:10 +0000452choice
453 prompt "gcc optimization level"
John Voltz7eb796b2008-03-16 13:26:14 +0000454 default BR2_OPTIMIZE_S
John Voltz923f42a2008-03-12 11:23:11 +0000455 help
John Voltz41f6b792008-03-12 13:07:10 +0000456 Set the optimization level for gcc
457
458config BR2_OPTIMIZE_0
459 bool "optimization level 0"
460 help
Lothar Felten4e09fd82017-10-20 13:19:17 +0200461 Do not optimize.
John Voltz41f6b792008-03-12 13:07:10 +0000462
463config BR2_OPTIMIZE_1
464 bool "optimization level 1"
465 help
Martin Kelly65f9b932016-05-31 09:57:22 -0700466 Optimize. Optimizing compilation takes somewhat more time, and
467 a lot more memory for a large function. With -O, the compiler
468 tries to reduce code size and execution time, without
469 performing any optimizations that take a great deal of
470 compilation time. -O turns on the following optimization
Peter Korsgaard02a623d2008-08-04 19:07:05 +0000471 flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
472 -fcprop-registers -floop-optimize -fif-conversion
473 -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
474 -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
Martin Kelly65f9b932016-05-31 09:57:22 -0700475 -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants. -O
476 also turns on -fomit-frame-pointer on machines where doing so
477 does not interfere with debugging.
John Voltz41f6b792008-03-12 13:07:10 +0000478
479config BR2_OPTIMIZE_2
480 bool "optimization level 2"
481 help
Martin Kelly65f9b932016-05-31 09:57:22 -0700482 Optimize even more. GCC performs nearly all supported
483 optimizations that do not involve a space-speed tradeoff. The
484 compiler does not perform loop unrolling or function inlining
485 when you specify -O2. As compared to -O, this option increases
486 both compilation time and the performance of the generated
487 code. -O2 turns on all optimization flags specified by -O. It
488 also turns on the following optimization flags:
489 -fthread-jumps -fcrossjumping -foptimize-sibling-calls
Peter Korsgaard02a623d2008-08-04 19:07:05 +0000490 -fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm
Martin Kelly65f9b932016-05-31 09:57:22 -0700491 -fexpensive-optimizations -fstrength-reduce
492 -frerun-cse-after-loop -frerun-loop-opt -fcaller-saves
493 -fpeephole2 -fschedule-insns -fschedule-insns2
494 -fsched-interblock -fsched-spec -fregmove -fstrict-aliasing
495 -fdelete-null-pointer-checks -freorder-blocks
496 -freorder-functions -falign-functions -falign-jumps
497 -falign-loops -falign-labels -ftree-vrp -ftree-pre. Please
498 note the warning under -fgcse about invoking -O2 on programs
John Voltz41f6b792008-03-12 13:07:10 +0000499 that use computed gotos.
500
501config BR2_OPTIMIZE_3
502 bool "optimization level 3"
503 help
Martin Kelly65f9b932016-05-31 09:57:22 -0700504 Optimize yet more. -O3 turns on all optimizations specified by
505 -O2 and also turns on the -finline-functions, -funswitch-loops
506 and -fgcse-after-reload options.
John Voltz41f6b792008-03-12 13:07:10 +0000507
Martin Kelly5ff84592016-05-18 14:17:55 -0700508config BR2_OPTIMIZE_G
509 bool "optimize for debugging"
510 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
511 help
512 Optimize for debugging. This enables optimizations that do not
Martin Kelly65f9b932016-05-31 09:57:22 -0700513 interfere with debugging. It should be the optimization level
514 of choice for the standard edit-compile-debug cycle, offering
515 a reasonable level of optimization while maintaining fast
516 compilation and a good debugging experience.
John Voltz41f6b792008-03-12 13:07:10 +0000517
518config BR2_OPTIMIZE_S
519 bool "optimize for size"
520 help
Martin Kelly65f9b932016-05-31 09:57:22 -0700521 Optimize for size. -Os enables all -O2 optimizations that do
522 not typically increase code size. It also performs further
523 optimizations designed to reduce code size. -Os disables the
524 following optimization flags: -falign-functions -falign-jumps
525 -falign-loops -falign-labels -freorder-blocks
526 -freorder-blocks-and-partition -fprefetch-loop-arrays
John Voltz41f6b792008-03-12 13:07:10 +0000527 -ftree-vect-loop-version
Lothar Felten4e09fd82017-10-20 13:19:17 +0200528 This is the default.
Peter Korsgaard02a623d2008-08-04 19:07:05 +0000529
John Voltz41f6b792008-03-12 13:07:10 +0000530endchoice
John Voltz923f42a2008-03-12 11:23:11 +0000531
Pascal Huerst09a1a102014-07-31 22:08:55 +0200532config BR2_GOOGLE_BREAKPAD_ENABLE
533 bool "Enable google-breakpad support"
534 select BR2_PACKAGE_GOOGLE_BREAKPAD
535 depends on BR2_INSTALL_LIBSTDCPP
Romain Naour282ffec2016-12-21 23:07:07 +0100536 depends on BR2_HOST_GCC_AT_LEAST_4_8 # C++11
537 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
Gustavo Zacariase9ffb3b2016-09-14 21:46:29 -0300538 depends on BR2_USE_WCHAR
Thomas Petazzoni0bb39832016-09-19 16:50:46 +0200539 depends on BR2_TOOLCHAIN_HAS_THREADS
Gustavo Zacariase9ffb3b2016-09-14 21:46:29 -0300540 depends on (BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC)
Pascal Huerst09a1a102014-07-31 22:08:55 +0200541 depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
542 help
Martin Kelly65f9b932016-05-31 09:57:22 -0700543 This option will enable the use of google breakpad, a library
544 and tool suite that allows you to distribute an application to
545 users with compiler-provided debugging information removed,
546 record crashes in compact "minidump" files, send them back to
547 your server and produce C and C++ stack traces from these
548 minidumps. Breakpad can also write minidumps on request for
549 programs that have not crashed.
Pascal Huerst09a1a102014-07-31 22:08:55 +0200550
551if BR2_GOOGLE_BREAKPAD_ENABLE
552
553config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
554 string "List of executables and libraries to extract symbols from"
555 default ""
556 help
557 You may specify a space-separated list of binaries and
558 libraries with full paths relative to $(TARGET_DIR) of which
559 debug symbols will be dumped for further use with google
560 breakpad.
561
562 A directory structure that can be used by minidump-stackwalk
563 will be created at:
564
565 $(STAGING_DIR)/usr/share/google-breakpad-symbols
566
567endif
568
Steven Noonand29c7192015-12-27 12:07:31 +0100569choice
Thomas Petazzonic5866be2013-09-02 18:06:36 +0200570 bool "build code with Stack Smashing Protection"
Steven Noonand29c7192015-12-27 12:07:31 +0100571 default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
Thomas Petazzonic5866be2013-09-02 18:06:36 +0200572 depends on BR2_TOOLCHAIN_HAS_SSP
573 help
Steven Noonand29c7192015-12-27 12:07:31 +0100574 Enable stack smashing protection support using GCC's
575 -fstack-protector option family.
Thomas Petazzonic5866be2013-09-02 18:06:36 +0200576
Martin Kelly65f9b932016-05-31 09:57:22 -0700577 See
578 http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
Thomas De Schampheleirebed4e272013-11-11 17:23:23 +0100579 for details.
Thomas Petazzonic5866be2013-09-02 18:06:36 +0200580
Martin Kelly65f9b932016-05-31 09:57:22 -0700581 Note that this requires the toolchain to have SSP support.
582 This is always the case for glibc and eglibc toolchain, but is
583 optional in uClibc toolchains.
Thomas Petazzonic5866be2013-09-02 18:06:36 +0200584
Steven Noonand29c7192015-12-27 12:07:31 +0100585config BR2_SSP_NONE
586 bool "None"
587 help
588 Disable stack-smashing protection.
589
590config BR2_SSP_REGULAR
591 bool "-fstack-protector"
592 help
593 Emit extra code to check for buffer overflows, such as stack
594 smashing attacks. This is done by adding a guard variable to
595 functions with vulnerable objects. This includes functions
596 that call alloca, and functions with buffers larger than 8
597 bytes. The guards are initialized when a function is entered
598 and then checked when the function exits. If a guard check
599 fails, an error message is printed and the program exits.
600
601config BR2_SSP_STRONG
602 bool "-fstack-protector-strong"
603 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
604 help
605 Like -fstack-protector but includes additional functions to be
606 protected - those that have local array definitions, or have
607 references to local frame addresses.
608
609comment "Stack Smashing Protection strong needs a toolchain w/ gcc >= 4.9"
610 depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
611
612config BR2_SSP_ALL
613 bool "-fstack-protector-all"
614 help
615 Like -fstack-protector except that all functions are
616 protected. This option might have a significant performance
617 impact on the compiled binaries.
618
619endchoice
620
621comment "Stack Smashing Protection needs a toolchain w/ SSP"
Thomas Petazzonic5866be2013-09-02 18:06:36 +0200622 depends on !BR2_TOOLCHAIN_HAS_SSP
623
Thomas Petazzoni158001f2014-12-11 23:50:09 +0100624choice
625 bool "libraries"
Thomas Petazzonif1d3e092014-12-11 23:50:11 +0100626 default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
Thomas Petazzoni158001f2014-12-11 23:50:09 +0100627 default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
Bernhard Reutner-Fischer3096f342007-06-01 22:16:28 +0000628 help
Thomas Petazzoni158001f2014-12-11 23:50:09 +0100629 Select the type of libraries you want to use on the target.
Bernhard Reutner-Fischer3096f342007-06-01 22:16:28 +0000630
Martin Kelly65f9b932016-05-31 09:57:22 -0700631 The default is to build dynamic libraries and use those on the
632 target filesystem, except when the architecture and/or the
633 selected binary format does not support shared libraries.
Alexey Brodkin7d9c0df2014-10-12 18:34:44 +0200634
Thomas Petazzoni158001f2014-12-11 23:50:09 +0100635config BR2_STATIC_LIBS
636 bool "static only"
637 help
Martin Kelly65f9b932016-05-31 09:57:22 -0700638 Build and use only static libraries. No shared libraries will
Bernd Kuhlsd9312d62016-07-31 18:02:47 +0200639 be installed on the target. This potentially increases your
Martin Kelly65f9b932016-05-31 09:57:22 -0700640 code size and should only be used if you know what you are
641 doing. Note that some packages may not be available when this
642 option is enabled, due to their need for dynamic library
643 support.
Thomas Petazzoni158001f2014-12-11 23:50:09 +0100644
645config BR2_SHARED_LIBS
646 bool "shared only"
647 depends on BR2_BINFMT_SUPPORTS_SHARED
648 help
649 Build and use only shared libraries. This is the recommended
650 solution as it saves space and build time.
651
652config BR2_SHARED_STATIC_LIBS
653 bool "both static and shared"
654 depends on BR2_BINFMT_SUPPORTS_SHARED
655 help
656 Build both shared and static libraries, but link executables
657 dynamically. While building both shared and static libraries
658 take more time and more disk space, having static libraries
659 may be useful to link some of the applications statically.
660
661endchoice
Alexey Brodkin7d9c0df2014-10-12 18:34:44 +0200662
Bernhard Reutner-Fischer3096f342007-06-01 22:16:28 +0000663
Thomas Petazzoniee0246e2011-09-29 21:57:38 +0200664config BR2_PACKAGE_OVERRIDE_FILE
665 string "location of a package override file"
Yann E. MORINeda3d0e2014-01-29 22:48:24 +0100666 default "$(CONFIG_DIR)/local.mk"
Thomas Petazzoniee0246e2011-09-29 21:57:38 +0200667 help
668 A package override file is a short makefile that contains
Martin Kelly65f9b932016-05-31 09:57:22 -0700669 variable definitions of the form <pkg>_OVERRIDE_SRCDIR, which
670 allows to tell Buildroot to use an existing directory as the
671 source directory for a particular package. See the Buildroot
672 documentation for more details on this feature.
Thomas Petazzoniee0246e2011-09-29 21:57:38 +0200673
Simon Dawson5538e472013-03-17 23:13:47 +0000674config BR2_GLOBAL_PATCH_DIR
Ryan Barnettbc4f79d2013-12-18 04:25:01 -0600675 string "global patch directories"
Simon Dawson5538e472013-03-17 23:13:47 +0000676 help
Martin Kelly65f9b932016-05-31 09:57:22 -0700677 You may specify a space separated list of one or more
678 directories containing global package patches. For a specific
679 version <packageversion> of a specific package <packagename>,
680 patches are applied as follows:
Simon Dawson5538e472013-03-17 23:13:47 +0000681
Martin Kelly65f9b932016-05-31 09:57:22 -0700682 First, the default Buildroot patch set for the package is
683 applied from the package's directory in Buildroot.
Simon Dawson5538e472013-03-17 23:13:47 +0000684
Ryan Barnettbc4f79d2013-12-18 04:25:01 -0600685 Then for every directory - <global-patch-dir> - that exists in
686 BR2_GLOBAL_PATCH_DIR, if the directory
Martin Kelly65f9b932016-05-31 09:57:22 -0700687 <global-patch-dir>/<packagename>/<packageversion>/ exists,
688 then all *.patch files in this directory will be applied.
Simon Dawson5538e472013-03-17 23:13:47 +0000689
Martin Kelly65f9b932016-05-31 09:57:22 -0700690 Otherwise, if the directory <global-patch-dir>/<packagename>
691 exists, then all *.patch files in the directory will be
692 applied.
Simon Dawson5538e472013-03-17 23:13:47 +0000693
Thomas Petazzoni4ac8f782014-12-10 23:53:57 +0100694menu "Advanced"
695
696config BR2_COMPILER_PARANOID_UNSAFE_PATH
697 bool "paranoid check of library/header paths"
Romain Naour61c88542016-05-15 12:26:00 +0200698 default y
Thomas Petazzoni4ac8f782014-12-10 23:53:57 +0100699 help
700 By default, when this option is disabled, when the Buildroot
Martin Kelly65f9b932016-05-31 09:57:22 -0700701 cross-compiler will encounter an unsafe library or header path
702 (such as /usr/include, or /usr/lib), the compiler will display
703 a warning.
Thomas Petazzoni4ac8f782014-12-10 23:53:57 +0100704
Martin Kelly65f9b932016-05-31 09:57:22 -0700705 By enabling this option, this warning is turned into an error,
706 which will completely abort the build when such unsafe paths
707 are encountered.
Thomas Petazzoni4ac8f782014-12-10 23:53:57 +0100708
709 Note that this mechanism is available for both the internal
Romain Naourf9d311e2016-05-15 12:26:01 +0200710 toolchain (through the toolchain wrapper and binutils patches)
711 and external toolchain backends (through the toolchain wrapper).
Thomas Petazzoni4ac8f782014-12-10 23:53:57 +0100712
Gilles Chanteperdrix71574a62016-06-14 17:31:09 +0200713config BR2_REPRODUCIBLE
714 bool "Make the build reproducible (experimental)"
Yann E. MORIN6393b692017-10-21 22:31:02 +0200715 # SOURCE_DATE_EPOCH support in toolchain-wrapper requires GCC 4.4
716 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
Jerzy Grzegoreka446ab72016-07-02 17:06:18 +0200717 help
718 This option will remove all sources of non-reproducibility
719 from the build process. For a given Buildroot configuration,
720 this allows to generate exactly identical binaries from one
721 build to the other, including on different machines.
Gilles Chanteperdrix71574a62016-06-14 17:31:09 +0200722
Jérôme Pouillerbedb1612016-11-23 13:58:56 +0100723 The current implementation is restricted to builds with the
724 same output directory. Many (absolute) paths are recorded in
725 intermediary files, and it is very likely that some of these
726 paths leak into the target rootfs. If you build with the
727 same O=... path, however, the result is identical.
728
Jerzy Grzegoreka446ab72016-07-02 17:06:18 +0200729 This is labeled as an experimental feature, as not all
730 packages behave properly to ensure reproducibility.
Gilles Chanteperdrix71574a62016-06-14 17:31:09 +0200731
Eric Andersen8e5fb3f2004-12-11 13:01:10 +0000732endmenu
Eric Andersen2d523c22004-10-09 01:06:03 +0000733
Yann E. MORIN1ac2cdd2016-08-25 19:19:46 +0200734endmenu
735
Bernhard Reutner-Fischer50100392007-09-25 07:55:45 +0000736source "toolchain/Config.in"
737
Thomas Petazzoni6c3e3ad2012-11-03 08:27:58 +0000738source "system/Config.in"
Thomas Petazzonibeb43c72010-12-05 21:52:44 +0100739
Yann E. MORIN24403852013-08-17 22:35:37 +0200740source "linux/Config.in"
Bernhard Reutner-Fischer50100392007-09-25 07:55:45 +0000741
Yann E. MORIN24403852013-08-17 22:35:37 +0200742source "package/Config.in"
Thomas Petazzonid06e8022012-01-28 18:42:49 +0100743
Thomas Petazzoni05852412010-03-10 22:30:06 +0100744source "fs/Config.in"
745
Thomas Petazzoni649b5b92010-03-14 18:20:45 +0100746source "boot/Config.in"
747
Yann E. MORIN24403852013-08-17 22:35:37 +0200748source "package/Config.in.host"
Arnout Vandecappelle (Essensium/Mind)ebcfa982012-11-12 10:08:28 +0000749
750source "Config.in.legacy"
Thomas Petazzoni8eb8aaf2013-12-05 20:11:11 +0100751
Yann E. MORIN4802db32016-07-17 12:34:26 +0200752source "$BR2_BUILD_DIR/.br2-external.in"