ash: move config stuff into ash.c, no code chages
authorDenys Vlasenko <vda.linux@googlemail.com>
Fri, 16 Jul 2010 12:31:34 +0000 (14:31 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Fri, 16 Jul 2010 12:31:34 +0000 (14:31 +0200)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
include/applets.src.h
include/usage.src.h
shell/Config.src
shell/Kbuild.src
shell/ash.c
shell/hush.c

index 5d84597b06644b6e68028e1e21000fd4cfd274a5..6ca0c323042e3a7040b8922d05329596d2b21efa 100644 (file)
@@ -72,10 +72,8 @@ IF_ADJTIMEX(APPLET(adjtimex, _BB_DIR_SBIN, _BB_SUID_DROP))
 IF_AR(APPLET(ar, _BB_DIR_USR_BIN, _BB_SUID_DROP))
 IF_ARP(APPLET(arp, _BB_DIR_SBIN, _BB_SUID_DROP))
 IF_ARPING(APPLET(arping, _BB_DIR_USR_BIN, _BB_SUID_DROP))
-IF_ASH(APPLET(ash, _BB_DIR_BIN, _BB_SUID_DROP))
 IF_AWK(APPLET_NOEXEC(awk, awk, _BB_DIR_USR_BIN, _BB_SUID_DROP, awk))
 IF_BASENAME(APPLET_NOFORK(basename, basename, _BB_DIR_USR_BIN, _BB_SUID_DROP, basename))
-IF_FEATURE_BASH_IS_ASH(APPLET_ODDNAME(bash, ash, _BB_DIR_BIN, _BB_SUID_DROP, bash))
 IF_BBCONFIG(APPLET(bbconfig, _BB_DIR_BIN, _BB_SUID_DROP))
 //IF_BBSH(APPLET(bbsh, _BB_DIR_BIN, _BB_SUID_DROP))
 IF_BEEP(APPLET(beep, _BB_DIR_USR_BIN, _BB_SUID_DROP))
@@ -344,7 +342,6 @@ IF_SETLOGCONS(APPLET(setlogcons, _BB_DIR_USR_SBIN, _BB_SUID_DROP))
 IF_SETSEBOOL(APPLET(setsebool, _BB_DIR_USR_SBIN, _BB_SUID_DROP))
 IF_SETSID(APPLET(setsid, _BB_DIR_USR_BIN, _BB_SUID_DROP))
 IF_SETUIDGID(APPLET_ODDNAME(setuidgid, chpst, _BB_DIR_USR_BIN, _BB_SUID_DROP, setuidgid))
-IF_FEATURE_SH_IS_ASH(APPLET_ODDNAME(sh, ash, _BB_DIR_BIN, _BB_SUID_DROP, sh))
 IF_SHA1SUM(APPLET_ODDNAME(sha1sum, md5_sha1_sum, _BB_DIR_USR_BIN, _BB_SUID_DROP, sha1sum))
 IF_SHA256SUM(APPLET_ODDNAME(sha256sum, md5_sha1_sum, _BB_DIR_USR_BIN, _BB_SUID_DROP, sha256sum))
 IF_SHA512SUM(APPLET_ODDNAME(sha512sum, md5_sha1_sum, _BB_DIR_USR_BIN, _BB_SUID_DROP, sha512sum))
index b3396006f89a9971e636409cb8f259da2f222632..46d64c13516af0d251bb0d47c23e74e9fb502c98 100644 (file)
@@ -115,13 +115,6 @@ INSERT
      "\n       -s SRC_IP       Sender IP address" \
      "\n       DST_IP          Target IP address" \
 
-#define sh_trivial_usage NOUSAGE_STR
-#define sh_full_usage ""
-#define ash_trivial_usage NOUSAGE_STR
-#define ash_full_usage ""
-#define bash_trivial_usage NOUSAGE_STR
-#define bash_full_usage ""
-
 #define awk_trivial_usage \
        "[OPTIONS] [AWK_PROGRAM] [FILE]..."
 #define awk_full_usage "\n\n" \
index f415a5fa6362342fe0eb6c39a945ab0a316c5e90..6389d943ae71ee87159298637dedaeebeea0d31c 100644 (file)
@@ -7,109 +7,6 @@ menu "Shells"
 
 INSERT
 
-config ASH
-       bool "ash"
-       default y
-       depends on !NOMMU
-       help
-         Tha 'ash' shell adds about 60k in the default configuration and is
-         the most complete and most pedantically correct shell included with
-         busybox. This shell is actually a derivative of the Debian 'dash'
-         shell (by Herbert Xu), which was created by porting the 'ash' shell
-         (written by Kenneth Almquist) from NetBSD.
-
-config ASH_BASH_COMPAT
-       bool "bash-compatible extensions"
-       default y
-       depends on ASH
-       help
-         Enable bash-compatible extensions.
-
-config ASH_JOB_CONTROL
-       bool "Job control"
-       default y
-       depends on ASH
-       help
-         Enable job control in the ash shell.
-
-config ASH_ALIAS
-       bool "alias support"
-       default y
-       depends on ASH
-       help
-         Enable alias support in the ash shell.
-
-config ASH_GETOPTS
-       bool "Builtin getopt to parse positional parameters"
-       default y
-       depends on ASH
-       help
-         Enable getopts builtin in the ash shell.
-
-config ASH_BUILTIN_ECHO
-       bool "Builtin version of 'echo'"
-       default y
-       depends on ASH
-       help
-         Enable support for echo, builtin to ash.
-
-config ASH_BUILTIN_PRINTF
-       bool "Builtin version of 'printf'"
-       default y
-       depends on ASH
-       help
-         Enable support for printf, builtin to ash.
-
-config ASH_BUILTIN_TEST
-       bool "Builtin version of 'test'"
-       default y
-       depends on ASH
-       help
-         Enable support for test, builtin to ash.
-
-config ASH_CMDCMD
-       bool "'command' command to override shell builtins"
-       default y
-       depends on ASH
-       help
-         Enable support for the ash 'command' builtin, which allows
-         you to run the specified command with the specified arguments,
-         even when there is an ash builtin command with the same name.
-
-config ASH_MAIL
-       bool "Check for new mail on interactive shells"
-       default n
-       depends on ASH
-       help
-         Enable "check for new mail" in the ash shell.
-
-config ASH_OPTIMIZE_FOR_SIZE
-       bool "Optimize for size instead of speed"
-       default y
-       depends on ASH
-       help
-         Compile ash for reduced size at the price of speed.
-
-config ASH_RANDOM_SUPPORT
-       bool "Pseudorandom generator and $RANDOM variable"
-       default y
-       depends on ASH
-       help
-         Enable pseudorandom generator and dynamic variable "$RANDOM".
-         Each read of "$RANDOM" will generate a new pseudorandom value.
-         You can reset the generator by using a specified start value.
-         After "unset RANDOM" the generator will switch off and this
-         variable will no longer have special treatment.
-
-config ASH_EXPAND_PRMT
-       bool "Expand prompt string"
-       default y
-       depends on ASH
-       help
-         "PS#" may contain volatile content, such as backquote commands.
-         This option recreates the prompt string from the environment
-         variable each time it is displayed.
-
 
 choice
        prompt "Choose which shell is aliased to 'sh' name"
@@ -284,12 +181,17 @@ config CTTYHACK
 
          ::respawn:/bin/cttyhack /bin/sh
 
+         Starting an interactive shell from boot shell script:
+
+         setsid cttyhack sh
+
          Giving controlling tty to shell running with PID 1:
 
-         $ exec cttyhack sh
+         # exec cttyhack sh
 
-         Starting an interactive shell from boot shell script:
+         Without cttyhack, you need to know exact tty name,
+         and do something like this:
 
-         setsid cttyhack sh
+         # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
 
 endmenu
index c7eb5b61a5161ba803feefc3c03c4d4950473863..bce99240fbe93d7bd8d24defa17905291dde65de 100644 (file)
@@ -8,8 +8,5 @@ lib-y:=
 
 INSERT
 
-lib-$(CONFIG_ASH)      += ash.o ash_ptr_hack.o shell_common.o
 lib-$(CONFIG_CTTYHACK) += cttyhack.o
-
 lib-$(CONFIG_SH_MATH_SUPPORT) += math.o
-lib-$(CONFIG_ASH_RANDOM_SUPPORT) += random.o
index 0337a5535cc4f056906c98a8c38f6feae08c1244..9b33e78eccca643fbe99a2a8de2499789ee7bd86 100644 (file)
 # error "Do not even bother, ash will not run on NOMMU machine"
 #endif
 
+//applet:IF_ASH(APPLET(ash, _BB_DIR_BIN, _BB_SUID_DROP))
+//applet:IF_FEATURE_SH_IS_ASH(APPLET_ODDNAME(sh, ash, _BB_DIR_BIN, _BB_SUID_DROP, sh))
+//applet:IF_FEATURE_BASH_IS_ASH(APPLET_ODDNAME(bash, ash, _BB_DIR_BIN, _BB_SUID_DROP, bash))
+
+//kbuild:lib-$(CONFIG_ASH)      += ash.o ash_ptr_hack.o shell_common.o
+//kbuild:lib-$(CONFIG_ASH_RANDOM_SUPPORT) += random.o
+
+//config:config ASH
+//config:      bool "ash"
+//config:      default y
+//config:      depends on !NOMMU
+//config:      help
+//config:        Tha 'ash' shell adds about 60k in the default configuration and is
+//config:        the most complete and most pedantically correct shell included with
+//config:        busybox. This shell is actually a derivative of the Debian 'dash'
+//config:        shell (by Herbert Xu), which was created by porting the 'ash' shell
+//config:        (written by Kenneth Almquist) from NetBSD.
+//config:
+//config:config ASH_BASH_COMPAT
+//config:      bool "bash-compatible extensions"
+//config:      default y
+//config:      depends on ASH
+//config:      help
+//config:        Enable bash-compatible extensions.
+//config:
+//config:config ASH_JOB_CONTROL
+//config:      bool "Job control"
+//config:      default y
+//config:      depends on ASH
+//config:      help
+//config:        Enable job control in the ash shell.
+//config:
+//config:config ASH_ALIAS
+//config:      bool "alias support"
+//config:      default y
+//config:      depends on ASH
+//config:      help
+//config:        Enable alias support in the ash shell.
+//config:
+//config:config ASH_GETOPTS
+//config:      bool "Builtin getopt to parse positional parameters"
+//config:      default y
+//config:      depends on ASH
+//config:      help
+//config:        Enable getopts builtin in the ash shell.
+//config:
+//config:config ASH_BUILTIN_ECHO
+//config:      bool "Builtin version of 'echo'"
+//config:      default y
+//config:      depends on ASH
+//config:      help
+//config:        Enable support for echo, builtin to ash.
+//config:
+//config:config ASH_BUILTIN_PRINTF
+//config:      bool "Builtin version of 'printf'"
+//config:      default y
+//config:      depends on ASH
+//config:      help
+//config:        Enable support for printf, builtin to ash.
+//config:
+//config:config ASH_BUILTIN_TEST
+//config:      bool "Builtin version of 'test'"
+//config:      default y
+//config:      depends on ASH
+//config:      help
+//config:        Enable support for test, builtin to ash.
+//config:
+//config:config ASH_CMDCMD
+//config:      bool "'command' command to override shell builtins"
+//config:      default y
+//config:      depends on ASH
+//config:      help
+//config:        Enable support for the ash 'command' builtin, which allows
+//config:        you to run the specified command with the specified arguments,
+//config:        even when there is an ash builtin command with the same name.
+//config:
+//config:config ASH_MAIL
+//config:      bool "Check for new mail on interactive shells"
+//config:      default n
+//config:      depends on ASH
+//config:      help
+//config:        Enable "check for new mail" in the ash shell.
+//config:
+//config:config ASH_OPTIMIZE_FOR_SIZE
+//config:      bool "Optimize for size instead of speed"
+//config:      default y
+//config:      depends on ASH
+//config:      help
+//config:        Compile ash for reduced size at the price of speed.
+//config:
+//config:config ASH_RANDOM_SUPPORT
+//config:      bool "Pseudorandom generator and $RANDOM variable"
+//config:      default y
+//config:      depends on ASH
+//config:      help
+//config:        Enable pseudorandom generator and dynamic variable "$RANDOM".
+//config:        Each read of "$RANDOM" will generate a new pseudorandom value.
+//config:        You can reset the generator by using a specified start value.
+//config:        After "unset RANDOM" the generator will switch off and this
+//config:        variable will no longer have special treatment.
+//config:
+//config:config ASH_EXPAND_PRMT
+//config:      bool "Expand prompt string"
+//config:      default y
+//config:      depends on ASH
+//config:      help
+//config:        "PS#" may contain volatile content, such as backquote commands.
+//config:        This option recreates the prompt string from the environment
+//config:        variable each time it is displayed.
+
+//usage:#define ash_trivial_usage NOUSAGE_STR
+//usage:#define ash_full_usage ""
+//usage:#define sh_trivial_usage NOUSAGE_STR
+//usage:#define sh_full_usage ""
+//usage:#define bash_trivial_usage NOUSAGE_STR
+//usage:#define bash_full_usage ""
+
 
 /* ============ Hash table sizes. Configurable. */
 
index c5a8ea6171be79fe2e5e340ec6db6c04adeafc15..56a3f4b14a4c66455cf33c040e8e70f952fd7966 100644 (file)
 //config:      bool "hush"
 //config:      default y
 //config:      help
-//config:        hush is a small shell (22k). It handles the normal flow control
+//config:        hush is a small shell (25k). It handles the normal flow control
 //config:        constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
 //config:        case/esac. Redirections, here documents, $((arithmetic))
 //config:        and functions are supported.