Re: release 1.4.10b

Eric Blake <[email protected]>
Newsgroups gmane.comp.gnu.m4.patches
Message-ID <[email protected]>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Eric Blake on 2/25/2008 8:53 PM:
| I applied this before making the beta release of 1.4.10b, along with some
| followups learned during the process:

And this makes --version information more informative on the branch.  I
can't quite port it to head until head has a signed tag of the form v1.9x;
I'm also waiting for git 1.5.5 to come out with the "git describe --match
'v[0-9]*'" command.  I'm not sure whether I want to cut the release for
1.9b to alpha.gnu.org right now, or just tag a non-released version just
to have something for git-version-gen to work with.

- --
Don't work too hard, make some time for fun as well!

Eric Blake             [email protected]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHw5pa84KuGfSFAYARApcWAJ9f35776JCFxG47KgFAnUNOsjfNPQCfYTXG
I1oV8en8rYhDaDogiL4LkoU=
=Nf7w
-----END PGP SIGNATURE-----

_______________________________________________
M4-patches mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/m4-patches
m4.patch326 (text/plain, 6.5 KB)
From b923bc9492314627b690c7a41d4625aae95cb2fd Mon Sep 17 00:00:00 2001
From: Eric Blake <[email protected]>
Date: Mon, 25 Feb 2008 21:45:30 -0700
Subject: [PATCH] Make intra-release version numbers more intelligent.

* m4/gnulib-cache.m4: Import git-version-gen module.
* GNUmakefile (_curr-ver): Add rules to ensure releases have
up-to-date version string.
* Makefile.am (EXTRA_DIST): Distribute .version.
(.version, dist-hook): New rule for generating it.
* configure.ac (AC_INIT): Make version track intermediate
commits.
* .gitignore: Don't version-control version files.

Signed-off-by: Eric Blake <[email protected]>
---
 .cvsignore         |    2 ++
 .gitignore         |    2 ++
 ChangeLog          |   10 ++++++++++
 GNUmakefile        |   24 ++++++++++++++++++++++++
 Makefile.am        |   11 ++++++++++-
 configure.ac       |    3 ++-
 m4/gnulib-cache.m4 |    4 ++--
 7 files changed, 52 insertions(+), 4 deletions(-)

diff --git a/.cvsignore b/.cvsignore
index e24f01a..ecbb873 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1,5 +1,7 @@
 *.tar.bz2
 *.tar.gz
+.tarball-version
+.version
 aclocal.m4
 autom4te.cache
 build-aux
diff --git a/.gitignore b/.gitignore
index 2b4139a..ff3c4c8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,8 @@
 *.rej
 *.tar.bz2
 *.tar.gz
+.tarball-version
+.version
 aclocal.m4
 autom4te.cache
 build-aux
diff --git a/ChangeLog b/ChangeLog
index a9af282..b38dd6d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
 2008-02-25  Eric Blake  <[email protected]>
 
+	Make intra-release version numbers more intelligent.
+	* m4/gnulib-cache.m4: Import git-version-gen module.
+	* GNUmakefile (_curr-ver): Add rules to ensure releases have
+	up-to-date version string.
+	* Makefile.am (EXTRA_DIST): Distribute .version.
+	(.version, dist-hook): New rule for generating it.
+	* configure.ac (AC_INIT): Make version track intermediate
+	commits.
+	* .gitignore: Don't version-control version files.
+
 	* Makefile.cfg (url_dir_list): Fix location.
 
 	Minor tweaks, learned from the release.
diff --git a/GNUmakefile b/GNUmakefile
index 800330e..4fc9393 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -42,6 +42,30 @@ ifeq ($(have-Makefile),yes)
 export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner
 
 include Makefile
+_curr-ver := $(VERSION)
+
+# Ensure that $(VERSION) is up to date for dist-related targets, but not
+# for others: running autoreconf and recompiling everything isn't cheap.
+ifeq (0,$(MAKELEVEL))
+  _is-dist-target = $(filter dist% alpha beta major,$(MAKECMDGOALS))
+  ifneq (,$(_is-dist-target))
+    _curr-ver := $(shell build-aux/git-version-gen .tarball-version)
+    ifneq ($(_curr-ver),$(VERSION))
+      $(info INFO: running autoreconf for new version string: $(_curr-ver))
+      dummy := $(shell rm -rf autom4te.cache; autoreconf)
+      _created_version_file = 1
+    endif
+  endif
+endif
+
+ifneq ($(_curr-ver),$(VERSION))
+  dummy := $(shell echo $(_curr-ver) > .version)
+endif
+
+ifneq ($(_created_version_file),1)
+  dummy := $(shell test -f .version || echo $(VERSION) > .version)
+endif
+
 include $(srcdir)/Makefile.cfg
 include $(srcdir)/Makefile.maint
 
diff --git a/Makefile.am b/Makefile.am
index 4c1ff26..1d6ab39 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -22,7 +22,7 @@
 
 SUBDIRS = . examples lib src doc tests checks
 EXTRA_DIST = bootstrap c-boxes.el GNUmakefile Makefile.cfg Makefile.maint \
-	m4/gnulib-cache.m4
+	.version m4/gnulib-cache.m4
 DISTCLEANFILES = stamp-h
 ## maintainer-clean should remove as much as possible that ./bootstrap can
 ## recreate.  In the m4 directory, keep only gnulib-cache.m4.
@@ -33,3 +33,12 @@ MAINTAINERCLEANFILES = COPYING INSTALL Makefile.in aclocal.m4 \
 
 ACLOCAL_AMFLAGS = -I m4
 DISTCHECK_CONFIGURE_FLAGS = --enable-changeword
+
+BUILT_SOURCES = .version
+.version:
+	echo $(VERSION) > $@-t && mv $@-t $@
+
+# Arrange so that .tarball-version appears only in the distribution
+# tarball, and never in a checked-out repository.
+dist-hook:
+	echo $(VERSION) > $(distdir)/.tarball-version
diff --git a/configure.ac b/configure.ac
index e7d6a07..2eb699c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,7 +18,8 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AC_PREREQ([2.60])
-AC_INIT([GNU M4], [1.4.10c], [[email protected]])
+AC_INIT([GNU M4], m4_esyscmd([build-aux/git-version-gen .version]),
+  [[email protected]])
 AC_CONFIG_AUX_DIR([build-aux])
 
 AM_INIT_AUTOMAKE([1.10.1 dist-bzip2 dist-lzma gnu])
diff --git a/m4/gnulib-cache.m4 b/m4/gnulib-cache.m4
index d41f158..0dbf39c 100644
--- a/m4/gnulib-cache.m4
+++ b/m4/gnulib-cache.m4
@@ -15,11 +15,11 @@
 
 
 # Specification in the form of a command-line invocation:
-#   gnulib-tool --import --dir=. --local-dir=local --lib=libm4 --source-base=lib --m4-base=m4 --doc-base=doc --aux-dir=build-aux --with-tests --no-libtool --macro-prefix=M4 announce-gen assert avltree-oset binary-io clean-temp cloexec close-stream closein config-h error fdl fflush flexmember fopen-safer free fseeko gendocs getopt gnupload gpl-3.0 intprops memmem mkstemp obstack quote regex stdbool stdint stdlib-safer strtod strtol unlocked-io vasnprintf-posix verror version-etc version-etc-fsf xalloc xprintf xvasprintf-posix
+#   gnulib-tool --import --dir=. --local-dir=local --lib=libm4 --source-base=lib --m4-base=m4 --doc-base=doc --aux-dir=build-aux --with-tests --no-libtool --macro-prefix=M4 announce-gen assert avltree-oset binary-io clean-temp cloexec close-stream closein config-h error fdl fflush flexmember fopen-safer free fseeko gendocs getopt git-version-gen gnupload gpl-3.0 intprops memmem mkstemp obstack quote regex stdbool stdint stdlib-safer strtod strtol unlocked-io vasnprintf-posix verror version-etc version-etc-fsf xalloc xprintf xvasprintf-posix
 
 # Specification in the form of a few gnulib-tool.m4 macro invocations:
 gl_LOCAL_DIR([local])
-gl_MODULES([announce-gen assert avltree-oset binary-io clean-temp cloexec close-stream closein config-h error fdl fflush flexmember fopen-safer free fseeko gendocs getopt gnupload gpl-3.0 intprops memmem mkstemp obstack quote regex stdbool stdint stdlib-safer strtod strtol unlocked-io vasnprintf-posix verror version-etc version-etc-fsf xalloc xprintf xvasprintf-posix])
+gl_MODULES([announce-gen assert avltree-oset binary-io clean-temp cloexec close-stream closein config-h error fdl fflush flexmember fopen-safer free fseeko gendocs getopt git-version-gen gnupload gpl-3.0 intprops memmem mkstemp obstack quote regex stdbool stdint stdlib-safer strtod strtol unlocked-io vasnprintf-posix verror version-etc version-etc-fsf xalloc xprintf xvasprintf-posix])
 gl_AVOID([])
 gl_SOURCE_BASE([lib])
 gl_M4_BASE([m4])
-- 
1.5.4
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.