{"thread":{"id":"8406","subject":"quieter installs","startedAt":"2007-06-03T01:00:44Z","lastAt":"2007-06-05T10:33:18Z","messageCount":11,"participants":["Shawn O. Pearce","Junio C Hamano","Alex Riesen","Johannes Schindelin"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"43843","messageId":"20070603010044.GA4507@spearce.org","threadId":"8406","inReplyTo":null,"subject":"quieter installs","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2007-06-03T01:00:44Z","receivedAt":"2007-06-03T01:00:44Z","isPatch":false,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"So I'm looking at adding this to git-gui, to replace Alex's patch,\nas it addresses most of the issues that Junio raised.  Thoughts?\n\nI'm a little unhappy with how mess the install target is now, but\nfortunately most of it is data driven through the other variables in\nthe Makefile, so hopefully I don't have to tweak it too frequently.\n;-)\n\n--8>--\ngit-gui: Quiet our installation process\n\nAlex Riesen wanted a quieter installation process for git and its\ncontained git-gui.  His earlier patch to do this failed to work\nproperly when V=1, and didn't really give a great indication of\nwhat the installation was doing.\n\nThese rules are a little bit on the messy side, as each of our\ninstall actions is composed of at least two variables, but in the\nV=1 case the text is identical to what we had before, while in the\nnon-V=1 case we use some more complex rules to show the interesting\ndetails, and hide the less interesting bits.\n\nWe now can also set QUIET= (nothing) to see the rules that are used\nwhen V= (nothing), so we can debug those too if we have to.  This is\nactually a side-effect of how we insert the @ into the rules we use\nfor the \"lists of things\", like our builtins or our library files.\n\nSigned-off-by: Shawn O. Pearce <spearce@spearce.org>\n---\n Makefile |   42 +++++++++++++++++++++++++++++++++---------\n 1 files changed, 33 insertions(+), 9 deletions(-)\n\ndiff --git a/Makefile b/Makefile\nindex 3de0de1..a114a87 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -29,11 +29,35 @@ ifndef INSTALL\n \tINSTALL = install\n endif\n \n+INSTALL_D0 = $(INSTALL) -d -m755 # space is required here\n+INSTALL_D1 =\n+INSTALL_R0 = $(INSTALL) -m644 # space is required here\n+INSTALL_R1 =\n+INSTALL_X0 = $(INSTALL) -m755 # space is required here\n+INSTALL_X1 =\n+INSTALL_L0 = rm -f # space is required here\n+INSTALL_L1 = && ln # space is required here\n+INSTALL_L2 =\n+INSTALL_L3 =\n+\n ifndef V\n-\tQUIET_GEN      = @echo '   ' GEN $@;\n-\tQUIET_BUILT_IN = @echo '   ' BUILTIN $@;\n-\tQUIET_INDEX    = @echo '   ' INDEX $(dir $@);\n+\tQUIET          = @\n+\tQUIET_GEN      = $(QUIET)echo '   ' GEN $@ &&\n+\tQUIET_BUILT_IN = $(QUIET)echo '   ' BUILTIN $@ &&\n+\tQUIET_INDEX    = $(QUIET)echo '   ' INDEX $(dir $@) &&\n \tQUIET_2DEVNULL = 2>/dev/null\n+\n+\tINSTALL_D0 = dir=\n+\tINSTALL_D1 = && echo ' ' DEST $$dir && $(INSTALL) -d -m755 \"$$dir\"\n+\tINSTALL_R0 = src=\n+\tINSTALL_R1 = && echo '   ' INSTALL 644 `basename $$src` && $(INSTALL) -m644 $$src\n+\tINSTALL_X0 = src=\n+\tINSTALL_X1 = && echo '   ' INSTALL 755 `basename $$src` && $(INSTALL) -m755 $$src\n+\n+\tINSTALL_L0 = dst=\n+\tINSTALL_L1 = && src=\n+\tINSTALL_L2 = && dst=\n+\tINSTALL_L3 = && echo '   ' 'LINK       ' `basename \"$$dst\"` '->' `basename \"$$src\"` && rm -f \"$$dst\" && ln \"$$src\" \"$$dst\"\n endif\n \n TCL_PATH   ?= tclsh\n@@ -109,12 +133,12 @@ GIT-GUI-VARS: .FORCE-GIT-GUI-VARS\n all:: $(ALL_PROGRAMS) lib/tclIndex\n \n install: all\n-\t$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(gitexecdir_SQ)'\n-\t$(INSTALL) git-gui '$(DESTDIR_SQ)$(gitexecdir_SQ)'\n-\t$(foreach p,$(GITGUI_BUILT_INS), rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' && ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git-gui' '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' ;)\n-\t$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(libdir_SQ)'\n-\t$(INSTALL) -m644 lib/tclIndex '$(DESTDIR_SQ)$(libdir_SQ)'\n-\t$(foreach p,$(ALL_LIBFILES), $(INSTALL) -m644 $p '$(DESTDIR_SQ)$(libdir_SQ)' ;)\n+\t$(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(gitexecdir_SQ)' $(INSTALL_D1)\n+\t$(QUIET)$(INSTALL_X0)git-gui $(INSTALL_X1) '$(DESTDIR_SQ)$(gitexecdir_SQ)'\n+\t$(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\n+\t$(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(libdir_SQ)' $(INSTALL_D1)\n+\t$(QUIET)$(INSTALL_R0)lib/tclIndex $(INSTALL_R1) '$(DESTDIR_SQ)$(libdir_SQ)'\n+\t$(QUIET)$(foreach p,$(ALL_LIBFILES), $(INSTALL_R0)$p $(INSTALL_R1) '$(DESTDIR_SQ)$(libdir_SQ)' &&) true\n \n dist-version:\n \t@mkdir -p $(TARDIR)\n-- \n1.5.2.901.g27ad4\n\n-- \nShawn.\n"},{"id":"43850","messageId":"7vfy59oa71.fsf@assigned-by-dhcp.cox.net","threadId":"8406","inReplyTo":"20070603010044.GA4507@spearce.org","subject":"Re: quieter installs","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2007-06-03T05:53:38Z","receivedAt":"2007-06-03T05:53:38Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Shawn O. Pearce\" <spearce@spearce.org> writes:\n\n> So I'm looking at adding this to git-gui, to replace Alex's patch,\n> as it addresses most of the issues that Junio raised.  Thoughts?\n>\n> I'm a little unhappy with how mess the install target is now, but\n> fortunately most of it is data driven through the other variables in\n> the Makefile, so hopefully I don't have to tweak it too frequently.\n> ;-)\n\nGood job.  I actually almost like it.\n\nWithout V=1, I get this from 'pu' that merged your 'pu'.\n\n    ...\n    make -C git-gui install\n    make[1]: Entering directory `/git/git.git/git-gui'\n      DEST /home/junio/git-pu/bin\n        INSTALL 755 git-gui\n        LINK        git-citool -> git-gui\n      DEST /home/junio/git-pu/share//git-gui/lib\n        INSTALL 644 tclIndex\n        INSTALL 644 blame.tcl\n        INSTALL 644 branch.tcl\n        INSTALL 644 branch_rename.tcl\n        INSTALL 644 browser.tcl\n    ...\n\nAnd with V=1, what I see seem very readable.\n"},{"id":"43851","messageId":"20070603060058.GC4507@spearce.org","threadId":"8406","inReplyTo":"7vfy59oa71.fsf@assigned-by-dhcp.cox.net","subject":"Re: quieter installs","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2007-06-03T06:00:58Z","receivedAt":"2007-06-03T06:00:58Z","isPatch":false,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Junio C Hamano <junkio@cox.net> wrote:\n> Good job.  I actually almost like it.\n\nHeh.  Thanks.  I almost like it to.  I like what it does for the\nnon-V=1 formatting, as I think its easier to read the installation\nprocess.  But I really don't like that install target.  The problem\nof course is there's no $@ that I can depend on in the install rules,\nand the rules for the builtins (rm -f && ln) is very very messy.\n \n> Without V=1, I get this from 'pu' that merged your 'pu'.\n> \n>     ...\n>     make -C git-gui install\n>     make[1]: Entering directory `/git/git.git/git-gui'\n>       DEST /home/junio/git-pu/bin\n>         INSTALL 755 git-gui\n>         LINK        git-citool -> git-gui\n>       DEST /home/junio/git-pu/share//git-gui/lib\n>         INSTALL 644 tclIndex\n>         INSTALL 644 blame.tcl\n>         INSTALL 644 branch.tcl\n>         INSTALL 644 branch_rename.tcl\n>         INSTALL 644 browser.tcl\n>     ...\n\nRight.  I wanted to try and keep the lines very simple, like we\nhave with our CC/GEN/BUILTIN lines.  But I also wanted to be clear\nabout which directories we are dropping stuff into.\n\n> And with V=1, what I see seem very readable.\n\nRight.  My target there was that the V=1 case was *exactly*\nwhat I had before.  Because a simple installation with no pretty\nformatting should be exactly that; a simple installation with no\npretty formatting.\n\n-- \nShawn.\n"},{"id":"43861","messageId":"20070603130438.GB2495@steel.home","threadId":"8406","inReplyTo":"20070603010044.GA4507@spearce.org","subject":"Re: quieter installs","fromName":"Alex Riesen","fromEmail":"raa.lkml@gmail.com","sentAt":"2007-06-03T13:04:38Z","receivedAt":"2007-06-03T13:04:38Z","isPatch":false,"sender":{"key":"raa.lkml@gmail.com","avatar":"https://avatars.githubusercontent.com/u/324101?v=4"},"body":"Shawn O. Pearce, Sun, Jun 03, 2007 03:00:44 +0200:\n> +\tINSTALL_L3 = && echo '   ' 'LINK       ' `basename \"$$dst\"` '->' `basename \"$$src\"` && rm -f \"$$dst\" && ln \"$$src\" \"$$dst\"\n\n\"LINK\" is already taken. By program linking step\n"},{"id":"43862","messageId":"20070603130745.GC2495@steel.home","threadId":"8406","inReplyTo":"20070603010044.GA4507@spearce.org","subject":"[PATCH] Make the installation targets a little less chatty","fromName":"Alex Riesen","fromEmail":"raa.lkml@gmail.com","sentAt":"2007-06-03T13:07:45Z","receivedAt":"2007-06-03T13:07:45Z","isPatch":true,"sender":{"key":"raa.lkml@gmail.com","avatar":"https://avatars.githubusercontent.com/u/324101?v=4"},"body":"by default. V=1 works as usual.\n\nSigned-off-by: Alex Riesen <raa.lkml@gmail.com>\n---\n\nUpdated. BTW, where does \"no $(call) in Makefile\" came from?\nIt could simplify the thing a lot\n\n Makefile           |   44 +++++++++++++++++++++++++++++++++-----------\n templates/Makefile |    5 +++--\n 2 files changed, 36 insertions(+), 13 deletions(-)\n\ndiff --git a/Makefile b/Makefile\nindex cac0a4a..6409b9c 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -660,6 +660,7 @@ ifeq ($(TCLTK_PATH),)\n NO_TCLTK=NoThanks\n endif\n \n+QUIET=\n QUIET_SUBDIR0  = +$(MAKE) -C # space to separate -C and subdir\n QUIET_SUBDIR1  =\n \n@@ -671,6 +672,8 @@ endif\n \n ifneq ($(findstring $(MAKEFLAGS),s),s)\n ifndef V\n+\tQUIET = @\n+\n \tQUIET_CC       = @echo '   ' CC $@;\n \tQUIET_AR       = @echo '   ' AR $@;\n \tQUIET_LINK     = @echo '   ' LINK $@;\n@@ -972,34 +975,53 @@ check: common-cmds.h\n \n ### Installation rules\n \n+ifeq ($(QUIET),@)\n+INST_0   = arg=\n+INST_1   = &&echo  \"    INSTALL $$arg\"&&$(INSTALL) \"$$arg\" # space\n+BSETUP_0 = arg=\n+BSETUP_1 = &&echo  \"    SETUP BUILTIN $$arg\"&& \\\n+\t   rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/'\"$$arg\" && \\\n+\t   ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git$(X)' \\\n+\t   '$(DESTDIR_SQ)$(gitexecdir_SQ)/'\"$$arg\" # space\n+else\n+INST_0   = $(INSTALL) # space to separate \"install\" and its first arg\n+INST_1   =\n+BSETUP_0 = arg=\n+BSETUP_1 = &&rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/'\"$$arg\" && \\\n+\t   ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git$(X)' \\\n+\t   '$(DESTDIR_SQ)$(gitexecdir_SQ)/'\"$$arg\" # space\n+endif\n+\n install: all\n \t$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(bindir_SQ)'\n \t$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(gitexecdir_SQ)'\n-\t$(INSTALL) $(ALL_PROGRAMS) '$(DESTDIR_SQ)$(gitexecdir_SQ)'\n-\t$(INSTALL) git$X '$(DESTDIR_SQ)$(bindir_SQ)'\n-\t$(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' install\n-\t$(MAKE) -C perl prefix='$(prefix_SQ)' install\n+\t$(QUIET)$(foreach p,$(ALL_PROGRAMS),\\\n+\t    $(INST_0)'$p' $(INST_1)'$(DESTDIR_SQ)$(gitexecdir_SQ)' &&):\n+\t$(QUIET)$(INST_0)git$X $(INST_1)'$(DESTDIR_SQ)$(bindir_SQ)'\n+\t$(QUIET)$(foreach p,$(BUILT_INS),$(BSETUP_0)$p $(BSETUP_1)&&):\n+\t$(QUIET_SUBDIR0)templates $(QUIET_SUBDIR1) DESTDIR='$(DESTDIR_SQ)' install\n+\t$(QUIET_SUBDIR0)perl $(QUIET_SUBDIR1) prefix='$(prefix_SQ)' install\n ifndef NO_TCLTK\n-\t$(INSTALL) gitk-wish '$(DESTDIR_SQ)$(bindir_SQ)'/gitk\n-\t$(MAKE) -C git-gui install\n+\t$(QUIET)$(INST_0)gitk-wish $(INST_1)'$(DESTDIR_SQ)$(bindir_SQ)'/gitk\n+\t$(QUIET_SUBDIR0)git-gui $(QUIET_SUBDIR1) install\n endif\n-\tif test 'z$(bindir_SQ)' != 'z$(gitexecdir_SQ)'; \\\n+\t$(QUIET)if test 'z$(bindir_SQ)' != 'z$(gitexecdir_SQ)'; \\\n \tthen \\\n \t\tln -f '$(DESTDIR_SQ)$(bindir_SQ)/git$X' \\\n \t\t\t'$(DESTDIR_SQ)$(gitexecdir_SQ)/git$X' || \\\n \t\tcp '$(DESTDIR_SQ)$(bindir_SQ)/git$X' \\\n \t\t\t'$(DESTDIR_SQ)$(gitexecdir_SQ)/git$X'; \\\n \tfi\n-\t$(foreach p,$(BUILT_INS), rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' && ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git$X' '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' ;)\n ifneq (,$X)\n-\t$(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) git$X)), rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p';)\n+\t@echo cleaning '$(DESTDIR_SQ)$(gitexecdir_SQ)' of old scripts\n+\t$(QUIET)$(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) git$X)), rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p';)\n endif\n \n install-doc:\n-\t$(MAKE) -C Documentation install\n+\t$(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) install\n \n quick-install-doc:\n-\t$(MAKE) -C Documentation quick-install\n+\t$(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) quick-install\n \n \n \ndiff --git a/templates/Makefile b/templates/Makefile\nindex b8352e7..b9a39e2 100644\n--- a/templates/Makefile\n+++ b/templates/Makefile\n@@ -45,6 +45,7 @@ clean:\n \trm -rf blt boilerplates.made\n \n install: all\n-\t$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(template_dir_SQ)'\n-\t(cd blt && $(TAR) cf - .) | \\\n+\t@echo installing templates\n+\t$(QUIET)$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(template_dir_SQ)'\n+\t$(QUIET)(cd blt && $(TAR) cf - .) | \\\n \t(cd '$(DESTDIR_SQ)$(template_dir_SQ)' && $(TAR) xf -)\n-- \n1.5.2.182.ged6b\n"},{"id":"43863","messageId":"20070603130854.GD2495@steel.home","threadId":"8406","inReplyTo":"20070603010044.GA4507@spearce.org","subject":"[PATCH] Make the installation target of git-gui a little less chatty","fromName":"Alex Riesen","fromEmail":"raa.lkml@gmail.com","sentAt":"2007-06-03T13:08:54Z","receivedAt":"2007-06-03T13:08:54Z","isPatch":true,"sender":{"key":"raa.lkml@gmail.com","avatar":"https://avatars.githubusercontent.com/u/324101?v=4"},"body":"\nSigned-off-by: Alex Riesen <raa.lkml@gmail.com>\n---\n\nAlmost the same as Shawn's. Sending just for completeness.\n\n git-gui/Makefile |   34 ++++++++++++++++++++++++++++------\n 1 files changed, 28 insertions(+), 6 deletions(-)\n\ndiff --git a/git-gui/Makefile b/git-gui/Makefile\nindex 3de0de1..dfed1a1 100644\n--- a/git-gui/Makefile\n+++ b/git-gui/Makefile\n@@ -2,6 +2,10 @@ all::\n \n # Define V=1 to have a more verbose compile.\n #\n+QUIET =\n+ifndef V\n+    QUIET = @\n+endif\n \n GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE\n \t@$(SHELL_PATH) ./GIT-VERSION-GEN\n@@ -108,13 +112,31 @@ GIT-GUI-VARS: .FORCE-GIT-GUI-VARS\n \n all:: $(ALL_PROGRAMS) lib/tclIndex\n \n+ifeq ($(QUIET),@)\n+INST_0   = arg=\n+INST_1   = &&echo  \"    INSTALL $$mode $$arg\"&&$(INSTALL) $$mode \"$$arg\" # space\n+BSETUP_0 = arg=\n+BSETUP_1 = &&echo  \"    GIT-GUI BUILTIN $$arg\"&& \\\n+\t   rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/'\"$$arg\" && \\\n+\t   ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git-gui' \\\n+\t   '$(DESTDIR_SQ)$(gitexecdir_SQ)/'\"$$arg\" # space\n+else\n+INST_0   = $(INSTALL) $$mode # space to separate \"install\" and its first arg\n+INST_1   =\n+BSETUP_0 = arg=\n+BSETUP_1 = &&rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/'\"$$arg\" && \\\n+\t   ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git-gui' \\\n+\t   '$(DESTDIR_SQ)$(gitexecdir_SQ)/'\"$$arg\" # space\n+endif\n+\n install: all\n-\t$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(gitexecdir_SQ)'\n-\t$(INSTALL) git-gui '$(DESTDIR_SQ)$(gitexecdir_SQ)'\n-\t$(foreach p,$(GITGUI_BUILT_INS), rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' && ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git-gui' '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' ;)\n-\t$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(libdir_SQ)'\n-\t$(INSTALL) -m644 lib/tclIndex '$(DESTDIR_SQ)$(libdir_SQ)'\n-\t$(foreach p,$(ALL_LIBFILES), $(INSTALL) -m644 $p '$(DESTDIR_SQ)$(libdir_SQ)' ;)\n+\t$(QUIET)$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(gitexecdir_SQ)'\n+\t$(QUIET)mode=;$(INST_0)git-gui $(INST_1)'$(DESTDIR_SQ)$(gitexecdir_SQ)'\n+\t$(QUIET)$(foreach p,$(GITGUI_BUILT_INS),$(BSETUP_0)$p $(BSETUP_1) &&):\n+\t$(QUIET)$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(libdir_SQ)'\n+\t$(QUIET)mode=-m644; \\\n+\t    $(foreach p,lib/tclIndex $(ALL_LIBFILES), \\\n+\t    $(INST_0)$p $(INST_1) '$(DESTDIR_SQ)$(libdir_SQ)' &&):\n \n dist-version:\n \t@mkdir -p $(TARDIR)\n-- \n1.5.2.182.ged6b\n"},{"id":"43865","messageId":"20070603131734.GE2495@steel.home","threadId":"8406","inReplyTo":"20070603060058.GC4507@spearce.org","subject":"Re: quieter installs","fromName":"Alex Riesen","fromEmail":"raa.lkml@gmail.com","sentAt":"2007-06-03T13:17:34Z","receivedAt":"2007-06-03T13:17:34Z","isPatch":false,"sender":{"key":"raa.lkml@gmail.com","avatar":"https://avatars.githubusercontent.com/u/324101?v=4"},"body":"Shawn O. Pearce, Sun, Jun 03, 2007 08:00:58 +0200:\n> Junio C Hamano <junkio@cox.net> wrote:\n> >     make -C git-gui install\n> >     make[1]: Entering directory `/git/git.git/git-gui'\n\nYou want to hide these (unless -w is given). The patch I just sent\ndoes this.\n"},{"id":"43952","messageId":"7vvee4jh24.fsf@assigned-by-dhcp.cox.net","threadId":"8406","inReplyTo":"20070603130745.GC2495@steel.home","subject":"Re: [PATCH] Make the installation targets a little less chatty","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-06-04T07:48:51Z","receivedAt":"2007-06-04T07:48:51Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Alex Riesen <raa.lkml@gmail.com> writes:\n\n> by default. V=1 works as usual.\n>\n> Signed-off-by: Alex Riesen <raa.lkml@gmail.com>\n> ---\n>\n> Updated. BTW, where does \"no $(call) in Makefile\" came from?\n> It could simplify the thing a lot\n\nProbably, but first let's make it \"work right\" while not\nintroducing new stuff.\n\n> diff --git a/Makefile b/Makefile\n> index cac0a4a..6409b9c 100644\n> --- a/Makefile\n> +++ b/Makefile\n> ...\n> @@ -972,34 +975,53 @@ check: common-cmds.h\n>  \n>  ### Installation rules\n>  \n> +ifeq ($(QUIET),@)\n> +INST_0   = arg=\n> +INST_1   = &&echo  \"    INSTALL $$arg\"&&$(INSTALL) \"$$arg\" # space\n> +BSETUP_0 = arg=\n> +BSETUP_1 = &&echo  \"    SETUP BUILTIN $$arg\"&& \\\n> +\t   rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/'\"$$arg\" && \\\n> +\t   ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git$(X)' \\\n> +\t   '$(DESTDIR_SQ)$(gitexecdir_SQ)/'\"$$arg\" # space\n> +else\n> +INST_0   = $(INSTALL) # space to separate \"install\" and its first arg\n> +INST_1   =\n> +BSETUP_0 = arg=\n> +BSETUP_1 = &&rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/'\"$$arg\" && \\\n> +\t   ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git$(X)' \\\n> +\t   '$(DESTDIR_SQ)$(gitexecdir_SQ)/'\"$$arg\" # space\n> +endif\n> +\n>  install: all\n>  \t$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(bindir_SQ)'\n>  \t$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(gitexecdir_SQ)'\n\nI found Shawn's \"DEST = $this_directory\" quite decent.  Forgot\nto port it?\n"},{"id":"43978","messageId":"81b0412b0706040700s667afe5ap14a8343a9313ef60@mail.gmail.com","threadId":"8406","inReplyTo":"7vvee4jh24.fsf@assigned-by-dhcp.cox.net","subject":"Re: [PATCH] Make the installation targets a little less chatty","fromName":"Alex Riesen","fromEmail":"raa.lkml@gmail.com","sentAt":"2007-06-04T14:00:05Z","receivedAt":"2007-06-04T14:00:05Z","isPatch":true,"sender":{"key":"raa.lkml@gmail.com","avatar":"https://avatars.githubusercontent.com/u/324101?v=4"},"body":"On 6/4/07, Junio C Hamano <gitster@pobox.com> wrote:\n> >\n> > Updated. BTW, where does \"no $(call) in Makefile\" came from?\n> > It could simplify the thing a lot\n>\n> Probably, but first let's make it \"work right\" while not\n> introducing new stuff.\n>\n\nJust looked for the reasons, which appear to be there:\ncommit 39c015c556f285106931e0500f301de462b0e46e\nAuthor: Johannes Schindelin <Johannes.Schindelin@gmx.de>\nDate:   Sat Feb 18 12:40:22 2006 +0100\n\n    Fixes for ancient versions of GNU make\n\n    Some versions of GNU make do not understand $(call), and have problems to\n    interpret rules like this:\n\n    some_target: CFLAGS += -Dsome=defs\n\n    [jc: simplified substitution a bit. ]\n\n    Signed-off-by: Johannes E. Schindelin <Johannes.Schindelin@gmx.de>\n    Signed-off-by: Junio C Hamano <junkio@cox.net>\n\nI trust Johannes to have such a make, never seen it myself, though.\n\n> >  install: all\n> >       $(INSTALL) -d -m755 '$(DESTDIR_SQ)$(bindir_SQ)'\n> >       $(INSTALL) -d -m755 '$(DESTDIR_SQ)$(gitexecdir_SQ)'\n>\n> I found Shawn's \"DEST = $this_directory\" quite decent.  Forgot\n> to port it?\n>\n\nRace condition. Hit the send button before reading his patch and\nthe related discussion. Besides, now I find it is already too much\ncruft just to print a directory. Didn't want to make it pretty, just\nneeded some readability on screen. Still think the errors of\n(eventually) failing install would be enough.\n\nUsing $(call) would allow to generalize that, BTW.\n"},{"id":"43992","messageId":"Pine.LNX.4.64.0706041840460.4046@racer.site","threadId":"8406","inReplyTo":"81b0412b0706040700s667afe5ap14a8343a9313ef60@mail.gmail.com","subject":"Re: [PATCH] Make the installation targets a little less chatty","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-06-04T17:40:58Z","receivedAt":"2007-06-04T17:40:58Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Mon, 4 Jun 2007, Alex Riesen wrote:\n\n> On 6/4/07, Junio C Hamano <gitster@pobox.com> wrote:\n> > >\n> > > Updated. BTW, where does \"no $(call) in Makefile\" came from?\n> > > It could simplify the thing a lot\n> > \n> > Probably, but first let's make it \"work right\" while not\n> > introducing new stuff.\n> > \n> \n> Just looked for the reasons, which appear to be there:\n> commit 39c015c556f285106931e0500f301de462b0e46e\n> Author: Johannes Schindelin <Johannes.Schindelin@gmx.de>\n> Date:   Sat Feb 18 12:40:22 2006 +0100\n> \n>    Fixes for ancient versions of GNU make\n> \n>    Some versions of GNU make do not understand $(call), and have problems to\n>    interpret rules like this:\n> \n>    some_target: CFLAGS += -Dsome=defs\n> \n>    [jc: simplified substitution a bit. ]\n> \n>    Signed-off-by: Johannes E. Schindelin <Johannes.Schindelin@gmx.de>\n>    Signed-off-by: Junio C Hamano <junkio@cox.net>\n> \n> I trust Johannes to have such a make, never seen it myself, though.\n\nYes. I no longer have access to that machine, but it was an SGI machine \nrunning IRIX, and I had no root access, and I had a quota.\n\nThat is when I worked towards getting rid of Python (making the use of it \noptional at first), and working with incompatible or sufficiently non-GNU \nprograms like old make, different sed, etc.\n\nAt the time I was really annoyed with the situation, especially since it \nwas _easy_ to stay compatible with them. I have little sympathy with \nmaking things just a little simpler for John R. Developer, and \nsubstantially harder for a lot of users.\n\nSo, are you sure you want to force everybody who wants to compile Git to \nuse a recent GNU make?\n\nCiao,\nDscho\n"},{"id":"44061","messageId":"81b0412b0706050333q41802373w5c3f315ae944f7f0@mail.gmail.com","threadId":"8406","inReplyTo":"Pine.LNX.4.64.0706041840460.4046@racer.site","subject":"Re: [PATCH] Make the installation targets a little less chatty","fromName":"Alex Riesen","fromEmail":"raa.lkml@gmail.com","sentAt":"2007-06-05T10:33:18Z","receivedAt":"2007-06-05T10:33:18Z","isPatch":true,"sender":{"key":"raa.lkml@gmail.com","avatar":"https://avatars.githubusercontent.com/u/324101?v=4"},"body":"On 6/4/07, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:\n>\n> So, are you sure you want to force everybody who wants to compile Git to\n> use a recent GNU make?\n>\n\nDunno. I just didn't want to slap more workarounds onto Git's Makefile.\n"}]}