1/* vi: set sw=4 ts=4: */
2
3// NOTE: This file only defines features usefull under the Hurd,
4// To compile for the Hurd raname this to Config.h prior to make
5
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
17#define BB_CHMOD_CHOWN_CHGRP
18#define BB_CHROOT
19//#define BB_CHVT	/* not needed */
20#define BB_CLEAR
21#define BB_CP_MV
22#define BB_CUT
23#define BB_DATE
24#define BB_DC
25#define BB_DD
26//#define BB_DEALLOCVT	/* inot needed */
27//#define BB_DF		/* different implementation */
28#define BB_DIRNAME
29//#define BB_DMESG	/* doesnt compile, different implementation  */
30#define BB_DUTMP
31#define BB_DU
32//#define BB_DUMPKMAP	/* not needed */
33#define BB_ECHO
34#define BB_EXPR
35//#define BB_FBSET	/* not needed, doesnt compile */
36//#define BB_FDFLUSH 	/* is this needed? */
37#define BB_FIND
38//#define BB_FREE	/* doesnt compile */
39#define BB_FREERAMDISK  /* does hurd support ramdisks ? */
40#define BB_FSCK_MINIX
41#define BB_GETOPT
42#define BB_GREP
43#define BB_GUNZIP
44#define BB_GZIP
45#define BB_HALT
46#define BB_HEAD
47#define BB_HOSTID
48#define BB_HOSTNAME
49#define BB_ID
50//#define BB_INIT	/* not needed?, doesnt compile */
51//#define BB_INSMOD	/* not needed, doesnt compile */
52#define BB_KILL
53#define BB_KILLALL
54#define BB_LENGTH
55#define BB_LN
56//#define BB_LOADACM	/* not needed, doesnt compile */
57//#define BB_LOADFONT	/* not needed, doesnt compile */
58//#define BB_LOADKMAP	/* not needed */
59#define BB_LOGGER
60#define BB_LOGNAME
61#define BB_LS
62//#define BB_LSMOD	/* not needed, doesnt compile */
63//#define BB_MAKEDEVS	/* different implementation */
64#define BB_MD5SUM
65#define BB_MKDIR
66#define BB_MKFIFO
67#define BB_MKFS_MINIX
68#define BB_MKNOD
69//#define BB_MKSWAP 	/* different impelementation (i think) */
70#define BB_MKTEMP
71#define BB_NC
72#define BB_MORE
73//#define BB_MOUNT	/* different implementation */
74#define BB_MT
75#define BB_NSLOOKUP
76//#define BB_PING	/* doesnt compile, Hurd uses BSD style ip.h */
77//#define BB_POWEROFF	/* different implementation i assume */
78#define BB_PRINTF
79//#define BB_PS		/* needs /proc */
80#define BB_PWD
81#define BB_RDATE
82//#define BB_REBOOT	/* different implementation */
83#define BB_RENICE
84#define BB_RESET
85#define BB_RM
86#define BB_RMDIR
87//#define BB_RMMOD	/* not needed, doesnt compile */
88#define BB_SED
89//#define BB_SETKEYCODES /* is this needed ? */
90#define BB_SH
91#define BB_SLEEP
92#define BB_SORT
93//#define BB_SWAPONOFF	/* different implementation, doesnt compile */
94#define BB_SYNC
95//#define BB_SYSLOGD 	/* doesnt compile */
96#define BB_TAIL
97#define BB_TAR
98#define BB_TEE
99#define BB_TEST
100#define BB_TELNET
101#define BB_TOUCH
102#define BB_TR
103#define BB_TRACEROUTE
104#define BB_TRUE_FALSE
105#define BB_TTY
106//#define BB_UPTIME 	/* doesnt compile */
107#define BB_USLEEP
108#define BB_WC
109#define BB_WGET
110#define BB_WHICH
111#define BB_WHOAMI
112#define BB_UUENCODE
113#define BB_UUDECODE
114//#define BB_UMOUNT	/* different implementation */
115#define BB_UNIQ
116//#define BB_UNAME	/* doesnt compile */
117//#define BB_UPDATE	/* doesnt compile */
118#define BB_YES
119// End of Applications List
120//
121//
122//
123// ---------------------------------------------------------
124// This is where feature definitions go.  Generally speaking,
125// turning this stuff off makes things a bit smaller (and less 
126// pretty/useful).
127//
128//
129//
130// Turn this on to use Erik's very cool devps and devmtab kernel drivers,
131// thereby eliminating the need for the /proc filesystem and thereby saving
132// lots and lots memory for more important things.  You can not use this and
133// USE_PROCFS at the same time...  NOTE:  If you enable this feature, you
134// _must_ have patched the kernel to include the devps patch that is included
135// in the busybox/kernel-patches directory.  You will also need to create some
136// device special files in /dev on your embedded system:
137//        mknod /dev/mtab c 10 22
138//        mknod /dev/ps c 10 21
139// I emailed Linus and this patch will not be going into the stock kernel.
140//#define BB_FEATURE_USE_DEVPS_PATCH
141//
142// enable features that use the /proc filesystem (apps that 
143// break without this will tell you on compile)...
144// You can't use this and BB_FEATURE_USE_DEVPS_PATCH 
145// at the same time...
146#define BB_FEATURE_USE_PROCFS
147//
148// This compiles out everything but the most 
149// trivial --help usage information (i.e. reduces binary size)
150//#define BB_FEATURE_TRIVIAL_HELP
151//
152// Use termios to manipulate the screen ('more' is prettier with this on)
153#define BB_FEATURE_USE_TERMIOS
154//
155// calculate terminal & column widths (for more and ls)
156#define BB_FEATURE_AUTOWIDTH
157//
158// show username/groupnames (bypasses libc6 NSS) for ls
159#define BB_FEATURE_LS_USERNAME
160//
161// show file timestamps in ls
162#define BB_FEATURE_LS_TIMESTAMPS
163//
164// enable ls -p and -F
165#define BB_FEATURE_LS_FILETYPES
166//
167// sort the file names (still a bit buggy)
168#define BB_FEATURE_LS_SORTFILES
169//
170// enable ls -R
171#define BB_FEATURE_LS_RECURSIVE
172//
173// Change ping implementation -- simplified, featureless, but really small.
174#define BB_FEATURE_SIMPLE_PING
175//
176// Make init use a simplified /etc/inittab file (recommended).
177#define BB_FEATURE_USE_INITTAB
178//
179//Enable init being called as /linuxrc
180//#define BB_FEATURE_LINUXRC
181//
182//Have init enable core dumping for child processes (for debugging only) 
183//#define BB_FEATURE_INIT_COREDUMPS
184//
185// Allow init to permenently chroot, and umount the old root fs
186// just like an initrd does.  Requires a kernel patch by Werner Almesberger. 
187// ftp://icaftp.epfl.ch/pub/people/almesber/misc/umount-root-*.tar.gz
188//#define BB_FEATURE_INIT_CHROOT
189//
190//Make sure nothing is printed to the console on boot
191#define BB_FEATURE_EXTRA_QUIET
192//
193// enable syslogd -R remotehost
194#define BB_FEATURE_REMOTE_LOG
195//
196//Simple tail implementation (2.34k vs 3k for the full one).
197//Both provide 'tail -f' support (only one file at a time.)
198#define BB_FEATURE_SIMPLE_TAIL
199//
200// Enable support for loop devices in mount
201//#define BB_FEATURE_MOUNT_LOOP
202//
203// Enable support for a real /etc/mtab file instead of /proc/mounts
204//#define BB_FEATURE_MOUNT_MTAB_SUPPORT
205//
206// Enable support for mounting remote NFS volumes
207//#define BB_FEATURE_NFSMOUNT
208//
209// Enable support forced filesystem unmounting 
210// (i.e. in case of an unreachable NFS system).
211#define BB_FEATURE_MOUNT_FORCE
212//
213// use -i (interactive) flag for rm
214//#define BB_FEATURE_RM_INTERACTIVE
215//
216// Enable support for creation of tar files.
217#define BB_FEATURE_TAR_CREATE
218//
219// Enable support for "--exclude" for excluding files
220#define BB_FEATURE_TAR_EXCLUDE
221//
222//// Enable reverse sort
223#define BB_FEATURE_SORT_REVERSE
224//
225// Enable command line editing in the shell
226#define BB_FEATURE_SH_COMMAND_EDITING
227//
228//Allow the shell to invoke all the compiled in BusyBox commands as if they
229//were shell builtins.  Nice for staticly linking an emergency rescue shell
230//among other thing.
231#define BB_FEATURE_SH_STANDALONE_SHELL
232//
233// Enable tab completion in the shell (not yet 
234// working very well -- so don't turn this on)
235//#define BB_FEATURE_SH_TAB_COMPLETION
236//
237//Turn on extra fbset options
238//#define BB_FEATURE_FBSET_FANCY
239//
240//Turn on fbset readmode support
241//#define BB_FEATURE_FBSET_READMODE
242//
243// You must enable one or both of these features
244// Support installing modules from pre 2.1 kernels
245//#define BB_FEATURE_INSMOD_OLD_KERNEL
246// Support installing modules from kernel versions after 2.1.18
247#define BB_FEATURE_INSMOD_NEW_KERNEL
248//
249// Support module version checking
250//#define BB_FEATURE_INSMOD_VERSION_CHECKING
251//
252// Support for Minix filesystem, version 2
253//#define BB_FEATURE_MINIX2
254//
255//
256// Enable busybox --install [-s]
257// to create links (or symlinks) for all the commands that are 
258// compiled into the binary.  (needs /proc filesystem)
259// #define BB_FEATURE_INSTALLER
260//
261// Clean up all memory before exiting -- usually not needed
262// as the OS can clean up...  Don't enable this unless you
263// have a really good reason for cleaning things up manually.
264//#define BB_FEATURE_CLEAN_UP
265//
266// End of Features List
267//
268//
269//
270//
271//
272//
273//---------------------------------------------------
274// Nothing beyond this point should ever be touched by 
275// mere mortals so leave this stuff alone.
276//
277#if defined BB_MOUNT || defined BB_UMOUNT || defined BB_DF
278	#ifdef BB_FEATURE_MOUNT_MTAB_SUPPORT
279		#define BB_MTAB
280	#endif
281#else
282	#undef BB_MTAB
283#endif	
284//
285#if defined BB_SH
286	#if defined BB_FEATURE_COMMAND_EDITING 
287		#define BB_CMDEDIT
288		#ifndef BB_FEATURE_USE_TERMIOS
289			#define BB_FEATURE_USE_TERMIOS
290		#endif
291	#else
292		#undef BB_FEATURE_COMMAND_EDITING
293		#undef BB_FEATURE_COMMAND_TAB_COMPLETION
294		#undef BB_FEATURE_COMMAND_USERNAME_COMPLETION
295		#define BB_FEATURE_SH_SIMPLE_PROMPT
296	#endif
297#else
298	#undef BB_FEATURE_COMMAND_EDITING
299	#undef BB_FEATURE_SH_APPLETS_ALWAYS_WIN
300	#undef BB_FEATURE_SH_STANDALONE_SHELL
301	#undef BB_FEATURE_SH_SIMPLE_PROMPT
302#endif
303//
304#ifdef BB_KILLALL
305	#ifndef BB_KILL
306		#define BB_KILL
307	#endif
308#endif
309//
310#ifndef BB_INIT
311	#undef BB_FEATURE_LINUXRC
312#endif
313//
314#ifdef BB_GZIP
315	#ifndef BB_GUNZIP
316		#define BB_GUNZIP
317	#endif
318#endif
319//
320#ifdef BB_DPKG
321	#ifndef BB_DPKG_DEB
322		#define BB_DPKG_DEB
323	#endif
324#endif
325//
326#ifdef BB_DPKG_DEB
327	#ifndef BB_AR
328		#define BB_AR
329	#endif
330	#ifndef BB_TAR
331		#define BB_TAR
332	#endif 
333	#ifndef BB_FEATURE_TAR_GZIP
334		#define BB_FEATURE_TAR_GZIP
335	#endif
336#endif
337//
338#ifdef BB_TAR
339	#ifdef BB_FEATURE_TAR_GZIP
340		#ifndef BB_GUNZIP
341			#define BB_GUNZIP
342		#endif
343	#endif
344#endif
345//
346#if defined BB_MOUNT && defined BB_FEATURE_NFSMOUNT
347	#define BB_NFSMOUNT
348#endif
349//
350#if defined BB_IFCONFIG
351	#ifdef BB_FEATURE_IFCONFIG_STATUS
352		#define BB_INTERFACE
353	#endif
354#else
355	#undef BB_INTERFACE
356#endif	
357//
358#if defined BB_FEATURE_AUTOWIDTH
359	#ifndef BB_FEATURE_USE_TERMIOS
360		#define BB_FEATURE_USE_TERMIOS
361	#endif
362#endif
363//
364#if defined BB_INSMOD || defined BB_LSMOD
365	#if ! defined BB_FEATURE_NEW_MODULE_INTERFACE && ! defined BB_FEATURE_OLD_MODULE_INTERFACE
366		#define BB_FEATURE_NEW_MODULE_INTERFACE
367	#endif
368#endif
369//
370#ifdef BB_SYSLOGD
371	#if defined BB_FEATURE_IPC_SYSLOG
372		#define BB_LOGREAD
373	#endif
374#endif
375//
376#if defined BB_DOS2UNIX 
377	#define BB_UNIX2DOS
378#endif
379
380