Skip to contentSkip to conversation

make dist: allow using an installed version of git

PATCH In review Dennis Kaarsemaker 2 participants 3 messages Aug 27, 2016 – Sep 1, 2016 Kbuild

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 make dist: allow using an installed version of git

b1de9de2 back in 2005 ensured that we could create a tarball with 'make dist' even if git wasn't installed yet. These days however, chances are higher that a git version is available. Add a config.mak knob to allow people to choose to use the installed version of git to create the tarball and avoid the overhead of building git-archive.

---
 Makefile | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)
Makefile +12 -2
index d96ecb7..3dabb75 100644
@@ -378,6 +378,9 @@ all::
 #
 # to say "export LESS=FRX (and LV=-c) if the environment variable
 # LESS (and LV) is not set, respectively".
+#
+# Define USE_INSTALLED_GIT_ARCHIVE if you don't want to build git-archive as
+# part of 'make dist', but are happy to rely on a git version on you $PATH
 
 GIT-VERSION-FILE: FORCE
 	@$(SHELL_PATH) ./GIT-VERSION-GEN
@@ -2423,8 +2426,15 @@ quick-install-html:
 ### Maintainer's dist rules
 
 GIT_TARNAME = git-$(GIT_VERSION)
-dist: git-archive$(X) configure
-	./git-archive --format=tar \
+ifndef USE_INSTALLED_GIT_ARCHIVE
+	GIT_ARCHIVE = ./git-archive$(X)
+	GIT_ARCHIVE_DEP = git-archive$(X)
+else
+	GIT_ARCHIVE = git archive
+	GIT_ARCHIVE_DEP =
+endif
+dist: $(GIT_ARCHIVE_DEP) configure
+	$(GIT_ARCHIVE) --format=tar \
 		--prefix=$(GIT_TARNAME)/ HEAD^{tree} > $(GIT_TARNAME).tar
 	@mkdir -p $(GIT_TARNAME)
 	@cp configure $(GIT_TARNAME)
Signature · 1 line
2.10.0-rc1-230-g8efea0f
#1 lore raw
Quoted 5 lines · Dennis Kaarsemaker

b1de9de2 back in 2005 ensured that we could create a tarball with 'make dist' even if git wasn't installed yet. These days however, chances are higher that a git version is available. Add a config.mak knob to allow people to choose to use the installed version of git to create the tarball and avoid the overhead of building git-archive.

Thanks, but not interested.

We do not know what vintage of "git" happens to be installed on the platform, but we know how "git archive" we ship with the source ought to behave.

Quoted 38 lines
---
 Makefile | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)
Makefile +12 -2
index d96ecb7..3dabb75 100644
@@ -378,6 +378,9 @@ all::
 #
 # to say "export LESS=FRX (and LV=-c) if the environment variable
 # LESS (and LV) is not set, respectively".
+#
+# Define USE_INSTALLED_GIT_ARCHIVE if you don't want to build git-archive as
+# part of 'make dist', but are happy to rely on a git version on you $PATH
 
 GIT-VERSION-FILE: FORCE
 	@$(SHELL_PATH) ./GIT-VERSION-GEN
@@ -2423,8 +2426,15 @@ quick-install-html:
 ### Maintainer's dist rules
 
 GIT_TARNAME = git-$(GIT_VERSION)
-dist: git-archive$(X) configure
-	./git-archive --format=tar \
+ifndef USE_INSTALLED_GIT_ARCHIVE
+	GIT_ARCHIVE = ./git-archive$(X)
+	GIT_ARCHIVE_DEP = git-archive$(X)
+else
+	GIT_ARCHIVE = git archive
+	GIT_ARCHIVE_DEP =
+endif
+dist: $(GIT_ARCHIVE_DEP) configure
+	$(GIT_ARCHIVE) --format=tar \
 		--prefix=$(GIT_TARNAME)/ HEAD^{tree} > $(GIT_TARNAME).tar
 	@mkdir -p $(GIT_TARNAME)
 	@cp configure $(GIT_TARNAME)
#2 lore raw
Quoted 9 lines · Junio C Hamano
Quoted 5 lines · Dennis Kaarsemaker

b1de9de2 back in 2005 ensured that we could create a tarball with 'make dist' even if git wasn't installed yet. These days however, chances are higher that a git version is available. Add a config.mak knob to allow people to choose to use the installed version of git to create the tarball and avoid the overhead of building git-archive.

Thanks, but not interested.

Pity. Would save me quite a bit of tarball build time.

Quoted 3 lines

We do not know what vintage of "git" happens to be installed on the platform, but we know how "git archive" we ship with the source ought to behave.

That's why I didn't want to make it the default, but merely make it an available option for saving some build time for people who know their git is up-to-date enough.

D.