configure: Don't use bash-specific string-replacement syntax
authorPeter Maydell <peter.maydell@linaro.org>
Wed, 20 Jul 2022 15:26:29 +0000 (16:26 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 26 Jul 2022 12:42:04 +0000 (13:42 +0100)
commit65842b03d112070bbc3216841eb879c1fc42523a
treef08cd857a512e529e5008cb138255b7d439b046e
parentd466d416ed51aa72d2bfde2e2b44293bf6d73472
configure: Don't use bash-specific string-replacement syntax

The variable string-replacement syntax ${var/old/new} is a bashism
(though it is also supported by some other shells), and for instance
does not work with the NetBSD /bin/sh, which complains:
 ../src/configure: 687: Syntax error: Bad substitution

Replace it with a more portable sed-based approach, similar to
what we already do in quote_sh().

Note that shellcheck also diagnoses this:

In ./configure line 687:
    e=${e/'\'/'\\'}
      ^-----------^ SC2039: In POSIX sh, string replacement is undefined.
           ^-- SC1003: Want to escape a single quote? echo 'This is how it'\''s done'.
                ^-- SC1003: Want to escape a single quote? echo 'This is how it'\''s done'.

In ./configure line 688:
    e=${e/\"/'\"'}
      ^----------^ SC2039: In POSIX sh, string replacement is undefined.

Fixes: 8154f5e64b0cf ("meson: Prefix each element of firmware path")
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Tested-by: Thomas Huth <thuth@redhat.com>
Message-id: 20220720152631.450903-4-peter.maydell@linaro.org
configure