threads / discuss / 8406

quieter installs

Subject: quieter installs

## tl;dr

11 messages between Jun 3, 2007 and Jun 5, 2007.

replies: 10people: 4as markdown or json

Shawn O. Pearce· Jun 3, 2007, 01:00 UTC · lore

So I'm looking at adding this to git-gui, to replace Alex's patch, as it addresses most of the issues that Junio raised. Thoughts?

I'm a little unhappy with how mess the install target is now, but fortunately most of it is data driven through the other variables in the Makefile, so hopefully I don't have to tweak it too frequently. ;-)

--8>-- git-gui: Quiet our installation process

Alex Riesen wanted a quieter installation process for git and its contained git-gui. His earlier patch to do this failed to work properly when V=1, and didn't really give a great indication of what the installation was doing.

These rules are a little bit on the messy side, as each of our install actions is composed of at least two variables, but in the V=1 case the text is identical to what we had before, while in the non-V=1 case we use some more complex rules to show the interesting details, and hide the less interesting bits.

We now can also set QUIET= (nothing) to see the rules that are used when V= (nothing), so we can debug those too if we have to. This is actually a side-effect of how we insert the @ into the rules we use for the "lists of things", like our builtins or our library files.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
---
 Makefile |   42 +++++++++++++++++++++++++++++++++---------
 1 files changed, 33 insertions(+), 9 deletions(-)
diff --git a/Makefile b/Makefile
index 3de0de1..a114a87 100644
--- a/Makefile
+++ b/Makefile
@@ -29,11 +29,35 @@ ifndef INSTALL
 	INSTALL = install
 endif
 
+INSTALL_D0 = $(INSTALL) -d -m755 # space is required here
+INSTALL_D1 =
+INSTALL_R0 = $(INSTALL) -m644 # space is required here
+INSTALL_R1 =
+INSTALL_X0 = $(INSTALL) -m755 # space is required here
+INSTALL_X1 =
+INSTALL_L0 = rm -f # space is required here
+INSTALL_L1 = && ln # space is required here
+INSTALL_L2 =
+INSTALL_L3 =
+
 ifndef V
-	QUIET_GEN      = @echo '   ' GEN $@;
-	QUIET_BUILT_IN = @echo '   ' BUILTIN $@;
-	QUIET_INDEX    = @echo '   ' INDEX $(dir $@);
+	QUIET          = @
+	QUIET_GEN      = $(QUIET)echo '   ' GEN $@ &&
+	QUIET_BUILT_IN = $(QUIET)echo '   ' BUILTIN $@ &&
+	QUIET_INDEX    = $(QUIET)echo '   ' INDEX $(dir $@) &&
 	QUIET_2DEVNULL = 2>/dev/null
+
+	INSTALL_D0 = dir=
+	INSTALL_D1 = && echo ' ' DEST $$dir && $(INSTALL) -d -m755 "$$dir"
+	INSTALL_R0 = src=
+	INSTALL_R1 = && echo '   ' INSTALL 644 `basename $$src` && $(INSTALL) -m644 $$src
+	INSTALL_X0 = src=
+	INSTALL_X1 = && echo '   ' INSTALL 755 `basename $$src` && $(INSTALL) -m755 $$src
+
+	INSTALL_L0 = dst=
+	INSTALL_L1 = && src=
+	INSTALL_L2 = && dst=
+	INSTALL_L3 = && echo '   ' 'LINK       ' `basename "$$dst"` '->' `basename "$$src"` && rm -f "$$dst" && ln "$$src" "$$dst"
 endif
 
 TCL_PATH   ?= tclsh
@@ -109,12 +133,12 @@ GIT-GUI-VARS: .FORCE-GIT-GUI-VARS
 all:: $(ALL_PROGRAMS) lib/tclIndex
 
 install: all
-	$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(gitexecdir_SQ)'
-	$(INSTALL) git-gui '$(DESTDIR_SQ)$(gitexecdir_SQ)'
-	$(foreach p,$(GITGUI_BUILT_INS), rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' && ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git-gui' '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' ;)
-	$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(libdir_SQ)'
-	$(INSTALL) -m644 lib/tclIndex '$(DESTDIR_SQ)$(libdir_SQ)'
-	$(foreach p,$(ALL_LIBFILES), $(INSTALL) -m644 $p '$(DESTDIR_SQ)$(libdir_SQ)' ;)
+	$(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(gitexecdir_SQ)' $(INSTALL_D1)
+	$(QUIET)$(INSTALL_X0)git-gui $(INSTALL_X1) '$(DESTDIR_SQ)$(gitexecdir_SQ)'
+	$(QUIET)$(foreach p,$(GITGUI_BUILT_INS), $(INSTALL_L0)'$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' $(INSTALL_L1)'$(DESTDIR_SQ)$(gitexecdir_SQ)/git-gui' $(INSTALL_L2)'$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' $(INSTALL_L3) &&) true
+	$(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(libdir_SQ)' $(INSTALL_D1)
+	$(QUIET)$(INSTALL_R0)lib/tclIndex $(INSTALL_R1) '$(DESTDIR_SQ)$(libdir_SQ)'
+	$(QUIET)$(foreach p,$(ALL_LIBFILES), $(INSTALL_R0)$p $(INSTALL_R1) '$(DESTDIR_SQ)$(libdir_SQ)' &&) true
 
 dist-version:
 	@mkdir -p $(TARDIR)
-- 
1.5.2.901.g27ad4

-- 
Shawn.
Junio C Hamano· Jun 3, 2007, 05:53 UTC · re: Shawn O. Pearce · lore

Re: quieter installs

"Shawn O. Pearce" <spearce@spearce.org> writes:
Show 7 quoted lines
> So I'm looking at adding this to git-gui, to replace Alex's patch,
> as it addresses most of the issues that Junio raised.  Thoughts?
>
> I'm a little unhappy with how mess the install target is now, but
> fortunately most of it is data driven through the other variables in
> the Makefile, so hopefully I don't have to tweak it too frequently.
> ;-)
Good job.  I actually almost like it.
Without V=1, I get this from 'pu' that merged your 'pu'.
    ...
    make -C git-gui install
    make[1]: Entering directory `/git/git.git/git-gui'
      DEST /home/junio/git-pu/bin
        INSTALL 755 git-gui
        LINK        git-citool -> git-gui
      DEST /home/junio/git-pu/share//git-gui/lib
        INSTALL 644 tclIndex
        INSTALL 644 blame.tcl
        INSTALL 644 branch.tcl
        INSTALL 644 branch_rename.tcl
        INSTALL 644 browser.tcl
    ...
And with V=1, what I see seem very readable.
Shawn O. Pearce· Jun 3, 2007, 06:00 UTC · re: Junio C Hamano · lore

Re: quieter installs

Junio C Hamano <junkio@cox.net> wrote:
> Good job.  I actually almost like it.
Heh.  Thanks.  I almost like it to.  I like what it does for the
non-V=1 formatting, as I think its easier to read the installation
process.  But I really don't like that install target.  The problem
of course is there's no $@ that I can depend on in the install rules,
and the rules for the builtins (rm -f && ln) is very very messy.
 
Show 15 quoted lines
> Without V=1, I get this from 'pu' that merged your 'pu'.
> 
>     ...
>     make -C git-gui install
>     make[1]: Entering directory `/git/git.git/git-gui'
>       DEST /home/junio/git-pu/bin
>         INSTALL 755 git-gui
>         LINK        git-citool -> git-gui
>       DEST /home/junio/git-pu/share//git-gui/lib
>         INSTALL 644 tclIndex
>         INSTALL 644 blame.tcl
>         INSTALL 644 branch.tcl
>         INSTALL 644 branch_rename.tcl
>         INSTALL 644 browser.tcl
>     ...

Right. I wanted to try and keep the lines very simple, like we have with our CC/GEN/BUILTIN lines. But I also wanted to be clear about which directories we are dropping stuff into.

> And with V=1, what I see seem very readable.

Right. My target there was that the V=1 case was *exactly* what I had before. Because a simple installation with no pretty formatting should be exactly that; a simple installation with no pretty formatting.

-- 
Shawn.
Alex Riesen· Jun 3, 2007, 13:17 UTC · re: Shawn O. Pearce · lore

Re: quieter installs

Shawn O. Pearce, Sun, Jun 03, 2007 08:00:58 +0200:
> Junio C Hamano <junkio@cox.net> wrote:
> >     make -C git-gui install
> >     make[1]: Entering directory `/git/git.git/git-gui'

You want to hide these (unless -w is given). The patch I just sent does this.

Alex Riesen· Jun 3, 2007, 13:04 UTC · re: Shawn O. Pearce · lore

Re: quieter installs

Shawn O. Pearce, Sun, Jun 03, 2007 03:00:44 +0200:
> +	INSTALL_L3 = && echo '   ' 'LINK       ' `basename "$$dst"` '->' `basename "$$src"` && rm -f "$$dst" && ln "$$src" "$$dst"
"LINK" is already taken. By program linking step
Alex Riesen· Jun 3, 2007, 13:07 UTC · re: Shawn O. Pearce · lore

[PATCH] Make the installation targets a little less chatty

by default. V=1 works as usual.
Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
---

Updated. BTW, where does "no $(call) in Makefile" came from? It could simplify the thing a lot

 Makefile           |   44 +++++++++++++++++++++++++++++++++-----------
 templates/Makefile |    5 +++--
 2 files changed, 36 insertions(+), 13 deletions(-)
diff --git a/Makefile b/Makefile
index cac0a4a..6409b9c 100644
--- a/Makefile
+++ b/Makefile
@@ -660,6 +660,7 @@ ifeq ($(TCLTK_PATH),)
 NO_TCLTK=NoThanks
 endif
 
+QUIET=
 QUIET_SUBDIR0  = +$(MAKE) -C # space to separate -C and subdir
 QUIET_SUBDIR1  =
 
@@ -671,6 +672,8 @@ endif
 
 ifneq ($(findstring $(MAKEFLAGS),s),s)
 ifndef V
+	QUIET = @
+
 	QUIET_CC       = @echo '   ' CC $@;
 	QUIET_AR       = @echo '   ' AR $@;
 	QUIET_LINK     = @echo '   ' LINK $@;
@@ -972,34 +975,53 @@ check: common-cmds.h
 
 ### Installation rules
 
+ifeq ($(QUIET),@)
+INST_0   = arg=
+INST_1   = &&echo  "    INSTALL $$arg"&&$(INSTALL) "$$arg" # space
+BSETUP_0 = arg=
+BSETUP_1 = &&echo  "    SETUP BUILTIN $$arg"&& \
+	   rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/'"$$arg" && \
+	   ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git$(X)' \
+	   '$(DESTDIR_SQ)$(gitexecdir_SQ)/'"$$arg" # space
+else
+INST_0   = $(INSTALL) # space to separate "install" and its first arg
+INST_1   =
+BSETUP_0 = arg=
+BSETUP_1 = &&rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/'"$$arg" && \
+	   ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git$(X)' \
+	   '$(DESTDIR_SQ)$(gitexecdir_SQ)/'"$$arg" # space
+endif
+
 install: all
 	$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(bindir_SQ)'
 	$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(gitexecdir_SQ)'
-	$(INSTALL) $(ALL_PROGRAMS) '$(DESTDIR_SQ)$(gitexecdir_SQ)'
-	$(INSTALL) git$X '$(DESTDIR_SQ)$(bindir_SQ)'
-	$(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' install
-	$(MAKE) -C perl prefix='$(prefix_SQ)' install
+	$(QUIET)$(foreach p,$(ALL_PROGRAMS),\
+	    $(INST_0)'$p' $(INST_1)'$(DESTDIR_SQ)$(gitexecdir_SQ)' &&):
+	$(QUIET)$(INST_0)git$X $(INST_1)'$(DESTDIR_SQ)$(bindir_SQ)'
+	$(QUIET)$(foreach p,$(BUILT_INS),$(BSETUP_0)$p $(BSETUP_1)&&):
+	$(QUIET_SUBDIR0)templates $(QUIET_SUBDIR1) DESTDIR='$(DESTDIR_SQ)' install
+	$(QUIET_SUBDIR0)perl $(QUIET_SUBDIR1) prefix='$(prefix_SQ)' install
 ifndef NO_TCLTK
-	$(INSTALL) gitk-wish '$(DESTDIR_SQ)$(bindir_SQ)'/gitk
-	$(MAKE) -C git-gui install
+	$(QUIET)$(INST_0)gitk-wish $(INST_1)'$(DESTDIR_SQ)$(bindir_SQ)'/gitk
+	$(QUIET_SUBDIR0)git-gui $(QUIET_SUBDIR1) install
 endif
-	if test 'z$(bindir_SQ)' != 'z$(gitexecdir_SQ)'; \
+	$(QUIET)if test 'z$(bindir_SQ)' != 'z$(gitexecdir_SQ)'; \
 	then \
 		ln -f '$(DESTDIR_SQ)$(bindir_SQ)/git$X' \
 			'$(DESTDIR_SQ)$(gitexecdir_SQ)/git$X' || \
 		cp '$(DESTDIR_SQ)$(bindir_SQ)/git$X' \
 			'$(DESTDIR_SQ)$(gitexecdir_SQ)/git$X'; \
 	fi
-	$(foreach p,$(BUILT_INS), rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' && ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git$X' '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' ;)
 ifneq (,$X)
-	$(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) git$X)), rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p';)
+	@echo cleaning '$(DESTDIR_SQ)$(gitexecdir_SQ)' of old scripts
+	$(QUIET)$(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) git$X)), rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p';)
 endif
 
 install-doc:
-	$(MAKE) -C Documentation install
+	$(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) install
 
 quick-install-doc:
-	$(MAKE) -C Documentation quick-install
+	$(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) quick-install
 
 
 
diff --git a/templates/Makefile b/templates/Makefile
index b8352e7..b9a39e2 100644
--- a/templates/Makefile
+++ b/templates/Makefile
@@ -45,6 +45,7 @@ clean:
 	rm -rf blt boilerplates.made
 
 install: all
-	$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(template_dir_SQ)'
-	(cd blt && $(TAR) cf - .) | \
+	@echo installing templates
+	$(QUIET)$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(template_dir_SQ)'
+	$(QUIET)(cd blt && $(TAR) cf - .) | \
 	(cd '$(DESTDIR_SQ)$(template_dir_SQ)' && $(TAR) xf -)
-- 
1.5.2.182.ged6b
Junio C Hamano· Jun 4, 2007, 07:48 UTC · re: Alex Riesen · lore

Re: [PATCH] Make the installation targets a little less chatty

Alex Riesen <raa.lkml@gmail.com> writes:
Show 7 quoted lines
> by default. V=1 works as usual.
>
> Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
> ---
>
> Updated. BTW, where does "no $(call) in Makefile" came from?
> It could simplify the thing a lot

Probably, but first let's make it "work right" while not introducing new stuff.

Show 29 quoted lines
> diff --git a/Makefile b/Makefile
> index cac0a4a..6409b9c 100644
> --- a/Makefile
> +++ b/Makefile
> ...
> @@ -972,34 +975,53 @@ check: common-cmds.h
>  
>  ### Installation rules
>  
> +ifeq ($(QUIET),@)
> +INST_0   = arg=
> +INST_1   = &&echo  "    INSTALL $$arg"&&$(INSTALL) "$$arg" # space
> +BSETUP_0 = arg=
> +BSETUP_1 = &&echo  "    SETUP BUILTIN $$arg"&& \
> +	   rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/'"$$arg" && \
> +	   ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git$(X)' \
> +	   '$(DESTDIR_SQ)$(gitexecdir_SQ)/'"$$arg" # space
> +else
> +INST_0   = $(INSTALL) # space to separate "install" and its first arg
> +INST_1   =
> +BSETUP_0 = arg=
> +BSETUP_1 = &&rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/'"$$arg" && \
> +	   ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git$(X)' \
> +	   '$(DESTDIR_SQ)$(gitexecdir_SQ)/'"$$arg" # space
> +endif
> +
>  install: all
>  	$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(bindir_SQ)'
>  	$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(gitexecdir_SQ)'

I found Shawn's "DEST = $this_directory" quite decent. Forgot to port it?

Alex Riesen· Jun 4, 2007, 14:00 UTC · re: Junio C Hamano · lore

Re: [PATCH] Make the installation targets a little less chatty

On 6/4/07, Junio C Hamano <gitster@pobox.com> wrote:
Show 7 quoted lines
> >
> > Updated. BTW, where does "no $(call) in Makefile" came from?
> > It could simplify the thing a lot
>
> Probably, but first let's make it "work right" while not
> introducing new stuff.
>
Just looked for the reasons, which appear to be there:
commit 39c015c556f285106931e0500f301de462b0e46e
Author: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Date:   Sat Feb 18 12:40:22 2006 +0100
    Fixes for ancient versions of GNU make
    Some versions of GNU make do not understand $(call), and have problems to
    interpret rules like this:
    some_target: CFLAGS += -Dsome=defs
    [jc: simplified substitution a bit. ]
    Signed-off-by: Johannes E. Schindelin <Johannes.Schindelin@gmx.de>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
I trust Johannes to have such a make, never seen it myself, though.
Show 7 quoted lines
> >  install: all
> >       $(INSTALL) -d -m755 '$(DESTDIR_SQ)$(bindir_SQ)'
> >       $(INSTALL) -d -m755 '$(DESTDIR_SQ)$(gitexecdir_SQ)'
>
> I found Shawn's "DEST = $this_directory" quite decent.  Forgot
> to port it?
>

Race condition. Hit the send button before reading his patch and the related discussion. Besides, now I find it is already too much cruft just to print a directory. Didn't want to make it pretty, just needed some readability on screen. Still think the errors of (eventually) failing install would be enough.

Using $(call) would allow to generalize that, BTW.
Johannes Schindelin· Jun 4, 2007, 17:40 UTC · re: Alex Riesen · lore

Re: [PATCH] Make the installation targets a little less chatty

Hi,
On Mon, 4 Jun 2007, Alex Riesen wrote:
Show 27 quoted lines
> On 6/4/07, Junio C Hamano <gitster@pobox.com> wrote:
> > >
> > > Updated. BTW, where does "no $(call) in Makefile" came from?
> > > It could simplify the thing a lot
> > 
> > Probably, but first let's make it "work right" while not
> > introducing new stuff.
> > 
> 
> Just looked for the reasons, which appear to be there:
> commit 39c015c556f285106931e0500f301de462b0e46e
> Author: Johannes Schindelin <Johannes.Schindelin@gmx.de>
> Date:   Sat Feb 18 12:40:22 2006 +0100
> 
>    Fixes for ancient versions of GNU make
> 
>    Some versions of GNU make do not understand $(call), and have problems to
>    interpret rules like this:
> 
>    some_target: CFLAGS += -Dsome=defs
> 
>    [jc: simplified substitution a bit. ]
> 
>    Signed-off-by: Johannes E. Schindelin <Johannes.Schindelin@gmx.de>
>    Signed-off-by: Junio C Hamano <junkio@cox.net>
> 
> I trust Johannes to have such a make, never seen it myself, though.

Yes. I no longer have access to that machine, but it was an SGI machine running IRIX, and I had no root access, and I had a quota.

That is when I worked towards getting rid of Python (making the use of it optional at first), and working with incompatible or sufficiently non-GNU programs like old make, different sed, etc.

At the time I was really annoyed with the situation, especially since it was _easy_ to stay compatible with them. I have little sympathy with making things just a little simpler for John R. Developer, and substantially harder for a lot of users.

So, are you sure you want to force everybody who wants to compile Git to use a recent GNU make?

Ciao, Dscho

Alex Riesen· Jun 5, 2007, 10:33 UTC · re: Johannes Schindelin · lore

Re: [PATCH] Make the installation targets a little less chatty

On 6/4/07, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
>
> So, are you sure you want to force everybody who wants to compile Git to
> use a recent GNU make?
>
Dunno. I just didn't want to slap more workarounds onto Git's Makefile.
Alex Riesen· Jun 3, 2007, 13:08 UTC · re: Shawn O. Pearce · lore

[PATCH] Make the installation target of git-gui a little less chatty

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
---
Almost the same as Shawn's. Sending just for completeness.
 git-gui/Makefile |   34 ++++++++++++++++++++++++++++------
 1 files changed, 28 insertions(+), 6 deletions(-)
diff --git a/git-gui/Makefile b/git-gui/Makefile
index 3de0de1..dfed1a1 100644
--- a/git-gui/Makefile
+++ b/git-gui/Makefile
@@ -2,6 +2,10 @@ all::
 
 # Define V=1 to have a more verbose compile.
 #
+QUIET =
+ifndef V
+    QUIET = @
+endif
 
 GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
 	@$(SHELL_PATH) ./GIT-VERSION-GEN
@@ -108,13 +112,31 @@ GIT-GUI-VARS: .FORCE-GIT-GUI-VARS
 
 all:: $(ALL_PROGRAMS) lib/tclIndex
 
+ifeq ($(QUIET),@)
+INST_0   = arg=
+INST_1   = &&echo  "    INSTALL $$mode $$arg"&&$(INSTALL) $$mode "$$arg" # space
+BSETUP_0 = arg=
+BSETUP_1 = &&echo  "    GIT-GUI BUILTIN $$arg"&& \
+	   rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/'"$$arg" && \
+	   ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git-gui' \
+	   '$(DESTDIR_SQ)$(gitexecdir_SQ)/'"$$arg" # space
+else
+INST_0   = $(INSTALL) $$mode # space to separate "install" and its first arg
+INST_1   =
+BSETUP_0 = arg=
+BSETUP_1 = &&rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/'"$$arg" && \
+	   ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git-gui' \
+	   '$(DESTDIR_SQ)$(gitexecdir_SQ)/'"$$arg" # space
+endif
+
 install: all
-	$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(gitexecdir_SQ)'
-	$(INSTALL) git-gui '$(DESTDIR_SQ)$(gitexecdir_SQ)'
-	$(foreach p,$(GITGUI_BUILT_INS), rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' && ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git-gui' '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' ;)
-	$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(libdir_SQ)'
-	$(INSTALL) -m644 lib/tclIndex '$(DESTDIR_SQ)$(libdir_SQ)'
-	$(foreach p,$(ALL_LIBFILES), $(INSTALL) -m644 $p '$(DESTDIR_SQ)$(libdir_SQ)' ;)
+	$(QUIET)$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(gitexecdir_SQ)'
+	$(QUIET)mode=;$(INST_0)git-gui $(INST_1)'$(DESTDIR_SQ)$(gitexecdir_SQ)'
+	$(QUIET)$(foreach p,$(GITGUI_BUILT_INS),$(BSETUP_0)$p $(BSETUP_1) &&):
+	$(QUIET)$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(libdir_SQ)'
+	$(QUIET)mode=-m644; \
+	    $(foreach p,lib/tclIndex $(ALL_LIBFILES), \
+	    $(INST_0)$p $(INST_1) '$(DESTDIR_SQ)$(libdir_SQ)' &&):
 
 dist-version:
 	@mkdir -p $(TARDIR)
-- 
1.5.2.182.ged6b

← back to recent threads