blob: 837c807cc327e23dc8e70951d9b31955ffae0b03 [file] [log] [blame]
Glenn L McGrathcd26ff42000-09-19 02:25:36 +00001/* vi: set sw=4 ts=4: */
2
3// NOTE: This file only defines features usefull under the Hurd,
Eric Andersencaffb6e2000-09-25 21:28:07 +00004// To compile for the Hurd raname this to Config.h prior to make
Glenn L McGrathcd26ff42000-09-19 02:25:36 +00005
6// This file defines the feature set to be compiled into busybox.
7// When you turn things off here, they won't be compiled in at all.
8//
9//// This file is parsed by sed. You MUST use single line comments.
Eric Andersen77d92682001-05-23 20:32:09 +000010// i.e., //#define BB_BLAH
Glenn L McGrathcd26ff42000-09-19 02:25:36 +000011//
12//
13// BusyBox Applications
14#define BB_AR
15#define BB_BASENAME
16#define BB_CAT
Eric Andersen9f0fedb2001-04-24 18:07:19 +000017#define BB_CHGRP
18#define BB_CHMOD
19#define BB_CHOWN
Glenn L McGrathcd26ff42000-09-19 02:25:36 +000020#define BB_CHROOT
21//#define BB_CHVT /* not needed */
22#define BB_CLEAR
Matt Kraai3a4aef52001-04-24 15:19:04 +000023#define BB_CP
Glenn L McGrathcd26ff42000-09-19 02:25:36 +000024#define BB_CUT
25#define BB_DATE
26#define BB_DC
27#define BB_DD
28//#define BB_DEALLOCVT /* inot needed */
29//#define BB_DF /* different implementation */
30#define BB_DIRNAME
31//#define BB_DMESG /* doesnt compile, different implementation */
32#define BB_DUTMP
33#define BB_DU
34//#define BB_DUMPKMAP /* not needed */
35#define BB_ECHO
36#define BB_EXPR
37//#define BB_FBSET /* not needed, doesnt compile */
38//#define BB_FDFLUSH /* is this needed? */
39#define BB_FIND
40//#define BB_FREE /* doesnt compile */
41#define BB_FREERAMDISK /* does hurd support ramdisks ? */
42#define BB_FSCK_MINIX
43#define BB_GETOPT
44#define BB_GREP
45#define BB_GUNZIP
46#define BB_GZIP
47#define BB_HALT
48#define BB_HEAD
49#define BB_HOSTID
50#define BB_HOSTNAME
51#define BB_ID
52//#define BB_INIT /* not needed?, doesnt compile */
53//#define BB_INSMOD /* not needed, doesnt compile */
54#define BB_KILL
55#define BB_KILLALL
56#define BB_LENGTH
57#define BB_LN
58//#define BB_LOADACM /* not needed, doesnt compile */
59//#define BB_LOADFONT /* not needed, doesnt compile */
60//#define BB_LOADKMAP /* not needed */
61#define BB_LOGGER
62#define BB_LOGNAME
63#define BB_LS
64//#define BB_LSMOD /* not needed, doesnt compile */
65//#define BB_MAKEDEVS /* different implementation */
66#define BB_MD5SUM
67#define BB_MKDIR
68#define BB_MKFIFO
69#define BB_MKFS_MINIX
70#define BB_MKNOD
71//#define BB_MKSWAP /* different impelementation (i think) */
72#define BB_MKTEMP
73#define BB_NC
74#define BB_MORE
75//#define BB_MOUNT /* different implementation */
76#define BB_MT
Matt Kraai3a4aef52001-04-24 15:19:04 +000077#define BB_MV
Glenn L McGrathcd26ff42000-09-19 02:25:36 +000078#define BB_NSLOOKUP
79//#define BB_PING /* doesnt compile, Hurd uses BSD style ip.h */
80//#define BB_POWEROFF /* different implementation i assume */
81#define BB_PRINTF
82//#define BB_PS /* needs /proc */
83#define BB_PWD
84#define BB_RDATE
85//#define BB_REBOOT /* different implementation */
86#define BB_RENICE
87#define BB_RESET
88#define BB_RM
89#define BB_RMDIR
90//#define BB_RMMOD /* not needed, doesnt compile */
91#define BB_SED
92//#define BB_SETKEYCODES /* is this needed ? */
93#define BB_SH
94#define BB_SLEEP
95#define BB_SORT
96//#define BB_SWAPONOFF /* different implementation, doesnt compile */
97#define BB_SYNC
98//#define BB_SYSLOGD /* doesnt compile */
99#define BB_TAIL
100#define BB_TAR
101#define BB_TEE
102#define BB_TEST
103#define BB_TELNET
104#define BB_TOUCH
105#define BB_TR
106#define BB_TRUE_FALSE
107#define BB_TTY
108//#define BB_UPTIME /* doesnt compile */
109#define BB_USLEEP
110#define BB_WC
111#define BB_WGET
112#define BB_WHICH
113#define BB_WHOAMI
114#define BB_UUENCODE
115#define BB_UUDECODE
116//#define BB_UMOUNT /* different implementation */
117#define BB_UNIQ
118//#define BB_UNAME /* doesnt compile */
119//#define BB_UPDATE /* doesnt compile */
120#define BB_YES
121// End of Applications List
122//
123//
124//
125// ---------------------------------------------------------
126// This is where feature definitions go. Generally speaking,
127// turning this stuff off makes things a bit smaller (and less
128// pretty/useful).
129//
130//
131//
Eric Andersen53323692000-09-26 00:52:05 +0000132// Turn this on to use Erik's very cool devps and devmtab kernel drivers,
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000133// thereby eliminating the need for the /proc filesystem and thereby saving
134// lots and lots memory for more important things. You can not use this and
135// USE_PROCFS at the same time... NOTE: If you enable this feature, you
136// _must_ have patched the kernel to include the devps patch that is included
137// in the busybox/kernel-patches directory. You will also need to create some
138// device special files in /dev on your embedded system:
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000139// mknod /dev/mtab c 10 22
140// mknod /dev/ps c 10 21
141// I emailed Linus and this patch will not be going into the stock kernel.
142//#define BB_FEATURE_USE_DEVPS_PATCH
143//
144// enable features that use the /proc filesystem (apps that
145// break without this will tell you on compile)...
146// You can't use this and BB_FEATURE_USE_DEVPS_PATCH
147// at the same time...
148#define BB_FEATURE_USE_PROCFS
149//
Matt Kraaia2e68fc2001-03-27 21:57:29 +0000150// show verbose usage messages
151#define BB_FEATURE_VERBOSE_USAGE
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000152//
153// Use termios to manipulate the screen ('more' is prettier with this on)
154#define BB_FEATURE_USE_TERMIOS
155//
156// calculate terminal & column widths (for more and ls)
157#define BB_FEATURE_AUTOWIDTH
158//
159// show username/groupnames (bypasses libc6 NSS) for ls
160#define BB_FEATURE_LS_USERNAME
161//
162// show file timestamps in ls
163#define BB_FEATURE_LS_TIMESTAMPS
164//
165// enable ls -p and -F
166#define BB_FEATURE_LS_FILETYPES
167//
168// sort the file names (still a bit buggy)
169#define BB_FEATURE_LS_SORTFILES
170//
171// enable ls -R
172#define BB_FEATURE_LS_RECURSIVE
173//
174// Change ping implementation -- simplified, featureless, but really small.
175#define BB_FEATURE_SIMPLE_PING
176//
177// Make init use a simplified /etc/inittab file (recommended).
178#define BB_FEATURE_USE_INITTAB
179//
180//Enable init being called as /linuxrc
181//#define BB_FEATURE_LINUXRC
182//
183//Have init enable core dumping for child processes (for debugging only)
184//#define BB_FEATURE_INIT_COREDUMPS
185//
186// Allow init to permenently chroot, and umount the old root fs
187// just like an initrd does. Requires a kernel patch by Werner Almesberger.
188// ftp://icaftp.epfl.ch/pub/people/almesber/misc/umount-root-*.tar.gz
189//#define BB_FEATURE_INIT_CHROOT
190//
191//Make sure nothing is printed to the console on boot
192#define BB_FEATURE_EXTRA_QUIET
193//
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000194// enable syslogd -R remotehost
195#define BB_FEATURE_REMOTE_LOG
196//
197//Simple tail implementation (2.34k vs 3k for the full one).
198//Both provide 'tail -f' support (only one file at a time.)
199#define BB_FEATURE_SIMPLE_TAIL
200//
201// Enable support for loop devices in mount
202//#define BB_FEATURE_MOUNT_LOOP
203//
204// Enable support for a real /etc/mtab file instead of /proc/mounts
205//#define BB_FEATURE_MOUNT_MTAB_SUPPORT
206//
207// Enable support for mounting remote NFS volumes
208//#define BB_FEATURE_NFSMOUNT
209//
210// Enable support forced filesystem unmounting
Eric Andersen77d92682001-05-23 20:32:09 +0000211// (i.e., in case of an unreachable NFS system).
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000212#define BB_FEATURE_MOUNT_FORCE
213//
214// Enable support for creation of tar files.
215#define BB_FEATURE_TAR_CREATE
216//
217// Enable support for "--exclude" for excluding files
218#define BB_FEATURE_TAR_EXCLUDE
219//
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000220//// Enable reverse sort
221#define BB_FEATURE_SORT_REVERSE
222//
223// Enable command line editing in the shell
224#define BB_FEATURE_SH_COMMAND_EDITING
225//
226//Allow the shell to invoke all the compiled in BusyBox commands as if they
227//were shell builtins. Nice for staticly linking an emergency rescue shell
228//among other thing.
229#define BB_FEATURE_SH_STANDALONE_SHELL
230//
231// Enable tab completion in the shell (not yet
232// working very well -- so don't turn this on)
233//#define BB_FEATURE_SH_TAB_COMPLETION
234//
235//Turn on extra fbset options
236//#define BB_FEATURE_FBSET_FANCY
237//
238//Turn on fbset readmode support
239//#define BB_FEATURE_FBSET_READMODE
240//
241// You must enable one or both of these features
242// Support installing modules from pre 2.1 kernels
243//#define BB_FEATURE_INSMOD_OLD_KERNEL
244// Support installing modules from kernel versions after 2.1.18
245#define BB_FEATURE_INSMOD_NEW_KERNEL
246//
247// Support module version checking
248//#define BB_FEATURE_INSMOD_VERSION_CHECKING
249//
250// Support for Minix filesystem, version 2
251//#define BB_FEATURE_MINIX2
252//
253//
254// Enable busybox --install [-s]
255// to create links (or symlinks) for all the commands that are
256// compiled into the binary. (needs /proc filesystem)
257// #define BB_FEATURE_INSTALLER
258//
259// Clean up all memory before exiting -- usually not needed
260// as the OS can clean up... Don't enable this unless you
261// have a really good reason for cleaning things up manually.
262//#define BB_FEATURE_CLEAN_UP
263//
264// End of Features List
265//
266//
267//
268//
269//
270//
271//---------------------------------------------------
272// Nothing beyond this point should ever be touched by
273// mere mortals so leave this stuff alone.
274//
Eric Andersend8adaa22001-03-15 17:54:56 +0000275#if defined BB_SH
276 #if defined BB_FEATURE_COMMAND_EDITING
277 #define BB_CMDEDIT
Eric Andersend8adaa22001-03-15 17:54:56 +0000278 #else
279 #undef BB_FEATURE_COMMAND_EDITING
280 #undef BB_FEATURE_COMMAND_TAB_COMPLETION
281 #undef BB_FEATURE_COMMAND_USERNAME_COMPLETION
282 #define BB_FEATURE_SH_SIMPLE_PROMPT
283 #endif
284#else
Eric Andersend8adaa22001-03-15 17:54:56 +0000285 #undef BB_FEATURE_SH_APPLETS_ALWAYS_WIN
286 #undef BB_FEATURE_SH_STANDALONE_SHELL
287 #undef BB_FEATURE_SH_SIMPLE_PROMPT
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000288#endif
289//
290#ifdef BB_KILLALL
Eric Andersend8adaa22001-03-15 17:54:56 +0000291 #ifndef BB_KILL
292 #define BB_KILL
293 #endif
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000294#endif
295//
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000296#ifndef BB_INIT
Eric Andersend8adaa22001-03-15 17:54:56 +0000297 #undef BB_FEATURE_LINUXRC
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000298#endif
299//
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000300#if defined BB_MOUNT && defined BB_FEATURE_NFSMOUNT
Eric Andersend8adaa22001-03-15 17:54:56 +0000301 #define BB_NFSMOUNT
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000302#endif
303//
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000304#if defined BB_FEATURE_AUTOWIDTH
Eric Andersend8adaa22001-03-15 17:54:56 +0000305 #ifndef BB_FEATURE_USE_TERMIOS
306 #define BB_FEATURE_USE_TERMIOS
307 #endif
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000308#endif
309//
Eric Andersend8adaa22001-03-15 17:54:56 +0000310#if defined BB_INSMOD || defined BB_LSMOD
311 #if ! defined BB_FEATURE_NEW_MODULE_INTERFACE && ! defined BB_FEATURE_OLD_MODULE_INTERFACE
312 #define BB_FEATURE_NEW_MODULE_INTERFACE
313 #endif
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000314#endif
Eric Andersend8adaa22001-03-15 17:54:56 +0000315//
316#ifdef BB_SYSLOGD
317 #if defined BB_FEATURE_IPC_SYSLOG
318 #define BB_LOGREAD
319 #endif
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000320#endif