aboutsummaryrefslogtreecommitdiff
path: root/debian
diff options
context:
space:
mode:
authorMatt Kraai <kraai@debian.org>2001-08-01 17:21:35 +0000
committerMatt Kraai <kraai@debian.org>2001-08-01 17:21:35 +0000
commit2d91deba45d5a284614e06cc55e2be03599ca26d (patch)
tree0ba0d2096b4305465ddea8532a5931cb4c02b343 /debian
parent00344431402703089c6b93f6119f9966cc7ba566 (diff)
downloadbusybox-2d91deba45d5a284614e06cc55e2be03599ca26d.tar.gz
Allow multiple shells to be enabled.
Diffstat (limited to 'debian')
-rw-r--r--debian/Config.h-deb73
-rw-r--r--debian/Config.h-static73
-rw-r--r--debian/Config.h-udeb73
3 files changed, 93 insertions, 126 deletions
diff --git a/debian/Config.h-deb b/debian/Config.h-deb
index 93f5597a0..020f89d81 100644
--- a/debian/Config.h-deb
+++ b/debian/Config.h-deb
@@ -9,6 +9,7 @@
// BusyBox Applications
//#define BB_ADJTIMEX
#define BB_AR
+//#define BB_ASH
#define BB_BASENAME
#define BB_CAT
#define BB_CHGRP
@@ -51,6 +52,7 @@
#define BB_HEAD
//#define BB_HOSTID
//#define BB_HOSTNAME
+//#define BB_HUSH
#define BB_ID
//#define BB_IFCONFIG
#define BB_INIT
@@ -58,6 +60,7 @@
#define BB_KILL
#define BB_KILLALL
#define BB_KLOGD
+//#define BB_LASH
//#define BB_LENGTH
#define BB_LN
//#define BB_LOADACM
@@ -78,6 +81,7 @@
//#define BB_NC
#define BB_MORE
#define BB_MOUNT
+//#define BB_MSH
//#define BB_MT
#define BB_MV
//#define BB_NSLOOKUP
@@ -99,7 +103,6 @@
//#define BB_RPM2CPIO
#define BB_SED
//#define BB_SETKEYCODES
-//#define BB_SH
#define BB_SLEEP
#define BB_SORT
//#define BB_STTY
@@ -143,40 +146,12 @@
// pretty/useful).
//
//
-// If you enabled BB_SH above, you may select one of the following shells.
-// You can only select ONE of the following shells. Sorry.
-//
-// lash is the very smallest shell (adds just 10k) and it is quite usable as a
-// command prompt, but it is not suitable for any but the most trivial scripting
-// (such as an initrd that calls insmod a few times) since it does not
-// understand Bourne shell grammer. It does handle pipes, redirects, and job
-// control though. Adding in command editing makes it very nice lightweight
-// command prompt.
-//#define BB_FEATURE_LASH
-//
-// hush is also quite small (just 18k) and it has very complete Bourne shell
-// grammer. It handles if/then/else/fi just fine, but doesn't handle loops
-// like for/do/done or case/esac and such. It also currently has a problem
-// with job control.
-//#define BB_FEATURE_HUSH
-//
-// msh: The minix shell (adds just 30k) is quite complete and handles things
-// like for/do/done, case/esac and all the things you expect a Bourne shell to
-// do. It is not always pedantically correct about Bourne shell grammer (try
-// running the shell testscript "tests/sh.testcases" on it and compare vs
-// bash) but for most things it works quite well. It also uses only vfork, so
-// it can be used on uClinux systems. This was only recently added, so there is
-// still room to shrink it further...
-#define BB_FEATURE_MSH
-//
-// ash: This adds about 60k in the default configuration and is the most
-// complete and most pedantically correct shell included with busybox. This
-// shell was also recently added, and several people (mainly Vladimir and Erik)
-// have been working on it. There are a number of configurable things at the
-// top of ash.c as well, so check those out if you want to tweak things. The
-// Posix math support is currently disabled (that bit of code was horrible) but
-// will be restored for the next BusyBox release.
-//#define BB_FEATURE_ASH
+// If you enabled one or more of the shells, you may select which one
+// should be run when sh is invoked:
+//#define BB_FEATURE_SH_IS_ASH
+//#define BB_FEATURE_SH_IS_HUSH
+//#define BB_FEATURE_SH_IS_LASH
+#define BB_FEATURE_SH_IS_MSH
//
// BusyBox will, by default, malloc space for its buffers. This costs code
// size for the call to xmalloc. You can use the following feature to have
@@ -283,11 +258,11 @@
#define BB_FEATURE_SORT_UNIQUE
//
// Enable command line editing in the shell.
-// Only relevant if BB_SH is enabled. On by default.
+// Only relevant if a shell is enabled. On by default.
#define BB_FEATURE_COMMAND_EDITING
//
// Enable tab completion in the shell. This is now working quite nicely.
-// This feature adds a bit over 4k. Only relevant if BB_SH is enabled.
+// This feature adds a bit over 4k. Only relevant if a shell is enabled.
#define BB_FEATURE_COMMAND_TAB_COMPLETION
//
// Attempts to match usernames in a ~-prefixed path
@@ -296,7 +271,7 @@
//Allow the shell to invoke all the compiled in BusyBox applets as if they
//were shell builtins. Nice for staticly linking an emergency rescue shell,
//among other things. Off by default.
-// Only relevant if BB_SH is enabled.
+// Only relevant if a shell is enabled.
//#define BB_FEATURE_SH_STANDALONE_SHELL
//
//When this is enabled, busybox shell applets can be called using full path
@@ -305,13 +280,13 @@
//will use BusyBox cat even if /bin/cat exists on the filesystem and is _not_
//busybox. Some systems want this, others do not. Choose wisely. :-) This
//only has meaning when BB_FEATURE_SH_STANDALONE_SHELL is enabled.
-// Only relevant if BB_SH is enabled. Off by default.
+// Only relevant if a shell is enabled. Off by default.
//#define BB_FEATURE_SH_APPLETS_ALWAYS_WIN
//
// Uncomment this option for a fancy shell prompt that includes the
// current username and hostname. On systems that don't have usernames
// or hostnames, this can look hideous.
-// Only relevant if BB_SH is enabled.
+// Only relevant if a shell is enabled.
//#define BB_FEATURE_SH_FANCY_PROMPT
//
//Turn on extra fbset options
@@ -416,8 +391,8 @@
// Nothing beyond this point should ever be touched by
// mere mortals so leave this stuff alone.
//
-#if defined BB_SH
- #if defined BB_FEATURE_COMMAND_EDITING
+#if defined BB_ASH || defined BB_HUSH || defined BB_LASH || defined BB_MSH
+ #if defined BB_FEATURE_COMMAND_EDITING
#define BB_CMDEDIT
#else
#undef BB_FEATURE_COMMAND_EDITING
@@ -482,3 +457,17 @@
#define BB_LOGREAD
#endif
#endif
+//
+#if defined BB_ASH && defined BB_FEATURE_SH_IS_ASH
+# define BB_SH
+# define shell_main ash_main
+#elif defined BB_HUSH && defined BB_FEATURE_SH_IS_HUSH
+# define BB_SH
+# define shell_main hush_main
+#elif defined BB_LASH && defined BB_FEATURE_SH_IS_LASH
+# define BB_SH
+# define shell_main lash_main
+#elif defined BB_MSH && defined BB_FEATURE_SH_IS_MSH
+# define BB_SH
+# define shell_main msh_main
+#endif
diff --git a/debian/Config.h-static b/debian/Config.h-static
index e049b5aa2..a538b1a63 100644
--- a/debian/Config.h-static
+++ b/debian/Config.h-static
@@ -9,6 +9,7 @@
// BusyBox Applications
//#define BB_ADJTIMEX
#define BB_AR
+#define BB_ASH
#define BB_BASENAME
#define BB_CAT
#define BB_CHGRP
@@ -51,6 +52,7 @@
#define BB_HEAD
#define BB_HOSTID
#define BB_HOSTNAME
+#define BB_HUSH
#define BB_ID
#define BB_IFCONFIG
#define BB_INIT
@@ -58,6 +60,7 @@
#define BB_KILL
#define BB_KILLALL
#define BB_KLOGD
+#define BB_LASH
#define BB_LENGTH
#define BB_LN
#define BB_LOADACM
@@ -78,6 +81,7 @@
#define BB_NC
#define BB_MORE
#define BB_MOUNT
+#define BB_MSH
#define BB_MT
#define BB_MV
#define BB_NSLOOKUP
@@ -99,7 +103,6 @@
#define BB_RPM2CPIO
#define BB_SED
#define BB_SETKEYCODES
-#define BB_SH
#define BB_SLEEP
#define BB_SORT
#define BB_STTY
@@ -143,40 +146,12 @@
// pretty/useful).
//
//
-// If you enabled BB_SH above, you may select one of the following shells.
-// You can only select ONE of the following shells. Sorry.
-//
-// lash is the very smallest shell (adds just 10k) and it is quite usable as a
-// command prompt, but it is not suitable for any but the most trivial scripting
-// (such as an initrd that calls insmod a few times) since it does not
-// understand Bourne shell grammer. It does handle pipes, redirects, and job
-// control though. Adding in command editing makes it very nice lightweight
-// command prompt.
-//#define BB_FEATURE_LASH
-//
-// hush is also quite small (just 18k) and it has very complete Bourne shell
-// grammer. It handles if/then/else/fi just fine, but doesn't handle loops
-// like for/do/done or case/esac and such. It also currently has a problem
-// with job control.
-//#define BB_FEATURE_HUSH
-//
-// msh: The minix shell (adds just 30k) is quite complete and handles things
-// like for/do/done, case/esac and all the things you expect a Bourne shell to
-// do. It is not always pedantically correct about Bourne shell grammer (try
-// running the shell testscript "tests/sh.testcases" on it and compare vs
-// bash) but for most things it works quite well. It also uses only vfork, so
-// it can be used on uClinux systems. This was only recently added, so there is
-// still room to shrink it further...
-//#define BB_FEATURE_MSH
-//
-// ash: This adds about 60k in the default configuration and is the most
-// complete and most pedantically correct shell included with busybox. This
-// shell was also recently added, and several people (mainly Vladimir and Erik)
-// have been working on it. There are a number of configurable things at the
-// top of ash.c as well, so check those out if you want to tweak things. The
-// Posix math support is currently disabled (that bit of code was horrible) but
-// will be restored for the next BusyBox release.
-#define BB_FEATURE_ASH
+// If you enabled one or more of the shells, you may select which one
+// should be run when sh is invoked:
+//#define BB_FEATURE_SH_IS_ASH
+//#define BB_FEATURE_SH_IS_HUSH
+//#define BB_FEATURE_SH_IS_LASH
+#define BB_FEATURE_SH_IS_MSH
//
// BusyBox will, by default, malloc space for its buffers. This costs code
// size for the call to xmalloc. You can use the following feature to have
@@ -283,11 +258,11 @@
#define BB_FEATURE_SORT_UNIQUE
//
// Enable command line editing in the shell.
-// Only relevant if BB_SH is enabled. On by default.
+// Only relevant if a shell is enabled. On by default.
#define BB_FEATURE_COMMAND_EDITING
//
// Enable tab completion in the shell. This is now working quite nicely.
-// This feature adds a bit over 4k. Only relevant if BB_SH is enabled.
+// This feature adds a bit over 4k. Only relevant if a shell is enabled.
#define BB_FEATURE_COMMAND_TAB_COMPLETION
//
// Attempts to match usernames in a ~-prefixed path
@@ -296,7 +271,7 @@
//Allow the shell to invoke all the compiled in BusyBox applets as if they
//were shell builtins. Nice for staticly linking an emergency rescue shell,
//among other things. Off by default.
-// Only relevant if BB_SH is enabled.
+// Only relevant if a shell is enabled.
#define BB_FEATURE_SH_STANDALONE_SHELL
//
//When this is enabled, busybox shell applets can be called using full path
@@ -305,13 +280,13 @@
//will use BusyBox cat even if /bin/cat exists on the filesystem and is _not_
//busybox. Some systems want this, others do not. Choose wisely. :-) This
//only has meaning when BB_FEATURE_SH_STANDALONE_SHELL is enabled.
-// Only relevant if BB_SH is enabled. Off by default.
+// Only relevant if a shell is enabled. Off by default.
#define BB_FEATURE_SH_APPLETS_ALWAYS_WIN
//
// Uncomment this option for a fancy shell prompt that includes the
// current username and hostname. On systems that don't have usernames
// or hostnames, this can look hideous.
-// Only relevant if BB_SH is enabled.
+// Only relevant if a shell is enabled.
#define BB_FEATURE_SH_FANCY_PROMPT
//
//Turn on extra fbset options
@@ -416,8 +391,8 @@
// Nothing beyond this point should ever be touched by
// mere mortals so leave this stuff alone.
//
-#if defined BB_SH
- #if defined BB_FEATURE_COMMAND_EDITING
+#if defined BB_ASH || defined BB_HUSH || defined BB_LASH || defined BB_MSH
+ #if defined BB_FEATURE_COMMAND_EDITING
#define BB_CMDEDIT
#else
#undef BB_FEATURE_COMMAND_EDITING
@@ -482,3 +457,17 @@
#define BB_LOGREAD
#endif
#endif
+//
+#if defined BB_ASH && defined BB_FEATURE_SH_IS_ASH
+# define BB_SH
+# define shell_main ash_main
+#elif defined BB_HUSH && defined BB_FEATURE_SH_IS_HUSH
+# define BB_SH
+# define shell_main hush_main
+#elif defined BB_LASH && defined BB_FEATURE_SH_IS_LASH
+# define BB_SH
+# define shell_main lash_main
+#elif defined BB_MSH && defined BB_FEATURE_SH_IS_MSH
+# define BB_SH
+# define shell_main msh_main
+#endif
diff --git a/debian/Config.h-udeb b/debian/Config.h-udeb
index dfc32f655..172d3dc75 100644
--- a/debian/Config.h-udeb
+++ b/debian/Config.h-udeb
@@ -9,6 +9,7 @@
// BusyBox Applications
//#define BB_ADJTIMEX
//#define BB_AR
+//#define BB_ASH
#define BB_BASENAME
#define BB_CAT
#define BB_CHGRP
@@ -51,6 +52,7 @@
#define BB_HEAD
//#define BB_HOSTID
//#define BB_HOSTNAME
+//#define BB_HUSH
#define BB_ID
//#define BB_IFCONFIG
#define BB_INIT
@@ -58,6 +60,7 @@
#define BB_KILL
#define BB_KILLALL
#define BB_KLOGD
+//#define BB_LASH
//#define BB_LENGTH
#define BB_LN
//#define BB_LOADACM
@@ -78,6 +81,7 @@
//#define BB_NC
#define BB_MORE
#define BB_MOUNT
+//#define BB_MSH
//#define BB_MT
#define BB_MV
//#define BB_NSLOOKUP
@@ -99,7 +103,6 @@
//#define BB_RPM2CPIO
#define BB_SED
//#define BB_SETKEYCODES
-//#define BB_SH
#define BB_SLEEP
#define BB_SORT
//#define BB_STTY
@@ -143,40 +146,12 @@
// pretty/useful).
//
//
-// If you enabled BB_SH above, you may select one of the following shells.
-// You can only select ONE of the following shells. Sorry.
-//
-// lash is the very smallest shell (adds just 10k) and it is quite usable as a
-// command prompt, but it is not suitable for any but the most trivial scripting
-// (such as an initrd that calls insmod a few times) since it does not
-// understand Bourne shell grammer. It does handle pipes, redirects, and job
-// control though. Adding in command editing makes it very nice lightweight
-// command prompt.
-//#define BB_FEATURE_LASH
-//
-// hush is also quite small (just 18k) and it has very complete Bourne shell
-// grammer. It handles if/then/else/fi just fine, but doesn't handle loops
-// like for/do/done or case/esac and such. It also currently has a problem
-// with job control.
-//#define BB_FEATURE_HUSH
-//
-// msh: The minix shell (adds just 30k) is quite complete and handles things
-// like for/do/done, case/esac and all the things you expect a Bourne shell to
-// do. It is not always pedantically correct about Bourne shell grammer (try
-// running the shell testscript "tests/sh.testcases" on it and compare vs
-// bash) but for most things it works quite well. It also uses only vfork, so
-// it can be used on uClinux systems. This was only recently added, so there is
-// still room to shrink it further...
-#define BB_FEATURE_MSH
-//
-// ash: This adds about 60k in the default configuration and is the most
-// complete and most pedantically correct shell included with busybox. This
-// shell was also recently added, and several people (mainly Vladimir and Erik)
-// have been working on it. There are a number of configurable things at the
-// top of ash.c as well, so check those out if you want to tweak things. The
-// Posix math support is currently disabled (that bit of code was horrible) but
-// will be restored for the next BusyBox release.
-//#define BB_FEATURE_ASH
+// If you enabled one or more of the shells, you may select which one
+// should be run when sh is invoked:
+//#define BB_FEATURE_SH_IS_ASH
+//#define BB_FEATURE_SH_IS_HUSH
+//#define BB_FEATURE_SH_IS_LASH
+#define BB_FEATURE_SH_IS_MSH
//
// BusyBox will, by default, malloc space for its buffers. This costs code
// size for the call to xmalloc. You can use the following feature to have
@@ -283,11 +258,11 @@
#define BB_FEATURE_SORT_UNIQUE
//
// Enable command line editing in the shell.
-// Only relevant if BB_SH is enabled. On by default.
+// Only relevant if a shell is enabled. On by default.
#define BB_FEATURE_COMMAND_EDITING
//
// Enable tab completion in the shell. This is now working quite nicely.
-// This feature adds a bit over 4k. Only relevant if BB_SH is enabled.
+// This feature adds a bit over 4k. Only relevant if a shell is enabled.
#define BB_FEATURE_COMMAND_TAB_COMPLETION
//
// Attempts to match usernames in a ~-prefixed path
@@ -296,7 +271,7 @@
//Allow the shell to invoke all the compiled in BusyBox applets as if they
//were shell builtins. Nice for staticly linking an emergency rescue shell,
//among other things. Off by default.
-// Only relevant if BB_SH is enabled.
+// Only relevant if a shell is enabled.
//#define BB_FEATURE_SH_STANDALONE_SHELL
//
//When this is enabled, busybox shell applets can be called using full path
@@ -305,13 +280,13 @@
//will use BusyBox cat even if /bin/cat exists on the filesystem and is _not_
//busybox. Some systems want this, others do not. Choose wisely. :-) This
//only has meaning when BB_FEATURE_SH_STANDALONE_SHELL is enabled.
-// Only relevant if BB_SH is enabled. Off by default.
+// Only relevant if a shell is enabled. Off by default.
//#define BB_FEATURE_SH_APPLETS_ALWAYS_WIN
//
// Uncomment this option for a fancy shell prompt that includes the
// current username and hostname. On systems that don't have usernames
// or hostnames, this can look hideous.
-// Only relevant if BB_SH is enabled.
+// Only relevant if a shell is enabled.
//#define BB_FEATURE_SH_FANCY_PROMPT
//
//Turn on extra fbset options
@@ -416,8 +391,8 @@
// Nothing beyond this point should ever be touched by
// mere mortals so leave this stuff alone.
//
-#if defined BB_SH
- #if defined BB_FEATURE_COMMAND_EDITING
+#if defined BB_ASH || defined BB_HUSH || defined BB_LASH || defined BB_MSH
+ #if defined BB_FEATURE_COMMAND_EDITING
#define BB_CMDEDIT
#else
#undef BB_FEATURE_COMMAND_EDITING
@@ -482,3 +457,17 @@
#define BB_LOGREAD
#endif
#endif
+//
+#if defined BB_ASH && defined BB_FEATURE_SH_IS_ASH
+# define BB_SH
+# define shell_main ash_main
+#elif defined BB_HUSH && defined BB_FEATURE_SH_IS_HUSH
+# define BB_SH
+# define shell_main hush_main
+#elif defined BB_LASH && defined BB_FEATURE_SH_IS_LASH
+# define BB_SH
+# define shell_main lash_main
+#elif defined BB_MSH && defined BB_FEATURE_SH_IS_MSH
+# define BB_SH
+# define shell_main msh_main
+#endif