blob: b669bb156bc5467ca82d1927a2bef00e6475390b [file] [log] [blame]
Eric Andersene73fda82000-12-01 22:59:04 +00001/* vi: set sw=4 ts=4: */
2// This file defines the feature set to be compiled into busybox.
3// When you turn things off here, they won't be compiled in at all.
4//
5//// This file is parsed by sed. You MUST use single line comments.
6// i.e. //#define BB_BLAH
7//
8//
9// BusyBox Applications
Eric Andersen69c85722001-02-17 00:41:05 +000010//#define BB_AR
Eric Andersene73fda82000-12-01 22:59:04 +000011#define BB_BASENAME
12#define BB_CAT
13#define BB_CHMOD_CHOWN_CHGRP
14#define BB_CHROOT
Eric Andersen69c85722001-02-17 00:41:05 +000015#define BB_CHVT
Eric Andersene73fda82000-12-01 22:59:04 +000016#define BB_CLEAR
17//#define BB_CMP
Matt Kraai3a4aef52001-04-24 15:19:04 +000018#define BB_CP
Eric Andersene73fda82000-12-01 22:59:04 +000019#define BB_CUT
20#define BB_DATE
21//#define BB_DC
22#define BB_DD
23//#define BB_DEALLOCVT
24#define BB_DF
25#define BB_DIRNAME
26#define BB_DMESG
27//#define BB_DOS2UNIX
Eric Andersen69c85722001-02-17 00:41:05 +000028//#define BB_DPKG
29//#define BB_DPKG_DEB
Eric Andersene73fda82000-12-01 22:59:04 +000030//#define BB_DUTMP
31#define BB_DU
32//#define BB_DUMPKMAP
33#define BB_ECHO
Eric Andersenb04d7442001-04-10 20:07:19 +000034//#define BB_ENV
Eric Andersen69c85722001-02-17 00:41:05 +000035//#define BB_EXPR
36//#define BB_FBSET
Eric Andersene73fda82000-12-01 22:59:04 +000037//#define BB_FDFLUSH
38#define BB_FIND
39#define BB_FREE
Eric Andersen59aa5702001-04-09 22:17:10 +000040#define BB_FREERAMDISK
Eric Andersene73fda82000-12-01 22:59:04 +000041//#define BB_FSCK_MINIX
42//#define BB_GETOPT
43#define BB_GREP
44#define BB_GUNZIP
45#define BB_GZIP
46#define BB_HALT
47#define BB_HEAD
Eric Andersen69c85722001-02-17 00:41:05 +000048//#define BB_HOSTID
49//#define BB_HOSTNAME
Eric Andersene73fda82000-12-01 22:59:04 +000050#define BB_ID
Eric Andersen69c85722001-02-17 00:41:05 +000051//#define BB_IFCONFIG
Eric Andersene73fda82000-12-01 22:59:04 +000052#define BB_INIT
53//#define BB_INSMOD
54#define BB_KILL
55#define BB_KILLALL
Eric Andersen0d5051d2001-03-15 22:12:43 +000056#define BB_KLOGD
Eric Andersene73fda82000-12-01 22:59:04 +000057//#define BB_LENGTH
58#define BB_LN
59//#define BB_LOADACM
60//#define BB_LOADFONT
61//#define BB_LOADKMAP
62#define BB_LOGGER
63//#define BB_LOGNAME
64#define BB_LS
Eric Andersen69c85722001-02-17 00:41:05 +000065#define BB_LSMOD
Eric Andersene73fda82000-12-01 22:59:04 +000066//#define BB_MAKEDEVS
67//#define BB_MD5SUM
68#define BB_MKDIR
69//#define BB_MKFIFO
70//#define BB_MKFS_MINIX
71#define BB_MKNOD
72#define BB_MKSWAP
Eric Andersen69c85722001-02-17 00:41:05 +000073//#define BB_MKTEMP
Eric Andersene73fda82000-12-01 22:59:04 +000074//#define BB_NC
75#define BB_MORE
76#define BB_MOUNT
77//#define BB_MT
Matt Kraai3a4aef52001-04-24 15:19:04 +000078#define BB_MV
Eric Andersene2310b52001-01-20 21:43:43 +000079//#define BB_NSLOOKUP
80//#define BB_PING
Eric Andersen59aa5702001-04-09 22:17:10 +000081#define BB_PIVOT_ROOT
Eric Andersene73fda82000-12-01 22:59:04 +000082#define BB_POWEROFF
83//#define BB_PRINTF
84#define BB_PS
85#define BB_PWD
86//#define BB_RDATE
87//#define BB_READLINK
88#define BB_REBOOT
89//#define BB_RENICE
90#define BB_RESET
91#define BB_RM
92#define BB_RMDIR
93//#define BB_RMMOD
Eric Andersen69c85722001-02-17 00:41:05 +000094//#define BB_ROUTE
Eric Andersene73fda82000-12-01 22:59:04 +000095//#define BB_RPMUNPACK
96#define BB_SED
97//#define BB_SETKEYCODES
Eric Andersen59aa5702001-04-09 22:17:10 +000098//#define BB_SH
Eric Andersene73fda82000-12-01 22:59:04 +000099#define BB_SLEEP
Eric Andersen69c85722001-02-17 00:41:05 +0000100#define BB_SORT
101//#define BB_STTY
Eric Andersene73fda82000-12-01 22:59:04 +0000102#define BB_SWAPONOFF
103#define BB_SYNC
104#define BB_SYSLOGD
105#define BB_TAIL
106#define BB_TAR
107//#define BB_TEE
108//#define BB_TEST
109//#define BB_TELNET
Eric Andersen0d5051d2001-03-15 22:12:43 +0000110//#define BB_TFTP
Eric Andersene73fda82000-12-01 22:59:04 +0000111#define BB_TOUCH
112//#define BB_TR
113#define BB_TRUE_FALSE
Eric Andersen69c85722001-02-17 00:41:05 +0000114#define BB_TTY
Eric Andersene73fda82000-12-01 22:59:04 +0000115//#define BB_UUENCODE
116//#define BB_UUDECODE
117#define BB_UMOUNT
Eric Andersen69c85722001-02-17 00:41:05 +0000118#define BB_UNIQ
Eric Andersene73fda82000-12-01 22:59:04 +0000119#define BB_UNAME
Eric Andersene73fda82000-12-01 22:59:04 +0000120//#define BB_UPDATE
Eric Andersen69c85722001-02-17 00:41:05 +0000121#define BB_UPTIME
122//#define BB_USLEEP
Eric Andersenb04d7442001-04-10 20:07:19 +0000123//#define BB_VI
Eric Andersen69c85722001-02-17 00:41:05 +0000124//#define BB_WATCHDOG
125#define BB_WC
126//#define BB_WGET
127#define BB_WHICH
128#define BB_WHOAMI
Eric Andersene73fda82000-12-01 22:59:04 +0000129#define BB_XARGS
130#define BB_YES
131// End of Applications List
132//
133//
134//
Eric Andersen0d5051d2001-03-15 22:12:43 +0000135
Eric Andersene73fda82000-12-01 22:59:04 +0000136// This is where feature definitions go. Generally speaking,
137// turning this stuff off makes things a bit smaller (and less
138// pretty/useful).
139//
140//
Eric Andersen69c85722001-02-17 00:41:05 +0000141// BusyBox will, by default, malloc space for its buffers. This costs code
142// size for the call to xmalloc. You can use the following feature to have
143// them put on the stack. For some very small machines with limited stack
144// space, this can be deadly. For most folks, this works just fine...
145//#define BB_FEATURE_BUFFERS_GO_ON_STACK
Eric Andersene73fda82000-12-01 22:59:04 +0000146//
147// Turn this on to use Erik's very cool devps, and devmtab kernel drivers,
148// thereby eliminating the need for the /proc filesystem and thereby saving
Eric Andersen69c85722001-02-17 00:41:05 +0000149// lots and lots memory for more important things. NOTE: If you enable this
150// feature, you _must_ have patched the kernel to include the devps patch that
151// is included in the busybox/kernel-patches directory. You will also need to
152// create some device special files in /dev on your embedded system:
Eric Andersene73fda82000-12-01 22:59:04 +0000153// mknod /dev/mtab c 10 22
154// mknod /dev/ps c 10 21
155// I emailed Linus and this patch will not be going into the stock kernel.
156//#define BB_FEATURE_USE_DEVPS_PATCH
157//
Matt Kraaia2e68fc2001-03-27 21:57:29 +0000158// show verbose usage messages
159//#define BB_FEATURE_VERBOSE_USAGE
Eric Andersene73fda82000-12-01 22:59:04 +0000160//
161// Use termios to manipulate the screen ('more' is prettier with this on)
162#define BB_FEATURE_USE_TERMIOS
163//
164// calculate terminal & column widths (for more and ls)
165#define BB_FEATURE_AUTOWIDTH
166//
Eric Andersen69c85722001-02-17 00:41:05 +0000167// show username/groupnames for ls
Eric Andersene73fda82000-12-01 22:59:04 +0000168#define BB_FEATURE_LS_USERNAME
169//
170// show file timestamps in ls
171#define BB_FEATURE_LS_TIMESTAMPS
172//
173// enable ls -p and -F
174#define BB_FEATURE_LS_FILETYPES
175//
176// sort the file names
177#define BB_FEATURE_LS_SORTFILES
178//
179// enable ls -R
180#define BB_FEATURE_LS_RECURSIVE
181//
182// enable ls -L
183#define BB_FEATURE_LS_FOLLOWLINKS
184//
185// Change ping implementation -- simplified, featureless, but really small.
186//#define BB_FEATURE_SIMPLE_PING
187//
188// Make init use a simplified /etc/inittab file (recommended).
189#define BB_FEATURE_USE_INITTAB
190//
191//Enable init being called as /linuxrc
192#define BB_FEATURE_LINUXRC
193//
194//Have init enable core dumping for child processes (for debugging only)
195//#define BB_FEATURE_INIT_COREDUMPS
196//
Eric Andersene73fda82000-12-01 22:59:04 +0000197//Make sure nothing is printed to the console on boot
198//#define BB_FEATURE_EXTRA_QUIET
199//
Eric Andersene73fda82000-12-01 22:59:04 +0000200// enable syslogd -R remotehost
Eric Andersen69c85722001-02-17 00:41:05 +0000201#define BB_FEATURE_REMOTE_LOG
Eric Andersene73fda82000-12-01 22:59:04 +0000202//
Eric Andersen0d5051d2001-03-15 22:12:43 +0000203// enable syslogd -C
204//#define BB_FEATURE_IPC_SYSLOG
205//
Eric Andersene73fda82000-12-01 22:59:04 +0000206//Simple tail implementation (2.34k vs 3k for the full one).
Eric Andersen69c85722001-02-17 00:41:05 +0000207//Both provide 'tail -f', but this cuts out -c, -q, -s, and -v.
Eric Andersene73fda82000-12-01 22:59:04 +0000208#define BB_FEATURE_SIMPLE_TAIL
209//
210// Enable support for loop devices in mount
211#define BB_FEATURE_MOUNT_LOOP
212//
213// Enable support for a real /etc/mtab file instead of /proc/mounts
Eric Andersenc4cef5a2001-04-01 16:01:11 +0000214//#define BB_FEATURE_MTAB_SUPPORT
Eric Andersene73fda82000-12-01 22:59:04 +0000215//
216// Enable support for mounting remote NFS volumes.
Eric Andersene2310b52001-01-20 21:43:43 +0000217// You may need to mount with "-o nolock" if you are
218// not running a local portmapper daemon...
Eric Andersene73fda82000-12-01 22:59:04 +0000219#define BB_FEATURE_NFSMOUNT
220//
221// Enable support forced filesystem unmounting
222// (i.e. in case of an unreachable NFS system).
223#define BB_FEATURE_MOUNT_FORCE
224//
Eric Andersen0d5051d2001-03-15 22:12:43 +0000225// use -i (interactive) flag for rm
226//#define BB_FEATURE_RM_INTERACTIVE
227//
Eric Andersene73fda82000-12-01 22:59:04 +0000228// Enable support for creation of tar files.
Eric Andersen69c85722001-02-17 00:41:05 +0000229#define BB_FEATURE_TAR_CREATE
Eric Andersene73fda82000-12-01 22:59:04 +0000230//
Eric Andersene2310b52001-01-20 21:43:43 +0000231// Enable support for "--exclude" and "-X" for excluding files
Eric Andersen69c85722001-02-17 00:41:05 +0000232#define BB_FEATURE_TAR_EXCLUDE
Eric Andersene73fda82000-12-01 22:59:04 +0000233//
Eric Andersene2310b52001-01-20 21:43:43 +0000234// Enable support for tar -z option (currently only works for inflating)
235#define BB_FEATURE_TAR_GZIP
236//
Eric Andersene73fda82000-12-01 22:59:04 +0000237//// Enable reverse sort
Eric Andersene2310b52001-01-20 21:43:43 +0000238#define BB_FEATURE_SORT_REVERSE
Eric Andersene73fda82000-12-01 22:59:04 +0000239//
Eric Andersen69c85722001-02-17 00:41:05 +0000240// Enable command line editing in the shell.
Eric Andersen0d5051d2001-03-15 22:12:43 +0000241// Only relevant if BB_SH is enabled. On by default.
242#define BB_FEATURE_COMMAND_EDITING
243//
244// Enable tab completion in the shell. This is now working quite nicely.
245// This feature adds a bit over 4k. Only relevant if BB_SH is enabled.
246#define BB_FEATURE_COMMAND_TAB_COMPLETION
247//
248// Attempts to match usernames in a ~-prefixed path
249//#define BB_FEATURE_COMMAND_USERNAME_COMPLETION
Eric Andersene73fda82000-12-01 22:59:04 +0000250//
Eric Andersene2310b52001-01-20 21:43:43 +0000251//Allow the shell to invoke all the compiled in BusyBox applets as if they
252//were shell builtins. Nice for staticly linking an emergency rescue shell,
Eric Andersen0d5051d2001-03-15 22:12:43 +0000253//among other things. Off by default.
Eric Andersen69c85722001-02-17 00:41:05 +0000254// Only relevant if BB_SH is enabled.
255#define BB_FEATURE_SH_STANDALONE_SHELL
Eric Andersene73fda82000-12-01 22:59:04 +0000256//
Eric Andersene2310b52001-01-20 21:43:43 +0000257//When this is enabled, busybox shell applets can be called using full path
258//names. This causes applets (i.e., most busybox commands) to override
Eric Andersene73fda82000-12-01 22:59:04 +0000259//real commands on the filesystem. For example, if you run run /bin/cat, it
260//will use BusyBox cat even if /bin/cat exists on the filesystem and is _not_
261//busybox. Some systems want this, others do not. Choose wisely. :-) This
262//only has meaning when BB_FEATURE_SH_STANDALONE_SHELL is enabled.
Eric Andersen0d5051d2001-03-15 22:12:43 +0000263// Only relevant if BB_SH is enabled. Off by default.
264//#define BB_FEATURE_SH_APPLETS_ALWAYS_WIN
Eric Andersen69c85722001-02-17 00:41:05 +0000265//
266// Some deeply embedded systems don't have usernames or even hostnames,
267// and the default prompt can look rather hideous on them. Uncomment
268// this option for a simpler, path-only prompt (which was the default until
Eric Andersen0d5051d2001-03-15 22:12:43 +0000269// around BusyBox-0.48). On by default.
270// Only relevant if BB_SH is enabled.
Eric Andersen69c85722001-02-17 00:41:05 +0000271#define BB_FEATURE_SH_SIMPLE_PROMPT
272//
Eric Andersene73fda82000-12-01 22:59:04 +0000273//Turn on extra fbset options
274//#define BB_FEATURE_FBSET_FANCY
275//
276//Turn on fbset readmode support
277//#define BB_FEATURE_FBSET_READMODE
278//
Eric Andersen69c85722001-02-17 00:41:05 +0000279// Support insmod/lsmod/rmmod for post 2.1 kernels
280//#define BB_FEATURE_NEW_MODULE_INTERFACE
Eric Andersenc8eedd52000-12-10 04:43:49 +0000281//
Eric Andersen69c85722001-02-17 00:41:05 +0000282// Support insmod/lsmod/rmmod for pre 2.1 kernels
283//#define BB_FEATURE_OLD_MODULE_INTERFACE
Eric Andersene73fda82000-12-01 22:59:04 +0000284//
285// Support module version checking
286//#define BB_FEATURE_INSMOD_VERSION_CHECKING
287//
288// Support for Minix filesystem, version 2
289//#define BB_FEATURE_MINIX2
290//
Eric Andersen0d5051d2001-03-15 22:12:43 +0000291// Enable ifconfig status reporting output -- this feature adds 12k.
292#define BB_FEATURE_IFCONFIG_STATUS
293//
294// Enable ifconfig slip-specific options "keepalive" and "outfill"
295//#define BB_FEATURE_IFCONFIG_SLIP
296//
297// Enable ifconfig options "mem_start", "io_addr", and "irq".
298//#define BB_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
299//
300// Enable ifconfig option "hw". Currently works for only with "ether".
301//#define BB_FEATURE_IFCONFIG_HW
Eric Andersene2310b52001-01-20 21:43:43 +0000302//
Eric Andersene73fda82000-12-01 22:59:04 +0000303// Enable busybox --install [-s]
304// to create links (or symlinks) for all the commands that are
305// compiled into the binary. (needs /proc filesystem)
Eric Andersen0d5051d2001-03-15 22:12:43 +0000306//#define BB_FEATURE_INSTALLER
Eric Andersene73fda82000-12-01 22:59:04 +0000307//
308// Enable a nifty progress meter in wget (adds just under 2k)
Eric Andersen69c85722001-02-17 00:41:05 +0000309#define BB_FEATURE_WGET_STATUSBAR
Eric Andersene73fda82000-12-01 22:59:04 +0000310//
Eric Andersen79757c92001-04-05 21:45:54 +0000311// Enable HTTP authentication in wget
312#define BB_FEATURE_WGET_AUTHENTICATION
313//
Eric Andersene73fda82000-12-01 22:59:04 +0000314// Clean up all memory before exiting -- usually not needed
315// as the OS can clean up... Don't enable this unless you
316// have a really good reason for cleaning things up manually.
317//#define BB_FEATURE_CLEAN_UP
318//
Eric Andersen69c85722001-02-17 00:41:05 +0000319// Support for human readable output by ls, du, etc.(example 13k, 23M, 235G)
320#define BB_FEATURE_HUMAN_READABLE
321//
322// Support for the find -type option.
323#define BB_FEATURE_FIND_TYPE
324//
325// Support for the find -perm option.
326#define BB_FEATURE_FIND_PERM
327//
328// Support for the find -mtine option.
329#define BB_FEATURE_FIND_MTIME
330//
331// Support for the -A -B and -C context flags in grep
332//#define BB_FEATURE_GREP_CONTEXT
333//
Eric Andersen0d5051d2001-03-15 22:12:43 +0000334// Support for the EGREP applet (alias to the grep applet)
335//#define BB_FEATURE_GREP_EGREP_ALIAS
336//
337// Tell tftp what commands that should be supported.
338#define BB_FEATURE_TFTP_PUT
339#define BB_FEATURE_TFTP_GET
340//
Eric Andersene73fda82000-12-01 22:59:04 +0000341// End of Features List
342//
343//
344//
345//
346//
347//
348//---------------------------------------------------
349// Nothing beyond this point should ever be touched by
350// mere mortals so leave this stuff alone.
351//
Eric Andersend8adaa22001-03-15 17:54:56 +0000352#if defined BB_SH
353 #if defined BB_FEATURE_COMMAND_EDITING
354 #define BB_CMDEDIT
355 #ifndef BB_FEATURE_USE_TERMIOS
356 #define BB_FEATURE_USE_TERMIOS
357 #endif
358 #else
359 #undef BB_FEATURE_COMMAND_EDITING
360 #undef BB_FEATURE_COMMAND_TAB_COMPLETION
361 #undef BB_FEATURE_COMMAND_USERNAME_COMPLETION
362 #define BB_FEATURE_SH_SIMPLE_PROMPT
363 #endif
364#else
365 #undef BB_FEATURE_COMMAND_EDITING
366 #undef BB_FEATURE_SH_APPLETS_ALWAYS_WIN
367 #undef BB_FEATURE_SH_STANDALONE_SHELL
368 #undef BB_FEATURE_SH_SIMPLE_PROMPT
Eric Andersene73fda82000-12-01 22:59:04 +0000369#endif
370//
371#ifdef BB_KILLALL
Eric Andersend8adaa22001-03-15 17:54:56 +0000372 #ifndef BB_KILL
373 #define BB_KILL
374 #endif
Eric Andersene73fda82000-12-01 22:59:04 +0000375#endif
376//
Eric Andersene73fda82000-12-01 22:59:04 +0000377#ifndef BB_INIT
Eric Andersend8adaa22001-03-15 17:54:56 +0000378 #undef BB_FEATURE_LINUXRC
Eric Andersene73fda82000-12-01 22:59:04 +0000379#endif
380//
381#ifdef BB_GZIP
Eric Andersend8adaa22001-03-15 17:54:56 +0000382 #ifndef BB_GUNZIP
383 #define BB_GUNZIP
384 #endif
Eric Andersene73fda82000-12-01 22:59:04 +0000385#endif
386//
Eric Andersen69c85722001-02-17 00:41:05 +0000387#ifdef BB_DPKG
Eric Andersend8adaa22001-03-15 17:54:56 +0000388 #ifndef BB_DPKG_DEB
389 #define BB_DPKG_DEB
390 #endif
Eric Andersen69c85722001-02-17 00:41:05 +0000391#endif
392//
Eric Andersene2310b52001-01-20 21:43:43 +0000393#ifdef BB_DPKG_DEB
Eric Andersend8adaa22001-03-15 17:54:56 +0000394 #ifndef BB_AR
395 #define BB_AR
396 #endif
397 #ifndef BB_TAR
398 #define BB_TAR
399 #endif
400 #ifndef BB_FEATURE_TAR_GZIP
401 #define BB_FEATURE_TAR_GZIP
402 #endif
Eric Andersene2310b52001-01-20 21:43:43 +0000403#endif
404//
405#ifdef BB_TAR
Eric Andersend8adaa22001-03-15 17:54:56 +0000406 #ifdef BB_FEATURE_TAR_GZIP
407 #ifndef BB_GUNZIP
408 #define BB_GUNZIP
409 #endif
410 #endif
Eric Andersene2310b52001-01-20 21:43:43 +0000411#endif
412//
Eric Andersene73fda82000-12-01 22:59:04 +0000413#if defined BB_MOUNT && defined BB_FEATURE_NFSMOUNT
Eric Andersend8adaa22001-03-15 17:54:56 +0000414 #define BB_NFSMOUNT
Eric Andersene73fda82000-12-01 22:59:04 +0000415#endif
416//
Eric Andersene73fda82000-12-01 22:59:04 +0000417#if defined BB_FEATURE_AUTOWIDTH
Eric Andersend8adaa22001-03-15 17:54:56 +0000418 #ifndef BB_FEATURE_USE_TERMIOS
419 #define BB_FEATURE_USE_TERMIOS
420 #endif
Eric Andersene73fda82000-12-01 22:59:04 +0000421#endif
422//
Eric Andersen69c85722001-02-17 00:41:05 +0000423#if defined BB_INSMOD || defined BB_LSMOD
Eric Andersend8adaa22001-03-15 17:54:56 +0000424 #if ! defined BB_FEATURE_NEW_MODULE_INTERFACE && ! defined BB_FEATURE_OLD_MODULE_INTERFACE
425 #define BB_FEATURE_NEW_MODULE_INTERFACE
426 #endif
Eric Andersene73fda82000-12-01 22:59:04 +0000427#endif
Eric Andersend8adaa22001-03-15 17:54:56 +0000428//
429#ifdef BB_SYSLOGD
430 #if defined BB_FEATURE_IPC_SYSLOG
431 #define BB_LOGREAD
432 #endif
Eric Andersene73fda82000-12-01 22:59:04 +0000433#endif
Eric Andersend8adaa22001-03-15 17:54:56 +0000434//
435#if defined BB_DOS2UNIX
436 #define BB_UNIX2DOS
437#endif