summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2011-10-11 19:43:42 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2011-10-11 19:43:42 (GMT)
commit56c411b206e1b85705a75cde652947160fee0970 (patch)
tree52cceb99abe93a29f4b3189b254ee1f9252afcb2
parentf52ab9bddb2f57134d2b89a45aa1b33327d663a7 (diff)
config: simplify setting CONFIG_SHELL, add a bit to the help entry
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
-rw-r--r--config/global/build-behave.in23
-rw-r--r--scripts/crosstool-NG.sh.in16
2 files changed, 19 insertions, 20 deletions
diff --git a/config/global/build-behave.in b/config/global/build-behave.in
index fae9917..07302ff 100644
--- a/config/global/build-behave.in
+++ b/config/global/build-behave.in
@@ -78,6 +78,10 @@ config CONFIG_SHELL_SH
The default is to use bash, as some components (eg. GMP) will fail
to build with anything else than bash.
+
+ Unless you have a very strong reason not to (eg. you are debugging
+ the bashisms in a ./configure script), you should use the default,
+ and use bash.
config CONFIG_SHELL_ASH
bool
@@ -109,15 +113,20 @@ config CONFIG_SHELL_CUSTOM
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 || BACKEND
-
+# Do not put this into the choice above, because the choice
+# is not available in BACKEND-mode, while we do want this to
+# be set even in BACKEND-mode.
config CONFIG_SHELL_CUSTOM_PATH
string
prompt "Path to custom shell" if ! BACKEND
depends on CONFIG_SHELL_CUSTOM || BACKEND
default "/bin/sh"
+
+# Ditto.
+# And we must use the ./configured bash...
+config CONFIG_SHELL
+ string
+ default "/bin/sh" if CONFIG_SHELL_SH
+ default "/bin/ash" if CONFIG_SHELL_ASH
+ default "${bash}" if CONFIG_SHELL_BASH
+ default CONFIG_SHELL_CUSTOM_PATH if CONFIG_SHELL_CUSTOM || BACKEND
diff --git a/scripts/crosstool-NG.sh.in b/scripts/crosstool-NG.sh.in
index 4499f71..2057f26 100644
--- a/scripts/crosstool-NG.sh.in
+++ b/scripts/crosstool-NG.sh.in
@@ -66,18 +66,8 @@ CT_DoExecLog DEBUG touch "${CT_WORK_DIR}/foo"
CT_TestAndAbort "Your file system in '${CT_WORK_DIR}' is *not* case-sensitive!" -f "${CT_WORK_DIR}/FOO"
CT_DoExecLog DEBUG rm -f "${CT_WORK_DIR}/foo"
-# What's our shell?
-# Will be plain /bin/sh on most systems, except if we have /bin/ash and we
-# _explictly_ required using it
-case "${CT_CONFIG_SHELL}" in
- sh) CT_SHELL="/bin/sh";;
- ash) CT_SHELL="/bin/ash";;
- bash) CT_SHELL="${BASH}";;
- custom) CT_SHELL="${CT_CONFIG_SHELL_CUSTOM_PATH}";;
-esac
-
# Check the user is using an existing SHELL to be used by ./configure and Makefiles
-CT_TestOrAbort "The CONFIG_SHELL '${CT_CONFIG_SHELL}' (${CT_SHELL}) is not valid" -f "${CT_SHELL}" -a -x "${CT_SHELL}"
+CT_TestOrAbort "The CONFIG_SHELL '${CT_CONFIG_SHELL}' is not valid" -f "${CT_CONFIG_SHELL}" -a -x "${CT_CONFIG_SHELL}"
# Create the bin-override early
# Contains symlinks to the tools found by ./configure
@@ -484,8 +474,8 @@ if [ -z "${CT_RESTART}" ]; then
# Set the shell to be used by ./configure scripts and by Makefiles (those
# that support it!).
- export CONFIG_SHELL="${CT_SHELL}" # for ./configure
- export SHELL="${CT_SHELL}" # for Makefiles
+ export CONFIG_SHELL="${CT_CONFIG_SHELL}" # for ./configure
+ export SHELL="${CT_CONFIG_SHELL}" # for Makefiles
# And help make go faster
JOBSFLAGS=