build-sys: introduce install-prog macro to install&strip binaries and use it
authorMichael Tokarev <mjt@tls.msk.ru>
Sun, 22 Jun 2014 06:55:23 +0000 (10:55 +0400)
committerMichael Tokarev <mjt@tls.msk.ru>
Tue, 24 Jun 2014 16:01:24 +0000 (20:01 +0400)
Use common rule (macro) to install and strip binaries, and use
it in all places where we install binaries, instead of fixing
bugs like 1319493 in every place.
(This fixes https://bugs.launchpad.net/bugs/1319493)

Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
Makefile
Makefile.target
rules.mak

index 7d0c8ec7cc6bf568be311975cf66f45b429bef6e..145adb68a265f85227e187916896fc0bbc6e7071 100644 (file)
--- 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 \
index fc5827cd7286b6da0d3b8b5527d39c8f5d910dac..6089d290dfb31c278c4dd7f887c945e60935f916 100644 (file)
@@ -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"
index 945484ecb4e168913cef16afb0e104ea6a1e3688..ba2f4c19a5463d7278a742526ed53418ea843db2 100644 (file)
--- 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