[PATCH v2] To make GIT-VERSION-FILE, search for git more widely
- From
- Matthias Andree <matthias.andree@gmx.de>
- Date
- May 7, 2009, 08:58 UTC
- Message-ID
- <1241686707-29960-1-git-send-email-matthias.andree@gmx.de>
- In-Reply-To
- <4A029D43.4030604@viscovery.net>
Problem: when git is installed into /usr/local/bin, running 'sudo make install' won't find git in $PATH (because sudo strips PATH for security reasons).
This causes GIT-VERSION-FILE to not find git for git describe, and fall back to DEF_VER. This in turn causes rebuilds of major parts of the system.
Typical failing scenario:
make configure ./configure # defaults to --prefix=/usr/local make all doc sudo make install install-doc install-html # REBUILDS HAPPEN HERE
This patch passes GIT through to the shell script, and additionally looks for the current built version and in ${prefix}/bin.
Signed-off-by: Matthias Andree <matthias.andree@gmx.de> --- GIT-VERSION-GEN | 9 ++++----- Makefile | 6 +++++- 2 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index 39cde78..d0dfef3 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -2,6 +2,7 @@ GVF=GIT-VERSION-FILE DEF_VER=v1.6.3.GIT +test -x "$GIT" || GIT=git LF=' ' @@ -12,12 +13,12 @@ if test -f version then VN=$(cat version) || VN="$DEF_VER" elif test -d .git -o -f .git && - VN=$(git describe --abbrev=4 HEAD 2>/dev/null) && + VN=$($GIT describe --abbrev=4 HEAD 2>/dev/null) && case "$VN" in *$LF*) (exit 1) ;; v[0-9]*) - git update-index -q --refresh - test -z "$(git diff-index --name-only HEAD --)" || + $GIT update-index -q --refresh + test -z "$($GIT diff-index --name-only HEAD --)" || VN="$VN-dirty" ;; esac then @@ -38,5 +39,3 @@ test "$VN" = "$VC" || { echo >&2 "GIT_VERSION = $VN" echo "GIT_VERSION = $VN" >$GVF } - - diff --git a/Makefile b/Makefile index 6e21643..d6be483 100644 --- a/Makefile +++ b/Makefile @@ -177,7 +177,11 @@ all:: # away (some NTFS drivers seem to zero the contents in that scenario). GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE - @$(SHELL_PATH) ./GIT-VERSION-GEN + @{ GIT=./git$X ; test -x "$$GIT" ; } \ + || { GIT=$(prefix)/bin/git$X ; test -x "$$GIT" ; }\ + || GIT=git ; \ + export GIT ; \ + $(SHELL_PATH) ./GIT-VERSION-GEN -include GIT-VERSION-FILE uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
-- 1.6.3.rc2.9.g97ad0