git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 5/9] Allow the built-in exec path to be relative to the command invocation path

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 23, 2008, 18:31 UTC
Message-ID
<7vfxq0e9lk.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<1216667998-8879-6-git-send-email-johannes.sixt@telecom.at>
Johannes Sixt <johannes.sixt@telecom.at> writes:
Show 10 quoted lines
> If $(gitexecdir) is relative, it is interpreted relative to the command's
> invocation path, which usually is $(bindir).
>
> The Makefile rules were written with the assumption that $(gitexecdir) is
> an absolute path. We introduce a separate variable that names the
> (absolute) installation directory.
>  ... 
> +ifeq ($(firstword $(subst /, ,$(gitexecdir))),..)
> +gitexec_instdir = $(bindir)/$(gitexecdir)
> +else

Can we please have a brief comment in the Makefile near we define mandir, infodir, gitexecdir and friends about this "relative to $(bindir)" business?

Perhaps like:
 Makefile |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/Makefile b/Makefile
index 23f2185..8fa8f9a 100644
--- a/Makefile
+++ b/Makefile
@@ -171,6 +171,12 @@ ALL_LDFLAGS = $(LDFLAGS)
 STRIP ?= strip
 
 prefix = $(HOME)
+
+# Among these variables, gitexecdir and/or template_dir can be
+# specified as a relative path ../some/where/else; this is interpreted
+# as relative to $(bindir) and "git" at runtime figures out where they
+# are based on the path to the executable.  This can help installing the
+# suite in a relocatable way.
 bindir = $(prefix)/bin
 mandir = $(prefix)/share/man
 infodir = $(prefix)/share/info

Note that I just listed two variables out of thin air without studying;
you might be making other variables capable of relative path, in which
case they should also be listed there.
Previous: Steffen ProhaskaNext: Johannes Sixt
Message 13 of 32 in “Make gitexecdir relative to $(bindir) on Windows”
  1. 0/9 Make gitexecdir relative to $(bindir) on WindowsJohannes Sixt, Jul 21, 2008
  2. 1/9 Makefile: Do not install a copy of 'git' in $(gitexecdir)Johannes Sixt, Jul 21, 2008
  3. 2/9 Makefile: Normalize $(bindir) and $(gitexecdir) before comparingJohannes Sixt, Jul 21, 2008
  4. 3/9 Record the command invocation path earlyJohannes Sixt, Jul 21, 2008
  5. 4/9 Fix relative built-in paths to be relative to the command invocationJohannes Sixt, Jul 21, 2008
  6. 5/9 Allow the built-in exec path to be relative to the command invocation pathJohannes Sixt, Jul 21, 2008
  7. 6/9 Allow add_path() to add non-existent directories to the pathJohannes Sixt, Jul 21, 2008
  8. 7/9 Windows: Make $(gitexecdir) relativeJohannes Sixt, Jul 21, 2008
  9. 8/9 Windows: Make sure argv[0] has a pathJohannes Sixt, Jul 21, 2008
  10. 9/9 Windows: Do not compile git-shellJohannes Sixt, Jul 21, 2008
  11. 10/9 git-gui: git.git now uses $(gitexec_instdir) to point to the exec-pathJohannes Sixt, Jul 21, 2008
  12. Steffen ProhaskaJul 25, 2008
  13. Junio C HamanoJul 23, 2008
  14. 5/9 Allow the built-in exec path to be relative to the command invocation pathJohannes Sixt, Jul 23, 2008
  15. Junio C HamanoJul 24, 2008
  16. Johannes SixtJul 24, 2008
  17. Junio C HamanoJul 25, 2008
  18. Johannes SixtJul 25, 2008
  19. Johannes SixtJul 25, 2008
  20. Junio C HamanoJul 28, 2008
  21. Johannes SchindelinJul 21, 2008
  22. Johannes SixtJul 22, 2008
  23. A Large Angry SCMJul 28, 2008
  24. Junio C HamanoJul 28, 2008
  25. Junio C HamanoJul 28, 2008
  26. A Large Angry SCMJul 28, 2008
  27. A Large Angry SCMJul 28, 2008
  28. A Large Angry SCMJul 28, 2008
  29. Johannes SchindelinJul 21, 2008
  30. Johannes SixtJul 22, 2008
  31. Junio C HamanoJul 23, 2008
  32. Johannes SixtJul 23, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.