toolchain: get rid of libc implementation symbol overloading
[openwrt/svn-archive/archive.git] / Config.in
1 # Copyright (C) 2006-2012 OpenWrt.org
2 #
3 # This is free software, licensed under the GNU General Public License v2.
4 # See /LICENSE for more information.
5 #
6
7 mainmenu "OpenWrt Configuration"
8
9 config MODULES
10 bool
11 default y
12
13 config HAVE_DOT_CONFIG
14 bool
15 default y
16
17 source "target/Config.in"
18
19 menu "Target Images"
20
21 menuconfig TARGET_ROOTFS_INITRAMFS
22 bool "ramdisk"
23 default y if USES_INITRAMFS
24 help
25 Embed the rootfs into the kernel (initramfs)
26
27 choice
28 prompt "Compression"
29 default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ar71xx
30 default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ramips
31 default TARGET_INITRAMFS_COMPRESSION_NONE
32 depends on TARGET_ROOTFS_INITRAMFS
33 help
34 Select ramdisk compression.
35
36 config TARGET_INITRAMFS_COMPRESSION_NONE
37 bool "none"
38
39 config TARGET_INITRAMFS_COMPRESSION_GZIP
40 bool "gzip"
41
42 config TARGET_INITRAMFS_COMPRESSION_BZIP2
43 bool "bzip2"
44
45 config TARGET_INITRAMFS_COMPRESSION_LZMA
46 bool "lzma"
47
48 config TARGET_INITRAMFS_COMPRESSION_LZO
49 bool "lzo"
50
51 config TARGET_INITRAMFS_COMPRESSION_XZ
52 bool "xz"
53 endchoice
54
55 config EXTERNAL_CPIO
56 string
57 prompt "Use external cpio" if TARGET_ROOTFS_INITRAMFS
58 default ""
59 help
60 Kernel uses specified external cpio as INITRAMFS_SOURCE
61
62 comment "Root filesystem archives"
63
64 config TARGET_ROOTFS_CPIOGZ
65 bool "cpio.gz"
66 default y if USES_CPIOGZ
67 help
68 Build a compressed cpio archive of the the root filesystem
69
70 config TARGET_ROOTFS_TARGZ
71 bool "tar.gz"
72 default y if USES_TARGZ
73 help
74 Build a compressed tar archive of the the root filesystem
75
76 comment "Root filesystem images"
77
78 config TARGET_ROOTFS_EXT4FS
79 bool "ext4"
80 default y if USES_EXT4
81 depends on !TARGET_ROOTFS_INITRAMFS
82 help
83 Ext4 file system with some free space for uml images
84
85 config TARGET_ROOTFS_ISO
86 bool "iso"
87 default n
88 depends on TARGET_x86_generic
89 depends on !TARGET_ROOTFS_INITRAMFS
90 help
91 Create some bootable ISO image
92
93 config TARGET_ROOTFS_JFFS2
94 bool "jffs2"
95 default y if USES_JFFS2
96 depends on !TARGET_ROOTFS_INITRAMFS
97 help
98 Build a jffs2 root filesystem
99
100 config TARGET_ROOTFS_SQUASHFS
101 bool "squashfs"
102 default y if USES_SQUASHFS
103 depends on !TARGET_ROOTFS_INITRAMFS
104 help
105 Build a squashfs-lzma root filesystem
106
107 config TARGET_ROOTFS_UBIFS
108 bool "ubifs"
109 default y if USES_UBIFS
110 depends on !TARGET_ROOTFS_INITRAMFS && USES_UBIFS
111 help
112 Build a ubifs root filesystem
113
114 comment "Image Options"
115
116 source "target/linux/*/image/Config.in"
117
118 config TARGET_ROOTFS_PARTSIZE
119 int "Root filesystem partition size (in MB)"
120 depends on X86_GRUB_IMAGES || TARGET_ROOTFS_EXT4FS || TARGET_rb532
121 default 48
122 help
123 Allows you to change the root filesystem partition size
124
125 config TARGET_ROOTFS_MAXINODE
126 int "Maximum number of inodes in root filesystem"
127 depends on TARGET_ROOTFS_EXT4FS
128 default 6000
129 help
130 Allows you to change the maximum number of inodes in the root filesystem
131
132 config TARGET_ROOTFS_RESERVED_PCT
133 int "Percentage of reserved blocks in root filesystem"
134 depends on TARGET_ROOTFS_EXT4FS
135 default 0
136 help
137 Allows you to change the percentage of reserved blocks in the root filesystem
138
139 endmenu
140
141 menu "Global build settings"
142
143 config ALL
144 bool "Select all packages by default"
145 default n
146
147 comment "General build options"
148
149 config DISPLAY_SUPPORT
150 bool "Show packages that require graphics support (local or remote)"
151 default n
152
153 config BUILD_PATENTED
154 default y
155 bool "Compile with support for patented functionality"
156 help
157 When this option is disabled, software which provides patented functionality will not be built.
158 In case software provides optional support for patented functionality,
159 this optional support will get disabled for this package.
160
161 config BUILD_NLS
162 default n
163 bool "Compile with full language support"
164 help
165 When this option is enabled, packages are built with the full versions of iconv and GNU gettext
166 instead of the default OpenWrt stubs. If uClibc is used, it is also built with locale support.
167
168 config BUILD_STATIC_TOOLS
169 default n
170 bool "Attempt to link host utilities statically"
171 help
172 Linking host utilities like sed or firmware-utils statically increases the portability of the
173 generated ImageBuilder and SDK tarballs, however it may fail on some Linux distributions.
174
175 config SHADOW_PASSWORDS
176 bool
177 prompt "Enable shadow password support"
178 default y
179 help
180 Enable shadow password support.
181
182 config CLEAN_IPKG
183 bool
184 prompt "Remove ipkg/opkg status data files in final images"
185 default n
186 help
187 This removes all ipkg/opkg status data files from the target directory before building the root fs
188
189 config COLLECT_KERNEL_DEBUG
190 bool
191 prompt "Collect kernel debug information"
192 select KERNEL_DEBUG_INFO
193 default n
194 help
195 This collects debugging symbols from the kernel and all compiled modules.
196 Useful for release builds, so that kernel issues can be debugged offline later.
197
198 comment "Kernel build options"
199
200 config KERNEL_DEBUG_FS
201 bool "Compile the kernel with Debug FileSystem enabled"
202 default y
203 help
204 debugfs is a virtual file system that kernel developers use to put
205 debugging files into. Enable this option to be able to read and
206 write to these files.
207
208 config KERNEL_PERF_EVENTS
209 bool
210 default n
211
212 config KERNEL_PROFILING
213 bool "Compile the kernel with profiling enabled"
214 default n
215 select KERNEL_PERF_EVENTS
216 help
217 Enable the extended profiling support mechanisms used by profilers such
218 as OProfile.
219
220 config KERNEL_KALLSYMS
221 bool "Compile the kernel with symbol table information"
222 default y
223 help
224 This will give you more information in stack traces from kernel oopses
225
226 config KERNEL_FTRACE
227 bool "Compile the kernel with tracing support"
228 default n
229
230 config KERNEL_ENABLE_DEFAULT_TRACERS
231 bool "Trace process context switches and events"
232 depends on KERNEL_FTRACE
233 default n
234
235 config KERNEL_DEBUG_KERNEL
236 bool
237 default n
238
239 config KERNEL_DEBUG_INFO
240 bool "Compile the kernel with debug information"
241 default y
242 select KERNEL_DEBUG_KERNEL
243 help
244 This will compile your kernel and modules with debug information.
245
246 config KERNEL_DEBUG_LL_UART_NONE
247 bool
248 default n
249 depends on arm
250
251 config KERNEL_DEBUG_LL
252 bool
253 default n
254 depends on arm
255 select KERNEL_DEBUG_LL_UART_NONE
256 help
257 ARM low level debugging
258
259 config KERNEL_EARLY_PRINTK
260 bool "Compile the kernel with early printk"
261 default n
262 depends on arm
263 select KERNEL_DEBUG_KERNEL
264 select KERNEL_DEBUG_LL if arm
265 help
266 Compile the kernel with early printk support.
267 This is only useful for debugging purposes to send messages
268 over the serial console in early boot.
269 Enable this to debug early boot problems.
270
271 config KERNEL_AIO
272 bool "Compile the kernel with asynchronous IO support"
273 default n
274
275 config KERNEL_DIRECT_IO
276 bool "Compile the kernel with direct IO support"
277 default n
278
279 config KERNEL_MAGIC_SYSRQ
280 bool "Compile the kernel with SysRq support"
281 default y
282
283 config KERNEL_COREDUMP
284 bool
285
286 config KERNEL_ELF_CORE
287 bool "Enable process core dump support"
288 select KERNEL_COREDUMP
289 default y
290
291 config KERNEL_PROVE_LOCKING
292 bool "Enable kernel lock checking"
293 select KERNEL_DEBUG_KERNEL
294 default n
295
296 config KERNEL_PRINTK_TIME
297 bool "Enable printk timestamps"
298 default y
299
300 config KERNEL_RELAY
301 bool
302
303 #
304 # CGROUP support symbols
305 #
306
307 config KERNEL_FREEZER
308 bool
309 default y if KERNEL_CGROUP_FREEZER
310 depends on KERNEL_CGROUPS
311
312 config KERNEL_CGROUP_FREEZER
313 bool
314 depends on KERNEL_CGROUPS
315
316 config KERNEL_CGROUP_DEVICE
317 bool
318 depends on KERNEL_CGROUPS
319
320 config KERNEL_CPUSETS
321 bool
322 default y if KERNEL_CGROUP_CPUACCT
323 depends on KERNEL_CGROUPS
324
325 config KERNEL_PROC_PID_CPUSET
326 bool
327 default y if KERNEL_CGROUP_CPUACCT
328 depends on KERNEL_CGROUPS
329
330 config KERNEL_CGROUP_CPUACCT
331 bool
332 depends on KERNEL_CGROUPS
333
334 config KERNEL_RESOURCE_COUNTERS
335 bool
336 default y if KERNEL_CGROUP_MEM_RES_CTLR
337 depends on KERNEL_CGROUPS
338
339 config KERNEL_CGROUP_MEM_RES_CTLR
340 bool
341 depends on KERNEL_CGROUPS
342
343 config KERNEL_CGROUP_MEM_RES_CTLR_SWAP
344 bool
345 depends on KERNEL_CGROUPS
346
347 config KERNEL_CGROUP_MEM_RES_CTLR_SWAP_ENABLED
348 bool
349 depends on KERNEL_CGROUPS
350
351 config KERNEL_CGROUP_MEM_RES_CTLR_KMEM
352 bool
353 depends on KERNEL_CGROUPS
354
355 config KERNEL_CGROUP_PERF
356 bool
357 depends on KERNEL_CGROUPS
358
359 config KERNEL_CFS_BANDWIDTH
360 bool
361 default y if KERNEL_FAIR_GROUP_SCHED
362 depends on KERNEL_CGROUP_SCHED
363
364 config KERNEL_FAIR_GROUP_SCHED
365 bool
366 default y if KERNEL_CGROUP_SCHED
367 depends on KERNEL_CGROUP_SCHED
368
369 config KERNEL_RT_GROUP_SCHED
370 bool
371 default y if KERNEL_CGROUP_SCHED
372 depends on KERNEL_CGROUP_SCHED
373
374 config KERNEL_CGROUP_SCHED
375 bool
376 depends on KERNEL_CGROUPS
377
378 config KERNEL_NET_CLS_CGROUP
379 bool
380 depends on KERNEL_CGROUPS
381
382 config KERNEL_NETPRIO_CGROUP
383 bool
384 depends on KERNEL_CGROUPS
385
386 config KERNEL_BLK_CGROUP
387 bool
388 depends on KERNEL_CGROUPS
389
390 config KERNEL_DEBUG_BLK_CGROUP
391 bool
392 default n if KERNEL_CGROUPS
393 depends on KERNEL_CGROUPS
394
395 config KERNEL_CGROUPS
396 bool "Enable kernel cgroups"
397 default n
398 select KERNEL_CGROUP_FREEZER
399 select KERNEL_CGROUP_DEVICE
400 select KERNEL_CGROUP_CPUACCT
401 select KERNEL_CGROUP_MEM_RES_CTLR
402 select KERNEL_CGROUP_MEM_RES_CTLR_SWAP
403 select KERNEL_CGROUP_MEM_RES_CTLR_SWAP_ENABLED
404 select KERNEL_CGROUP_MEM_RES_CTLR_KMEM
405 select KERNEL_CGROUP_PERF
406 select KERNEL_CGROUP_SCHED
407 select KERNEL_NET_CLS_CGROUP
408 select KERNEL_NETPRIO_CGROUP
409 select KERNEL_BLK_CGROUP
410
411 #
412 # Namespace support symbols
413 #
414
415 config KERNEL_UTS_NS
416 bool
417 depends on KERNEL_NAMESPACES
418
419 config KERNEL_IPC_NS
420 bool
421 depends on KERNEL_NAMESPACES
422
423 config KERNEL_USER_NS
424 bool
425 depends on KERNEL_NAMESPACES
426
427 config KERNEL_PID_NS
428 bool
429 depends on KERNEL_NAMESPACES
430
431 config KERNEL_NET_NS
432 bool
433 depends on KERNEL_NAMESPACES
434
435 config KERNEL_DEVPTS_MULTIPLE_INSTANCES
436 bool
437 depends on KERNEL_NAMESPACES
438
439 config KERNEL_NAMESPACES
440 bool "Enable kernel namespaces"
441 default n
442 select KERNEL_UTS_NS
443 select KERNEL_IPC_NS
444 select KERNEL_USER_NS
445 select KERNEL_PID_NS
446 select KERNEL_NET_NS
447 select KERNEL_DEVPTS_MULTIPLE_INSTANCES
448
449
450 comment "Package build options"
451
452 config DEBUG
453 bool
454 prompt "Compile packages with debugging info"
455 default n
456 help
457 Adds -g3 to the CFLAGS
458
459 config IPV6
460 bool
461 prompt "Enable IPv6 support in packages"
462 default y
463 help
464 Enable IPV6 support in packages (passes --enable-ipv6 to configure scripts).
465
466 config PKG_BUILD_PARALLEL
467 bool
468 prompt "Compile certain packages parallelized"
469 default y
470 help
471 This adds a -jX option to certain packages that are known to
472 behave well for parallel build. By default the package make processes
473 use the main jobserver, in which case this option only takes effect
474 when you add -jX to the make command.
475
476 If you are unsure, select N.
477
478 config PKG_BUILD_USE_JOBSERVER
479 bool
480 prompt "Use top-level make jobserver for packages"
481 depends on PKG_BUILD_PARALLEL
482 default y
483 help
484 This passes the main make process jobserver fds to package builds,
485 enabling full parallelization across different packages
486
487 Note that disabling this may overcommit CPU resources depending on the
488 -j level of the main make process, the number of package
489 submake jobs selected below and the number of actual CPUs present.
490 Example: If the main make is passed a -j4 and the submake -j
491 is also set to 4, we may end up with 16 parallel make processes
492 in the worst case.
493
494
495 config PKG_BUILD_JOBS
496 int
497 prompt "Number of package submake jobs (2-512)"
498 range 2 512
499 default 2
500 depends on PKG_BUILD_PARALLEL && !PKG_BUILD_USE_JOBSERVER
501 help
502 The number of jobs (-jX) to pass to packages submake.
503
504 config PKG_DEFAULT_PARALLEL
505 bool
506 prompt "Parallelize the default package build rule (May break build)"
507 depends on PKG_BUILD_PARALLEL
508 depends on BROKEN
509 default n
510 help
511 Always set the default package build rules to parallel build.
512
513 WARNING: This may break build or kill your cat, as it builds
514 packages with multiple jobs that are probably not tested in
515 a parallel build environment.
516
517 Only say Y, if you don't mind fixing broken packages.
518 Before reporting build bugs, set this to N and re-run the build.
519
520 comment "Stripping options"
521
522 choice
523 prompt "Binary stripping method"
524 default USE_STRIP if EXTERNAL_TOOLCHAIN
525 default USE_STRIP if USE_GLIBC || USE_EGLIBC || USE_MUSL
526 default USE_SSTRIP
527 help
528 Select the binary stripping method you wish to use.
529
530 config NO_STRIP
531 bool "none"
532 help
533 This will install unstripped binaries (useful for native compiling/debugging)
534
535 config USE_STRIP
536 bool "strip"
537 help
538 This will install binaries stripped using strip from binutils
539
540
541 config USE_SSTRIP
542 bool "sstrip"
543 depends on !DEBUG
544 depends on !USE_GLIBC
545 depends on !USE_EGLIBC
546 help
547 This will install binaries stripped using sstrip
548 endchoice
549
550 config STRIP_ARGS
551 string
552 prompt "Strip arguments"
553 depends on USE_STRIP
554 default "--strip-unneeded --remove-section=.comment --remove-section=.note" if DEBUG
555 default "--strip-all"
556 help
557 Specifies arguments passed to the strip command when stripping binaries
558
559 config STRIP_KERNEL_EXPORTS
560 bool "Strip unnecessary exports from the kernel image"
561 help
562 Reduces kernel size by stripping unused kernel exports from the kernel image
563 Note that this might make the kernel incompatible with any kernel modules that
564 were not selected at the time the kernel image was created
565
566 config USE_MKLIBS
567 bool "Strip unnecessary functions from libraries"
568 help
569 Reduces libraries to only those functions that are necessary for using all
570 selected packages (including those selected as <M>)
571 Note that this will make the system libraries incompatible with most of the packages
572 that are not selected during the build process
573
574 if INSTALL_LIBSTDCPP
575 choice
576 prompt "Preferred standard C++ library"
577 default USE_LIBSTDCXX if USE_EGLIBC
578 default USE_UCLIBCXX
579 help
580 Select the preferred standard C++ library for all packages that support this.
581
582 config USE_UCLIBCXX
583 bool "uClibc++"
584
585 config USE_LIBSTDCXX
586 bool "libstdc++"
587 endchoice
588 endif
589
590 endmenu
591
592 menuconfig DEVEL
593 bool "Advanced configuration options (for developers)"
594 default n
595
596 config BROKEN
597 bool "Show broken platforms / packages" if DEVEL
598 default n
599
600 config DOWNLOAD_FOLDER
601 string "Download folder" if DEVEL
602 default ""
603
604 config LOCALMIRROR
605 string "Local mirror for source packages" if DEVEL
606 default ""
607
608 config AUTOREBUILD
609 bool "Automatic rebuild of packages" if DEVEL
610 default y
611 help
612 Automatically rebuild packages when their files change
613
614 config BUILD_SUFFIX
615 string "Build suffix to append to the BUILD_DIR variable" if DEVEL
616 default ""
617 help
618 Build suffix to append to the BUILD_DIR variable, i.e: build_dir_suffix
619
620 config TARGET_ROOTFS_DIR
621 string "Override the default TARGET_ROOTFS_DIR variable" if DEVEL
622 default ""
623 help
624 Override the default TARGET_ROOTFS_DIR variable content $(BUILD_DIR) with custom path.
625 Use this option to re-define the location of the target root file system directory.
626
627 config CCACHE
628 bool "Use ccache" if DEVEL
629 default n
630 help
631 Compiler cache; see http://ccache.samba.org/
632
633 config EXTERNAL_KERNEL_TREE
634 string "Use external kernel tree" if DEVEL
635 default ""
636
637 config KERNEL_GIT_CLONE_URI
638 string "Enter git repository to clone" if DEVEL
639 default ""
640 help
641 Enter the full git repository path i.e.:
642 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
643 This will create a git clone of the kernel in your build
644 directory.
645
646 config KERNEL_GIT_LOCAL_REPOSITORY
647 string "Enter path to local reference repository" if DEVEL
648 default ""
649 help
650 Enter a full pathname to a local reference git repository.
651 In this instance, the --refererence option of git clone will
652 be used thus creating a quick local clone of your repo.
653
654 config BUILD_LOG
655 bool "Enable log files during build process" if DEVEL
656 help
657 If enabled log files will be written to the ./log directory
658
659 config SRC_TREE_OVERRIDE
660 bool "Enable package source tree override" if DEVEL
661 help
662 If enabled, you can force a package to use a git tree as source
663 code instead of the normal tarball. Create a symlink 'git-src'
664 in the package directory, pointing to the .git tree that you want
665 to pull the source code from
666
667 menuconfig TARGET_OPTIONS
668 bool "Target Options" if DEVEL
669
670 config TARGET_OPTIMIZATION
671 string "Target Optimizations" if TARGET_OPTIONS
672 default DEFAULT_TARGET_OPTIMIZATION
673 help
674 Optimizations to use when building for the target host.
675
676 config SOFT_FLOAT
677 bool "Use software floating point by default" if TARGET_OPTIONS
678 default y
679 depends on (arm || armeb || powerpc || mipsel || mips || mips64el || mips64) && !HAS_FPU
680 help
681 If your target CPU does not have a Floating Point Unit (FPU) or a
682 kernel FPU emulator, but you still wish to support floating point
683 functions, then everything will need to be compiled with soft floating
684 point support (-msoft-float).
685
686 Most people will answer N.
687
688 config USE_MIPS16
689 bool "Build packages with MIPS16 instructions" if TARGET_OPTIONS
690 depends on HAS_MIPS16
691 help
692 If your target CPU does support the MIPS16 instruction set
693 and you want to use it for packages, enable this option.
694 MIPS16 produces smaller binaries thus reducing pressure on
695 caches and TLB.
696
697 Most people will answer N.
698
699 source "toolchain/Config.in"
700
701 source "target/imagebuilder/Config.in"
702 source "target/sdk/Config.in"
703 source "target/toolchain/Config.in"
704
705 source "tmp/.config-package.in"