This version file will be as prerequisite to the target files that use the version info for some purpose, like printing it to the user to examine. The contents of the VERSION file is seldom read by the build system itself as the $(VERSION) variable has the same information. ---
ctested also with: mv .git .x make cat VERSION version mv .x .git make cat VERSION version Makefile.local | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/Makefile.local b/Makefile.local index 174506c..65c91cb 100644 --- a/Makefile.local +++ b/Makefile.local @@ -21,7 +21,13 @@ endif VERSION:=$(shell cat ${srcdir}/version) ifeq ($(filter release release-message pre-release update-versions,$(MAKECMDGOALS)),) ifeq ($(IS_GIT),yes) -VERSION:=$(shell git describe --match '[0-9.]*'|sed -e s/_/~/ -e s/-/+/ -e s/-/~/) +# Also write VERSION file in case its contents differ from $(VERSION) +VERSION:=$(shell\ + gv=`git describe --match '[0-9.]*'|sed -e s/_/~/ -e s/-/+/ -e s/-/~/`;\ + test -f VERSION || touch VERSION;\ + read fv < VERSION;\ + test x"$$fv" = x"$$gv" || echo "$$gv" > VERSION;\ + echo "$$gv") endif endif @@ -69,6 +75,11 @@ ifeq ($(shell cat .first-build-message 2>/dev/null),) endif endif +# Depend (also) on 'version' file. In case of ifeq ($(IS_GIT),yes) +# this file may already have been updated. +VERSION: version + echo $(VERSION) > $@ + $(TAR_FILE): if git tag -v $(VERSION) >/dev/null 2>&1; then \ ref=$(VERSION); \ @@ -280,6 +291,8 @@ notmuch_client_srcs = \ notmuch_client_modules = $(notmuch_client_srcs:.c=.o) +notmuch.o: VERSION + notmuch: $(notmuch_client_modules) lib/libnotmuch.a util/libutil.a parse-time-string/libparse-time-string.a $(call quiet,CXX $(CFLAGS)) $^ $(FINAL_LIBNOTMUCH_LDFLAGS) -o $@ @@ -318,7 +331,7 @@ install-desktop: desktop-file-install --mode 0644 --dir "$(DESTDIR)$(desktop_dir)" notmuch.desktop SRCS := $(SRCS) $(notmuch_client_srcs) -CLEAN := $(CLEAN) notmuch notmuch-shared $(notmuch_client_modules) notmuch.elc +CLEAN := $(CLEAN) VERSION notmuch notmuch-shared $(notmuch_client_modules) DISTCLEAN := $(DISTCLEAN) .first-build-message Makefile.config -- 1.8.4.2 _______________________________________________ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch