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