470 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			470 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /* vi: set sw=4 ts=4: */
 | |
| // This file defines the feature set to be compiled into busybox.
 | |
| // When you turn things off here, they won't be compiled in at all.
 | |
| //
 | |
| //// This file is parsed by sed.  You MUST use single line comments.
 | |
| //   i.e.,  //#define CONFIG_BLAH
 | |
| //
 | |
| //
 | |
| // BusyBox Applications
 | |
| //#define CONFIG_ADJTIMEX
 | |
| #define CONFIG_AR
 | |
| #define CONFIG_ASH
 | |
| #define CONFIG_BASENAME
 | |
| #define CONFIG_CAT
 | |
| #define CONFIG_CHGRP
 | |
| #define CONFIG_CHMOD
 | |
| #define CONFIG_CHOWN
 | |
| #define CONFIG_CHROOT
 | |
| #define CONFIG_CHVT
 | |
| #define CONFIG_CLEAR
 | |
| #define CONFIG_CMP
 | |
| #define CONFIG_CP
 | |
| #define CONFIG_CPIO
 | |
| #define CONFIG_CUT
 | |
| #define CONFIG_DATE
 | |
| #define CONFIG_DC
 | |
| #define CONFIG_DD
 | |
| #define CONFIG_DEALLOCVT
 | |
| #define CONFIG_DF
 | |
| #define CONFIG_DIRNAME
 | |
| #define CONFIG_DMESG
 | |
| #define CONFIG_DOS2UNIX
 | |
| #define CONFIG_DPKG
 | |
| #define CONFIG_DPKG_DEB
 | |
| #define CONFIG_DUTMP
 | |
| #define CONFIG_DU
 | |
| #define CONFIG_DUMPKMAP
 | |
| #define CONFIG_ECHO
 | |
| #define CONFIG_ENV
 | |
| #define CONFIG_EXPR
 | |
| #define CONFIG_FBSET
 | |
| #define CONFIG_FDFLUSH
 | |
| #define CONFIG_FIND
 | |
| #define CONFIG_FREE
 | |
| #define CONFIG_FREERAMDISK
 | |
| #define CONFIG_FSCK_MINIX
 | |
| #define CONFIG_GETOPT
 | |
| #define CONFIG_GREP
 | |
| #define CONFIG_GUNZIP
 | |
| #define CONFIG_GZIP
 | |
| #define CONFIG_HALT
 | |
| #define CONFIG_HEAD
 | |
| #define CONFIG_HOSTID
 | |
| #define CONFIG_HOSTNAME
 | |
| //#define CONFIG_HUSH
 | |
| #define CONFIG_ID
 | |
| #define CONFIG_IFCONFIG
 | |
| #define CONFIG_INIT
 | |
| //#define CONFIG_INSMOD
 | |
| #define CONFIG_KILL
 | |
| #define CONFIG_KILLALL
 | |
| #define CONFIG_KLOGD
 | |
| //#define CONFIG_LASH
 | |
| #define CONFIG_LENGTH
 | |
| #define CONFIG_LN
 | |
| #define CONFIG_LOADACM
 | |
| #define CONFIG_LOADFONT
 | |
| #define CONFIG_LOADKMAP
 | |
| #define CONFIG_LOGGER
 | |
| #define CONFIG_LOGNAME
 | |
| #define CONFIG_LS
 | |
| #define CONFIG_LSMOD
 | |
| #define CONFIG_MAKEDEVS
 | |
| #define CONFIG_MD5SUM
 | |
| #define CONFIG_MKDIR
 | |
| #define CONFIG_MKFIFO
 | |
| #define CONFIG_MKFS_MINIX
 | |
| #define CONFIG_MKNOD
 | |
| #define CONFIG_MKSWAP
 | |
| #define CONFIG_MKTEMP
 | |
| //#define CONFIG_MODPROBE
 | |
| #define CONFIG_MORE
 | |
| #define CONFIG_MOUNT
 | |
| //#define CONFIG_MSH
 | |
| #define CONFIG_MT
 | |
| #define CONFIG_MV
 | |
| #define CONFIG_NC
 | |
| #define CONFIG_NSLOOKUP
 | |
| #define CONFIG_PIDOF
 | |
| #define CONFIG_PING
 | |
| #define CONFIG_PIVOT_ROOT
 | |
| #define CONFIG_POWEROFF
 | |
| #define CONFIG_PRINTF
 | |
| #define CONFIG_PS
 | |
| #define CONFIG_PWD
 | |
| #define CONFIG_RDATE
 | |
| #define CONFIG_READLINK
 | |
| #define CONFIG_REBOOT
 | |
| #define CONFIG_RENICE
 | |
| #define CONFIG_RESET
 | |
| #define CONFIG_RM
 | |
| #define CONFIG_RMDIR
 | |
| #define CONFIG_RMMOD
 | |
| #define CONFIG_ROUTE
 | |
| #define CONFIG_RPM2CPIO
 | |
| #define CONFIG_SED
 | |
| #define CONFIG_SETKEYCODES
 | |
| #define CONFIG_SLEEP
 | |
| #define CONFIG_SORT
 | |
| #define CONFIG_STTY
 | |
| #define CONFIG_SWAPONOFF
 | |
| #define CONFIG_SYNC
 | |
| #define CONFIG_SYSLOGD
 | |
| #define CONFIG_TAIL
 | |
| #define CONFIG_TAR
 | |
| #define CONFIG_TEE
 | |
| #define CONFIG_TEST
 | |
| #define CONFIG_TELNET
 | |
| #define CONFIG_TFTP
 | |
| #define CONFIG_TOUCH
 | |
| #define CONFIG_TR
 | |
| #define CONFIG_TRACEROUTE
 | |
| #define CONFIG_TRUE_FALSE
 | |
| #define CONFIG_TTY
 | |
| #define CONFIG_UNIX2DOS
 | |
| #define CONFIG_UUENCODE
 | |
| #define CONFIG_UUDECODE
 | |
| #define CONFIG_UMOUNT
 | |
| #define CONFIG_UNIQ
 | |
| #define CONFIG_UNAME
 | |
| #define CONFIG_UPDATE
 | |
| #define CONFIG_UPTIME
 | |
| #define CONFIG_USLEEP
 | |
| #define CONFIG_VI
 | |
| #define CONFIG_WATCHDOG
 | |
| #define CONFIG_WC
 | |
| #define CONFIG_WGET
 | |
| #define CONFIG_WHICH
 | |
| #define CONFIG_WHOAMI
 | |
| #define CONFIG_XARGS
 | |
| #define CONFIG_YES
 | |
| // End of Applications List
 | |
| //
 | |
| //
 | |
| //
 | |
| // ---------------------------------------------------------
 | |
| // This is where feature definitions go.  Generally speaking,
 | |
| // turning this stuff off makes things a bit smaller (and less 
 | |
| // pretty/useful).
 | |
| //
 | |
| //
 | |
| // If you enabled one or more of the shells, you may select which one
 | |
| // should be run when sh is invoked:
 | |
| #define CONFIG_FEATURE_SH_IS_ASH
 | |
| //#define CONFIG_FEATURE_SH_IS_HUSH
 | |
| //#define CONFIG_FEATURE_SH_IS_LASH
 | |
| //#define CONFIG_FEATURE_SH_IS_MSH
 | |
| //
 | |
| // BusyBox will, by default, malloc space for its buffers.  This costs code
 | |
| // size for the call to xmalloc.  You can use the following feature to have
 | |
| // them put on the stack.  For some very small machines with limited stack
 | |
| // space, this can be deadly.  For most folks, this works just fine...
 | |
| //#define CONFIG_FEATURE_BUFFERS_GO_ON_STACK
 | |
| // The third alternative for buffer allocation is to use BSS.  This works
 | |
| // beautifully for computers with a real MMU (and OS support), but wastes
 | |
| // runtime RAM for uCLinux.  This behavior was the only one available for
 | |
| // BusyBox versions 0.48 and earlier.
 | |
| //#define CONFIG_FEATURE_BUFFERS_GO_IN_BSS
 | |
| //
 | |
| // Turn this on to use Erik's very cool devps, and devmtab kernel drivers,
 | |
| // thereby eliminating the need for the /proc filesystem and thereby saving
 | |
| // lots and lots memory for more important things.  NOTE:  If you enable this
 | |
| // feature, you _must_ have patched the kernel to include the devps patch that
 | |
| // is included in the busybox/kernel-patches directory.  You will also need to
 | |
| // create some device special files in /dev on your embedded system:
 | |
| //        mknod /dev/mtab c 10 22
 | |
| //        mknod /dev/ps c 10 21
 | |
| // I emailed Linus and this patch will not be going into the stock kernel.
 | |
| //#define CONFIG_FEATURE_USE_DEVPS_PATCH
 | |
| //
 | |
| // show verbose usage messages
 | |
| #define CONFIG_FEATURE_VERBOSE_USAGE
 | |
| //
 | |
| // Use termios to manipulate the screen ('more' is prettier with this on)
 | |
| #define CONFIG_FEATURE_USE_TERMIOS
 | |
| //
 | |
| // calculate terminal & column widths (for more and ls)
 | |
| #define CONFIG_FEATURE_AUTOWIDTH
 | |
| //
 | |
| // show username/groupnames for ls
 | |
| #define CONFIG_FEATURE_LS_USERNAME
 | |
| //
 | |
| // show file timestamps in ls
 | |
| #define CONFIG_FEATURE_LS_TIMESTAMPS
 | |
| //
 | |
| // enable ls -p and -F
 | |
| #define CONFIG_FEATURE_LS_FILETYPES
 | |
| //
 | |
| // sort the file names
 | |
| #define CONFIG_FEATURE_LS_SORTFILES
 | |
| //
 | |
| // enable ls -R
 | |
| #define CONFIG_FEATURE_LS_RECURSIVE
 | |
| //
 | |
| // enable ls -L
 | |
| #define CONFIG_FEATURE_LS_FOLLOWLINKS
 | |
| //
 | |
| // Disable for a smaller (but less functional) ping
 | |
| #define CONFIG_FEATURE_FANCY_PING
 | |
| //
 | |
| // Make init use a simplified /etc/inittab file (recommended).
 | |
| #define CONFIG_FEATURE_USE_INITTAB
 | |
| //
 | |
| //Enable init being called as /linuxrc
 | |
| #define CONFIG_FEATURE_INITRD
 | |
| //
 | |
| //Have init enable core dumping for child processes (for debugging only) 
 | |
| //#define CONFIG_FEATURE_INIT_COREDUMPS
 | |
| //
 | |
| //Make sure nothing is printed to the console on boot
 | |
| //#define CONFIG_FEATURE_EXTRA_QUIET
 | |
| //
 | |
| // enable syslogd -R remotehost
 | |
| #define CONFIG_FEATURE_REMOTE_LOG
 | |
| //
 | |
| // enable syslogd -C
 | |
| //#define CONFIG_FEATURE_IPC_SYSLOG
 | |
| //
 | |
| //Disable for a simple tail implementation (2.34k vs 3k for the full one).
 | |
| //Both provide 'tail -f', but this cuts out -c, -q, -s, and -v. 
 | |
| #define CONFIG_FEATURE_FANCY_TAIL
 | |
| //
 | |
| // Enable support for loop devices in mount
 | |
| #define CONFIG_FEATURE_MOUNT_LOOP
 | |
| //
 | |
| // Enable support for a real /etc/mtab file instead of /proc/mounts
 | |
| //#define CONFIG_FEATURE_MTAB_SUPPORT
 | |
| //
 | |
| // Enable support for mounting remote NFS volumes. 
 | |
| // You may need to mount with "-o nolock" if you are
 | |
| // not running a local portmapper daemon...
 | |
| #define CONFIG_FEATURE_NFSMOUNT
 | |
| //
 | |
| // Enable support forced filesystem unmounting 
 | |
| // (i.e., in case of an unreachable NFS system).
 | |
| #define CONFIG_FEATURE_MOUNT_FORCE
 | |
| //
 | |
| // Enable support for creation of tar files.
 | |
| #define CONFIG_FEATURE_TAR_CREATE
 | |
| //
 | |
| // Enable support for "--exclude" and "-X" for excluding files
 | |
| #define CONFIG_FEATURE_TAR_EXCLUDE
 | |
| //
 | |
| // Enable support for tar -z option (currently only works for inflating)
 | |
| #define CONFIG_FEATURE_TAR_GZIP 
 | |
| //
 | |
| // Enable reverse sort
 | |
| #define CONFIG_FEATURE_SORT_REVERSE
 | |
| //
 | |
| // Enable uniqe sort
 | |
| #define CONFIG_FEATURE_SORT_UNIQUE
 | |
| //
 | |
| // Enable command line editing in the shell.  
 | |
| // Only relevant if a shell is enabled. On by default.
 | |
| #define CONFIG_FEATURE_COMMAND_EDITING
 | |
| //
 | |
| // Enable tab completion in the shell.  This is now working quite nicely.
 | |
| // This feature adds a bit over 4k. Only relevant if a shell is enabled.
 | |
| #define CONFIG_FEATURE_COMMAND_TAB_COMPLETION
 | |
| //
 | |
| // Attempts to match usernames in a ~-prefixed path
 | |
| //#define CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION
 | |
| //
 | |
| //Allow the shell to invoke all the compiled in BusyBox applets as if they
 | |
| //were shell builtins.  Nice for staticly linking an emergency rescue shell,
 | |
| //among other things. Off by default.
 | |
| // Only relevant if a shell is enabled.
 | |
| #define CONFIG_FEATURE_SH_STANDALONE_SHELL
 | |
| //
 | |
| //When this is enabled, busybox shell applets can be called using full path
 | |
| //names.  This causes applets (i.e., most busybox commands) to override
 | |
| //real commands on the filesystem.  For example, if you run run /bin/cat, it
 | |
| //will use BusyBox cat even if /bin/cat exists on the filesystem and is _not_
 | |
| //busybox.  Some systems want this, others do not.  Choose wisely.  :-) This
 | |
| //only has meaning when CONFIG_FEATURE_SH_STANDALONE_SHELL is enabled.
 | |
| // Only relevant if a shell is enabled. Off by default.
 | |
| #define CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN
 | |
| //
 | |
| // Uncomment this option for a fancy shell prompt that includes the
 | |
| // current username and hostname.  On systems that don't have usernames
 | |
| // or hostnames, this can look hideous.
 | |
| // Only relevant if a shell is enabled.
 | |
| #define CONFIG_FEATURE_SH_FANCY_PROMPT
 | |
| //
 | |
| //Turn on extra fbset options
 | |
| //#define CONFIG_FEATURE_FBSET_FANCY
 | |
| //
 | |
| //Turn on fbset readmode support
 | |
| //#define CONFIG_FEATURE_FBSET_READMODE
 | |
| //
 | |
| // Support insmod/lsmod/rmmod for post 2.1 kernels
 | |
| #define CONFIG_FEATURE_NEW_MODULE_INTERFACE
 | |
| //
 | |
| // Support insmod/lsmod/rmmod for pre 2.1 kernels
 | |
| //#define CONFIG_FEATURE_OLD_MODULE_INTERFACE
 | |
| //
 | |
| // Support module version checking
 | |
| //#define CONFIG_FEATURE_INSMOD_VERSION_CHECKING
 | |
| //
 | |
| // Support for uClinux memory usage optimization, which will load the image
 | |
| // directly into the kernel memory.  This divides memory requrements by three.
 | |
| // If you are not running uClinux (i.e., your CPU has an MMU) leave this
 | |
| // disabled...
 | |
| //#define CONFIG_FEATURE_INSMOD_LOADINKMEM
 | |
| //
 | |
| // Support for Minix filesystem, version 2
 | |
| //#define CONFIG_FEATURE_MINIX2
 | |
| //
 | |
| // Enable ifconfig status reporting output -- this feature adds 12k.
 | |
| #define CONFIG_FEATURE_IFCONFIG_STATUS
 | |
| //
 | |
| // Enable ifconfig slip-specific options "keepalive" and "outfill"
 | |
| //#define CONFIG_FEATURE_IFCONFIG_SLIP
 | |
| //
 | |
| // Enable ifconfig options "mem_start", "io_addr", and "irq".
 | |
| //#define CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
 | |
| //
 | |
| // Enable ifconfig option "hw".  Currently works for only with "ether".
 | |
| #define CONFIG_FEATURE_IFCONFIG_HW
 | |
| //
 | |
| // Enable busybox --install [-s]
 | |
| // to create links (or symlinks) for all the commands that are 
 | |
| // compiled into the binary.  (needs /proc filesystem)
 | |
| #define CONFIG_FEATURE_INSTALLER
 | |
| //
 | |
| // Enable a nifty progress meter in wget (adds just under 2k)
 | |
| #define CONFIG_FEATURE_WGET_STATUSBAR
 | |
| //
 | |
| // Enable HTTP authentication in wget
 | |
| #define CONFIG_FEATURE_WGET_AUTHENTICATION
 | |
| //
 | |
| // Clean up all memory before exiting -- usually not needed
 | |
| // as the OS can clean up...  Don't enable this unless you
 | |
| // have a really good reason for cleaning things up manually.
 | |
| //#define CONFIG_FEATURE_CLEAN_UP
 | |
| //
 | |
| // Support for human readable output by ls, du, etc.(example 13k, 23M, 235G)
 | |
| #define CONFIG_FEATURE_HUMAN_READABLE
 | |
| //
 | |
| // Support for the find -type option.
 | |
| #define CONFIG_FEATURE_FIND_TYPE
 | |
| //
 | |
| // Support for the find -perm option.
 | |
| #define CONFIG_FEATURE_FIND_PERM
 | |
| //
 | |
| // Support for the find -mtine option.
 | |
| #define CONFIG_FEATURE_FIND_MTIME
 | |
| //
 | |
| // Support for the -A -B and -C context flags in grep
 | |
| //#define CONFIG_FEATURE_GREP_CONTEXT
 | |
| //
 | |
| // Support for the EGREP applet (alias to the grep applet)
 | |
| //#define CONFIG_FEATURE_GREP_EGREP_ALIAS
 | |
| //
 | |
| // Tell tftp what commands that should be supported.
 | |
| #define CONFIG_FEATURE_TFTP_PUT
 | |
| #define CONFIG_FEATURE_TFTP_GET
 | |
| //
 | |
| // features for vi
 | |
| #define CONFIG_FEATURE_VI_COLON		// ":" colon commands, no "ex" mode
 | |
| #define CONFIG_FEATURE_VI_YANKMARK		// Yank/Put commands and Mark cmds
 | |
| #define CONFIG_FEATURE_VI_SEARCH		// search and replace cmds
 | |
| #define CONFIG_FEATURE_VI_USE_SIGNALS	// catch signals
 | |
| #define CONFIG_FEATURE_VI_DOT_CMD		// remember previous cmd and "." cmd
 | |
| #define CONFIG_FEATURE_VI_READONLY		// vi -R and "view" mode
 | |
| #define CONFIG_FEATURE_VI_SETOPTS		// set-able options,  ai ic showmatch
 | |
| #define CONFIG_FEATURE_VI_SET		// :set
 | |
| #define CONFIG_FEATURE_VI_WIN_RESIZE	// handle window resize
 | |
| //
 | |
| // Enable a if you system have setuped locale
 | |
| //#define CONFIG_LOCALE_SUPPORT
 | |
| //
 | |
| // Support for TELNET to pass TERM type to remote host.  Adds 384 bytes.
 | |
| #define CONFIG_FEATURE_TELNET_TTYPE
 | |
| //
 | |
| // End of Features List
 | |
| //
 | |
| //
 | |
| //
 | |
| //
 | |
| //
 | |
| //
 | |
| //---------------------------------------------------
 | |
| // Nothing beyond this point should ever be touched by 
 | |
| // mere mortals so leave this stuff alone.
 | |
| //
 | |
| #include <features.h>
 | |
| #if defined __UCLIBC__ && ! defined __UCLIBC_HAS_MMU__
 | |
| 	#undef CONFIG_RPM2CPIO		/* Uses gz_open(), which uses fork() */
 | |
| 	#undef CONFIG_DPKG_DEB		/* Uses gz_open(), which uses fork() */
 | |
| 	#undef CONFIG_ASH			/* Uses fork() */
 | |
| 	#undef CONFIG_HUSH			/* Uses fork() */
 | |
| 	#undef CONFIG_LASH			/* Uses fork() */
 | |
| 	#undef CONFIG_INIT			/* Uses fork() */
 | |
| 	#undef CONFIG_FEATURE_TAR_GZIP	/* Uses fork() */
 | |
| 	#undef CONFIG_SYSLOGD		/* Uses daemon() */
 | |
| 	#undef CONFIG_KLOGD			/* Uses daemon() */
 | |
| 	#undef CONFIG_UPDATE		/* Uses daemon() */
 | |
| #endif
 | |
| #if defined CONFIG_ASH || defined CONFIG_HUSH || defined CONFIG_LASH || defined CONFIG_MSH
 | |
| 	#if defined CONFIG_FEATURE_COMMAND_EDITING
 | |
| 		#define CONFIG_CMDEDIT
 | |
| 	#else
 | |
| 		#undef CONFIG_FEATURE_COMMAND_EDITING
 | |
| 		#undef CONFIG_FEATURE_COMMAND_TAB_COMPLETION
 | |
| 		#undef CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION
 | |
| 		#undef CONFIG_FEATURE_SH_FANCY_PROMPT
 | |
| 	#endif
 | |
| #else
 | |
| 	#undef CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN
 | |
| 	#undef CONFIG_FEATURE_SH_STANDALONE_SHELL
 | |
| 	#undef CONFIG_FEATURE_SH_FANCY_PROMPT
 | |
| #endif
 | |
| //
 | |
| #ifdef CONFIG_KILLALL
 | |
| 	#ifndef CONFIG_KILL
 | |
| 		#define CONFIG_KILL
 | |
| 	#endif
 | |
| #endif
 | |
| //
 | |
| #ifndef CONFIG_INIT
 | |
| 	#undef CONFIG_FEATURE_INITRD
 | |
| #endif
 | |
| //
 | |
| #if defined CONFIG_MOUNT && defined CONFIG_FEATURE_NFSMOUNT
 | |
| 	#define CONFIG_NFSMOUNT
 | |
| #endif
 | |
| //
 | |
| #if defined CONFIG_FEATURE_AUTOWIDTH
 | |
| 	#ifndef CONFIG_FEATURE_USE_TERMIOS
 | |
| 		#define CONFIG_FEATURE_USE_TERMIOS
 | |
| 	#endif
 | |
| #endif
 | |
| //
 | |
| #if defined CONFIG_INSMOD || defined CONFIG_LSMOD
 | |
| 	#if ! defined CONFIG_FEATURE_NEW_MODULE_INTERFACE && ! defined CONFIG_FEATURE_OLD_MODULE_INTERFACE
 | |
| 		#define CONFIG_FEATURE_NEW_MODULE_INTERFACE
 | |
| 	#endif
 | |
| #endif
 | |
| //
 | |
| #ifdef CONFIG_UNIX2DOS
 | |
| 	#define CONFIG_DOS2UNIX
 | |
| #endif	
 | |
| //
 | |
| #ifdef CONFIG_SYSLOGD
 | |
| 	#if defined CONFIG_FEATURE_IPC_SYSLOG
 | |
| 		#define CONFIG_LOGREAD
 | |
| 	#endif
 | |
| #endif
 | |
| //
 | |
| #if defined CONFIG_ASH && defined CONFIG_FEATURE_SH_IS_ASH
 | |
| # define shell_main ash_main
 | |
| #elif defined CONFIG_HUSH && defined CONFIG_FEATURE_SH_IS_HUSH
 | |
| # define shell_main hush_main
 | |
| #elif defined CONFIG_LASH && defined CONFIG_FEATURE_SH_IS_LASH
 | |
| # define shell_main lash_main
 | |
| #elif defined CONFIG_MSH && defined CONFIG_FEATURE_SH_IS_MSH
 | |
| # define shell_main msh_main
 | |
| #endif
 |