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