Makefile: remove bashism
authorMichael Tokarev <mjt@tls.msk.ru>
Sat, 5 Apr 2014 14:25:46 +0000 (18:25 +0400)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 7 Apr 2014 14:19:16 +0000 (15:19 +0100)
When installing modules (when --enable-modules is specified for
./configure), Makefile uses the following construct to replace all
slashes with dashes in module name:

 ${s//\//-}

This is a bash-specific substitution mechanism.  POSIX does not
have it, and some operating systems (for example Debian) does not
implement this construct in default shell (for example dash).

Use more traditional way to perform the substitution: use `tr' tool.

Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
Message-id: 1396707946-21351-1-git-send-email-mjt@msgid.tls.msk.ru
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Makefile

index ec74039..d622799 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -376,7 +376,7 @@ endif
 ifneq ($(CONFIG_MODULES),)
        $(INSTALL_DIR) "$(DESTDIR)$(qemu_moddir)"
        for s in $(patsubst %.mo,%$(DSOSUF),$(modules-m)); do \
-               $(INSTALL_PROG) $(STRIP_OPT) $$s "$(DESTDIR)$(qemu_moddir)/$${s//\//-}"; \
+               $(INSTALL_PROG) $(STRIP_OPT) $$s "$(DESTDIR)$(qemu_moddir)/$$(echo $$s | tr / -)"; \
        done
 endif
 ifneq ($(HELPERS-y),)