build: add menuconfig option for building FIT images
[oweals/openwrt.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                 help
82                   Ext4 file system with some free space for uml images
83
84         config TARGET_ROOTFS_ISO
85                 bool "iso"
86                 default n
87                 depends on TARGET_x86_generic
88                 help
89                   Create some bootable ISO image
90
91         config TARGET_ROOTFS_JFFS2
92                 bool "jffs2"
93                 default y if USES_JFFS2
94                 help
95                   Build a jffs2 root filesystem
96
97         config TARGET_ROOTFS_JFFS2_NAND
98                 bool "jffs2 for NAND"
99                 default y if USES_JFFS2_NAND
100                 depends on USES_JFFS2_NAND
101                 help
102                   Build a jffs2 root filesystem for NAND flash
103
104         config TARGET_ROOTFS_SQUASHFS
105                 bool "squashfs"
106                 default y if USES_SQUASHFS
107                 help
108                   Build a squashfs-lzma root filesystem
109
110         menuconfig TARGET_ROOTFS_UBIFS
111                 bool "ubifs"
112                 default y if USES_UBIFS
113                 depends on USES_UBIFS
114                 help
115                   Build a ubifs root filesystem
116
117                 choice
118                         prompt "compression"
119                         default TARGET_UBIFS_COMPRESSION_NONE
120                         depends on TARGET_ROOTFS_UBIFS
121                         help
122                           Select compression type
123
124                         config TARGET_UBIFS_COMPRESSION_NONE
125                                 bool "none"
126
127                         config TARGET_UBIFS_COMPRESSION_LZO
128                                 bool "lzo"
129
130                         config TARGET_UBIFS_COMPRESSION_ZLIB
131                                 bool "zlib"
132                 endchoice
133
134                 config TARGET_UBIFS_FREE_SPACE_FIXUP
135                         bool "free space fixup" if TARGET_ROOTFS_UBIFS
136                         default y
137                         help
138                           The file-system free space has to be fixed up on first mount
139
140                 config TARGET_UBIFS_JOURNAL_SIZE
141                         string
142                         prompt "journal size" if TARGET_ROOTFS_UBIFS
143                         default "512KiB"
144
145                 config TARGET_UBIFS_SQUASH_UIDS
146                         bool "squash uids" if TARGET_ROOTFS_UBIFS
147                         default n
148                         help
149                           Squash owners making all files owned by root
150
151         comment "Image Options"
152
153         source "target/linux/*/image/Config.in"
154
155         config TARGET_ROOTFS_PARTSIZE
156                 int "Root filesystem partition size (in MB)"
157                 depends on X86_GRUB_IMAGES || TARGET_ROOTFS_EXT4FS || TARGET_rb532
158                 default 48
159                 help
160                   Allows you to change the root filesystem partition size
161
162         config TARGET_ROOTFS_MAXINODE
163                 int "Maximum number of inodes in root filesystem"
164                 depends on TARGET_ROOTFS_EXT4FS
165                 default 6000
166                 help
167                   Allows you to change the maximum number of inodes in the root filesystem
168
169         config TARGET_ROOTFS_RESERVED_PCT
170                 int "Percentage of reserved blocks in root filesystem"
171                 depends on TARGET_ROOTFS_EXT4FS
172                 default 0
173                 help
174                   Allows you to change the percentage of reserved blocks in the root filesystem
175
176         config TARGET_ROOTFS_INCLUDE_KERNEL
177                 bool "Include kernel in root filesystem"
178                 depends on TARGET_ROOTFS_UBIFS || TARGET_ROOTFS_EXT4FS
179                 default n if USES_UBIFS
180                 help
181                   Include the kernel image in the rootfs. Typically the image is placed
182                   below /boot.
183
184         config TARGET_ROOTFS_INCLUDE_DTB
185                 bool "Include DTB in root filesystem"
186                 depends on TARGET_ROOTFS_UBIFS || TARGET_ROOTFS_EXT4FS
187                 default n if USES_UBIFS
188                 help
189                   Include the device tree blob file(s) in the rootfs. Typically the DTBs
190                   are placed below /boot.
191
192         comment "Image Type"
193
194         config TARGET_IMAGE_FIT
195                 bool "FIT image with kernel and DTB"
196                 default y if USES_FIT
197                 depends on USES_FIT
198                 help
199                    Create a u-boot FIT image containing kernel and DTB
200
201 endmenu
202
203 menu "Global build settings"
204
205         config ALL
206                 bool "Select all packages by default"
207                 default n
208
209         comment "General build options"
210
211         config DISPLAY_SUPPORT
212                 bool "Show packages that require graphics support (local or remote)"
213                 default n
214
215         config BUILD_PATENTED
216                 default y
217                 bool "Compile with support for patented functionality"
218                 help
219                   When this option is disabled, software which provides patented functionality will not be built.
220                   In case software provides optional support for patented functionality,
221                   this optional support will get disabled for this package.
222
223         config BUILD_NLS
224                 default n
225                 bool "Compile with full language support"
226                 help
227                   When this option is enabled, packages are built with the full versions of iconv and GNU gettext
228                   instead of the default OpenWrt stubs. If uClibc is used, it is also built with locale support.
229
230         config BUILD_STATIC_TOOLS
231                 default n
232                 bool "Attempt to link host utilities statically"
233                 help
234                   Linking host utilities like sed or firmware-utils statically increases the portability of the
235                   generated ImageBuilder and SDK tarballs, however it may fail on some Linux distributions.
236
237         config SHADOW_PASSWORDS
238                 bool
239                 prompt "Enable shadow password support"
240                 default y
241                 help
242                   Enable shadow password support.
243
244         config CLEAN_IPKG
245                 bool
246                 prompt "Remove ipkg/opkg status data files in final images"
247                 default n
248                 help
249                   This removes all ipkg/opkg status data files from the target directory before building the root fs
250
251         config COLLECT_KERNEL_DEBUG
252                 bool
253                 prompt "Collect kernel debug information"
254                 select KERNEL_DEBUG_INFO
255                 default n
256                 help
257                   This collects debugging symbols from the kernel and all compiled modules.
258                   Useful for release builds, so that kernel issues can be debugged offline later.
259
260         comment "Kernel build options"
261
262         config KERNEL_DEBUG_FS
263                 bool "Compile the kernel with Debug FileSystem enabled"
264                 default y
265                 help
266                   debugfs is a virtual file system that kernel developers use to put
267                   debugging files into. Enable this option to be able to read and
268                   write to these files.
269
270         config KERNEL_PERF_EVENTS
271                 bool
272                 default n
273
274         config KERNEL_PROFILING
275                 bool "Compile the kernel with profiling enabled"
276                 default n
277                 select KERNEL_PERF_EVENTS
278                 help
279                   Enable the extended profiling support mechanisms used by profilers such
280                   as OProfile.
281
282         config KERNEL_KALLSYMS
283                 bool "Compile the kernel with symbol table information"
284                 default y
285                 help
286                   This will give you more information in stack traces from kernel oopses
287
288         config KERNEL_FTRACE
289                 bool "Compile the kernel with tracing support"
290                 default n
291
292         config KERNEL_FTRACE_SYSCALLS
293                 bool "Trace system calls"
294                 depends on KERNEL_FTRACE
295                 default n
296
297         config KERNEL_ENABLE_DEFAULT_TRACERS
298                 bool "Trace process context switches and events"
299                 depends on KERNEL_FTRACE
300                 default n
301
302         config KERNEL_DEBUG_KERNEL
303                 bool
304                 default n
305
306         config KERNEL_DEBUG_INFO
307                 bool "Compile the kernel with debug information"
308                 default y
309                 select KERNEL_DEBUG_KERNEL
310                 help
311                   This will compile your kernel and modules with debug information.
312
313         config KERNEL_DEBUG_LL_UART_NONE
314                 bool
315                 default n
316                 depends on arm
317
318         config KERNEL_DEBUG_LL
319                 bool
320                 default n
321                 depends on arm
322                 select KERNEL_DEBUG_LL_UART_NONE
323                 help
324                   ARM low level debugging
325
326         config KERNEL_EARLY_PRINTK
327                 bool "Compile the kernel with early printk"
328                 default n
329                 depends on arm
330                 select KERNEL_DEBUG_KERNEL
331                 select KERNEL_DEBUG_LL if arm
332                 help
333                   Compile the kernel with early printk support.
334                   This is only useful for debugging purposes to send messages
335                   over the serial console in early boot.
336                   Enable this to debug early boot problems.
337
338         config KERNEL_AIO
339                 bool "Compile the kernel with asynchronous IO support"
340                 default n
341
342         config KERNEL_DIRECT_IO
343                 bool "Compile the kernel with direct IO support"
344                 default n
345
346         config KERNEL_MAGIC_SYSRQ
347                 bool "Compile the kernel with SysRq support"
348                 default y
349
350         config KERNEL_COREDUMP
351                 bool
352
353         config KERNEL_ELF_CORE
354                 bool "Enable process core dump support"
355                 select KERNEL_COREDUMP
356                 default y
357
358         config KERNEL_PROVE_LOCKING
359                 bool "Enable kernel lock checking"
360                 select KERNEL_DEBUG_KERNEL
361                 default n
362
363         config KERNEL_PRINTK_TIME
364                 bool "Enable printk timestamps"
365                 default y
366
367         config KERNEL_RELAY
368                 bool
369
370         config KERNEL_KEXEC
371                 bool "Enable kexec support"
372
373         config USE_RFKILL
374                 bool "Enable rfkill support"
375                 default RFKILL_SUPPORT
376
377         #
378         # CGROUP support symbols
379         #
380
381         config KERNEL_CGROUPS
382                 bool "Enable kernel cgroups"
383                 default n
384
385         if KERNEL_CGROUPS
386
387                 config KERNEL_CGROUP_DEBUG
388                         bool "Example debug cgroup subsystem"
389                         default n
390                         help
391                           This option enables a simple cgroup subsystem that
392                           exports useful debugging information about the cgroups
393                           framework.
394
395                 config KERNEL_FREEZER
396                         bool
397                         default y if KERNEL_CGROUP_FREEZER
398
399                 config KERNEL_CGROUP_FREEZER
400                         bool "Freezer cgroup subsystem"
401                         default n
402                         help
403                           Provides a way to freeze and unfreeze all tasks in a
404                           cgroup.
405
406                 config KERNEL_CGROUP_DEVICE
407                         bool "Device controller for cgroups"
408                         default y
409                         help
410                           Provides a cgroup implementing whitelists for devices which
411                           a process in the cgroup can mknod or open.
412
413                 config KERNEL_CPUSETS
414                         bool "Cpuset support"
415                         default n
416                         help
417                           This option will let you create and manage CPUSETs which
418                           allow dynamically partitioning a system into sets of CPUs and
419                           Memory Nodes and assigning tasks to run only within those sets.
420                           This is primarily useful on large SMP or NUMA systems.
421
422                 config KERNEL_PROC_PID_CPUSET
423                         bool "Include legacy /proc/<pid>/cpuset file"
424                         default n
425                         depends on KERNEL_CPUSETS
426
427                 config KERNEL_CGROUP_CPUACCT
428                         bool "Simple CPU accounting cgroup subsystem"
429                         default n
430                         help
431                           Provides a simple Resource Controller for monitoring the
432                           total CPU consumed by the tasks in a cgroup.
433
434                 config KERNEL_RESOURCE_COUNTERS
435                         bool "Resource counters"
436                         default n
437                         help
438                           This option enables controller independent resource accounting
439                           infrastructure that works with cgroups.
440
441                 config KERNEL_MM_OWNER
442                         bool
443                         default y if KERNEL_MEMCG
444
445                 config KERNEL_MEMCG
446                         bool "Memory Resource Controller for Control Groups"
447                         default n
448                         depends on KERNEL_RESOURCE_COUNTERS
449                         help
450                           Provides a memory resource controller that manages both anonymous
451                           memory and page cache. (See Documentation/cgroups/memory.txt)
452
453                           Note that setting this option increases fixed memory overhead
454                           associated with each page of memory in the system. By this,
455                           20(40)bytes/PAGE_SIZE on 32(64)bit system will be occupied by memory
456                           usage tracking struct at boot. Total amount of this is printed out
457                           at boot.
458
459                           Only enable when you're ok with these trade offs and really
460                           sure you need the memory resource controller. Even when you enable
461                           this, you can set "cgroup_disable=memory" at your boot option to
462                           disable memory resource controller and you can avoid overheads.
463                           (and lose benefits of memory resource controller)
464
465                           This config option also selects MM_OWNER config option, which
466                           could in turn add some fork/exit overhead.
467
468                 config KERNEL_MEMCG_SWAP
469                         bool "Memory Resource Controller Swap Extension"
470                         default n
471                         depends on KERNEL_MEMCG
472                         help
473                           Add swap management feature to memory resource controller. When you
474                           enable this, you can limit mem+swap usage per cgroup. In other words,
475                           when you disable this, memory resource controller has no cares to
476                           usage of swap...a process can exhaust all of the swap. This extension
477                           is useful when you want to avoid exhaustion swap but this itself
478                           adds more overheads and consumes memory for remembering information.
479                           Especially if you use 32bit system or small memory system, please
480                           be careful about enabling this. When memory resource controller
481                           is disabled by boot option, this will be automatically disabled and
482                           there will be no overhead from this. Even when you set this config=y,
483                           if boot option "swapaccount=0" is set, swap will not be accounted.
484                           Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page
485                           size is 4096bytes, 512k per 1Gbytes of swap.
486
487                 config KERNEL_MEMCG_SWAP_ENABLED
488                         bool "Memory Resource Controller Swap Extension enabled by default"
489                         default n
490                         depends on KERNEL_MEMCG_SWAP
491                         help
492                           Memory Resource Controller Swap Extension comes with its price in
493                           a bigger memory consumption. General purpose distribution kernels
494                           which want to enable the feature but keep it disabled by default
495                           and let the user enable it by swapaccount boot command line
496                           parameter should have this option unselected.
497                           For those who want to have the feature enabled by default should
498                           select this option (if, for some reason, they need to disable it
499                           then swapaccount=0 does the trick).
500
501
502                 config KERNEL_MEMCG_KMEM
503                         bool "Memory Resource Controller Kernel Memory accounting (EXPERIMENTAL)"
504                         default n
505                         depends on KERNEL_MEMCG
506                         help
507                           The Kernel Memory extension for Memory Resource Controller can limit
508                           the amount of memory used by kernel objects in the system. Those are
509                           fundamentally different from the entities handled by the standard
510                           Memory Controller, which are page-based, and can be swapped. Users of
511                           the kmem extension can use it to guarantee that no group of processes
512                           will ever exhaust kernel resources alone.
513
514                 config KERNEL_CGROUP_PERF
515                         bool "Enable perf_event per-cpu per-container group (cgroup) monitoring"
516                         default n
517                         select KERNEL_PERF_EVENTS
518                         help
519                           This option extends the per-cpu mode to restrict monitoring to
520                           threads which belong to the cgroup specified and run on the
521                           designated cpu.
522
523                 menuconfig KERNEL_CGROUP_SCHED
524                         bool "Group CPU scheduler"
525                         default n
526                         help
527                           This feature lets CPU scheduler recognize task groups and control CPU
528                           bandwidth allocation to such task groups. It uses cgroups to group
529                           tasks.
530
531                 if KERNEL_CGROUP_SCHED
532
533                         config KERNEL_FAIR_GROUP_SCHED
534                                 bool "Group scheduling for SCHED_OTHER"
535                                 default n
536
537                         config KERNEL_CFS_BANDWIDTH
538                                 bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED"
539                                 default n
540                                 depends on KERNEL_FAIR_GROUP_SCHED
541                                 help
542                                   This option allows users to define CPU bandwidth rates (limits) for
543                                   tasks running within the fair group scheduler.  Groups with no limit
544                                   set are considered to be unconstrained and will run with no
545                                   restriction.
546                                   See tip/Documentation/scheduler/sched-bwc.txt for more information.
547
548                         config KERNEL_RT_GROUP_SCHED
549                                 bool "Group scheduling for SCHED_RR/FIFO"
550                                 default n
551                                 help
552                                   This feature lets you explicitly allocate real CPU bandwidth
553                                   to task groups. If enabled, it will also make it impossible to
554                                   schedule realtime tasks for non-root users until you allocate
555                                   realtime bandwidth for them.
556
557                 endif
558
559                 config KERNEL_BLK_CGROUP
560                         bool "Block IO controller"
561                         default y
562                         help
563                           Generic block IO controller cgroup interface. This is the common
564                           cgroup interface which should be used by various IO controlling
565                           policies.
566
567                           Currently, CFQ IO scheduler uses it to recognize task groups and
568                           control disk bandwidth allocation (proportional time slice allocation)
569                           to such task groups. It is also used by bio throttling logic in
570                           block layer to implement upper limit in IO rates on a device.
571
572                           This option only enables generic Block IO controller infrastructure.
573                           One needs to also enable actual IO controlling logic/policy. For
574                           enabling proportional weight division of disk bandwidth in CFQ, set
575                           CONFIG_CFQ_GROUP_IOSCHED=y; for enabling throttling policy, set
576                           CONFIG_BLK_DEV_THROTTLING=y.
577
578                 config KERNEL_DEBUG_BLK_CGROUP
579                         bool "Enable Block IO controller debugging"
580                         default n
581                         depends on KERNEL_BLK_CGROUP
582                         help
583                           Enable some debugging help. Currently it exports additional stat
584                           files in a cgroup which can be useful for debugging.
585
586                 config KERNEL_NET_CLS_CGROUP
587                         bool "Control Group Classifier"
588                         default y
589
590                 config KERNEL_NETPRIO_CGROUP
591                         bool "Network priority cgroup"
592                         default y
593
594         endif
595
596         #
597         # Namespace support symbols
598         #
599
600         config KERNEL_NAMESPACES
601                 bool "Enable kernel namespaces"
602                 default n
603
604         if KERNEL_NAMESPACES
605
606                 config KERNEL_UTS_NS
607                         bool "UTS namespace"
608                         default y
609                         help
610                           In this namespace tasks see different info provided
611                           with the uname() system call
612
613                 config KERNEL_IPC_NS
614                         bool "IPC namespace"
615                         default y
616                         help
617                           In this namespace tasks work with IPC ids which correspond to
618                           different IPC objects in different namespaces.
619
620                 config KERNEL_USER_NS
621                         bool "User namespace (EXPERIMENTAL)"
622                         default y
623                         help
624                           This allows containers, i.e. vservers, to use user namespaces
625                           to provide different user info for different servers.
626
627                 config KERNEL_PID_NS
628                         bool "PID Namespaces"
629                         default y
630                         help
631                           Support process id namespaces. This allows having multiple
632                           processes with the same pid as long as they are in different
633                           pid namespaces. This is a building block of containers.
634
635                 config KERNEL_NET_NS
636                         bool "Network namespace"
637                         default y
638                         help
639                           Allow user space to create what appear to be multiple instances
640                           of the network stack.
641
642         endif
643
644         #
645         # LXC related symbols
646         #
647
648         config KERNEL_LXC_MISC
649                 bool "Enable miscellaneous LXC related options"
650                 default n
651
652         if KERNEL_LXC_MISC
653
654                 config KERNEL_DEVPTS_MULTIPLE_INSTANCES
655                         bool "Support multiple instances of devpts"
656                         default y
657                         help
658                           Enable support for multiple instances of devpts filesystem.
659                           If you want to have isolated PTY namespaces (eg: in containers),
660                           say Y here. Otherwise, say N. If enabled, each mount of devpts
661                           filesystem with the '-o newinstance' option will create an
662                           independent PTY namespace.
663
664                 config KERNEL_POSIX_MQUEUE
665                         bool "POSIX Message Queues"
666                         default n
667                         help
668                           POSIX variant of message queues is a part of IPC. In POSIX message
669                           queues every message has a priority which decides about succession
670                           of receiving it by a process. If you want to compile and run
671                           programs written e.g. for Solaris with use of its POSIX message
672                           queues (functions mq_*) say Y here.
673
674                           POSIX message queues are visible as a filesystem called 'mqueue'
675                           and can be mounted somewhere if you want to do filesystem
676                           operations on message queues.
677
678         endif
679
680         comment "Package build options"
681
682         config DEBUG
683                 bool
684                 prompt "Compile packages with debugging info"
685                 default n
686                 help
687                   Adds -g3 to the CFLAGS
688
689         config IPV6
690                 bool
691                 prompt "Enable IPv6 support in packages"
692                 default y
693                 help
694                   Enable IPV6 support in packages (passes --enable-ipv6 to configure scripts).
695
696         config PKG_BUILD_PARALLEL
697                 bool
698                 prompt "Compile certain packages parallelized"
699                 default y
700                 help
701                   This adds a -jX option to certain packages that are known to
702                   behave well for parallel build. By default the package make processes
703                   use the main jobserver, in which case this option only takes effect
704                   when you add -jX to the make command.
705
706                   If you are unsure, select N.
707
708         config PKG_BUILD_USE_JOBSERVER
709                 bool
710                 prompt "Use top-level make jobserver for packages"
711                 depends on PKG_BUILD_PARALLEL
712                 default y
713                 help
714                   This passes the main make process jobserver fds to package builds,
715                   enabling full parallelization across different packages
716
717                   Note that disabling this may overcommit CPU resources depending on the
718                   -j level of the main make process, the number of package
719                   submake jobs selected below and the number of actual CPUs present.
720                   Example: If the main make is passed a -j4 and the submake -j
721                   is also set to 4, we may end up with 16 parallel make processes
722                   in the worst case.
723
724
725         config PKG_BUILD_JOBS
726                 int
727                 prompt "Number of package submake jobs (2-512)"
728                 range 2 512
729                 default 2
730                 depends on PKG_BUILD_PARALLEL && !PKG_BUILD_USE_JOBSERVER
731                 help
732                   The number of jobs (-jX) to pass to packages submake.
733
734         config PKG_DEFAULT_PARALLEL
735                 bool
736                 prompt "Parallelize the default package build rule (May break build)"
737                 depends on PKG_BUILD_PARALLEL
738                 depends on BROKEN
739                 default n
740                 help
741                   Always set the default package build rules to parallel build.
742
743                   WARNING: This may break build or kill your cat, as it builds
744                   packages with multiple jobs that are probably not tested in
745                   a parallel build environment.
746
747                   Only say Y, if you don't mind fixing broken packages.
748                   Before reporting build bugs, set this to N and re-run the build.
749
750         comment "Stripping options"
751
752         choice
753                 prompt "Binary stripping method"
754                 default USE_STRIP   if EXTERNAL_TOOLCHAIN
755                 default USE_STRIP   if USE_GLIBC || USE_EGLIBC || USE_MUSL
756                 default USE_SSTRIP
757                 help
758                   Select the binary stripping method you wish to use.
759
760                 config NO_STRIP
761                         bool "none"
762                         help
763                           This will install unstripped binaries (useful for native compiling/debugging)
764
765                 config USE_STRIP
766                         bool "strip"
767                         help
768                           This will install binaries stripped using strip from binutils
769
770
771                 config USE_SSTRIP
772                         bool "sstrip"
773                         depends on !DEBUG
774                         depends on !USE_GLIBC
775                         depends on !USE_EGLIBC
776                         help
777                           This will install binaries stripped using sstrip
778         endchoice
779
780         config STRIP_ARGS
781                 string
782                 prompt "Strip arguments"
783                 depends on USE_STRIP
784                 default "--strip-unneeded --remove-section=.comment --remove-section=.note" if DEBUG
785                 default "--strip-all"
786                 help
787                   Specifies arguments passed to the strip command when stripping binaries
788
789         config STRIP_KERNEL_EXPORTS
790                 bool "Strip unnecessary exports from the kernel image"
791                 help
792                   Reduces kernel size by stripping unused kernel exports from the kernel image
793                   Note that this might make the kernel incompatible with any kernel modules that
794                   were not selected at the time the kernel image was created
795
796         config USE_MKLIBS
797                 bool "Strip unnecessary functions from libraries"
798                 help
799                   Reduces libraries to only those functions that are necessary for using all
800                   selected packages (including those selected as <M>)
801                   Note that this will make the system libraries incompatible with most of the packages
802                   that are not selected during the build process
803
804         choice
805                 prompt "Preferred standard C++ library"
806                 default USE_LIBSTDCXX if USE_EGLIBC
807                 default USE_UCLIBCXX
808                 help
809                   Select the preferred standard C++ library for all packages that support this.
810
811                 config USE_UCLIBCXX
812                         bool "uClibc++"
813
814                 config USE_LIBSTDCXX
815                         bool "libstdc++"
816         endchoice
817
818 endmenu
819
820 menuconfig DEVEL
821         bool "Advanced configuration options (for developers)"
822         default n
823
824         config BROKEN
825                 bool "Show broken platforms / packages" if DEVEL
826                 default n
827
828         config DOWNLOAD_FOLDER
829                 string "Download folder" if DEVEL
830                 default ""
831
832         config LOCALMIRROR
833                 string "Local mirror for source packages" if DEVEL
834                 default ""
835
836         config AUTOREBUILD
837                 bool "Automatic rebuild of packages" if DEVEL
838                 default y
839                 help
840                   Automatically rebuild packages when their files change
841
842         config BUILD_SUFFIX
843                 string "Build suffix to append to the BUILD_DIR variable" if DEVEL
844                 default ""
845                 help
846                   Build suffix to append to the BUILD_DIR variable, i.e: build_dir_suffix
847
848         config TARGET_ROOTFS_DIR
849                 string "Override the default TARGET_ROOTFS_DIR variable" if DEVEL
850                 default ""
851                 help
852                   Override the default TARGET_ROOTFS_DIR variable content $(BUILD_DIR) with custom path.
853                   Use this option to re-define the location of the target root file system directory.
854
855         config CCACHE
856                 bool "Use ccache" if DEVEL
857                 default n
858                 help
859                   Compiler cache; see http://ccache.samba.org/
860
861         config EXTERNAL_KERNEL_TREE
862                 string "Use external kernel tree" if DEVEL
863                 default ""
864
865         config KERNEL_GIT_CLONE_URI
866                 string "Enter git repository to clone" if DEVEL
867                 default ""
868                 help
869                   Enter the full git repository path i.e.:
870                   git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
871                   This will create a git clone of the kernel in your build
872                   directory.
873
874         config KERNEL_GIT_LOCAL_REPOSITORY
875                 string "Enter path to local reference repository" if DEVEL
876                 default ""
877                 help
878                   Enter a full pathname to a local reference git repository.
879                   In this instance, the --refererence option of git clone will
880                   be used thus creating a quick local clone of your repo.
881
882         config BUILD_LOG
883                 bool "Enable log files during build process" if DEVEL
884                 help
885                   If enabled log files will be written to the ./log directory
886
887         config SRC_TREE_OVERRIDE
888                 bool "Enable package source tree override" if DEVEL
889                 help
890                   If enabled, you can force a package to use a git tree as source
891                   code instead of the normal tarball. Create a symlink 'git-src'
892                   in the package directory, pointing to the .git tree that you want
893                   to pull the source code from
894
895         config EXTRA_OPTIMIZATION
896                 string "Additional compiler options" if DEVEL
897                 default "-fno-caller-saves"
898                 help
899                   Extra Target-independent optimizations to use when building for the target.
900
901 menuconfig TARGET_OPTIONS
902         bool "Target Options"  if DEVEL
903
904         config TARGET_OPTIMIZATION
905                 string "Target Optimizations" if TARGET_OPTIONS
906                 default DEFAULT_TARGET_OPTIMIZATION
907                 help
908                   Optimizations to use when building for the target host.
909
910         config SOFT_FLOAT
911                 bool "Use software floating point by default" if TARGET_OPTIONS
912                 default y
913                 depends on (arm || armeb || powerpc || mipsel || mips || mips64el || mips64) && !HAS_FPU
914                 help
915                   If your target CPU does not have a Floating Point Unit (FPU) or a
916                   kernel FPU emulator, but you still wish to support floating point
917                   functions, then everything will need to be compiled with soft floating
918                   point support (-msoft-float).
919
920                   Most people will answer N.
921
922         config USE_MIPS16
923                 bool "Build packages with MIPS16 instructions" if TARGET_OPTIONS
924                 depends on HAS_MIPS16
925                 depends on !GCC_VERSION_4_6
926                 default y
927                 help
928                   If your target CPU does support the MIPS16 instruction set
929                   and you want to use it for packages, enable this option.
930                   MIPS16 produces smaller binaries thus reducing pressure on
931                   caches and TLB.
932
933                   Most people will answer N.
934
935 source "toolchain/Config.in"
936
937 source "target/imagebuilder/Config.in"
938 source "target/sdk/Config.in"
939 source "target/toolchain/Config.in"
940
941 source "tmp/.config-package.in"