From a08a4c4b88fa2b2d770bda1fb1590ca80904fca7 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Fri, 27 Jan 2017 23:19:36 -0800 Subject: Allow for per-tool templates when creating overrides ... will be used to implement a smarter install wrapper. While there, correct the spelling of "OVERIDE". Signed-off-by: Alexey Neyman diff --git a/config/global/ct-behave.in b/config/global/ct-behave.in index ba723cf..a57c798 100644 --- a/config/global/ct-behave.in +++ b/config/global/ct-behave.in @@ -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 diff --git a/config/global/extract.in b/config/global/extract.in index 2599faa..b754775 100644 --- a/config/global/extract.in +++ b/config/global/extract.in @@ -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 diff --git a/scripts/crosstool-NG.sh.in b/scripts/crosstool-NG.sh.in index 4aa3975..41c3bcc 100644 --- a/scripts/crosstool-NG.sh.in +++ b/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. @@ -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 @@ -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 diff --git a/scripts/functions b/scripts/functions index 4e2d67f..9489f18 100644 --- a/scripts/functions +++ b/scripts/functions @@ -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/_/.}" diff --git a/scripts/override/__default b/scripts/override/__default new file mode 100644 index 0000000..977b1f5 --- /dev/null +++ b/scripts/override/__default @@ -0,0 +1,3 @@ +#!@CONFIG_SHELL@ + +exec @TOOL_PATH@ "$@" -- cgit v0.10.2-6-g49f6