We can just assign these to an array and echo before executing. Using
@Q makes Bash quote the output. This only works in Bash 4.4 and later
but on earlier versions, it simply doesn't quote.

Signed-off-by: James Le Cuirot <ch...@gentoo.org>
---
 eclass/waf-utils.eclass | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/eclass/waf-utils.eclass b/eclass/waf-utils.eclass
index 878068fc9f4f..8387829648a3 100644
--- a/eclass/waf-utils.eclass
+++ b/eclass/waf-utils.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: waf-utils.eclass
@@ -84,13 +84,19 @@ waf-utils_src_configure() {
        [[ -z ${NO_WAF_LIBDIR} ]] && 
libdir=(--libdir="${EPREFIX}/usr/$(get_libdir)")
 
        tc-export AR CC CPP CXX RANLIB
-       echo "CCFLAGS=\"${CFLAGS}\" LINKFLAGS=\"${CFLAGS} ${LDFLAGS}\" 
\"${WAF_BINARY}\" --prefix=${EPREFIX}/usr ${libdir[@]} $@ configure"
 
-       CCFLAGS="${CFLAGS}" LINKFLAGS="${CFLAGS} ${LDFLAGS}" "${WAF_BINARY}" \
-               "--prefix=${EPREFIX}/usr" \
-               "${libdir[@]}" \
-               "${@}" \
-               configure || die "configure failed"
+       local CMD=(
+               CCFLAGS="${CFLAGS}"
+               LINKFLAGS="${CFLAGS} ${LDFLAGS}"
+               "${WAF_BINARY}"
+               "--prefix=${EPREFIX}/usr"
+               "${libdir[@]}"
+               "${@}"
+               configure
+       )
+
+       echo "${CMD[@]@Q}"
+       env "${CMD[@]}" || die "configure failed"
 }
 
 # @FUNCTION: waf-utils_src_compile
-- 
2.19.2


Reply via email to