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>
This commit is contained in:
parent
c06818e20a
commit
9b88fcef7d
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,4 @@
|
||||
GIT-VERSION-FILE
|
||||
git
|
||||
git-add
|
||||
git-am
|
||||
|
18
GIT-VERSION-GEN
Executable file
18
GIT-VERSION-GEN
Executable file
@ -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
20
Makefile
@ -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)
|
||||
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
|
||||
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:
|
||||
|
||||
### 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:
|
||||
$(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…
Reference in New Issue
Block a user