git-version-gen w/o git

Peter Rosin <[email protected]>
Newsgroups gmane.comp.gnu.libtool.patches
Message-ID <[email protected]>
Hi!

I used to use a libtool git checkout from a platform that lacks
git [MSYS], but that broke at some point. I would like something
like the below to unbreak my work flow.

Please?

Cheers,
Peter

diff --git a/Makefile.am b/Makefile.am
index 176325c..3bcb419 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -46,7 +46,7 @@ EXTRA_LTLIBRARIES	=
 # Using `cd' in backquotes may print the directory name, use this instead:
 lt__cd		= CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 
-git_version_gen = '$(SHELL)' '$(aux_dir)/git-version-gen' '.tarball-version'
+git_version_gen = '$(SHELL)' '$(aux_dir)/git-version-gen' '--fallback' '$(VERSION)' '.tarball-version'
 rebuild = rebuild=:; revision=`$(lt__cd) $(srcdir) && $(git_version_gen) | sed 's|-.*$$||g'`
 
 
@@ -128,8 +128,10 @@ $(ltversion_m4): $(ltversion_in) $(dotversion)
 	done; \
 	if $$rebuild; then \
 	  rm -f '$@'; \
-	  if test -f '$(srcdir)/.serial'; then \
-	    serial=`cat '$(srcdir)/.serial'`; \
+	  if test -d '$(srcdir)/.git' && git --version >& /dev/null; then \
+	    $(git_commit_count) > '$(srcdir)/.serial'; \
+	  fi; \
+	  serial=`cat '$(srcdir)/.serial'`; \
 	  else \
 	    serial=`$(git_commit_count)`; \
 	  fi; \



And then some support for that in gnulib:

--- gnulib/build-aux/git-version-gen.orig	2012-10-02 17:10:58.935840500 +0200
+++ gnulib/build-aux/git-version-gen	2012-10-18 14:41:57.458460000 +0200
@@ -86,6 +86,7 @@
 Options:
 
    --prefix           prefix of git tags (default 'v')
+   --fallback         fallback version to use if \"git --version\" fails
 
    --help             display this help and exit
    --version          output version information and exit
@@ -93,12 +94,14 @@
 Running without arguments will suffice in most cases."
 
 prefix=v
+fallback=
 
 while test $# -gt 0; do
   case $1 in
     --help) echo "$usage"; exit 0;;
     --version) echo "$version"; exit 0;;
     --prefix) shift; prefix="$1";;
+    --fallback) shift; fallback="$1";;
     -*)
       echo "$0: Unknown option '$1'." >&2
       echo "$0: Try '--help' for more information." >&2
@@ -184,8 +187,10 @@
     # Remove the "g" in git describe's output string, to save a byte.
     v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`;
     v_from_git=1
-else
+elif test -z "$fallback" || git --version >& /dev/null; then
     v=UNKNOWN
+else
+    v=$fallback
 fi
 
 v=`echo "$v" |sed "s/^$prefix//"`
--- gnulib/top/maint.mk.orig	2012-10-02 17:10:43.846614700 +0200
+++ gnulib/top/maint.mk	2012-10-18 14:41:53.433652900 +0200
@@ -1327,7 +1327,7 @@
 
 .PHONY: no-submodule-changes
 no-submodule-changes:
-	$(AM_V_GEN)if test -d $(srcdir)/.git; then			\
+	$(AM_V_GEN)if test -d $(srcdir)/.git && git --version >& /dev/null; then \
 	  diff=$$(cd $(srcdir) && git submodule -q foreach		\
 		  git diff-index --name-only HEAD)			\
 	    || exit 1;							\
@@ -1345,7 +1345,7 @@
 # cannot be built from a fresh clone.
 .PHONY: public-submodule-commit
 public-submodule-commit:
-	$(AM_V_GEN)if test -d $(srcdir)/.git; then			\
+	$(AM_V_GEN)if test -d $(srcdir)/.git && git --version >& /dev/null; then \
 	  cd $(srcdir) &&						\
 	  git submodule --quiet foreach test '$$(git rev-parse $$sha1)'	\
 	      = '$$(git merge-base origin $$sha1)'			\
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.