Browse Source

Makefile: use git-describe to mark the git version.

Note: with this commit, the GIT maintainer workflow must change.
GIT-VERSION-GEN is now the file to munge when the default
version needs to be changed, not Makefile.  The tag needs to be
pushed into the repository to build the official tarball and
binary package beforehand.

Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Junio C Hamano 19 years ago
parent
commit
9b88fcef7d
  1. 1
      .gitignore
  2. 18
      GIT-VERSION-GEN
  3. 20
      Makefile

1
.gitignore vendored

@ -1,3 +1,4 @@ @@ -1,3 +1,4 @@
GIT-VERSION-FILE
git
git-add
git-am

18
GIT-VERSION-GEN

@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
#!/bin/sh

GVF=GIT-VERSION-FILE

VN=$(git describe --abbrev=4 HEAD 2>/dev/null) || VN=v1.0.GIT
VN=$(expr "$VN" : v'\(.*\)')
if test -r $GVF
then
VC=$(sed -e 's/^GIT_VERSION = //' <$GVF)
else
VC=unset
fi
test "$VN" = "$VC" || {
echo >&2 "GIT_VERSION = $VN"
echo "GIT_VERSION = $VN" >$GVF
}


20
Makefile

@ -55,7 +55,9 @@ all: @@ -55,7 +55,9 @@ all:
# Define USE_STDEV below if you want git to care about the underlying device
# change being considered an inode change from the update-cache perspective.

GIT_VERSION = 1.0.GIT
GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
@sh ./GIT-VERSION-GEN
-include GIT-VERSION-FILE

# CFLAGS and LDFLAGS are for the users to override from the command line.

@ -369,7 +371,7 @@ all: $(ALL_PROGRAMS) @@ -369,7 +371,7 @@ all: $(ALL_PROGRAMS)
all:
$(MAKE) -C templates

git$X: git.c $(LIB_FILE) Makefile
git$X: git.c $(LIB_FILE)
$(CC) -DGIT_EXEC_PATH='"$(bindir)"' -DGIT_VERSION='"$(GIT_VERSION)"' \
$(CFLAGS) $(COMPAT_CFLAGS) -o $@ $(filter %.c,$^) $(LIB_FILE)

@ -398,8 +400,12 @@ $(patsubst %.py,%,$(SCRIPT_PYTHON)) : % : %.py @@ -398,8 +400,12 @@ $(patsubst %.py,%,$(SCRIPT_PYTHON)) : % : %.py
git-cherry-pick: git-revert
cp $< $@

# format-patch records GIT_VERSION
git-format-patch: Makefile
# These can record GIT_VERSION
git$X git.spec \
$(patsubst %.sh,%,$(SCRIPT_SH)) \
$(patsubst %.perl,%,$(SCRIPT_PERL)) \
$(patsubst %.py,%,$(SCRIPT_PYTHON)) \
: GIT-VERSION-FILE

%.o: %.c
$(CC) -o $*.o -c $(ALL_CFLAGS) $<
@ -475,7 +481,7 @@ install-doc: @@ -475,7 +481,7 @@ install-doc:

### Maintainer's dist rules

git.spec: git.spec.in Makefile
git.spec: git.spec.in
sed -e 's/@@VERSION@@/$(GIT_VERSION)/g' < $< > $@

GIT_TARNAME=git-$(GIT_VERSION)
@ -510,4 +516,8 @@ clean: @@ -510,4 +516,8 @@ clean:
$(MAKE) -C Documentation/ clean
$(MAKE) -C templates clean
$(MAKE) -C t/ clean
rm -f GIT-VERSION-FILE

.PHONY: all install clean
.PHONY: .FORCE-GIT-VERSION-FILE


Loading…
Cancel
Save