{"thread":{"id":"32891","subject":"[PATCH 3/3] Documentation/Makefile: fix inherited {html,info,man}dir","startedAt":"2013-02-12T20:17:47Z","lastAt":"2013-02-25T20:35:26Z","messageCount":20,"participants":["John Keeping","Jonathan Nieder","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":3},"messages":[{"id":"209403","messageId":"cover.1360700102.git.john@keeping.me.uk","threadId":"32891","inReplyTo":null,"subject":"[PATCH 0/3] Fix installation paths with \"make install-doc\"","fromName":"John Keeping","fromEmail":"john@keeping.me.uk","sentAt":"2013-02-12T20:17:47Z","receivedAt":"2013-02-12T20:17:47Z","isPatch":true,"sender":{"key":"john@keeping.me.uk","avatar":"https://avatars.githubusercontent.com/u/1702081?v=4"},"body":"When using the top-level install-doc target the html, info and man\ntarget directories are inherited from the top-level Makefile by the\ndocumentation Makefile as relative paths, which is not expected and\nresults in the files being installed in an unexpected location.\n\nThe first two patches are simple style fixes.  The third one fixes the\nissue described above.\n\nJohn Keeping (3):\n  Documentation/Makefile: fix spaces around assignments\n  Documentation/Makefile: move infodir to be with other '*dir's\n  Documentation/Makefile: fix inherited {html,info,man}dir\n\n Documentation/Makefile | 88 ++++++++++++++++++++++++++++++++------------------\n 1 file changed, 56 insertions(+), 32 deletions(-)\n\n-- \n1.8.1.2\n"},{"id":"209404","messageId":"48645e424b932536e8cd877962a29b9cfa8bdebd.1360700102.git.john@keeping.me.uk","threadId":"32891","inReplyTo":"cover.1360700102.git.john@keeping.me.uk","subject":"[PATCH 1/3] Documentation/Makefile: fix spaces around assignments","fromName":"John Keeping","fromEmail":"john@keeping.me.uk","sentAt":"2013-02-12T20:17:48Z","receivedAt":"2013-02-12T20:17:48Z","isPatch":true,"sender":{"key":"john@keeping.me.uk","avatar":"https://avatars.githubusercontent.com/u/1702081?v=4"},"body":"A simple style fix; no functional change.\n\nSigned-off-by: John Keeping <john@keeping.me.uk>\n---\n Documentation/Makefile | 42 +++++++++++++++++++++---------------------\n 1 file changed, 21 insertions(+), 21 deletions(-)\n\ndiff --git a/Documentation/Makefile b/Documentation/Makefile\nindex 62dbd9a..af3d8a4 100644\n--- a/Documentation/Makefile\n+++ b/Documentation/Makefile\n@@ -31,11 +31,11 @@ MAN7_TXT += gittutorial.txt\n MAN7_TXT += gitworkflows.txt\n \n MAN_TXT = $(MAN1_TXT) $(MAN5_TXT) $(MAN7_TXT)\n-MAN_XML=$(patsubst %.txt,%.xml,$(MAN_TXT))\n-MAN_HTML=$(patsubst %.txt,%.html,$(MAN_TXT))\n+MAN_XML = $(patsubst %.txt,%.xml,$(MAN_TXT))\n+MAN_HTML = $(patsubst %.txt,%.html,$(MAN_TXT))\n \n OBSOLETE_HTML = git-remote-helpers.html\n-DOC_HTML=$(MAN_HTML) $(OBSOLETE_HTML)\n+DOC_HTML = $(MAN_HTML) $(OBSOLETE_HTML)\n \n ARTICLES = howto-index\n ARTICLES += everyday\n@@ -74,35 +74,35 @@ SP_ARTICLES += technical/api-index\n \n DOC_HTML += $(patsubst %,%.html,$(ARTICLES) $(SP_ARTICLES))\n \n-DOC_MAN1=$(patsubst %.txt,%.1,$(MAN1_TXT))\n-DOC_MAN5=$(patsubst %.txt,%.5,$(MAN5_TXT))\n-DOC_MAN7=$(patsubst %.txt,%.7,$(MAN7_TXT))\n+DOC_MAN1 = $(patsubst %.txt,%.1,$(MAN1_TXT))\n+DOC_MAN5 = $(patsubst %.txt,%.5,$(MAN5_TXT))\n+DOC_MAN7 = $(patsubst %.txt,%.7,$(MAN7_TXT))\n \n-prefix?=$(HOME)\n-bindir?=$(prefix)/bin\n-htmldir?=$(prefix)/share/doc/git-doc\n-pdfdir?=$(prefix)/share/doc/git-doc\n-mandir?=$(prefix)/share/man\n-man1dir=$(mandir)/man1\n-man5dir=$(mandir)/man5\n-man7dir=$(mandir)/man7\n-# DESTDIR=\n+prefix ?= $(HOME)\n+bindir ?= $(prefix)/bin\n+htmldir ?= $(prefix)/share/doc/git-doc\n+pdfdir ?= $(prefix)/share/doc/git-doc\n+mandir ?= $(prefix)/share/man\n+man1dir = $(mandir)/man1\n+man5dir = $(mandir)/man5\n+man7dir = $(mandir)/man7\n+# DESTDIR =\n \n ASCIIDOC = asciidoc\n ASCIIDOC_EXTRA =\n MANPAGE_XSL = manpage-normal.xsl\n XMLTO = xmlto\n XMLTO_EXTRA =\n-INSTALL?=install\n+INSTALL ?= install\n RM ?= rm -f\n MAN_REPO = ../../git-manpages\n HTML_REPO = ../../git-htmldocs\n \n-infodir?=$(prefix)/share/info\n-MAKEINFO=makeinfo\n-INSTALL_INFO=install-info\n-DOCBOOK2X_TEXI=docbook2x-texi\n-DBLATEX=dblatex\n+infodir ?= $(prefix)/share/info\n+MAKEINFO = makeinfo\n+INSTALL_INFO = install-info\n+DOCBOOK2X_TEXI = docbook2x-texi\n+DBLATEX = dblatex\n ifndef PERL_PATH\n \tPERL_PATH = /usr/bin/perl\n endif\n-- \n1.8.1.2\n"},{"id":"209405","messageId":"dcc4f597f26531b79bd9f097c73f6f186b73c81d.1360700102.git.john@keeping.me.uk","threadId":"32891","inReplyTo":"cover.1360700102.git.john@keeping.me.uk","subject":"[PATCH 2/3] Documentation/Makefile: move infodir to be with other '*dir's","fromName":"John Keeping","fromEmail":"john@keeping.me.uk","sentAt":"2013-02-12T20:17:49Z","receivedAt":"2013-02-12T20:17:49Z","isPatch":true,"sender":{"key":"john@keeping.me.uk","avatar":"https://avatars.githubusercontent.com/u/1702081?v=4"},"body":"Signed-off-by: John Keeping <john@keeping.me.uk>\n---\n Documentation/Makefile | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/Documentation/Makefile b/Documentation/Makefile\nindex af3d8a4..0cfdc36 100644\n--- a/Documentation/Makefile\n+++ b/Documentation/Makefile\n@@ -81,6 +81,7 @@ DOC_MAN7 = $(patsubst %.txt,%.7,$(MAN7_TXT))\n prefix ?= $(HOME)\n bindir ?= $(prefix)/bin\n htmldir ?= $(prefix)/share/doc/git-doc\n+infodir ?= $(prefix)/share/info\n pdfdir ?= $(prefix)/share/doc/git-doc\n mandir ?= $(prefix)/share/man\n man1dir = $(mandir)/man1\n@@ -98,7 +99,6 @@ RM ?= rm -f\n MAN_REPO = ../../git-manpages\n HTML_REPO = ../../git-htmldocs\n \n-infodir ?= $(prefix)/share/info\n MAKEINFO = makeinfo\n INSTALL_INFO = install-info\n DOCBOOK2X_TEXI = docbook2x-texi\n-- \n1.8.1.2\n"},{"id":"209402","messageId":"60caa0f956179b0396614afd83e133198e9b4430.1360700102.git.john@keeping.me.uk","threadId":"32891","inReplyTo":"cover.1360700102.git.john@keeping.me.uk","subject":"[PATCH 3/3] Documentation/Makefile: fix inherited {html,info,man}dir","fromName":"John Keeping","fromEmail":"john@keeping.me.uk","sentAt":"2013-02-12T20:17:50Z","receivedAt":"2013-02-12T20:17:50Z","isPatch":true,"sender":{"key":"john@keeping.me.uk","avatar":"https://avatars.githubusercontent.com/u/1702081?v=4"},"body":"Commit e14421b (Allow INSTALL, bindir, mandir to be set in main Makefile\n- 2006-06-29) changed Documentation/Makefile to inherit the value of\nmandir from the top-level Makefile when invoked as \"make install-doc\" at\nthe top-level.  This was inherited by infodir and htmldir when they were\nadded.\n\nThis was broken by commit 026fa0d (Move computation of absolute paths\nfrom Makefile to runtime (in preparation for RUNTIME_PREFIX) -\n2009-01-18) which changed these variables to have relative paths in the\ntop-level Makefile, causing the documentation to be installed into the\npath without $(prefix) prepended.\n\nFix this by changing the defaults to be paths relative to $(prefix) and\nintroducing new variables {html,info,man}_instdir which contain the full\ninstallation paths.\n\nSigned-off-by: John Keeping <john@keeping.me.uk>\n---\nI'm not sure if this is the best approach - the alternative would be to\nchange the top-level Makefile to use {html,info,man}dir_relative and\nderive the {html,info,man}dir variables from that.\n\nThe top-level Makefile is inconsistent in the approach it takes - bindir\nis derived from bindir_relative but gitexecdir and template_dir have\ngitexec_instdir and template_instdir derived from them.\n\n Documentation/Makefile | 56 +++++++++++++++++++++++++++++++++++---------------\n 1 file changed, 40 insertions(+), 16 deletions(-)\n\ndiff --git a/Documentation/Makefile b/Documentation/Makefile\nindex 0cfdc36..34cd9f2 100644\n--- a/Documentation/Makefile\n+++ b/Documentation/Makefile\n@@ -78,15 +78,21 @@ DOC_MAN1 = $(patsubst %.txt,%.1,$(MAN1_TXT))\n DOC_MAN5 = $(patsubst %.txt,%.5,$(MAN5_TXT))\n DOC_MAN7 = $(patsubst %.txt,%.7,$(MAN7_TXT))\n \n+# The following variables can be relative paths due to the way they can be\n+# inherited from the top-level Makefile:\n+#   htmldir\n+#   infodir\n+#   mandir\n+# Note that pdfdir is an exception to this since it is not used by git-help.\n prefix ?= $(HOME)\n bindir ?= $(prefix)/bin\n-htmldir ?= $(prefix)/share/doc/git-doc\n-infodir ?= $(prefix)/share/info\n pdfdir ?= $(prefix)/share/doc/git-doc\n-mandir ?= $(prefix)/share/man\n-man1dir = $(mandir)/man1\n-man5dir = $(mandir)/man5\n-man7dir = $(mandir)/man7\n+htmldir ?= share/doc/git-doc\n+infodir ?= share/info\n+mandir ?= share/man\n+man1dir = $(man_instdir)/man1\n+man5dir = $(man_instdir)/man5\n+man7dir = $(man_instdir)/man7\n # DESTDIR =\n \n ASCIIDOC = asciidoc\n@@ -110,6 +116,24 @@ endif\n -include ../config.mak.autogen\n -include ../config.mak\n \n+ifneq ($(filter /%,$(firstword $(htmldir))),)\n+html_instdir = $(htmldir)\n+else\n+html_instdir = $(prefix)/$(htmldir)\n+endif\n+\n+ifneq ($(filter /%,$(firstword $(infodir))),)\n+info_instdir = $(infodir)\n+else\n+info_instdir = $(prefix)/$(infodir)\n+endif\n+\n+ifneq ($(filter /%,$(firstword $(mandir))),)\n+man_instdir = $(mandir)\n+else\n+man_instdir = $(prefix)/$(mandir)\n+endif\n+\n #\n # For docbook-xsl ...\n #\t-1.68.1,\tno extra settings are needed?\n@@ -144,7 +168,7 @@ endif\n # Distros may want to use MAN_BASE_URL=file:///path/to/git/docs/\n # or similar.\n ifndef MAN_BASE_URL\n-MAN_BASE_URL = file://$(htmldir)/\n+MAN_BASE_URL = file://$(html_instdir)/\n endif\n XMLTO_EXTRA += -m manpage-base-url.xsl\n \n@@ -220,13 +244,13 @@ install-man: man\n \t$(INSTALL) -m 644 $(DOC_MAN7) $(DESTDIR)$(man7dir)\n \n install-info: info\n-\t$(INSTALL) -d -m 755 $(DESTDIR)$(infodir)\n-\t$(INSTALL) -m 644 git.info gitman.info $(DESTDIR)$(infodir)\n-\tif test -r $(DESTDIR)$(infodir)/dir; then \\\n-\t  $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) git.info ;\\\n-\t  $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) gitman.info ;\\\n+\t$(INSTALL) -d -m 755 $(DESTDIR)$(info_instdir)\n+\t$(INSTALL) -m 644 git.info gitman.info $(DESTDIR)$(info_instdir)\n+\tif test -r $(DESTDIR)$(info_instdir)/dir; then \\\n+\t  $(INSTALL_INFO) --info-dir=$(DESTDIR)$(info_instdir) git.info ;\\\n+\t  $(INSTALL_INFO) --info-dir=$(DESTDIR)$(info_instdir) gitman.info ;\\\n \telse \\\n-\t  echo \"No directory found in $(DESTDIR)$(infodir)\" >&2 ; \\\n+\t  echo \"No directory found in $(DESTDIR)$(info_instdir)\" >&2 ; \\\n \tfi\n \n install-pdf: pdf\n@@ -234,7 +258,7 @@ install-pdf: pdf\n \t$(INSTALL) -m 644 user-manual.pdf $(DESTDIR)$(pdfdir)\n \n install-html: html\n-\t'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(DESTDIR)$(htmldir)\n+\t'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(DESTDIR)$(html_instdir)\n \n ../GIT-VERSION-FILE: FORCE\n \t$(QUIET_SUBDIR0)../ $(QUIET_SUBDIR1) GIT-VERSION-FILE\n@@ -402,14 +426,14 @@ require-manrepo::\n \tthen echo \"git-manpages repository must exist at $(MAN_REPO)\"; exit 1; fi\n \n quick-install-man: require-manrepo\n-\t'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(MAN_REPO) $(DESTDIR)$(mandir)\n+\t'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(MAN_REPO) $(DESTDIR)$(man_instdir)\n \n require-htmlrepo::\n \t@if test ! -d $(HTML_REPO); \\\n \tthen echo \"git-htmldocs repository must exist at $(HTML_REPO)\"; exit 1; fi\n \n quick-install-html: require-htmlrepo\n-\t'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(HTML_REPO) $(DESTDIR)$(htmldir)\n+\t'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(HTML_REPO) $(DESTDIR)$(html_instdir)\n \n print-man1:\n \t@for i in $(MAN1_TXT); do echo $$i; done\n-- \n1.8.1.2\n"},{"id":"209411","messageId":"20130212210029.GD12240@google.com","threadId":"32891","inReplyTo":"48645e424b932536e8cd877962a29b9cfa8bdebd.1360700102.git.john@keeping.me.uk","subject":"Re: [PATCH 1/3] Documentation/Makefile: fix spaces around assignments","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2013-02-12T21:00:29Z","receivedAt":"2013-02-12T21:00:29Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Hi,\n\nJohn Keeping wrote:\n\n> [Subject: [PATCH 1/3] Documentation/Makefile: fix spaces around assignments]\n\nIt's not so much \"fix spaces\" as \"use consistent spacing\", no?\n\nAside from that nit, looks like a sensible no-op to me, so\nReviewed-by: Jonathan Nieder <jrnieder@gmail.com>\n\nThanks.\n"},{"id":"209412","messageId":"20130212210138.GE12240@google.com","threadId":"32891","inReplyTo":"dcc4f597f26531b79bd9f097c73f6f186b73c81d.1360700102.git.john@keeping.me.uk","subject":"Re: [PATCH 2/3] Documentation/Makefile: move infodir to be with other '*dir's","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2013-02-12T21:01:38Z","receivedAt":"2013-02-12T21:01:38Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"John Keeping wrote:\n\n> Signed-off-by: John Keeping <john@keeping.me.uk>\n[...]\n> --- a/Documentation/Makefile\n> +++ b/Documentation/Makefile\n> @@ -81,6 +81,7 @@ DOC_MAN7 = $(patsubst %.txt,%.7,$(MAN7_TXT))\n>  prefix ?= $(HOME)\n>  bindir ?= $(prefix)/bin\n>  htmldir ?= $(prefix)/share/doc/git-doc\n> +infodir ?= $(prefix)/share/info\n>  pdfdir ?= $(prefix)/share/doc/git-doc\n>  mandir ?= $(prefix)/share/man\n>  man1dir = $(mandir)/man1\n> @@ -98,7 +99,6 @@ RM ?= rm -f\n>  MAN_REPO = ../../git-manpages\n>  HTML_REPO = ../../git-htmldocs\n>  \n> -infodir ?= $(prefix)/share/info\n>  MAKEINFO = makeinfo\n\nIs this another stylefix or is there a functional reason for this\nchange?\n"},{"id":"209418","messageId":"20130212211804.GI2270@serenity.lan","threadId":"32891","inReplyTo":"20130212210138.GE12240@google.com","subject":"Re: [PATCH 2/3] Documentation/Makefile: move infodir to be with other '*dir's","fromName":"John Keeping","fromEmail":"john@keeping.me.uk","sentAt":"2013-02-12T21:18:05Z","receivedAt":"2013-02-12T21:18:05Z","isPatch":true,"sender":{"key":"john@keeping.me.uk","avatar":"https://avatars.githubusercontent.com/u/1702081?v=4"},"body":"On Tue, Feb 12, 2013 at 01:01:38PM -0800, Jonathan Nieder wrote:\n> John Keeping wrote:\n> \n> > Signed-off-by: John Keeping <john@keeping.me.uk>\n> [...]\n> > --- a/Documentation/Makefile\n> > +++ b/Documentation/Makefile\n> > @@ -81,6 +81,7 @@ DOC_MAN7 = $(patsubst %.txt,%.7,$(MAN7_TXT))\n> >  prefix ?= $(HOME)\n> >  bindir ?= $(prefix)/bin\n> >  htmldir ?= $(prefix)/share/doc/git-doc\n> > +infodir ?= $(prefix)/share/info\n> >  pdfdir ?= $(prefix)/share/doc/git-doc\n> >  mandir ?= $(prefix)/share/man\n> >  man1dir = $(mandir)/man1\n> > @@ -98,7 +99,6 @@ RM ?= rm -f\n> >  MAN_REPO = ../../git-manpages\n> >  HTML_REPO = ../../git-htmldocs\n> >  \n> > -infodir ?= $(prefix)/share/info\n> >  MAKEINFO = makeinfo\n> \n> Is this another stylefix or is there a functional reason for this\n> change?\n\nAnother stylefix - this arrangement seems more logical to me and makes\nthe comment in the next patch simpler.\n"},{"id":"209422","messageId":"20130212222508.GG12240@google.com","threadId":"32891","inReplyTo":"cover.1360700102.git.john@keeping.me.uk","subject":"Re: [PATCH 0/3] Fix installation paths with \"make install-doc\"","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2013-02-12T22:25:08Z","receivedAt":"2013-02-12T22:25:08Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"John Keeping wrote:\n\n>   Documentation/Makefile: fix inherited {html,info,man}dir\n\nThis doesn't seem to have hit the list.\n\nThanks,\nJonathan\n"},{"id":"209424","messageId":"20130212223657.GJ2270@serenity.lan","threadId":"32891","inReplyTo":"20130212222508.GG12240@google.com","subject":"Re: [PATCH 0/3] Fix installation paths with \"make install-doc\"","fromName":"John Keeping","fromEmail":"john@keeping.me.uk","sentAt":"2013-02-12T22:36:57Z","receivedAt":"2013-02-12T22:36:57Z","isPatch":true,"sender":{"key":"john@keeping.me.uk","avatar":"https://avatars.githubusercontent.com/u/1702081?v=4"},"body":"On Tue, Feb 12, 2013 at 02:25:08PM -0800, Jonathan Nieder wrote:\n> John Keeping wrote:\n> \n> >   Documentation/Makefile: fix inherited {html,info,man}dir\n> \n> This doesn't seem to have hit the list.\n\nHmm... it made it to gmane:\n\nhttp://article.gmane.org/gmane.comp.version-control.git/216188\n"},{"id":"209425","messageId":"20130212223954.GH12240@google.com","threadId":"32891","inReplyTo":"20130212223657.GJ2270@serenity.lan","subject":"Re: [PATCH 0/3] Fix installation paths with \"make install-doc\"","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2013-02-12T22:39:54Z","receivedAt":"2013-02-12T22:39:54Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"John Keeping wrote:\n> On Tue, Feb 12, 2013 at 02:25:08PM -0800, Jonathan Nieder wrote:\n>> John Keeping wrote:\n\n>>>   Documentation/Makefile: fix inherited {html,info,man}dir\n>>\n>> This doesn't seem to have hit the list.\n>\n> Hmm... it made it to gmane:\n>\n> http://article.gmane.org/gmane.comp.version-control.git/216188\n\nSo it did.  Sorry for the noise --- I'll grab it from there.\n\nSincerely,\nJonathan\n"},{"id":"209426","messageId":"7vmwv9ducx.fsf@alter.siamese.dyndns.org","threadId":"32891","inReplyTo":"20130212222508.GG12240@google.com","subject":"Re: [PATCH 0/3] Fix installation paths with \"make install-doc\"","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-02-12T22:45:34Z","receivedAt":"2013-02-12T22:45:34Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jonathan Nieder <jrnieder@gmail.com> writes:\n\n> John Keeping wrote:\n>\n>>   Documentation/Makefile: fix inherited {html,info,man}dir\n>\n> This doesn't seem to have hit the list.\n\nMore importantly, \n\n>> When using the top-level install-doc target the html, info and man\n>> target directories are inherited from the top-level Makefile by the\n>> documentation Makefile as relative paths, which is not expected and\n>> results in the files being installed in an unexpected location.\n\nI am not sure what problem it is trying to address.  During every\ncycle \"make doc && make install-man install-html\" is run for all\nintegration branches and it didn't cause any problems.\n\nA wild guess.  John, are you using config.mak.autogen?\n\nI _think_ exporting mandir/html/infodir from the top-level Makefile\nis wrong to begin with.  We should drop the \"export mandir\" from\nthere.\n\nGiving them unusual meaning (e.g. \"mandir = share/man\") is already\nbad and that needs to be fixed by limiting this \"oh, on some\nplatforms we compile-in GIT_MAN_PATH as a relative path to an\nunspecified place\" insanity only to where -DGIT_MAN_PATH=<path> is\ndefined.  The path used there does not help the building and\ninstallation of the documentation at all, so the variable used for\nthe purpose of giving that <path> should not be named the same way\nas the variable used on Documentation/Makefile to name the real path\nin the first place.\n\nPerhaps rename these to runtime_{man,html,info}dir or something and\nmake sure {man,html,info}dir are defined as the real paths whose\ndefault values begin with $(prefix)?\n"},{"id":"209429","messageId":"7vip5xdtt6.fsf@alter.siamese.dyndns.org","threadId":"32891","inReplyTo":"7vmwv9ducx.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH 0/3] Fix installation paths with \"make install-doc\"","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-02-12T22:57:25Z","receivedAt":"2013-02-12T22:57:25Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> I _think_ exporting mandir/html/infodir from the top-level Makefile\n> is wrong to begin with.  We should drop the \"export mandir\" from\n> there.\n\nAh, it is this thing, isn't it?\n\ncommit d8cf908cb6012cd4dc3d1089a849daf646150c2e\nAuthor: Junio C Hamano <gitster@pobox.com>\nDate:   Sat Feb 2 17:58:49 2013 -0800\n\n    config.mak.in: remove unused definitions\n    \n    When 5566771 (autoconf: Use autoconf to write installation\n    directories to config.mak.autogen, 2006-07-03) introduced support\n    for autoconf generated config.mak file, it added an \"export\" for a\n    few common makefile variables, in addition to definitions of srcdir\n    and VPATH.\n    \n    The \"export\" logically does not belong there.  The make variables\n    like mandir, prefix, etc, should be exported to submakes for people\n    who use config.mak and people who use config.mak.autogen the same\n    way; if we want to get these exported, that should be in the main\n    Makefile.\n    \n    We do use mandir and htmldir in Documentation/Makefile, so let's\n    add export for them in the main Makefile instead.\n    \n    We may eventually want to support VPATH, and srcdir may turn out to\n    be useful for that purpose, but right now nobody uses it, so it is\n    useless to define them in this file.\n    \n    Signed-off-by: Junio C Hamano <gitster@pobox.com>\n\nconfig.mak.in shouldn't have exported mandir in the first place, and\nthe commit made it worse by moving that broken export to the main\nMakefile, and also added an export to htmldir as well, which was\ntotally wrong.\n\nLet me revert that bit first.\n\nI still think making \"mandir\" to have the real path in both the\ntop-level Makefile and Documentation/Makefile and renaming the\nvariable that is used to form the -DGIT_MAN_PATH=<path> to\noptionally compile in a path relative to an unspecified location\nthat is discovered at runtime to something else is the sane thing to\ndo, but that is a separate issue, I think.\n"},{"id":"209430","messageId":"20130212230034.GA22779@river","threadId":"32891","inReplyTo":"7vmwv9ducx.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH 0/3] Fix installation paths with \"make install-doc\"","fromName":"John Keeping","fromEmail":"john@keeping.me.uk","sentAt":"2013-02-12T23:00:34Z","receivedAt":"2013-02-12T23:00:34Z","isPatch":true,"sender":{"key":"john@keeping.me.uk","avatar":"https://avatars.githubusercontent.com/u/1702081?v=4"},"body":"On Tue, Feb 12, 2013 at 02:45:34PM -0800, Junio C Hamano wrote:\n> Jonathan Nieder <jrnieder@gmail.com> writes:\n> \n> > John Keeping wrote:\n> >\n> >>   Documentation/Makefile: fix inherited {html,info,man}dir\n> >\n> > This doesn't seem to have hit the list.\n> \n> More importantly, \n> \n> >> When using the top-level install-doc target the html, info and man\n> >> target directories are inherited from the top-level Makefile by the\n> >> documentation Makefile as relative paths, which is not expected and\n> >> results in the files being installed in an unexpected location.\n> \n> I am not sure what problem it is trying to address.  During every\n> cycle \"make doc && make install-man install-html\" is run for all\n> integration branches and it didn't cause any problems.\n> \n> A wild guess.  John, are you using config.mak.autogen?\n\nClose - plain config.mak.\n\nI set $prefix there and ran \"make install-doc\".  That installed the man\npages in Documentation/share/man/ in my Git source directory.\n\n> I _think_ exporting mandir/html/infodir from the top-level Makefile\n> is wrong to begin with.  We should drop the \"export mandir\" from\n> there.\n> \n> Giving them unusual meaning (e.g. \"mandir = share/man\") is already\n> bad and that needs to be fixed by limiting this \"oh, on some\n> platforms we compile-in GIT_MAN_PATH as a relative path to an\n> unspecified place\" insanity only to where -DGIT_MAN_PATH=<path> is\n> defined.  The path used there does not help the building and\n> installation of the documentation at all, so the variable used for\n> the purpose of giving that <path> should not be named the same way\n> as the variable used on Documentation/Makefile to name the real path\n> in the first place.\n> \n> Perhaps rename these to runtime_{man,html,info}dir or something and\n> make sure {man,html,info}dir are defined as the real paths whose\n> default values begin with $(prefix)?\n\nWould it be sensible to define the values for these variables (with\nabsolute paths) in a separate top-level file like config.mak.uname\n(defaults.mak maybe?) and include that in both Documentation/Makefile\nand Makefile, then calculate the relative path from $(prefix) to\n$({man,html,info}dir) for the compiled-in values.\n\n\nJohn\n"},{"id":"209431","messageId":"20130212230600.GB22779@river","threadId":"32891","inReplyTo":"7vip5xdtt6.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH 0/3] Fix installation paths with \"make install-doc\"","fromName":"John Keeping","fromEmail":"john@keeping.me.uk","sentAt":"2013-02-12T23:06:00Z","receivedAt":"2013-02-12T23:06:00Z","isPatch":true,"sender":{"key":"john@keeping.me.uk","avatar":"https://avatars.githubusercontent.com/u/1702081?v=4"},"body":"On Tue, Feb 12, 2013 at 02:57:25PM -0800, Junio C Hamano wrote:\n> Junio C Hamano <gitster@pobox.com> writes:\n> \n> > I _think_ exporting mandir/html/infodir from the top-level Makefile\n> > is wrong to begin with.  We should drop the \"export mandir\" from\n> > there.\n> \n> Ah, it is this thing, isn't it?\n> \n> commit d8cf908cb6012cd4dc3d1089a849daf646150c2e\n> Author: Junio C Hamano <gitster@pobox.com>\n> Date:   Sat Feb 2 17:58:49 2013 -0800\n> \n>     config.mak.in: remove unused definitions\n>     \n>     When 5566771 (autoconf: Use autoconf to write installation\n>     directories to config.mak.autogen, 2006-07-03) introduced support\n>     for autoconf generated config.mak file, it added an \"export\" for a\n>     few common makefile variables, in addition to definitions of srcdir\n>     and VPATH.\n>     \n>     The \"export\" logically does not belong there.  The make variables\n>     like mandir, prefix, etc, should be exported to submakes for people\n>     who use config.mak and people who use config.mak.autogen the same\n>     way; if we want to get these exported, that should be in the main\n>     Makefile.\n>     \n>     We do use mandir and htmldir in Documentation/Makefile, so let's\n>     add export for them in the main Makefile instead.\n>     \n>     We may eventually want to support VPATH, and srcdir may turn out to\n>     be useful for that purpose, but right now nobody uses it, so it is\n>     useless to define them in this file.\n>     \n>     Signed-off-by: Junio C Hamano <gitster@pobox.com>\n\nLooks like it - I tried this for the first time today (with pu) so I\ndidn't realise it was a recent change, and I didn't think to blame the\nexport line.\n\n\nJohn\n"},{"id":"209432","messageId":"7vehgldt8e.fsf_-_@alter.siamese.dyndns.org","threadId":"32891","inReplyTo":"7vip5xdtt6.fsf@alter.siamese.dyndns.org","subject":"[PATCH] Makefile: do not export mandir/htmldir/infodir","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-02-12T23:09:53Z","receivedAt":"2013-02-12T23:09:53Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"These are defined in the main Makefile to be funny values that are\noptionally relative to an unspecified location that is determined at\nruntime.  They are only suitable for hardcoding in the binary via\nthe -DGIT_{MAN,HTML,INFO}_PATH=<value> C preprocessor options, and\nare not real paths, contrary to what any sane person, and more\nimportantly, the Makefile in the documentation directory, would\nexpect.\n\nA longer term fix is to introduce runtime_{man,html,info}dir variables\nto hold these funny values, and make {man,html,info}dir variables\nto have real paths whose default values begin with $(prefix), but\nas a first step, stop exporting them from the top-level Makefile.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n Makefile | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/Makefile b/Makefile\nindex 1dae2c5..26b697d 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -359,7 +359,7 @@ lib = lib\n # DESTDIR=\n pathsep = :\n \n-export prefix bindir sharedir mandir htmldir sysconfdir gitwebdir localedir\n+export prefix bindir sharedir sysconfdir gitwebdir localedir\n \n CC = cc\n AR = ar\n-- \n1.8.1.3.675.g524d3b9\n"},{"id":"209434","messageId":"7va9r9dsxs.fsf@alter.siamese.dyndns.org","threadId":"32891","inReplyTo":"20130212230600.GB22779@river","subject":"Re: [PATCH 0/3] Fix installation paths with \"make install-doc\"","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-02-12T23:16:15Z","receivedAt":"2013-02-12T23:16:15Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"John Keeping <john@keeping.me.uk> writes:\n\n> Looks like it - I tried this for the first time today (with pu) so I\n> didn't realise it was a recent change, and I didn't think to blame the\n> export line.\n\nUnfortunately that bogus change is already in 'next', but luckily we\ncaught it before it graduated to 'master' ;-)\n\nI'll queue the regression fix patch (already sent separately); the\npatch should bring everything in Makefile back to the same state as\nin 'master', so in that sense it fixes the regression, but it does\nnot address the real cause of the confusion, solution to which is\nhinted in the log message of the patch.\n\nThanks for catching this.\n"},{"id":"209435","messageId":"20130212231651.GI12240@google.com","threadId":"32891","inReplyTo":"7vehgldt8e.fsf_-_@alter.siamese.dyndns.org","subject":"Re: [PATCH] Makefile: do not export mandir/htmldir/infodir","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2013-02-12T23:16:51Z","receivedAt":"2013-02-12T23:16:51Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Junio C Hamano wrote:\n\n> These are defined in the main Makefile to be funny values that are\n> optionally relative to an unspecified location that is determined at\n> runtime.\n[...]\n> A longer term fix is to introduce runtime_{man,html,info}dir variables\n> to hold these funny values, and make {man,html,info}dir variables\n> to have real paths whose default values begin with $(prefix), but\n> as a first step, stop exporting them from the top-level Makefile.\n\nMakes sense.\n\nReported-by: John Keeping <john@keeping.me.uk>\nReviewed-by: Jonathan Nieder <jrnieder@gmail.com>\n"},{"id":"209436","messageId":"20130212232041.GA23861@river","threadId":"32891","inReplyTo":"20130212231651.GI12240@google.com","subject":"Re: [PATCH] Makefile: do not export mandir/htmldir/infodir","fromName":"John Keeping","fromEmail":"john@keeping.me.uk","sentAt":"2013-02-12T23:20:41Z","receivedAt":"2013-02-12T23:20:41Z","isPatch":true,"sender":{"key":"john@keeping.me.uk","avatar":"https://avatars.githubusercontent.com/u/1702081?v=4"},"body":"On Tue, Feb 12, 2013 at 03:16:51PM -0800, Jonathan Nieder wrote:\n> Junio C Hamano wrote:\n> \n> > These are defined in the main Makefile to be funny values that are\n> > optionally relative to an unspecified location that is determined at\n> > runtime.\n> [...]\n> > A longer term fix is to introduce runtime_{man,html,info}dir variables\n> > to hold these funny values, and make {man,html,info}dir variables\n> > to have real paths whose default values begin with $(prefix), but\n> > as a first step, stop exporting them from the top-level Makefile.\n> \n> Makes sense.\n> \n> Reported-by: John Keeping <john@keeping.me.uk>\n> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>\n\nFixes my original problem, so FWIW:\n\nTested-by: John Keeping <john@keeping.me.uk>\n"},{"id":"210191","messageId":"20130224195500.GA27578@serenity.lan","threadId":"32891","inReplyTo":"7vehgldt8e.fsf_-_@alter.siamese.dyndns.org","subject":"[PATCH] Makefile: make mandir, htmldir and infodir absolute","fromName":"John Keeping","fromEmail":"john@keeping.me.uk","sentAt":"2013-02-24T19:55:01Z","receivedAt":"2013-02-24T19:55:01Z","isPatch":true,"sender":{"key":"john@keeping.me.uk","avatar":"https://avatars.githubusercontent.com/u/1702081?v=4"},"body":"This matches the use of the variables with the same names in autotools,\nreducing the potential for user surprise.\n\nUsing relative paths in these variables also causes issues if they are\nexported from the Makefile, as discussed in commit c09d62f (Makefile: do\nnot export mandir/htmldir/infodir, 2013-02-12).\n\nSuggested-by: Junio C Hamano <gitster@pobox.com>\nSigned-off-by: John Keeping <john@keeping.me.uk>\n---\nOn Tue, Feb 12, 2013 at 03:09:53PM -0800, Junio C Hamano wrote:\n> A longer term fix is to introduce runtime_{man,html,info}dir variables\n> to hold these funny values, and make {man,html,info}dir variables\n> to have real paths whose default values begin with $(prefix), but\n> as a first step, stop exporting them from the top-level Makefile.\n\nHere's an attempt at doing that.\n\nIf this is sensible, should bindir_relative be calculated in the same\nway?\n\n Makefile | 36 +++++++++++++++++++++---------------\n 1 file changed, 21 insertions(+), 15 deletions(-)\n\ndiff --git a/Makefile b/Makefile\nindex 7c75e3b..087eec4 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -360,33 +360,39 @@ STRIP ?= strip\n # Among the variables below, these:\n #   gitexecdir\n #   template_dir\n-#   mandir\n-#   infodir\n-#   htmldir\n #   sysconfdir\n # can be specified as a relative path some/where/else;\n # this is interpreted as relative to $(prefix) and \"git\" at\n # runtime figures out where they are based on the path to the executable.\n+# Additionally, the following will be treated as relative by \"git\" if they\n+# begin with \"$(prefix)/\":\n+#   mandir\n+#   infodir\n+#   htmldir\n # This can help installing the suite in a relocatable way.\n \n prefix = $(HOME)\n bindir_relative = bin\n bindir = $(prefix)/$(bindir_relative)\n-mandir = share/man\n-infodir = share/info\n+mandir = $(prefix)/share/man\n+infodir = $(prefix)/share/info\n gitexecdir = libexec/git-core\n mergetoolsdir = $(gitexecdir)/mergetools\n sharedir = $(prefix)/share\n gitwebdir = $(sharedir)/gitweb\n localedir = $(sharedir)/locale\n template_dir = share/git-core/templates\n-htmldir = share/doc/git-doc\n+htmldir = $(prefix)/share/doc/git-doc\n ETC_GITCONFIG = $(sysconfdir)/gitconfig\n ETC_GITATTRIBUTES = $(sysconfdir)/gitattributes\n lib = lib\n # DESTDIR =\n pathsep = :\n \n+mandir_relative = $(patsubst $(prefix)/%,%,$(mandir))\n+infodir_relative = $(patsubst $(prefix)/%,%,$(infodir))\n+htmldir_relative = $(patsubst $(prefix)/%,%,$(htmldir))\n+\n export prefix bindir sharedir sysconfdir gitwebdir localedir\n \n CC = cc\n@@ -1548,12 +1554,12 @@ ETC_GITATTRIBUTES_SQ = $(subst ','\\'',$(ETC_GITATTRIBUTES))\n DESTDIR_SQ = $(subst ','\\'',$(DESTDIR))\n bindir_SQ = $(subst ','\\'',$(bindir))\n bindir_relative_SQ = $(subst ','\\'',$(bindir_relative))\n-mandir_SQ = $(subst ','\\'',$(mandir))\n-infodir_SQ = $(subst ','\\'',$(infodir))\n+mandir_relative_SQ = $(subst ','\\'',$(mandir_relative))\n+infodir_relative_SQ = $(subst ','\\'',$(infodir_relative))\n localedir_SQ = $(subst ','\\'',$(localedir))\n gitexecdir_SQ = $(subst ','\\'',$(gitexecdir))\n template_dir_SQ = $(subst ','\\'',$(template_dir))\n-htmldir_SQ = $(subst ','\\'',$(htmldir))\n+htmldir_relative_SQ = $(subst ','\\'',$(htmldir_relative))\n prefix_SQ = $(subst ','\\'',$(prefix))\n gitwebdir_SQ = $(subst ','\\'',$(gitwebdir))\n \n@@ -1685,9 +1691,9 @@ strip: $(PROGRAMS) git$X\n \n git.sp git.s git.o: GIT-PREFIX\n git.sp git.s git.o: EXTRA_CPPFLAGS = \\\n-\t'-DGIT_HTML_PATH=\"$(htmldir_SQ)\"' \\\n-\t'-DGIT_MAN_PATH=\"$(mandir_SQ)\"' \\\n-\t'-DGIT_INFO_PATH=\"$(infodir_SQ)\"'\n+\t'-DGIT_HTML_PATH=\"$(htmldir_relative_SQ)\"' \\\n+\t'-DGIT_MAN_PATH=\"$(mandir_relative_SQ)\"' \\\n+\t'-DGIT_INFO_PATH=\"$(infodir_relative_SQ)\"'\n \n git$X: git.o GIT-LDFLAGS $(BUILTIN_OBJS) $(GITLIBS)\n \t$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ git.o \\\n@@ -1697,9 +1703,9 @@ help.sp help.s help.o: common-cmds.h\n \n builtin/help.sp builtin/help.s builtin/help.o: common-cmds.h GIT-PREFIX\n builtin/help.sp builtin/help.s builtin/help.o: EXTRA_CPPFLAGS = \\\n-\t'-DGIT_HTML_PATH=\"$(htmldir_SQ)\"' \\\n-\t'-DGIT_MAN_PATH=\"$(mandir_SQ)\"' \\\n-\t'-DGIT_INFO_PATH=\"$(infodir_SQ)\"'\n+\t'-DGIT_HTML_PATH=\"$(htmldir_relative_SQ)\"' \\\n+\t'-DGIT_MAN_PATH=\"$(mandir_relative_SQ)\"' \\\n+\t'-DGIT_INFO_PATH=\"$(infodir_relative_SQ)\"'\n \n version.sp version.s version.o: GIT-VERSION-FILE GIT-USER-AGENT\n version.sp version.s version.o: EXTRA_CPPFLAGS = \\\n-- \n1.8.2.rc0.248.g2dab8ff\n"},{"id":"210292","messageId":"7vppzow2r5.fsf@alter.siamese.dyndns.org","threadId":"32891","inReplyTo":"20130224195500.GA27578@serenity.lan","subject":"Re: [PATCH] Makefile: make mandir, htmldir and infodir absolute","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-02-25T20:35:26Z","receivedAt":"2013-02-25T20:35:26Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"John Keeping <john@keeping.me.uk> writes:\n\n> This matches the use of the variables with the same names in autotools,\n> reducing the potential for user surprise.\n>\n> Using relative paths in these variables also causes issues if they are\n> exported from the Makefile, as discussed in commit c09d62f (Makefile: do\n> not export mandir/htmldir/infodir, 2013-02-12).\n>\n> Suggested-by: Junio C Hamano <gitster@pobox.com>\n> Signed-off-by: John Keeping <john@keeping.me.uk>\n> ---\n> On Tue, Feb 12, 2013 at 03:09:53PM -0800, Junio C Hamano wrote:\n>> A longer term fix is to introduce runtime_{man,html,info}dir variables\n>> to hold these funny values, and make {man,html,info}dir variables\n>> to have real paths whose default values begin with $(prefix), but\n>> as a first step, stop exporting them from the top-level Makefile.\n>\n> Here's an attempt at doing that.\n>\n> If this is sensible, should bindir_relative be calculated in the same\n> way?\n\nThanks for taking the cue from existing bindir_relative, which I\noverlooked.  Calling these *dir_relative, not runtime_*dir as I\nhinted, makes a lot more sense and overall makes things consistent.\n\nAs most people would want to say bindir=/usr/local/bin and not\nbindir_relative=bin from the command line (and I suspect that people\ncoming from ./configure would not even have a way to specify the\nlatter), I think your suggestion to make bindir the primary one and\nderive bindir_relative from it makes sense.\n\nWhat do Windows folks think?\n\n[patch unsnipped for others' reference]\n\n>  Makefile | 36 +++++++++++++++++++++---------------\n>  1 file changed, 21 insertions(+), 15 deletions(-)\n>\n> diff --git a/Makefile b/Makefile\n> index 7c75e3b..087eec4 100644\n> --- a/Makefile\n> +++ b/Makefile\n> @@ -360,33 +360,39 @@ STRIP ?= strip\n>  # Among the variables below, these:\n>  #   gitexecdir\n>  #   template_dir\n> -#   mandir\n> -#   infodir\n> -#   htmldir\n>  #   sysconfdir\n>  # can be specified as a relative path some/where/else;\n>  # this is interpreted as relative to $(prefix) and \"git\" at\n>  # runtime figures out where they are based on the path to the executable.\n> +# Additionally, the following will be treated as relative by \"git\" if they\n> +# begin with \"$(prefix)/\":\n> +#   mandir\n> +#   infodir\n> +#   htmldir\n>  # This can help installing the suite in a relocatable way.\n>  \n>  prefix = $(HOME)\n>  bindir_relative = bin\n>  bindir = $(prefix)/$(bindir_relative)\n> -mandir = share/man\n> -infodir = share/info\n> +mandir = $(prefix)/share/man\n> +infodir = $(prefix)/share/info\n>  gitexecdir = libexec/git-core\n>  mergetoolsdir = $(gitexecdir)/mergetools\n>  sharedir = $(prefix)/share\n>  gitwebdir = $(sharedir)/gitweb\n>  localedir = $(sharedir)/locale\n>  template_dir = share/git-core/templates\n> -htmldir = share/doc/git-doc\n> +htmldir = $(prefix)/share/doc/git-doc\n>  ETC_GITCONFIG = $(sysconfdir)/gitconfig\n>  ETC_GITATTRIBUTES = $(sysconfdir)/gitattributes\n>  lib = lib\n>  # DESTDIR =\n>  pathsep = :\n>  \n> +mandir_relative = $(patsubst $(prefix)/%,%,$(mandir))\n> +infodir_relative = $(patsubst $(prefix)/%,%,$(infodir))\n> +htmldir_relative = $(patsubst $(prefix)/%,%,$(htmldir))\n> +\n>  export prefix bindir sharedir sysconfdir gitwebdir localedir\n>  \n>  CC = cc\n> @@ -1548,12 +1554,12 @@ ETC_GITATTRIBUTES_SQ = $(subst ','\\'',$(ETC_GITATTRIBUTES))\n>  DESTDIR_SQ = $(subst ','\\'',$(DESTDIR))\n>  bindir_SQ = $(subst ','\\'',$(bindir))\n>  bindir_relative_SQ = $(subst ','\\'',$(bindir_relative))\n> -mandir_SQ = $(subst ','\\'',$(mandir))\n> -infodir_SQ = $(subst ','\\'',$(infodir))\n> +mandir_relative_SQ = $(subst ','\\'',$(mandir_relative))\n> +infodir_relative_SQ = $(subst ','\\'',$(infodir_relative))\n>  localedir_SQ = $(subst ','\\'',$(localedir))\n>  gitexecdir_SQ = $(subst ','\\'',$(gitexecdir))\n>  template_dir_SQ = $(subst ','\\'',$(template_dir))\n> -htmldir_SQ = $(subst ','\\'',$(htmldir))\n> +htmldir_relative_SQ = $(subst ','\\'',$(htmldir_relative))\n>  prefix_SQ = $(subst ','\\'',$(prefix))\n>  gitwebdir_SQ = $(subst ','\\'',$(gitwebdir))\n>  \n> @@ -1685,9 +1691,9 @@ strip: $(PROGRAMS) git$X\n>  \n>  git.sp git.s git.o: GIT-PREFIX\n>  git.sp git.s git.o: EXTRA_CPPFLAGS = \\\n> -\t'-DGIT_HTML_PATH=\"$(htmldir_SQ)\"' \\\n> -\t'-DGIT_MAN_PATH=\"$(mandir_SQ)\"' \\\n> -\t'-DGIT_INFO_PATH=\"$(infodir_SQ)\"'\n> +\t'-DGIT_HTML_PATH=\"$(htmldir_relative_SQ)\"' \\\n> +\t'-DGIT_MAN_PATH=\"$(mandir_relative_SQ)\"' \\\n> +\t'-DGIT_INFO_PATH=\"$(infodir_relative_SQ)\"'\n>  \n>  git$X: git.o GIT-LDFLAGS $(BUILTIN_OBJS) $(GITLIBS)\n>  \t$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ git.o \\\n> @@ -1697,9 +1703,9 @@ help.sp help.s help.o: common-cmds.h\n>  \n>  builtin/help.sp builtin/help.s builtin/help.o: common-cmds.h GIT-PREFIX\n>  builtin/help.sp builtin/help.s builtin/help.o: EXTRA_CPPFLAGS = \\\n> -\t'-DGIT_HTML_PATH=\"$(htmldir_SQ)\"' \\\n> -\t'-DGIT_MAN_PATH=\"$(mandir_SQ)\"' \\\n> -\t'-DGIT_INFO_PATH=\"$(infodir_SQ)\"'\n> +\t'-DGIT_HTML_PATH=\"$(htmldir_relative_SQ)\"' \\\n> +\t'-DGIT_MAN_PATH=\"$(mandir_relative_SQ)\"' \\\n> +\t'-DGIT_INFO_PATH=\"$(infodir_relative_SQ)\"'\n>  \n>  version.sp version.s version.o: GIT-VERSION-FILE GIT-USER-AGENT\n>  version.sp version.s version.o: EXTRA_CPPFLAGS = \\\n"}]}