blob: f94e4a9e5309873c79632ed4217256299e6b564b [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.
10// i.e. //#define BB_BLAH
11//
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
211// (i.e. in case of an unreachable NFS system).
212#define BB_FEATURE_MOUNT_FORCE
213//
Mark Whitleye0bf91d2001-03-13 00:40:19 +0000214// use -i (interactive) flag for rm
215//#define BB_FEATURE_RM_INTERACTIVE
216//
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000217// Enable support for creation of tar files.
218#define BB_FEATURE_TAR_CREATE
219//
220// Enable support for "--exclude" for excluding files
221#define BB_FEATURE_TAR_EXCLUDE
222//
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000223//// Enable reverse sort
224#define BB_FEATURE_SORT_REVERSE
225//
226// Enable command line editing in the shell
227#define BB_FEATURE_SH_COMMAND_EDITING
228//
229//Allow the shell to invoke all the compiled in BusyBox commands as if they
230//were shell builtins. Nice for staticly linking an emergency rescue shell
231//among other thing.
232#define BB_FEATURE_SH_STANDALONE_SHELL
233//
234// Enable tab completion in the shell (not yet
235// working very well -- so don't turn this on)
236//#define BB_FEATURE_SH_TAB_COMPLETION
237//
238//Turn on extra fbset options
239//#define BB_FEATURE_FBSET_FANCY
240//
241//Turn on fbset readmode support
242//#define BB_FEATURE_FBSET_READMODE
243//
244// You must enable one or both of these features
245// Support installing modules from pre 2.1 kernels
246//#define BB_FEATURE_INSMOD_OLD_KERNEL
247// Support installing modules from kernel versions after 2.1.18
248#define BB_FEATURE_INSMOD_NEW_KERNEL
249//
250// Support module version checking
251//#define BB_FEATURE_INSMOD_VERSION_CHECKING
252//
253// Support for Minix filesystem, version 2
254//#define BB_FEATURE_MINIX2
255//
256//
257// Enable busybox --install [-s]
258// to create links (or symlinks) for all the commands that are
259// compiled into the binary. (needs /proc filesystem)
260// #define BB_FEATURE_INSTALLER
261//
262// Clean up all memory before exiting -- usually not needed
263// as the OS can clean up... Don't enable this unless you
264// have a really good reason for cleaning things up manually.
265//#define BB_FEATURE_CLEAN_UP
266//
267// End of Features List
268//
269//
270//
271//
272//
273//
274//---------------------------------------------------
275// Nothing beyond this point should ever be touched by
276// mere mortals so leave this stuff alone.
277//
Eric Andersend8adaa22001-03-15 17:54:56 +0000278#if defined BB_MOUNT || defined BB_UMOUNT || defined BB_DF
279 #ifdef BB_FEATURE_MOUNT_MTAB_SUPPORT
280 #define BB_MTAB
281 #endif
282#else
283 #undef BB_MTAB
284#endif
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000285//
Eric Andersend8adaa22001-03-15 17:54:56 +0000286#if defined BB_SH
287 #if defined BB_FEATURE_COMMAND_EDITING
288 #define BB_CMDEDIT
289 #ifndef BB_FEATURE_USE_TERMIOS
290 #define BB_FEATURE_USE_TERMIOS
291 #endif
292 #else
293 #undef BB_FEATURE_COMMAND_EDITING
294 #undef BB_FEATURE_COMMAND_TAB_COMPLETION
295 #undef BB_FEATURE_COMMAND_USERNAME_COMPLETION
296 #define BB_FEATURE_SH_SIMPLE_PROMPT
297 #endif
298#else
299 #undef BB_FEATURE_COMMAND_EDITING
300 #undef BB_FEATURE_SH_APPLETS_ALWAYS_WIN
301 #undef BB_FEATURE_SH_STANDALONE_SHELL
302 #undef BB_FEATURE_SH_SIMPLE_PROMPT
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000303#endif
304//
305#ifdef BB_KILLALL
Eric Andersend8adaa22001-03-15 17:54:56 +0000306 #ifndef BB_KILL
307 #define BB_KILL
308 #endif
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000309#endif
310//
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000311#ifndef BB_INIT
Eric Andersend8adaa22001-03-15 17:54:56 +0000312 #undef BB_FEATURE_LINUXRC
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000313#endif
314//
315#ifdef BB_GZIP
Eric Andersend8adaa22001-03-15 17:54:56 +0000316 #ifndef BB_GUNZIP
317 #define BB_GUNZIP
318 #endif
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000319#endif
Eric Andersend8adaa22001-03-15 17:54:56 +0000320//
321#ifdef BB_DPKG
322 #ifndef BB_DPKG_DEB
323 #define BB_DPKG_DEB
324 #endif
325#endif
326//
327#ifdef BB_DPKG_DEB
328 #ifndef BB_AR
329 #define BB_AR
330 #endif
331 #ifndef BB_TAR
332 #define BB_TAR
333 #endif
334 #ifndef BB_FEATURE_TAR_GZIP
335 #define BB_FEATURE_TAR_GZIP
336 #endif
337#endif
338//
339#ifdef BB_TAR
340 #ifdef BB_FEATURE_TAR_GZIP
341 #ifndef BB_GUNZIP
342 #define BB_GUNZIP
343 #endif
344 #endif
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000345#endif
346//
347#if defined BB_MOUNT && defined BB_FEATURE_NFSMOUNT
Eric Andersend8adaa22001-03-15 17:54:56 +0000348 #define BB_NFSMOUNT
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000349#endif
350//
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000351#if defined BB_FEATURE_AUTOWIDTH
Eric Andersend8adaa22001-03-15 17:54:56 +0000352 #ifndef BB_FEATURE_USE_TERMIOS
353 #define BB_FEATURE_USE_TERMIOS
354 #endif
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000355#endif
356//
Eric Andersend8adaa22001-03-15 17:54:56 +0000357#if defined BB_INSMOD || defined BB_LSMOD
358 #if ! defined BB_FEATURE_NEW_MODULE_INTERFACE && ! defined BB_FEATURE_OLD_MODULE_INTERFACE
359 #define BB_FEATURE_NEW_MODULE_INTERFACE
360 #endif
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000361#endif
Eric Andersend8adaa22001-03-15 17:54:56 +0000362//
363#ifdef BB_SYSLOGD
364 #if defined BB_FEATURE_IPC_SYSLOG
365 #define BB_LOGREAD
366 #endif
Glenn L McGrathcd26ff42000-09-19 02:25:36 +0000367#endif
Eric Andersend8adaa22001-03-15 17:54:56 +0000368//
369#if defined BB_DOS2UNIX
370 #define BB_UNIX2DOS
371#endif
372