From 48e27cbb6cc9e12006de6edfcafa69aafedadc85 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Mon, 21 Jul 2008 09:13:38 -0600 Subject: [PATCH] Don't allow installation with stale devel version number. * top/GNUmakefile (_is-install-target): New macro. (_curr-ver): Forbid installation with stale version number. Signed-off-by: Eric Blake --- ChangeLog | 6 ++++++ top/GNUmakefile | 12 +++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 4cba21824..ef2f20ab9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-07-21 Eric Blake + + Don't allow installation with stale devel version number. + * top/GNUmakefile (_is-install-target): New macro. + (_curr-ver): Forbid installation with stale version number. + 2008-07-20 Bruno Haible * modules/c-stack-tests (Makefile.am): Add LIBSIGSEGV to diff --git a/top/GNUmakefile b/top/GNUmakefile index 31bd873fa..0f1bba932 100644 --- a/top/GNUmakefile +++ b/top/GNUmakefile @@ -55,12 +55,22 @@ _have-git-version-gen := \ ifeq ($(_have-git-version-gen)0,yes$(MAKELEVEL)) _is-dist-target = $(filter-out %clean, \ $(filter maintainer-% dist% alpha beta major,$(MAKECMDGOALS))) - ifneq (,$(_is-dist-target)) + _is-install-target = $(filter-out %check, $(filter install%,$(MAKECMDGOALS))) + ifneq (,$(_is-dist-target)$(_is-install-target)) _curr-ver := $(shell cd $(srcdir) \ && $(_build-aux)/git-version-gen .tarball-version) ifneq ($(_curr-ver),$(VERSION)) ifeq ($(_curr-ver),UNKNOWN) $(info WARNING: unable to verify if $(VERSION) is correct version) + else ifneq (,$(_is-install-target)) + # GNU Coding Standards state that 'make install' should not cause + # recompilation after 'make all'. But as long as changing the version + # string alters config.h, the cost of having 'make all' always have an + # up-to-date version is prohibitive. So, as a compromise, we merely + # refuse to install if the version string is out of date; the user + # must run 'autoreconf' (or something like 'make distcheck') to + # fix the version, 'make all' to propagate it, then 'make install'. + $(error version string $(VERSION) is out of date; run autoreconf before installing) else $(info INFO: running autoreconf for new version string: $(_curr-ver)) _dummy := $(shell cd $(srcdir) && rm -rf autom4te.cache .version \ -- 2.11.0