# HG changeset patch # User "Yann E. MORIN" # Date 1326753402 -3600 # Node ID 822af73497bf9b9c5bee743df1a7f83e8f2d7ddb # Parent db26e387b70b8a485176b59f2c4b6dfa66bb6f80 scripts: fix tools override The tools found by the new autostuff configure can contain arguments, for example: grep -E This needs separating the paths set for the Makfile from the paths set for the scripts. Signed-off-by: "Yann E. MORIN" diff -r db26e387b70b -r 822af73497bf .hgignore --- a/.hgignore Fri Jan 13 12:24:55 2012 +0100 +++ b/.hgignore Mon Jan 16 23:36:42 2012 +0100 @@ -10,6 +10,7 @@ docs/*ct-ng*.1 docs/*ct-ng*.1.gz paths.mk +paths.sh scripts/crosstool-NG.sh scripts/saveSample.sh scripts/showTuple.sh diff -r db26e387b70b -r 822af73497bf Makefile.in --- a/Makefile.in Fri Jan 13 12:24:55 2012 +0100 +++ b/Makefile.in Mon Jan 16 23:36:42 2012 +0100 @@ -151,8 +151,9 @@ scripts/showTuple.sh @chmod 755 $^ -build-lib: paths.mk \ - config/configure.in +build-lib: config/configure.in \ + paths.mk \ + paths.sh build-lib-kconfig: @$(MAKE) -C kconfig @@ -189,24 +190,36 @@ $(call sed_it) # We create a script fragment that is parseable from inside a Makefile, -# but also from inside a shell script, hence the reason why we don't -# use := to set variables, although that will incur a (very small) -# penalty from the Makefile that includes it (due to re-evaluation at -# each call). +# and one from inside a shell script paths.mk: FORCE @echo " GEN '$@'" - @(echo "export install=$(install)"; \ - echo "export bash=$(bash)"; \ - echo "export grep=$(grep)"; \ - echo "export make=$(make)"; \ - echo "export sed=$(sed)"; \ - echo "export libtool=$(libtool)"; \ - echo "export libtoolize=$(libtoolize)"; \ - echo "export objcopy=$(objcopy)"; \ - echo "export objdump=$(objdump)"; \ - echo "export readelf=$(readelf)"; \ - echo "export patch=$(patch)"; \ - ) >paths.mk + @(echo 'export install=$(install)'; \ + echo 'export bash=$(bash)'; \ + echo 'export grep=$(grep)'; \ + echo 'export make=$(make)'; \ + echo 'export sed=$(sed)'; \ + echo 'export libtool=$(libtool)'; \ + echo 'export libtoolize=$(libtoolize)'; \ + echo 'export objcopy=$(objcopy)'; \ + echo 'export objdump=$(objdump)'; \ + echo 'export readelf=$(readelf)'; \ + echo 'export patch=$(patch)'; \ + ) >$@ + +paths.sh: FORCE + @echo " GEN '$@'" + @(echo 'export install="$(install)"'; \ + echo 'export bash="$(bash)"'; \ + echo 'export grep="$(grep)"'; \ + echo 'export make="$(make)"'; \ + echo 'export sed="$(sed)"'; \ + echo 'export libtool="$(libtool)"'; \ + echo 'export libtoolize="$(libtoolize)"'; \ + echo 'export objcopy="$(objcopy)"'; \ + echo 'export objdump="$(objdump)"'; \ + echo 'export readelf="$(readelf)"'; \ + echo 'export patch="$(patch)"'; \ + ) >$@ config/configure.in: FORCE @echo " GEN '$@'" @@ -239,8 +252,8 @@ @rm -f scripts/showTuple.sh clean-lib: - @echo " RM 'paths.mk'" - @rm -f paths.mk + @echo " RM 'paths'" + @rm -f paths.mk paths.sh @echo " RM 'config/configure.in'" @rm -f config/configure.in @@ -304,8 +317,8 @@ install-lib-main: $(DESTDIR)$(libdir) $(patsubst %,install-lib-%,$(LIB_SUB_DIR)) @echo " INST 'steps.mk'" @$(install) -m 644 steps.mk "$(DESTDIR)$(libdir)/steps.mk" - @echo " INST 'paths.mk'" - @$(install) -m 644 paths.mk "$(DESTDIR)$(libdir)/paths.mk" + @echo " INST 'paths'" + @$(install) -m 644 paths.mk paths.sh "$(DESTDIR)$(libdir)" # Samples need a little love: # - change every occurrence of CT_TOP_DIR to CT_LIB_DIR diff -r db26e387b70b -r 822af73497bf scripts/addToolVersion.sh --- a/scripts/addToolVersion.sh Fri Jan 13 12:24:55 2012 +0100 +++ b/scripts/addToolVersion.sh Mon Jan 16 23:36:42 2012 +0100 @@ -7,10 +7,10 @@ # Parse the tools' paths configuration # It is expected that this script is only to be run from the # source directory of crosstool-NG, so it is trivial to find -# paths.mk (we can't use ". paths.mk", as POSIX states that +# paths.sh (we can't use ". paths.sh", as POSIX states that # $PATH should be searched for, and $PATH most probably doe # not include "."), hence the "./". -. "./paths.mk" +. "./paths.sh" doHelp() { cat <<-EOF diff -r db26e387b70b -r 822af73497bf scripts/crosstool-NG.sh.in --- a/scripts/crosstool-NG.sh.in Fri Jan 13 12:24:55 2012 +0100 +++ b/scripts/crosstool-NG.sh.in Mon Jan 16 23:36:42 2012 +0100 @@ -78,11 +78,13 @@ 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" -cat "${CT_LIB_DIR}/paths.mk" |while read trash line; do +cat "${CT_LIB_DIR}/paths.sh" |while read trash line; do tool="${line%%=*}" path="${line#*=}" CT_DoLog DEBUG "Creating script-override for '${tool}' -> '${path}'" - printf "#${BANG}${CT_CONFIG_SHELL}\nexec '${path}' \"\${@}\"\n" >"${CT_TOOLS_OVERIDE_DIR}/bin/${tool}" + # 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}" done export PATH="${CT_TOOLS_OVERIDE_DIR}/bin:${PATH}" diff -r db26e387b70b -r 822af73497bf scripts/patch-renumber.sh --- a/scripts/patch-renumber.sh Fri Jan 13 12:24:55 2012 +0100 +++ b/scripts/patch-renumber.sh Mon Jan 16 23:36:42 2012 +0100 @@ -7,10 +7,10 @@ # Parse the tools' paths configuration # It is expected that this script is only to be run from the # source directory of crosstool-NG, so it is trivial to find -# paths.mk (we can't use ". paths.mk", as POSIX states that +# paths.sh (we can't use ". paths.sh", as POSIX states that # $PATH should be searched for, and $PATH most probably doe # not include "."), hence the "./". -. "./paths.mk" +. "./paths.sh" doUsage() { cat <<_EOF_ diff -r db26e387b70b -r 822af73497bf scripts/saveSample.sh.in --- a/scripts/saveSample.sh.in Fri Jan 13 12:24:55 2012 +0100 +++ b/scripts/saveSample.sh.in Mon Jan 16 23:36:42 2012 +0100 @@ -9,7 +9,7 @@ # - info about who reported the sample # Parse the tools' paths configuration -. "${CT_LIB_DIR}/paths.mk" +. "${CT_LIB_DIR}/paths.sh" # We'll need the stdout later, save it exec 7>&1 diff -r db26e387b70b -r 822af73497bf scripts/showSamples.sh --- a/scripts/showSamples.sh Fri Jan 13 12:24:55 2012 +0100 +++ b/scripts/showSamples.sh Mon Jan 16 23:36:42 2012 +0100 @@ -5,7 +5,7 @@ # the versions of the main tools # Use tools discovered by ./configure -. "${CT_LIB_DIR}/paths.mk" +. "${CT_LIB_DIR}/paths.sh" [ "$1" = "-v" ] && opt="$1" && shift [ "$1" = "-w" ] && opt="$1" && shift diff -r db26e387b70b -r 822af73497bf scripts/showTuple.sh.in --- a/scripts/showTuple.sh.in Fri Jan 13 12:24:55 2012 +0100 +++ b/scripts/showTuple.sh.in Mon Jan 16 23:36:42 2012 +0100 @@ -4,7 +4,7 @@ # - the .config file # Parse the tools' paths configuration -. "${CT_LIB_DIR}/paths.mk" +. "${CT_LIB_DIR}/paths.sh" # We'll need the stdout later, save it exec 7>&1