Skip to content

Commit

Permalink
Allow for per-tool templates when creating overrides
Browse files Browse the repository at this point in the history
... will be used to implement a smarter install wrapper.

While there, correct the spelling of "OVERIDE".

Signed-off-by: Alexey Neyman <stilor@att.net>
  • Loading branch information
stilor committed Jan 30, 2017
1 parent a78dc93 commit a08a4c4
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 15 deletions.
2 changes: 1 addition & 1 deletion config/global/ct-behave.in
Expand Up @@ -102,7 +102,7 @@ config DEBUG_CT_SAVE_STEPS_GZIP
further doesn't gain much, and takes far more time (believe me, I've
got figures here! :-) ).

config NO_OVERIDE_LC_MESSAGES
config NO_OVERRIDE_LC_MESSAGES
bool
prompt "Do *not* overide LC_MESSAGES (EXPERIMENTAL)"
depends on EXPERIMENTAL
Expand Down
2 changes: 1 addition & 1 deletion config/global/extract.in
Expand Up @@ -11,7 +11,7 @@ config FORCE_EXTRACT
Useful if you suspect a previous extract did not complete (eg. broken
tarball), or you added a new set of patches for this component.

config OVERIDE_CONFIG_GUESS_SUB
config OVERRIDE_CONFIG_GUESS_SUB
bool
prompt "Override config.{guess,sub}"
default y
Expand Down
28 changes: 16 additions & 12 deletions scripts/crosstool-NG.sh.in
@@ -1,4 +1,3 @@
#!@@CT_bash@@
# Copyright 2007 Yann E. MORIN
# Licensed under the GPL v2. See COPYING in the root of this package.

Expand Down Expand Up @@ -42,7 +41,7 @@ if [ "${CT_DEBUG_INTERACTIVE}" = "y" -a ! \( -t 0 -a -t 6 -a -t 2 \) ]; then
fi

# Override the locale early, in case we ever translate crosstool-NG messages
if [ -z "${CT_NO_OVERIDE_LC_MESSAGES}" ]; then
if [ -z "${CT_NO_OVERRIDE_LC_MESSAGES}" ]; then
export LC_ALL=C
export LANG=C
fi
Expand Down Expand Up @@ -104,19 +103,24 @@ CT_TestOrAbort "The CONFIG_SHELL '${CT_CONFIG_SHELL}' is not valid" -f "${CT_CON
# Contains symlinks to the tools found by ./configure
# Note: CT_DoLog and CT_DoExecLog do not use any of those tool, so
# they can be safely used
CT_TOOLS_OVERIDE_DIR="${CT_WORK_DIR}/tools"
CT_DoLog DEBUG "Creating bin-override for tools in '${CT_TOOLS_OVERIDE_DIR}'"
CT_DoExecLog DEBUG mkdir -p "${CT_TOOLS_OVERIDE_DIR}/bin"
CT_TOOLS_OVERRIDE_DIR="${CT_WORK_DIR}/tools"
CT_DoLog DEBUG "Creating bin-override for tools in '${CT_TOOLS_OVERRIDE_DIR}'"
CT_DoExecLog DEBUG mkdir -p "${CT_TOOLS_OVERRIDE_DIR}/bin"
cat "${CT_LIB_DIR}/paths.sh" |while read trash line; do
tool="${line%%=*}"
path="${line#*=}"
CT_DoLog DEBUG "Creating script-override for '${tool}' -> '${path}'"
# Note: we need to supress the " in the path because
# there can be arguments in there (thanks autostuff...)
printf "#${BANG}${CT_CONFIG_SHELL}\nexec ${path//\"/} \"\${@}\"\n" >"${CT_TOOLS_OVERIDE_DIR}/bin/${tool}"
CT_DoExecLog ALL chmod 700 "${CT_TOOLS_OVERIDE_DIR}/bin/${tool}"
# Suppress extra quoting
eval path=${line#*=}
if [ -r "${CT_LIB_DIR}/scripts/override/$tool" ]; then
tmpl="${CT_LIB_DIR}/scripts/override/$tool"
else
tmpl="${CT_LIB_DIR}/scripts/override/__default"
fi
CT_DoLog DEBUG "Creating script-override for '${tool}' -> '${path}' using '${tmpl}' template"
${sed} -r -e "s#@CONFIG_SHELL@#${CT_CONFIG_SHELL}#g" \
-e "s#@TOOL_PATH@#${path}#g" "${tmpl}" > "${CT_TOOLS_OVERRIDE_DIR}/bin/${tool}"
CT_DoExecLog ALL chmod 700 "${CT_TOOLS_OVERRIDE_DIR}/bin/${tool}"
done
export PATH="${CT_TOOLS_OVERIDE_DIR}/bin:${PATH}"
export PATH="${CT_TOOLS_OVERRIDE_DIR}/bin:${PATH}"

# Start date. Can't be done until we know the locale
# Also requires the bin-override tools
Expand Down
2 changes: 1 addition & 1 deletion scripts/functions
Expand Up @@ -1289,7 +1289,7 @@ CT_Patch() {
fi
done

if [ "${CT_OVERIDE_CONFIG_GUESS_SUB}" = "y" ]; then
if [ "${CT_OVERRIDE_CONFIG_GUESS_SUB}" = "y" ]; then
CT_DoLog ALL "Overiding config.guess and config.sub"
for cfg in config_guess config_sub; do
eval ${cfg}="${CT_LIB_DIR}/scripts/${cfg/_/.}"
Expand Down
3 changes: 3 additions & 0 deletions scripts/override/__default
@@ -0,0 +1,3 @@
#!@CONFIG_SHELL@

exec @TOOL_PATH@ "$@"

0 comments on commit a08a4c4

Please sign in to comment.