buildroot: allow enabling MIPS16 user-space build
[openwrt/staging/yousong.git] / Config.in
index 7abfeeaef766a459baa1e8eb7753c606db7ab357..7b03c7a245e9a7ec8cf2fa1ebb8ff1b243f1d1ff 100644 (file)
--- a/Config.in
+++ b/Config.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2009 OpenWrt.org
+# Copyright (C) 2006-2012 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -17,7 +17,6 @@ menu "Target Images"
        menuconfig TARGET_ROOTFS_INITRAMFS
                bool "ramdisk"
                default y if USES_INITRAMFS
        menuconfig TARGET_ROOTFS_INITRAMFS
                bool "ramdisk"
                default y if USES_INITRAMFS
-               depends LINUX_2_6
                help
                  Embed the rootfs into the kernel (initramfs)
 
                help
                  Embed the rootfs into the kernel (initramfs)
 
@@ -27,7 +26,6 @@ menu "Target Images"
                        default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ramips
                        default TARGET_INITRAMFS_COMPRESSION_NONE
                        depends TARGET_ROOTFS_INITRAMFS
                        default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ramips
                        default TARGET_INITRAMFS_COMPRESSION_NONE
                        depends TARGET_ROOTFS_INITRAMFS
-                       depends !LINUX_2_6_25
                        help
                          Select ramdisk compression.
 
                        help
                          Select ramdisk compression.
 
@@ -45,8 +43,18 @@ menu "Target Images"
 
                        config TARGET_INITRAMFS_COMPRESSION_LZO
                                bool "lzo"
 
                        config TARGET_INITRAMFS_COMPRESSION_LZO
                                bool "lzo"
+
+                       config TARGET_INITRAMFS_COMPRESSION_XZ
+                               bool "xz"
                endchoice
 
                endchoice
 
+               config EXTERNAL_CPIO
+                       string
+                       prompt "Use external cpio" if TARGET_ROOTFS_INITRAMFS
+                       default ""
+                       help
+                         Kernel uses specified external cpio as INITRAMFS_SOURCE
+
        comment "Root filesystem archives"
 
        config TARGET_ROOTFS_CPIOGZ
        comment "Root filesystem archives"
 
        config TARGET_ROOTFS_CPIOGZ
@@ -63,17 +71,18 @@ menu "Target Images"
 
        comment "Root filesystem images"
 
 
        comment "Root filesystem images"
 
-       config TARGET_ROOTFS_EXT2FS
-               bool "ext2"
-               default y if USES_EXT2
+       config TARGET_ROOTFS_EXT4FS
+               bool "ext4"
+               default y if USES_EXT4
                depends !TARGET_ROOTFS_INITRAMFS
                help
                depends !TARGET_ROOTFS_INITRAMFS
                help
-                 Ext2 file system with some free space for uml images
+                 Ext4 file system with some free space for uml images
 
        config TARGET_ROOTFS_ISO
                bool "iso"
                default n
 
        config TARGET_ROOTFS_ISO
                bool "iso"
                default n
-               depends TARGET_ROOTFS_INITRAMFS && TARGET_x86
+               depends on TARGET_x86_generic
+               depends !TARGET_ROOTFS_INITRAMFS
                help
                  Create some bootable ISO image
 
                help
                  Create some bootable ISO image
 
@@ -104,18 +113,25 @@ menu "Target Images"
 
        config TARGET_ROOTFS_PARTSIZE
                int "Root filesystem partition size (in MB)"
 
        config TARGET_ROOTFS_PARTSIZE
                int "Root filesystem partition size (in MB)"
-               depends X86_GRUB_IMAGES || TARGET_ROOTFS_EXT2FS || TARGET_rb532
+               depends X86_GRUB_IMAGES || TARGET_ROOTFS_EXT4FS || TARGET_rb532
                default 48
                help
                    Allows you to change the root filesystem partition size
 
        config TARGET_ROOTFS_MAXINODE
                int "Maximum number of inodes in root filesystem"
                default 48
                help
                    Allows you to change the root filesystem partition size
 
        config TARGET_ROOTFS_MAXINODE
                int "Maximum number of inodes in root filesystem"
-               depends TARGET_ROOTFS_EXT2FS
+               depends TARGET_ROOTFS_EXT4FS
                default 6000
                help
                    Allows you to change the maximum number of inodes in the root filesystem
 
                default 6000
                help
                    Allows you to change the maximum number of inodes in the root filesystem
 
+       config TARGET_ROOTFS_RESERVED_PCT
+               int "Percentage of reserved blocks in root filesystem"
+               depends TARGET_ROOTFS_EXT4FS
+               default 0
+               help
+                   Allows you to change the percentage of reserved blocks in the root filesystem
+
 endmenu
 
 menu "Global build settings"
 endmenu
 
 menu "Global build settings"
@@ -126,6 +142,10 @@ menu "Global build settings"
 
        comment "General build options"
 
 
        comment "General build options"
 
+       config DISPLAY_SUPPORT
+               bool "Show packages that require graphics support (local or remote)"
+               default n
+
        config BUILD_PATENTED
                default y
                bool "Compile with support for patented functionality"
        config BUILD_PATENTED
                default y
                bool "Compile with support for patented functionality"
@@ -134,12 +154,19 @@ menu "Global build settings"
                  In case software provides optional support for patented functionality,
                  this optional support will get disabled for this package.
 
                  In case software provides optional support for patented functionality,
                  this optional support will get disabled for this package.
 
-       config LARGEFILE
-               bool
-               prompt "Enable large file (files > 2 GB) support"
-               default y
+       config BUILD_NLS
+               default n
+               bool "Compile with full language support"
                help
                help
-                 Enable large file (files > 2 GB) support.
+                 When this option is enabled, packages are built with the full versions of iconv and GNU gettext
+                 instead of the default OpenWrt stubs. If uClibc is used, it is also built with locale support.
+
+       config BUILD_STATIC_TOOLS
+               default n
+               bool "Attempt to link host utilities statically"
+               help
+                 Linking host utilities like sed or firmware-utils statically increases the portability of the
+                 generated ImageBuilder and SDK tarballs, however it may fail on some Linux distributions.
 
        config SHADOW_PASSWORDS
                bool
 
        config SHADOW_PASSWORDS
                bool
@@ -155,30 +182,267 @@ menu "Global build settings"
                help
                        This removes all ipkg/opkg status data files from the target directory before building the root fs
 
                help
                        This removes all ipkg/opkg status data files from the target directory before building the root fs
 
+       config COLLECT_KERNEL_DEBUG
+               bool
+               prompt "Collect kernel debug information"
+               select KERNEL_DEBUG_INFO
+               default n
+               help
+                       This collects debugging symbols from the kernel and all compiled modules.
+                       Useful for release builds, so that kernel issues can be debugged offline later.
+
        comment "Kernel build options"
 
        config KERNEL_DEBUG_FS
                bool "Compile the kernel with Debug FileSystem enabled"
                default y
        comment "Kernel build options"
 
        config KERNEL_DEBUG_FS
                bool "Compile the kernel with Debug FileSystem enabled"
                default y
-               depends LINUX_2_6
                help
                  debugfs is a virtual file system that kernel developers use to put
                  debugging files into. Enable this option to be able to read and
                  write to these files.
 
                help
                  debugfs is a virtual file system that kernel developers use to put
                  debugging files into. Enable this option to be able to read and
                  write to these files.
 
+       config KERNEL_PERF_EVENTS
+               bool
+               default n
+
        config KERNEL_PROFILING
                bool "Compile the kernel with profiling enabled"
                default n
        config KERNEL_PROFILING
                bool "Compile the kernel with profiling enabled"
                default n
+               select KERNEL_PERF_EVENTS
                help
                  Enable the extended profiling support mechanisms used by profilers such
                  as OProfile.
 
        config KERNEL_KALLSYMS
                bool "Compile the kernel with symbol table information"
                help
                  Enable the extended profiling support mechanisms used by profilers such
                  as OProfile.
 
        config KERNEL_KALLSYMS
                bool "Compile the kernel with symbol table information"
-               default n
+               default y
                help
                  This will give you more information in stack traces from kernel oopses
 
                help
                  This will give you more information in stack traces from kernel oopses
 
+       config KERNEL_FTRACE
+               bool "Compile the kernel with tracing support"
+               default n
+
+       config KERNEL_ENABLE_DEFAULT_TRACERS
+               bool "Trace process context switches and events"
+               depends on KERNEL_FTRACE
+               default n
+
+       config KERNEL_DEBUG_KERNEL
+               bool
+               default n
+
+       config KERNEL_DEBUG_INFO
+               bool "Compile the kernel with debug information"
+               default y
+               select KERNEL_DEBUG_KERNEL
+               help
+                 This will compile your kernel and modules with debug information.
+
+       config KERNEL_DEBUG_LL_UART_NONE
+               bool
+               default n
+               depends on arm
+
+       config KERNEL_DEBUG_LL
+               bool
+               default n
+               depends on arm
+               select KERNEL_DEBUG_LL_UART_NONE
+               help
+                 ARM low level debugging
+
+       config KERNEL_EARLY_PRINTK
+               bool "Compile the kernel with early printk"
+               default n
+               depends on arm
+               select KERNEL_DEBUG_KERNEL
+               select KERNEL_DEBUG_LL if arm
+               help
+                 Compile the kernel with early printk support.
+                 This is only useful for debugging purposes to send messages
+                 over the serial console in early boot.
+                 Enable this to debug early boot problems.
+
+       config KERNEL_AIO
+               bool "Compile the kernel with asynchronous IO support"
+               default n
+
+       config KERNEL_DIRECT_IO
+               bool "Compile the kernel with direct IO support"
+               default n
+
+       config KERNEL_MAGIC_SYSRQ
+               bool "Compile the kernel with SysRq support"
+               default y
+
+       config KERNEL_COREDUMP
+               bool
+
+       config KERNEL_ELF_CORE
+               bool "Enable process core dump support"
+               select KERNEL_COREDUMP
+               default y
+
+       config KERNEL_PROVE_LOCKING
+               bool "Enable kernel lock checking"
+               select KERNEL_DEBUG_KERNEL
+               default n
+
+       config KERNEL_PRINTK_TIME
+               bool "Enable printk timestamps"
+               default y
+
+       config KERNEL_RELAY
+               bool
+
+       #
+       # CGROUP support symbols
+       #
+
+       config KERNEL_FREEZER
+               bool
+               default y if KERNEL_CGROUP_FREEZER
+               depends KERNEL_CGROUPS
+
+       config KERNEL_CGROUP_FREEZER
+               bool
+               depends KERNEL_CGROUPS
+
+       config KERNEL_CGROUP_DEVICE
+               bool
+               depends KERNEL_CGROUPS
+
+       config KERNEL_CPUSETS
+               bool
+               default y if KERNEL_CGROUP_CPUACCT
+               depends KERNEL_CGROUPS
+
+       config KERNEL_PROC_PID_CPUSET
+               bool
+               default y if KERNEL_CGROUP_CPUACCT
+               depends KERNEL_CGROUPS
+
+       config KERNEL_CGROUP_CPUACCT
+               bool
+               depends KERNEL_CGROUPS
+
+       config KERNEL_RESOURCE_COUNTERS
+               bool
+               default y if KERNEL_CGROUP_MEM_RES_CTLR
+               depends KERNEL_CGROUPS
+
+       config KERNEL_CGROUP_MEM_RES_CTLR
+               bool
+               depends KERNEL_CGROUPS
+
+       config KERNEL_CGROUP_MEM_RES_CTLR_SWAP
+               bool
+               depends KERNEL_CGROUPS
+
+       config KERNEL_CGROUP_MEM_RES_CTLR_SWAP_ENABLED
+               bool
+               depends KERNEL_CGROUPS
+
+       config KERNEL_CGROUP_MEM_RES_CTLR_KMEM
+               bool
+               depends KERNEL_CGROUPS
+
+       config KERNEL_CGROUP_PERF
+               bool
+               depends KERNEL_CGROUPS
+
+       config KERNEL_CFS_BANDWIDTH
+               bool
+               default y if KERNEL_FAIR_GROUP_SCHED
+               depends KERNEL_CGROUP_SCHED
+
+       config KERNEL_FAIR_GROUP_SCHED
+               bool
+               default y if KERNEL_CGROUP_SCHED
+               depends KERNEL_CGROUP_SCHED
+
+       config KERNEL_RT_GROUP_SCHED
+               bool
+               default y if KERNEL_CGROUP_SCHED
+               depends KERNEL_CGROUP_SCHED
+
+       config KERNEL_CGROUP_SCHED
+               bool
+               depends KERNEL_CGROUPS
+
+       config KERNEL_NET_CLS_CGROUP
+               bool
+               depends KERNEL_CGROUPS
+
+       config KERNEL_NETPRIO_CGROUP
+               bool
+               depends KERNEL_CGROUPS
+
+       config KERNEL_BLK_CGROUP
+               bool
+               depends KERNEL_CGROUPS
+
+       config KERNEL_DEBUG_BLK_CGROUP
+               bool
+               default n if KERNEL_CGROUPS
+               depends KERNEL_CGROUPS
+
+       config KERNEL_CGROUPS
+               bool "Enable kernel cgroups"
+               default n
+               select KERNEL_CGROUP_FREEZER
+               select KERNEL_CGROUP_DEVICE
+               select KERNEL_CGROUP_CPUACCT
+               select KERNEL_CGROUP_MEM_RES_CTLR
+               select KERNEL_CGROUP_MEM_RES_CTLR_SWAP
+               select KERNEL_CGROUP_MEM_RES_CTLR_SWAP_ENABLED
+               select KERNEL_CGROUP_MEM_RES_CTLR_KMEM
+               select KERNEL_CGROUP_PERF
+               select KERNEL_CGROUP_SCHED
+               select KERNEL_NET_CLS_CGROUP
+               select KERNEL_NETPRIO_CGROUP
+               select KERNEL_BLK_CGROUP
+
+       #
+       # Namespace support symbols
+       #
+
+       config KERNEL_UTS_NS
+               bool
+               depends KERNEL_NAMESPACES
+
+       config KERNEL_IPC_NS
+               bool
+               depends KERNEL_NAMESPACES
+
+       config KERNEL_USER_NS
+               bool
+               depends KERNEL_NAMESPACES
+
+       config KERNEL_PID_NS
+               bool
+               depends KERNEL_NAMESPACES
+
+       config KERNEL_NET_NS
+               bool
+               depends KERNEL_NAMESPACES
+
+       config KERNEL_DEVPTS_MULTIPLE_INSTANCES
+               bool
+               depends KERNEL_NAMESPACES
+
+       config KERNEL_NAMESPACES
+               bool "Enable kernel namespaces"
+               default n
+               select KERNEL_UTS_NS
+               select KERNEL_IPC_NS
+               select KERNEL_USER_NS
+               select KERNEL_PID_NS
+               select KERNEL_NET_NS
+               select KERNEL_DEVPTS_MULTIPLE_INSTANCES
+
+
        comment "Package build options"
 
        config DEBUG
        comment "Package build options"
 
        config DEBUG
@@ -191,16 +455,70 @@ menu "Global build settings"
        config IPV6
                bool
                prompt "Enable IPv6 support in packages"
        config IPV6
                bool
                prompt "Enable IPv6 support in packages"
-               default n
+               default y
                help
                  Enable IPV6 support in packages (passes --enable-ipv6 to configure scripts).
 
                help
                  Enable IPV6 support in packages (passes --enable-ipv6 to configure scripts).
 
+       config PKG_BUILD_PARALLEL
+               bool
+               prompt "Compile certain packages parallelized"
+               default y
+               help
+                 This adds a -jX option to certain packages that are known to
+                 behave well for parallel build. By default the package make processes
+                 use the main jobserver, in which case this option only takes effect
+                 when you add -jX to the make command.
+
+                 If you are unsure, select N.
+
+       config PKG_BUILD_USE_JOBSERVER
+               bool
+               prompt "Use top-level make jobserver for packages"
+               depends on PKG_BUILD_PARALLEL
+               default y
+               help
+                 This passes the main make process jobserver fds to package builds,
+                 enabling full parallelization across different packages
+
+                 Note that disabling this may overcommit CPU resources depending on the
+                 -j level of the main make process, the number of package
+                 submake jobs selected below and the number of actual CPUs present.
+                 Example: If the main make is passed a -j4 and the submake -j
+                 is also set to 4, we may end up with 16 parallel make processes
+                 in the worst case.
+
+
+       config PKG_BUILD_JOBS
+               int
+               prompt "Number of package submake jobs (2-512)"
+               range 2 512
+               default 2
+               depends on PKG_BUILD_PARALLEL && !PKG_BUILD_USE_JOBSERVER
+               help
+                 The number of jobs (-jX) to pass to packages submake.
+
+       config PKG_DEFAULT_PARALLEL
+               bool
+               prompt "Parallelize the default package build rule (May break build)"
+               depends on PKG_BUILD_PARALLEL
+               depends on BROKEN
+               default n
+               help
+                 Always set the default package build rules to parallel build.
+
+                 WARNING: This may break build or kill your cat, as it builds
+                 packages with multiple jobs that are probably not tested in
+                 a parallel build environment.
+
+                 Only say Y, if you don't mind fixing broken packages.
+                 Before reporting build bugs, set this to N and re-run the build.
+
        comment "Stripping options"
 
        choice
                prompt "Binary stripping method"
                default USE_STRIP   if EXTERNAL_TOOLCHAIN
        comment "Stripping options"
 
        choice
                prompt "Binary stripping method"
                default USE_STRIP   if EXTERNAL_TOOLCHAIN
-               default USE_STRIP   if USE_GLIBC || USE_EGLIBC
+               default USE_STRIP   if USE_GLIBC || USE_EGLIBC || USE_MUSL
                default USE_SSTRIP
                help
                  Select the binary stripping method you wish to use.
                default USE_SSTRIP
                help
                  Select the binary stripping method you wish to use.
@@ -235,7 +553,6 @@ menu "Global build settings"
                  Specifies arguments passed to the strip command when stripping binaries
 
        config STRIP_KERNEL_EXPORTS
                  Specifies arguments passed to the strip command when stripping binaries
 
        config STRIP_KERNEL_EXPORTS
-               depends LINUX_2_6
                bool "Strip unnecessary exports from the kernel image"
                help
                  Reduces kernel size by stripping unused kernel exports from the kernel image
                bool "Strip unnecessary exports from the kernel image"
                help
                  Reduces kernel size by stripping unused kernel exports from the kernel image
@@ -250,6 +567,22 @@ menu "Global build settings"
                  Note that this will make the system libraries incompatible with most of the packages
                  that are not selected during the build process
 
                  Note that this will make the system libraries incompatible with most of the packages
                  that are not selected during the build process
 
+       if INSTALL_LIBSTDCPP
+               choice
+                       prompt "Preferred standard C++ library"
+                       default USE_LIBSTDCXX if USE_EGLIBC
+                       default USE_UCLIBCXX
+                       help
+                         Select the preferred standard C++ library for all packages that support this.
+
+                       config USE_UCLIBCXX
+                               bool "uClibc++"
+
+                       config USE_LIBSTDCXX
+                               bool "libstdc++"
+               endchoice
+       endif
+
 endmenu
 
 menuconfig DEVEL
 endmenu
 
 menuconfig DEVEL
@@ -314,6 +647,19 @@ menuconfig DEVEL
                  In this instance, the --refererence option of git clone will
                  be used thus creating a quick local clone of your repo.
 
                  In this instance, the --refererence option of git clone will
                  be used thus creating a quick local clone of your repo.
 
+       config BUILD_LOG
+               bool "Enable log files during build process" if DEVEL
+               help
+                 If enabled log files will be written to the ./log directory
+
+       config SRC_TREE_OVERRIDE
+               bool "Enable package source tree override" if DEVEL
+               help
+                 If enabled, you can force a package to use a git tree as source
+                 code instead of the normal tarball. Create a symlink 'git-src'
+                 in the package directory, pointing to the .git tree that you want
+                 to pull the source code from
+
 menuconfig TARGET_OPTIONS
        bool "Target Options"  if DEVEL
 
 menuconfig TARGET_OPTIONS
        bool "Target Options"  if DEVEL
 
@@ -335,6 +681,17 @@ menuconfig TARGET_OPTIONS
 
                  Most people will answer N.
 
 
                  Most people will answer N.
 
+       config USE_MIPS16
+               bool "Build packages with MIPS16 instructions" if TARGET_OPTIONS
+               depends on HAS_MIPS16
+               help
+                  If your target CPU does support the MIPS16 instruction set
+                  and you want to use it for packages, enable this option.
+                  MIPS16 produces smaller binaries thus reducing pressure on
+                  caches and TLB.
+
+                  Most people will answer N.
+
 source "toolchain/Config.in"
 
 source "target/imagebuilder/Config.in"
 source "toolchain/Config.in"
 
 source "target/imagebuilder/Config.in"