diff --git a/Makefile b/Makefile index 7d0c8ec7cc..145adb68a2 100644 --- a/Makefile +++ b/Makefile @@ -385,12 +385,8 @@ install-sysconfig: install-datadir install-confdir install: all $(if $(BUILD_DOCS),install-doc) install-sysconfig \ install-datadir install-localstatedir - $(INSTALL_DIR) "$(DESTDIR)$(bindir)" ifneq ($(TOOLS),) - $(INSTALL_PROG) $(TOOLS) "$(DESTDIR)$(bindir)" -ifneq ($(STRIP),) - $(STRIP) $(TOOLS:%="$(DESTDIR)$(bindir)/%") -endif + $(call install-prog,$(TOOLS),$(DESTDIR)$(bindir)) endif ifneq ($(CONFIG_MODULES),) $(INSTALL_DIR) "$(DESTDIR)$(qemu_moddir)" @@ -401,11 +397,7 @@ ifneq ($(CONFIG_MODULES),) done endif ifneq ($(HELPERS-y),) - $(INSTALL_DIR) "$(DESTDIR)$(libexecdir)" - $(INSTALL_PROG) $(HELPERS-y) "$(DESTDIR)$(libexecdir)" -ifneq ($(STRIP),) - $(STRIP) $(HELPERS-y:%="$(DESTDIR)$(libexecdir)/%") -endif + $(call install-prog,$(HELPERS-y),$(DESTDIR)$(libexecdir)) endif ifneq ($(BLOBS),) set -e; for x in $(BLOBS); do \ diff --git a/Makefile.target b/Makefile.target index fc5827cd72..6089d290df 100644 --- a/Makefile.target +++ b/Makefile.target @@ -190,10 +190,7 @@ endif install: all ifneq ($(PROGS),) - $(INSTALL_PROG) $(PROGS) "$(DESTDIR)$(bindir)" -ifneq ($(STRIP),) - $(STRIP) $(PROGS:%="$(DESTDIR)$(bindir)/%") -endif + $(call install-prog,$(PROGS),$(DESTDIR)$(bindir)) endif ifdef CONFIG_TRACE_SYSTEMTAP $(INSTALL_DIR) "$(DESTDIR)$(qemu_datadir)/../systemtap/tapset" diff --git a/rules.mak b/rules.mak index 945484ecb4..ba2f4c19a5 100644 --- a/rules.mak +++ b/rules.mak @@ -101,6 +101,13 @@ cc-option = $(if $(shell $(CC) $1 $2 -S -o /dev/null -xc /dev/null \ VPATH_SUFFIXES = %.c %.h %.S %.cc %.cpp %.m %.mak %.texi %.sh %.rc set-vpath = $(if $1,$(foreach PATTERN,$(VPATH_SUFFIXES),$(eval vpath $(PATTERN) $1))) +# install-prog list, dir +define install-prog + $(INSTALL_DIR) "$2" + $(INSTALL_PROG) $1 "$2" + $(if $(STRIP),$(STRIP) $(foreach T,$1,"$2/$(notdir $T)"),) +endef + # find-in-path # Usage: $(call find-in-path, prog) # Looks in the PATH if the argument contains no slash, else only considers one