m4-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: release 1.4.10b


From: Eric Blake
Subject: Re: release 1.4.10b
Date: Mon, 25 Feb 2008 21:49:30 -0700
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071031 Thunderbird/2.0.0.9 Mnenhy/0.7.5.666

-----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             address@hidden
-----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-----
>From b923bc9492314627b690c7a41d4625aae95cb2fd Mon Sep 17 00:00:00 2001
From: Eric Blake <address@hidden>
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 <address@hidden>
---
 .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  <address@hidden>
 
+       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) > address@hidden && mv address@hidden $@
+
+# 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], address@hidden)
+AC_INIT([GNU M4], m4_esyscmd([build-aux/git-version-gen .version]),
+  address@hidden)
 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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]