Sync GNUmakefile with coreutils.
authorEric Blake <ebb9@byu.net>
Thu, 20 Mar 2008 12:52:53 +0000 (06:52 -0600)
committerEric Blake <ebb9@byu.net>
Thu, 20 Mar 2008 12:52:53 +0000 (06:52 -0600)
* build-aux/GNUmakefile (have-Makefile): Rename...
(_have-Makefile): ...to this, for namespace consideration.
(GNUmakefile.cfg): Include, if present.
(_autoreconf): Define a default.
(_is-dist-target): New rule for rebuilds to pick up intra-release
version.
(maint-cfg.mk): Rename...
(cfg.mk): ...to this.

Signed-off-by: Eric Blake <ebb9@byu.net>
ChangeLog
build-aux/GNUmakefile

index 1341775b2201fd5db4c974bad7531dcce44b8ab9..85d2587617db31ca63c25f7931ce23fac97bd186 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2008-03-20  Eric Blake  <ebb9@byu.net>
+
+       Sync GNUmakefile with coreutils.
+       * build-aux/GNUmakefile (have-Makefile): Rename...
+       (_have-Makefile): ...to this, for namespace consideration.
+       (GNUmakefile.cfg): Include, if present.
+       (_autoreconf): Define a default.
+       (_is-dist-target): New rule for rebuilds to pick up intra-release
+       version.
+       (maint-cfg.mk): Rename...
+       (cfg.mk): ...to this.
+
 2008-03-18  Jim Meyering  <meyering@redhat.com>
 
        New script and module: mktempd
index 35c8869de5bb94601a401f26d3117487d29170f0..fac11d3d02c61c61b1704a63963ad86fbfc62d09 100644 (file)
@@ -1,21 +1,22 @@
 # Having a separate GNUmakefile lets me `include' the dynamically
-# generated rules created via Makefile.maint as well as Makefile.maint itself.
+# generated rules created via cfg.mk (package-local configuration)
+# as well as maint.mk (generic maintainer rules).
 # This makefile is used only if you run GNU Make.
 # It is necessary if you want to build targets usually of interest
 # only to the maintainer.
 
-# Copyright (C) 2001, 2003, 2006, 2007 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
+# Copyright (C) 2001, 2003, 2006-2008 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License,
-# or (at your option) any later version.
-#
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
-#
+
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
@@ -29,22 +30,43 @@ else
 SHELL = sh
 endif
 
+# If the user runs GNU make but has not yet run ./configure,
+# give them a diagnostic.
+_have-Makefile := $(shell test -f Makefile && echo yes)
+ifeq ($(_have-Makefile),yes)
+
 # Make tar archive easier to reproduce.
 export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner
 
-# Ran autoreconf and configure or not?
-have-Makefile := $(shell test -f Makefile && echo yes)
-ifeq ($(have-Makefile),yes)
-
 include Makefile
--include $(srcdir)/maint-cfg.mk
+
+# Some projects override e.g., _autoreconf here.
+-include $(srcdir)/cfg.mk
 include $(srcdir)/maint.mk
 
+_autoreconf ?= autoreconf
+
+# Ensure that $(VERSION) is up to date for dist-related targets, but not
+# for others: rerunning autoreconf and recompiling everything isn't cheap.
+ifeq (0,$(MAKELEVEL))
+  _is-dist-target = $(filter-out %clean, \
+    $(filter dist% alpha beta major,$(MAKECMDGOALS)))
+  ifneq (,$(_is-dist-target))
+    _curr-ver := $(shell cd $(srcdir) && ./build-aux/git-version-gen \
+                   $(srcdir)/.tarball-version)
+    ifneq ($(_curr-ver),$(VERSION))
+      $(info INFO: running autoreconf for new version string: $(_curr-ver))
+      _dummy := $(shell cd $(srcdir) && rm -rf autom4te.cache && $(_autoreconf)))
+    endif
+  endif
+endif
+
 else
 
 .DEFAULT_GOAL := abort-due-to-no-makefile
 
--include ./maint-cfg.mk
+# The package can override .DEFAULT_GOAL to run actions like autoreconf.
+-include ./cfg.mk
 include ./maint.mk
 
 abort-due-to-no-makefile: