summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/global/build-behave.in74
1 files changed, 66 insertions, 8 deletions
diff --git a/config/global/build-behave.in b/config/global/build-behave.in
index 7f8a854..9ee8316 100644
--- a/config/global/build-behave.in
+++ b/config/global/build-behave.in
@@ -44,16 +44,74 @@ config USE_PIPES
Use gcc's option -pipe to use pipes rather than temp files when building
the toolchain.
+choice
+ bool
+ prompt "Shell to use as CONFIG_SHELL"
+ default CONFIG_SHELL_SYSTEM
+
+config CONFIG_SHELL_SH
+ bool
+ prompt "sh (the system shell)"
+ help
+ Use 'sh' as CONFIG_SHELL.
+
+ ./configure scripts and Makefiles make intensive use of calling
+ sub-shells. This is usually done by calling /bin/sh. /bin/sh ought
+ to be an at-least-POSIX-conformant shell (that is, able to interpret
+ POSIX shell scripts).
+
+ On many (most?) systems, /bin/sh is a symlink to bash. On some other
+ systems (eg. Ubuntu, latest Debian), /bin/sh points to dash (or ash).
+ bash is a full-featured shell, with many extension to POSIX, but is
+ quite slow (see ection BUGS in the bash man page), while dash is
+ faster, with very few extensions to POSIX. On the other hand, some
+ ./configure scripts, although written to use /bin/sh, may really
+ require to be run by bash.
+
+ The default is to use your system's /bin/sh shell. If you want to
+ run faster, you can select to use dash. If you have problems with
+ either the system shell or when using dash, then you can force to
+ use bash.
+
config CONFIG_SHELL_ASH
bool
- prompt "Use 'ash' as CONFIG_SHELL"
- default n
+ prompt "ash (READ HELP!)"
help
- Use /bin/ash as the shell used by ./configure scripts.
+ Use 'ash' as CONFIG_SHELL.
- ./configure scripts make intensive use of calling a sub-shell, and the
- traditional bash is slow, whereas ash is faster.
+ See help for CONFIG_SHELL_SH, above, for more explanations.
- Saying 'y' here should be safe enough, but some components may not
- accept using a shell other than bash (this is most probably true for
- old versions). If you have trouble, say 'n' here and see if it fixes it.
+ NOTE: It is advised that you do NOT use ash as CONFIG_SHELL, as some
+ components are broken. If you decide to use ash, and the build breaks,
+ don't come moaning and set the CONFIG_SHELL to bash, below.
+
+config CONFIG_SHELL_BASH
+ bool
+ prompt "bash"
+ help
+ Use 'bash' as CONFIG_SHELL.
+
+ See help for CONFIG_SHELL_SH, above, for more explanations.
+
+config CONFIG_SHELL_CUSTOM
+ bool
+ prompt "custom shell"
+ help
+ Enter full path to the custom shell below.
+
+ See help for CONFIG_SHELL_SH, above, for more explanations.
+
+config CONFIG_SHELL_CUSTOM_PATH
+ string
+ prompt "Path to custom shell"
+ depends on CONFIG_SHELL_CUSTOM
+ default "/bin/sh"
+
+endchoice
+
+config CONFIG_SHELL
+ string
+ default "sh" if CONFIG_SHELL_SH
+ default "ash" if CONFIG_SHELL_ASH
+ default "bash" if CONFIG_SHELL_BASH
+ default "custom" if CONFIG_SHELL_CUSTOM