[PATCH 1/3] build: write version.stamp file containing $(VERSION) string

2014-02-22 Thread Mark Walters

Patches 2 and 3 look fine +1.

I don't know any Make and haven't really being following the discussion
between Austin and Tomi so can't comment on Patch 1. It all seems to
work well in my testing.

Best wishes

Mark



On Fri, 21 Feb 2014, Tomi Ollila  wrote:
> This version file will be as prerequisite to the target files
> that use the version info for some purpose, like printing
> it for the user to examine. The contents of the version.stamp
> file is seldom read by the build system itself as the $(VERSION)
> variable has the same information.
>
> Thanks to Trevor, David and Mark for their contributions.
> ---
>
> This is version 6 of
>
>  id:1391956711-21231-1-git-send-email-tomi.ollila at iki.fi
>
>   The only change is $(VERSTAMP) -> version.stamp -- $(VERSTAMP) does not
>   get expanded for prerequisities if those are not already defined,
>   and as emacs/Makefile.local is included before Makefile.local $(VERSTAMP)
>   is useless in emacs/... (expands to nothing). And my original idea for
>   $(VERSTAMP) was for typo-checking -- I just did not realize that make does
>   not tell me that the variable is undefined so the typo-check I thought of
>   just did't happen.
>
>
> And the following 2 patches version 2 of
>
> id:1390135903-28167-1-git-send-email-tomi.ollila at iki.fi
>
>   Now utilizes version.stamp to know when notmuch.el is to be
>   re-bytecompiled.
>
>  Makefile.local | 14 +-
>  1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/Makefile.local b/Makefile.local
> index 174506c..3a56c06 100644
> --- a/Makefile.local
> +++ b/Makefile.local
> @@ -22,6 +22,11 @@ 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/-/~/)
> +# Write the file 'version.stamp' in case its contents differ from $(VERSION)
> +FILE_VERSION:=$(shell test -f version.stamp && read vs < version.stamp || 
> vs=; echo $$vs)
> +ifneq ($(FILE_VERSION),$(VERSION))
> +   $(shell echo "$(VERSION)" > version.stamp)
> +endif
>  endif
>  endif
>  
> @@ -69,6 +74,11 @@ ifeq ($(shell cat .first-build-message 2>/dev/null),)
>  endif
>  endif
>  
> +# Depend (also) on the file 'version'. In case of ifeq ($(IS_GIT),yes)
> +# this file may already have been updated.
> +version.stamp: version
> + echo $(VERSION) > $@
> +
>  $(TAR_FILE):
>   if git tag -v $(VERSION) >/dev/null 2>&1; then \
> ref=$(VERSION); \
> @@ -280,6 +290,8 @@ notmuch_client_srcs = \
>  
>  notmuch_client_modules = $(notmuch_client_srcs:.c=.o)
>  
> +notmuch.o: version.stamp
> +
>  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 +330,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) notmuch notmuch-shared $(notmuch_client_modules) 
> version.stamp
>  
>  DISTCLEAN := $(DISTCLEAN) .first-build-message Makefile.config
>  
> -- 
> 1.8.0
>
> ___
> notmuch mailing list
> notmuch at notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch


[PATCH 1/3] build: write version.stamp file containing $(VERSION) string

2014-02-22 Thread Tomi Ollila
This version file will be as prerequisite to the target files
that use the version info for some purpose, like printing
it for the user to examine. The contents of the version.stamp
file is seldom read by the build system itself as the $(VERSION)
variable has the same information.

Thanks to Trevor, David and Mark for their contributions.
---

This is version 6 of

 id:1391956711-21231-1-git-send-email-tomi.ollila at iki.fi

  The only change is $(VERSTAMP) -> version.stamp -- $(VERSTAMP) does not
  get expanded for prerequisities if those are not already defined,
  and as emacs/Makefile.local is included before Makefile.local $(VERSTAMP)
  is useless in emacs/... (expands to nothing). And my original idea for
  $(VERSTAMP) was for typo-checking -- I just did not realize that make does
  not tell me that the variable is undefined so the typo-check I thought of
  just did't happen.


And the following 2 patches version 2 of

id:1390135903-28167-1-git-send-email-tomi.ollila at iki.fi

  Now utilizes version.stamp to know when notmuch.el is to be
  re-bytecompiled.

 Makefile.local | 14 +-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/Makefile.local b/Makefile.local
index 174506c..3a56c06 100644
--- a/Makefile.local
+++ b/Makefile.local
@@ -22,6 +22,11 @@ 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/-/~/)
+# Write the file 'version.stamp' in case its contents differ from $(VERSION)
+FILE_VERSION:=$(shell test -f version.stamp && read vs < version.stamp || vs=; 
echo $$vs)
+ifneq ($(FILE_VERSION),$(VERSION))
+   $(shell echo "$(VERSION)" > version.stamp)
+endif
 endif
 endif

@@ -69,6 +74,11 @@ ifeq ($(shell cat .first-build-message 2>/dev/null),)
 endif
 endif

+# Depend (also) on the file 'version'. In case of ifeq ($(IS_GIT),yes)
+# this file may already have been updated.
+version.stamp: version
+   echo $(VERSION) > $@
+
 $(TAR_FILE):
if git tag -v $(VERSION) >/dev/null 2>&1; then \
ref=$(VERSION); \
@@ -280,6 +290,8 @@ notmuch_client_srcs =   \

 notmuch_client_modules = $(notmuch_client_srcs:.c=.o)

+notmuch.o: version.stamp
+
 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 +330,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) notmuch notmuch-shared $(notmuch_client_modules) 
version.stamp

 DISTCLEAN := $(DISTCLEAN) .first-build-message Makefile.config

-- 
1.8.0



Re: [PATCH 1/3] build: write version.stamp file containing $(VERSION) string

2014-02-22 Thread Mark Walters

Patches 2 and 3 look fine +1.

I don't know any Make and haven't really being following the discussion
between Austin and Tomi so can't comment on Patch 1. It all seems to
work well in my testing.

Best wishes

Mark



On Fri, 21 Feb 2014, Tomi Ollila tomi.oll...@iki.fi wrote:
 This version file will be as prerequisite to the target files
 that use the version info for some purpose, like printing
 it for the user to examine. The contents of the version.stamp
 file is seldom read by the build system itself as the $(VERSION)
 variable has the same information.

 Thanks to Trevor, David and Mark for their contributions.
 ---

 This is version 6 of

  id:1391956711-21231-1-git-send-email-tomi.oll...@iki.fi

   The only change is $(VERSTAMP) - version.stamp -- $(VERSTAMP) does not
   get expanded for prerequisities if those are not already defined,
   and as emacs/Makefile.local is included before Makefile.local $(VERSTAMP)
   is useless in emacs/... (expands to nothing). And my original idea for
   $(VERSTAMP) was for typo-checking -- I just did not realize that make does
   not tell me that the variable is undefined so the typo-check I thought of
   just did't happen.


 And the following 2 patches version 2 of

 id:1390135903-28167-1-git-send-email-tomi.oll...@iki.fi

   Now utilizes version.stamp to know when notmuch.el is to be
   re-bytecompiled.

  Makefile.local | 14 +-
  1 file changed, 13 insertions(+), 1 deletion(-)

 diff --git a/Makefile.local b/Makefile.local
 index 174506c..3a56c06 100644
 --- a/Makefile.local
 +++ b/Makefile.local
 @@ -22,6 +22,11 @@ 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/-/~/)
 +# Write the file 'version.stamp' in case its contents differ from $(VERSION)
 +FILE_VERSION:=$(shell test -f version.stamp  read vs  version.stamp || 
 vs=; echo $$vs)
 +ifneq ($(FILE_VERSION),$(VERSION))
 +   $(shell echo $(VERSION)  version.stamp)
 +endif
  endif
  endif
  
 @@ -69,6 +74,11 @@ ifeq ($(shell cat .first-build-message 2/dev/null),)
  endif
  endif
  
 +# Depend (also) on the file 'version'. In case of ifeq ($(IS_GIT),yes)
 +# this file may already have been updated.
 +version.stamp: version
 + echo $(VERSION)  $@
 +
  $(TAR_FILE):
   if git tag -v $(VERSION) /dev/null 21; then \
 ref=$(VERSION); \
 @@ -280,6 +290,8 @@ notmuch_client_srcs = \
  
  notmuch_client_modules = $(notmuch_client_srcs:.c=.o)
  
 +notmuch.o: version.stamp
 +
  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 +330,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) notmuch notmuch-shared $(notmuch_client_modules) 
 version.stamp
  
  DISTCLEAN := $(DISTCLEAN) .first-build-message Makefile.config
  
 -- 
 1.8.0

 ___
 notmuch mailing list
 notmuch@notmuchmail.org
 http://notmuchmail.org/mailman/listinfo/notmuch
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


[PATCH 1/3] build: write version.stamp file containing $(VERSION) string

2014-02-21 Thread Tomi Ollila
This version file will be as prerequisite to the target files
that use the version info for some purpose, like printing
it for the user to examine. The contents of the version.stamp
file is seldom read by the build system itself as the $(VERSION)
variable has the same information.

Thanks to Trevor, David and Mark for their contributions.
---

This is version 6 of

 id:1391956711-21231-1-git-send-email-tomi.oll...@iki.fi

  The only change is $(VERSTAMP) - version.stamp -- $(VERSTAMP) does not
  get expanded for prerequisities if those are not already defined,
  and as emacs/Makefile.local is included before Makefile.local $(VERSTAMP)
  is useless in emacs/... (expands to nothing). And my original idea for
  $(VERSTAMP) was for typo-checking -- I just did not realize that make does
  not tell me that the variable is undefined so the typo-check I thought of
  just did't happen.


And the following 2 patches version 2 of

id:1390135903-28167-1-git-send-email-tomi.oll...@iki.fi

  Now utilizes version.stamp to know when notmuch.el is to be
  re-bytecompiled.

 Makefile.local | 14 +-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/Makefile.local b/Makefile.local
index 174506c..3a56c06 100644
--- a/Makefile.local
+++ b/Makefile.local
@@ -22,6 +22,11 @@ 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/-/~/)
+# Write the file 'version.stamp' in case its contents differ from $(VERSION)
+FILE_VERSION:=$(shell test -f version.stamp  read vs  version.stamp || vs=; 
echo $$vs)
+ifneq ($(FILE_VERSION),$(VERSION))
+   $(shell echo $(VERSION)  version.stamp)
+endif
 endif
 endif
 
@@ -69,6 +74,11 @@ ifeq ($(shell cat .first-build-message 2/dev/null),)
 endif
 endif
 
+# Depend (also) on the file 'version'. In case of ifeq ($(IS_GIT),yes)
+# this file may already have been updated.
+version.stamp: version
+   echo $(VERSION)  $@
+
 $(TAR_FILE):
if git tag -v $(VERSION) /dev/null 21; then \
ref=$(VERSION); \
@@ -280,6 +290,8 @@ notmuch_client_srcs =   \
 
 notmuch_client_modules = $(notmuch_client_srcs:.c=.o)
 
+notmuch.o: version.stamp
+
 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 +330,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) notmuch notmuch-shared $(notmuch_client_modules) 
version.stamp
 
 DISTCLEAN := $(DISTCLEAN) .first-build-message Makefile.config
 
-- 
1.8.0

___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch