Add Magnus Damm and fix alpha sorting
[oweals/busybox.git] / Config.h
1 /* 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
10 //#define BB_ADDGROUP
11 //#define BB_ADDUSER
12 //#define BB_ADJTIMEX
13 //#define BB_AR
14 //#define BB_ASH
15 #define BB_BASENAME
16 #define BB_CAT
17 #define BB_CHGRP
18 #define BB_CHMOD
19 #define BB_CHOWN
20 #define BB_CHROOT
21 #define BB_CHVT
22 #define BB_CLEAR
23 //#define BB_CMP
24 #define BB_CP
25 //#define BB_CPIO
26 #define BB_CUT
27 #define BB_DATE
28 //#define BB_DC
29 #define BB_DD
30 //#define BB_DEALLOCVT
31 //#define BB_DELGROUP
32 //#define BB_DELUSER
33 #define BB_DF
34 #define BB_DIRNAME
35 #define BB_DMESG
36 //#define BB_DOS2UNIX
37 //#define BB_DPKG
38 //#define BB_DPKG_DEB
39 //#define BB_DUTMP
40 #define BB_DU
41 //#define BB_DUMPKMAP
42 #define BB_ECHO
43 #define BB_ENV
44 //#define BB_EXPR
45 //#define BB_FBSET
46 //#define BB_FDFLUSH
47 #define BB_FIND
48 #define BB_FREE
49 //#define BB_FREERAMDISK
50 //#define BB_FSCK_MINIX
51 //#define BB_GETOPT
52 //#define BB_GETTY
53 #define BB_GREP
54 #define BB_GUNZIP
55 #define BB_GZIP
56 #define BB_HALT
57 #define BB_HEAD
58 //#define BB_HOSTID
59 //#define BB_HOSTNAME
60 //#define BB_HUSH
61 #define BB_ID
62 //#define BB_IFCONFIG
63 #define BB_INIT
64 //#define BB_INSMOD
65 #define BB_KILL
66 #define BB_KILLALL
67 #define BB_KLOGD
68 //#define BB_LASH
69 //#define BB_LENGTH
70 #define BB_LN
71 //#define BB_LOADACM
72 //#define BB_LOADFONT
73 //#define BB_LOADKMAP
74 #define BB_LOGGER
75 //#define BB_LOGNAME
76 #define BB_LS
77 #define BB_LSMOD
78 //#define BB_MAKEDEVS
79 //#define BB_MD5SUM
80 #define BB_MKDIR
81 //#define BB_MKFIFO
82 //#define BB_MKFS_MINIX
83 #define BB_MKNOD
84 #define BB_MKSWAP
85 //#define BB_MKTEMP
86 #define BB_MODPROBE
87 #define BB_MORE
88 #define BB_MOUNT
89 #define BB_MSH
90 //#define BB_MT
91 #define BB_MV
92 //#define BB_NC
93 //#define BB_NSLOOKUP
94 #define BB_PIDOF
95 //#define BB_PING
96 //#define BB_PIVOT_ROOT
97 #define BB_POWEROFF
98 //#define BB_PRINTF
99 #define BB_PS
100 #define BB_PWD
101 //#define BB_RDATE
102 //#define BB_READLINK
103 #define BB_REBOOT
104 //#define BB_RENICE
105 #define BB_RESET
106 #define BB_RM
107 #define BB_RMDIR
108 //#define BB_RMMOD
109 //#define BB_ROUTE
110 //#define BB_RPM2CPIO
111 #define BB_SED
112 //#define BB_SETKEYCODES
113 #define BB_SLEEP
114 #define BB_SORT
115 //#define BB_STTY
116 #define BB_SWAPONOFF
117 #define BB_SYNC
118 #define BB_SYSLOGD
119 #define BB_TAIL
120 #define BB_TAR
121 //#define BB_TEE
122 //#define BB_TEST
123 //#define BB_TELNET
124 //#define BB_TFTP
125 #define BB_TOUCH
126 //#define BB_TR
127 //#define BB_TRACEROUTE
128 #define BB_TRUE_FALSE
129 #define BB_TTY
130 //#define BB_UNIX2DOS
131 //#define BB_UUENCODE
132 //#define BB_UUDECODE
133 #define BB_UMOUNT
134 #define BB_UNIQ
135 #define BB_UNAME
136 //#define BB_UPDATE
137 #define BB_UPTIME
138 //#define BB_USLEEP
139 //#define BB_VI
140 //#define BB_WATCHDOG
141 #define BB_WC
142 //#define BB_WGET
143 #define BB_WHICH
144 #define BB_WHOAMI
145 #define BB_XARGS
146 #define BB_YES
147 // End of Applications List
148 //
149 //
150 //
151 // ---------------------------------------------------------
152 // This is where feature definitions go.  Generally speaking,
153 // turning this stuff off makes things a bit smaller (and less 
154 // pretty/useful).
155 //
156 //
157 // If you enabled one or more of the shells, you may select which one
158 // should be run when sh is invoked:
159 //#define BB_FEATURE_SH_IS_ASH
160 //#define BB_FEATURE_SH_IS_HUSH
161 //#define BB_FEATURE_SH_IS_LASH
162 #define BB_FEATURE_SH_IS_MSH
163 //
164 // BusyBox will, by default, malloc space for its buffers.  This costs code
165 // size for the call to xmalloc.  You can use the following feature to have
166 // them put on the stack.  For some very small machines with limited stack
167 // space, this can be deadly.  For most folks, this works just fine...
168 //#define BB_FEATURE_BUFFERS_GO_ON_STACK
169 // The third alternative for buffer allocation is to use BSS.  This works
170 // beautifully for computers with a real MMU (and OS support), but wastes
171 // runtime RAM for uCLinux.  This behavior was the only one available for
172 // BusyBox versions 0.48 and earlier.
173 //#define BB_FEATURE_BUFFERS_GO_IN_BSS
174 //
175 // Turn this on to use Erik's very cool devps, and devmtab kernel drivers,
176 // thereby eliminating the need for the /proc filesystem and thereby saving
177 // lots and lots memory for more important things.  NOTE:  If you enable this
178 // feature, you _must_ have patched the kernel to include the devps patch that
179 // is included in the busybox/kernel-patches directory.  You will also need to
180 // create some device special files in /dev on your embedded system:
181 //        mknod /dev/mtab c 10 22
182 //        mknod /dev/ps c 10 21
183 // I emailed Linus and this patch will not be going into the stock kernel.
184 //#define BB_FEATURE_USE_DEVPS_PATCH
185 //
186 // show verbose usage messages
187 //#define BB_FEATURE_VERBOSE_USAGE
188 //
189 // Use termios to manipulate the screen ('more' is prettier with this on)
190 //#define BB_FEATURE_USE_TERMIOS
191 //
192 // calculate terminal & column widths (for more and ls)
193 #define BB_FEATURE_AUTOWIDTH
194 //
195 // show username/groupnames for ls
196 #define BB_FEATURE_LS_USERNAME
197 //
198 // show file timestamps in ls
199 #define BB_FEATURE_LS_TIMESTAMPS
200 //
201 // enable ls -p and -F
202 #define BB_FEATURE_LS_FILETYPES
203 //
204 // sort the file names
205 #define BB_FEATURE_LS_SORTFILES
206 //
207 // enable ls -R
208 #define BB_FEATURE_LS_RECURSIVE
209 //
210 // enable ls -L
211 #define BB_FEATURE_LS_FOLLOWLINKS
212 //
213 // Disable for a smaller (but less functional) ping
214 #define BB_FEATURE_FANCY_PING
215 //
216 // Make init use a simplified /etc/inittab file (recommended).
217 #define BB_FEATURE_USE_INITTAB
218 //
219 //Enable init being called as /linuxrc
220 #define BB_FEATURE_LINUXRC
221 //
222 //Have init enable core dumping for child processes (for debugging only) 
223 //#define BB_FEATURE_INIT_COREDUMPS
224 //
225 //Make sure nothing is printed to the console on boot
226 //#define BB_FEATURE_EXTRA_QUIET
227 //
228 // enable syslogd -R remotehost
229 #define BB_FEATURE_REMOTE_LOG
230 //
231 // enable syslogd -C
232 //#define BB_FEATURE_IPC_SYSLOG
233 //
234 //Disable for a simple tail implementation (2.34k vs 3k for the full one).
235 //Both provide 'tail -f', but this cuts out -c, -q, -s, and -v. 
236 #define BB_FEATURE_FANCY_TAIL
237 //
238 // Enable support for loop devices in mount
239 #define BB_FEATURE_MOUNT_LOOP
240 //
241 // Enable support for a real /etc/mtab file instead of /proc/mounts
242 //#define BB_FEATURE_MTAB_SUPPORT
243 //
244 // Enable support for mounting remote NFS volumes. 
245 // You may need to mount with "-o nolock" if you are
246 // not running a local portmapper daemon...
247 //
248 // If you are using uClibc, be sure that you've already compiled
249 // uClibc with INCLUDE_RPC=true (contained in the Config file)
250 //#define BB_FEATURE_NFSMOUNT
251 //
252 // Enable support forced filesystem unmounting 
253 // (i.e., in case of an unreachable NFS system).
254 #define BB_FEATURE_MOUNT_FORCE
255 //
256 // Enable support for creation of tar files.
257 #define BB_FEATURE_TAR_CREATE
258 //
259 // Enable support for "--exclude" and "-X" for excluding files
260 #define BB_FEATURE_TAR_EXCLUDE
261 //
262 // Enable support for tar -z option (currently only works for inflating)
263 #define BB_FEATURE_TAR_GZIP 
264 //
265 // Enable reverse sort
266 #define BB_FEATURE_SORT_REVERSE
267 //
268 // Enable uniqe sort
269 #define BB_FEATURE_SORT_UNIQUE
270 //
271 // Enable command line editing in the shell.  
272 // Only relevant if a shell is enabled. On by default.
273 #define BB_FEATURE_COMMAND_EDITING
274 //
275 // Enable tab completion in the shell.  This is now working quite nicely.
276 // This feature adds a bit over 4k. Only relevant if a shell is enabled.
277 #define BB_FEATURE_COMMAND_TAB_COMPLETION
278 //
279 // Attempts to match usernames in a ~-prefixed path
280 //#define BB_FEATURE_COMMAND_USERNAME_COMPLETION
281 //
282 //Allow the shell to invoke all the compiled in BusyBox applets as if they
283 //were shell builtins.  Nice for staticly linking an emergency rescue shell,
284 //among other things. Off by default.
285 // Only relevant if a shell is enabled.
286 //#define BB_FEATURE_SH_STANDALONE_SHELL
287 //
288 //When this is enabled, busybox shell applets can be called using full path
289 //names.  This causes applets (i.e., most busybox commands) to override
290 //real commands on the filesystem.  For example, if you run run /bin/cat, it
291 //will use BusyBox cat even if /bin/cat exists on the filesystem and is _not_
292 //busybox.  Some systems want this, others do not.  Choose wisely.  :-) This
293 //only has meaning when BB_FEATURE_SH_STANDALONE_SHELL is enabled.
294 // Only relevant if a shell is enabled. Off by default.
295 //#define BB_FEATURE_SH_APPLETS_ALWAYS_WIN
296 //
297 // Uncomment this option for a fancy shell prompt that includes the
298 // current username and hostname.  On systems that don't have usernames
299 // or hostnames, this can look hideous.
300 // Only relevant if a shell is enabled.
301 //#define BB_FEATURE_SH_FANCY_PROMPT
302 //
303 //Turn on extra fbset options
304 //#define BB_FEATURE_FBSET_FANCY
305 //
306 //Turn on fbset readmode support
307 //#define BB_FEATURE_FBSET_READMODE
308 //
309 // Support insmod/lsmod/rmmod for post 2.1 kernels
310 //#define BB_FEATURE_NEW_MODULE_INTERFACE
311 //
312 // Support insmod/lsmod/rmmod for pre 2.1 kernels
313 //#define BB_FEATURE_OLD_MODULE_INTERFACE
314 //
315 // Support module version checking
316 //#define BB_FEATURE_INSMOD_VERSION_CHECKING
317 //
318 // Support for uClinux memory usage optimization, which will load the image
319 // directly into the kernel memory.  This divides memory requrements by three.
320 // If you are not running uClinux (i.e., your CPU has an MMU) leave this
321 // disabled...
322 //#define BB_FEATURE_INSMOD_LOADINKMEM
323 //
324 // Support for Minix filesystem, version 2
325 //#define BB_FEATURE_MINIX2
326 //
327 // Enable ifconfig status reporting output -- this feature adds 7k.
328 //#define BB_FEATURE_IFCONFIG_STATUS
329 //
330 // Enable ifconfig slip-specific options "keepalive" and "outfill"
331 //#define BB_FEATURE_IFCONFIG_SLIP
332 //
333 // Enable ifconfig options "mem_start", "io_addr", and "irq".
334 //#define BB_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
335 //
336 // Enable ifconfig option "hw".  Currently works for only with "ether".
337 //#define BB_FEATURE_IFCONFIG_HW
338 //
339 // Allows "broadcast +" to set broadcast automatically based on hostaddr
340 // and netmask, at a cost of about 100 bytes of code (i386).
341 //#define BB_FEATURE_IFCONFIG_BROADCAST_PLUS
342 //
343 // Enable busybox --install [-s]
344 // to create links (or symlinks) for all the commands that are 
345 // compiled into the binary.  (needs /proc filesystem)
346 //#define BB_FEATURE_INSTALLER
347 //
348 // Enable a nifty progress meter in wget (adds just under 2k)
349 #define BB_FEATURE_WGET_STATUSBAR
350 //
351 // Enable HTTP authentication in wget
352 #define BB_FEATURE_WGET_AUTHENTICATION
353 //
354 // Clean up all memory before exiting -- usually not needed
355 // as the OS can clean up...  Don't enable this unless you
356 // have a really good reason for cleaning things up manually.
357 //#define BB_FEATURE_CLEAN_UP
358 //
359 // Support for human readable output by ls, du, etc.(example 13k, 23M, 235G)
360 #define BB_FEATURE_HUMAN_READABLE
361 //
362 // Support for the find -type option.
363 #define BB_FEATURE_FIND_TYPE
364 //
365 // Support for the find -perm option.
366 #define BB_FEATURE_FIND_PERM
367 //
368 // Support for the find -mtine option.
369 #define BB_FEATURE_FIND_MTIME
370 //
371 // Support for the -A -B and -C context flags in grep
372 //#define BB_FEATURE_GREP_CONTEXT
373 //
374 // Support for the EGREP applet (alias to the grep applet)
375 //#define BB_FEATURE_GREP_EGREP_ALIAS
376 //
377 // Tell tftp what commands that should be supported.
378 #define BB_FEATURE_TFTP_PUT
379 #define BB_FEATURE_TFTP_GET
380 //
381 // features for vi
382 #define BB_FEATURE_VI_COLON             // ":" colon commands, no "ex" mode
383 #define BB_FEATURE_VI_YANKMARK          // Yank/Put commands and Mark cmds
384 #define BB_FEATURE_VI_SEARCH            // search and replace cmds
385 #define BB_FEATURE_VI_USE_SIGNALS       // catch signals
386 #define BB_FEATURE_VI_DOT_CMD           // remember previous cmd and "." cmd
387 #define BB_FEATURE_VI_READONLY          // vi -R and "view" mode
388 #define BB_FEATURE_VI_SETOPTS           // set-able options,  ai ic showmatch
389 #define BB_FEATURE_VI_SET               // :set
390 #define BB_FEATURE_VI_WIN_RESIZE        // handle window resize
391 //
392 // Enable a if you system have setuped locale
393 //#define BB_LOCALE_SUPPORT
394 //
395 // Support for TELNET to pass TERM type to remote host.  Adds 384 bytes.
396 #define BB_FEATURE_TELNET_TTYPE
397 //
398 // Support for devfs.
399 //#define BB_FEATURE_DEVFS
400 //
401 // End of Features List
402 //
403 //
404 //
405 //
406 //
407 //
408 //---------------------------------------------------
409 // Nothing beyond this point should ever be touched by 
410 // mere mortals so leave this stuff alone.
411 //
412 #include <features.h>
413 #if defined __UCLIBC__ && ! defined __UCLIBC_HAS_MMU__
414         #undef BB_RPM2CPIO              /* Uses gz_open(), which uses fork() */
415         #undef BB_DPKG_DEB              /* Uses gz_open(), which uses fork() */
416         #undef BB_ASH                   /* Uses fork() */
417         #undef BB_HUSH                  /* Uses fork() */
418         #undef BB_LASH                  /* Uses fork() */
419         #undef BB_INIT                  /* Uses fork() */
420         #undef BB_FEATURE_TAR_GZIP      /* Uses fork() */
421         #undef BB_SYSLOGD               /* Uses daemon() */
422         #undef BB_KLOGD                 /* Uses daemon() */
423         #undef BB_UPDATE                /* Uses daemon() */
424 #endif
425 #if defined BB_ASH || defined BB_HUSH || defined BB_LASH || defined BB_MSH
426         #if defined BB_FEATURE_COMMAND_EDITING
427                 #define BB_CMDEDIT
428         #else
429                 #undef BB_FEATURE_COMMAND_EDITING
430                 #undef BB_FEATURE_COMMAND_TAB_COMPLETION
431                 #undef BB_FEATURE_COMMAND_USERNAME_COMPLETION
432                 #undef BB_FEATURE_SH_FANCY_PROMPT
433         #endif
434 #else
435         #undef BB_FEATURE_SH_APPLETS_ALWAYS_WIN
436         #undef BB_FEATURE_SH_STANDALONE_SHELL
437         #undef BB_FEATURE_SH_FANCY_PROMPT
438 #endif
439 //
440 #if (defined BB_ASH || defined BB_HUSH || defined BB_MSH) && ! defined BB_TEST
441         #define BB_TEST
442 #endif
443 //
444 #ifdef BB_KILLALL
445         #ifndef BB_KILL
446                 #define BB_KILL
447         #endif
448 #endif
449 //
450 #ifndef BB_INIT
451         #undef BB_FEATURE_LINUXRC
452 #endif
453 //
454 #if defined BB_MOUNT && defined BB_FEATURE_NFSMOUNT
455         #define BB_NFSMOUNT
456 #endif
457 //
458 #if defined BB_FEATURE_AUTOWIDTH
459         #ifndef BB_FEATURE_USE_TERMIOS
460                 #define BB_FEATURE_USE_TERMIOS
461         #endif
462 #endif
463 //
464 #if defined BB_INSMOD || defined BB_LSMOD
465         #if ! defined BB_FEATURE_NEW_MODULE_INTERFACE && ! defined BB_FEATURE_OLD_MODULE_INTERFACE
466                 #define BB_FEATURE_NEW_MODULE_INTERFACE
467         #endif
468 #endif
469 //
470 #ifdef BB_UNIX2DOS
471         #define BB_DOS2UNIX
472 #endif  
473 //
474 #ifdef BB_SYSLOGD
475         #if defined BB_FEATURE_IPC_SYSLOG
476                 #define BB_LOGREAD
477         #endif
478 #endif
479 //
480 #if defined BB_ASH && defined BB_FEATURE_SH_IS_ASH
481 # define shell_main ash_main
482 #elif defined BB_HUSH && defined BB_FEATURE_SH_IS_HUSH
483 # define shell_main hush_main
484 #elif defined BB_LASH && defined BB_FEATURE_SH_IS_LASH
485 # define shell_main lash_main
486 #elif defined BB_MSH && defined BB_FEATURE_SH_IS_MSH
487 # define shell_main msh_main
488 #endif