m4-patches
[Top][All Lists]
Advanced

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

sync GNUmakefile with gnulib


From: Eric Blake
Subject: sync GNUmakefile with gnulib
Date: Mon, 24 Mar 2008 06:00:04 -0600
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080213 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Now that gnulib finally provides a decent module for GNUmakefile, I'll use
it.  I'm not quite ready to synchronize maint.mk with gnulib, so I'm
intentionally not pulling in the maintainer-makefile module yet.  (And I'm
still waiting for git 1.5.5 to come out before I can make the master
branch use git-version-gen, because it needs 'git describe --match "v*"').

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

Eric Blake             address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkfnl8QACgkQ84KuGfSFAYBZNwCffpEon2buIi7PmN/n2VwbXAPr
+oYAoMPNMba3hGEF0tPS0g7nfPLEFirA
=04tg
-----END PGP SIGNATURE-----
>From 5adf9c383dd56c648aade9521e312d2c1f61b2a2 Mon Sep 17 00:00:00 2001
From: Eric Blake <address@hidden>
Date: Fri, 21 Mar 2008 07:05:54 -0600
Subject: [PATCH] Pull GNUmakefile from gnulib.

* m4/gnulib-cache.m4: Import gnumakefile module.
* GNUmakefile: Remove from version control; supplied by gnulib
instead.
* configure.ac (AC_CONFIG_LINKS): Let gnulib do this now.
* Makefile.am (distclean-local): Likewise.
(EXTRA_DIST): Likewise.  Also handle renamed files.
* Makefile.cfg: Rename...
* cfg.mk: ...to this.
* Makefile.maint: Rename...
* maint.mk: ...to this.
(ME, makefile-check, m4-check): Use new macro instead of
hard-coded name.
* HACKING: Mention that maintainer rules should now work in VPATH
builds.

Signed-off-by: Eric Blake <address@hidden>
---
 .cvsignore                 |    1 +
 .gitignore                 |    1 +
 ChangeLog                  |   18 ++++++++++
 GNUmakefile                |   80 --------------------------------------------
 HACKING                    |    5 +--
 Makefile.am                |    7 +---
 Makefile.cfg => cfg.mk     |    2 +-
 configure.ac               |   14 --------
 m4/gnulib-cache.m4         |    4 +-
 Makefile.maint => maint.mk |   10 ++++--
 10 files changed, 32 insertions(+), 110 deletions(-)
 delete mode 100644 GNUmakefile
 rename Makefile.cfg => cfg.mk (95%)
 rename Makefile.maint => maint.mk (95%)

diff --git a/.cvsignore b/.cvsignore
index ecbb873..8fc44d6 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -30,3 +30,4 @@ stamp-h
 stamp-h1
 stamp-h.in
 tests
+GNUmakefile
diff --git a/.gitignore b/.gitignore
index ff3c4c8..b581eac 100644
--- a/.gitignore
+++ b/.gitignore
@@ -34,3 +34,4 @@ stamp-h
 stamp-h1
 stamp-h.in
 tests
+GNUmakefile
diff --git a/ChangeLog b/ChangeLog
index 49f9b80..d8fc94a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2008-03-24  Eric Blake  <address@hidden>
+
+       Pull GNUmakefile from gnulib.
+       * m4/gnulib-cache.m4: Import gnumakefile module.
+       * GNUmakefile: Remove from version control; supplied by gnulib
+       instead.
+       * configure.ac (AC_CONFIG_LINKS): Let gnulib do this now.
+       * Makefile.am (distclean-local): Likewise.
+       (EXTRA_DIST): Likewise.  Also handle renamed files.
+       * Makefile.cfg: Rename...
+       * cfg.mk: ...to this.
+       * Makefile.maint: Rename...
+       * maint.mk: ...to this.
+       (ME, makefile-check, m4-check): Use new macro instead of
+       hard-coded name.
+       * HACKING: Mention that maintainer rules should now work in VPATH
+       builds.
+
 2008-03-19  Eric Blake  <address@hidden>
 
        Stage 20: make m4wrap obey POSIX fifo ordering.
diff --git a/GNUmakefile b/GNUmakefile
deleted file mode 100644
index ac70f63..0000000
--- a/GNUmakefile
+++ /dev/null
@@ -1,80 +0,0 @@
-# Having a separate GNUmakefile lets me `include' both Makefile.maint
-# and Makefile.
-# 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, 2008 Free Software Foundation,
-# Inc.
-#
-# This file is part of GNU M4.
-#
-# GNU M4 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.
-#
-# GNU M4 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/>.
-
-# Systems where /bin/sh is not the default shell need this.  The $(shell)
-# command below won't work with e.g. stock DOS/Windows shells.
-ifeq ($(wildcard /bin/s[h]),/bin/sh)
-SHELL = /bin/sh
-else
-# will be used only with the next shell-test line, then overwritten
-# by a configured-in value
-SHELL = sh
-endif
-
-_have-Makefile := $(shell test -f Makefile && echo yes)
-
-# If the user runs GNU make but has not yet run ./configure,
-# give them a diagnostic.
-ifeq ($(_have-Makefile),yes)
-
-# Make tar archive easier to reproduce.
-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-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
-
-include $(srcdir)/Makefile.cfg
-include $(srcdir)/Makefile.maint
-
-else
-
-all:
-       @echo There seems to be no Makefile in this directory.   1>&2
-       @echo "You must run ./configure before running \`make'." 1>&2
-       @exit 1
-
-check dist distcheck install: all
-
-endif
-
-# Tell version 3.79 and up of GNU make to not build goals in this
-# directory in parallel.  This is necessary in case someone tries to
-# build multiple targets on one command line.
-.NOTPARALLEL:
diff --git a/HACKING b/HACKING
index f42ffb4..b365923 100644
--- a/HACKING
+++ b/HACKING
@@ -203,10 +203,7 @@ yyyy-mm-dd  Name of Author  <address@hidden>  (tiny change)
 
 * Run ./bootstrap.
 
-* Run ./configure (a VPATH build is not recommended, since several
-  targets in GNUMakefile and Makefile.maint assume an in-tree build for
-  distribution purposes.  Normal builds do not suffer from this
-  restriction, and make distcheck ensures VPATH still works).
+* Run ./configure (a VPATH build should work, but is less tested).
 
 * Run `make'.  The file doc/m4.1 needs to exist for a distribution, and
   be up-to-date with m4 --help output, but `make dist' intentionally
diff --git a/Makefile.am b/Makefile.am
index b12f710..81ea47e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -21,7 +21,7 @@
 ## Written by Gary V. Vaughan <address@hidden>
 
 SUBDIRS = . examples lib src doc tests checks
-EXTRA_DIST = bootstrap c-boxes.el GNUmakefile Makefile.cfg Makefile.maint \
+EXTRA_DIST = bootstrap c-boxes.el cfg.mk maint.mk \
        .version m4/gnulib-cache.m4
 DISTCLEANFILES = stamp-h
 ## maintainer-clean should remove as much as possible that ./bootstrap can
@@ -42,8 +42,3 @@ BUILT_SOURCES = .version
 # tarball, and never in a checked-out repository.
 dist-hook:
        echo $(VERSION) > $(distdir)/.tarball-version
-
-# Arrange to remove the symlink to GNUmakefile in VPATH builds.
-# TODO remove this once automake vs. AC_CONFIG_LINKS issue is fixed.
-distclean-local:
-       if test x"$(VPATH)" != x ; then rm -f GNUmakefile ; fi
diff --git a/Makefile.cfg b/cfg.mk
similarity index 95%
rename from Makefile.cfg
rename to cfg.mk
index 77680c9..142980f 100644
--- a/Makefile.cfg
+++ b/cfg.mk
@@ -1,4 +1,4 @@
-# Customize Makefile.maint.                           -*- makefile -*-
+# Customize maint.mk.                           -*- makefile -*-
 # Copyright (C) 2003-2008 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
diff --git a/configure.ac b/configure.ac
index aa1f32e..990c8f6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -162,20 +162,6 @@ M4_WITH_DMALLOC
 
 AC_CONFIG_COMMANDS([stamp-h], [[test -z "$CONFIG_HEADERS" || date > stamp-h]])
 
-dnl Allow maintainer rules under GNU make even in VPATH builds.  This does
-dnl not work in autoconf 2.61 or earlier, but we don't want to require
-dnl non-maintainers to use unreleased autoconf, hence the version test.
-dnl TODO remove the version check once autoconf 2.62 is released.
-dnl Meanwhile, we must use a shell variable so that we bypass automake's
-dnl attempts to remove the sole copy of GNUmakefile in a non-VPATH build
-dnl during 'make distclean'.
-dnl TODO avoid the shell variable once automake is fixed.
-GNUmakefile=GNUmakefile
-m4_if(m4_version_compare([2.61a.100],
-       m4_defn([m4_PACKAGE_VERSION])), [1], [],
-      [AC_CONFIG_LINKS([$GNUmakefile:$GNUmakefile], [],
-       [GNUmakefile=$GNUmakefile])])
-
 AC_CONFIG_FILES([Makefile
                 doc/Makefile
                 lib/Makefile
diff --git a/m4/gnulib-cache.m4 b/m4/gnulib-cache.m4
index 669b011..14ec2a6 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 fseeko gendocs getopt git-version-gen gnupload gpl-3.0 intprops 
memchr2 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 fseeko gendocs getopt git-version-gen gnumakefile gnupload gpl-3.0 
intprops memchr2 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 fseeko 
gendocs getopt git-version-gen gnupload gpl-3.0 intprops memchr2 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 fseeko 
gendocs getopt git-version-gen gnumakefile gnupload gpl-3.0 intprops memchr2 
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])
diff --git a/Makefile.maint b/maint.mk
similarity index 95%
rename from Makefile.maint
rename to maint.mk
index 2e80845..c9b51d8 100644
--- a/Makefile.maint
+++ b/maint.mk
@@ -1,4 +1,4 @@
-## Makefile.maint -- Makefile rules for m4 maintainers -*-Makefile-*-
+## maint.mk -- Makefile rules for m4 maintainers -*-Makefile-*-
 ##
 ## Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation
 ##
@@ -17,6 +17,10 @@
 ## You should have received a copy of the GNU General Public License
 ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+# This is reported not to work with make-3.79.1
+# ME := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
+ME := maint.mk
+
 # Do not save the original name or timestamp in the .tar.gz file.
 # Use --rsyncable if available.
 gzip_rsyncable := \
@@ -43,7 +47,7 @@ my_distdir = $(PACKAGE)-$(VERSION)
 # to emit a definition for each substituted variable.
 makefile-check:
        grep -nE '@[A-Z_0-9]+@' `find $(srcdir) -name Makefile.am` \
-         && { echo 'Makefile.maint: use $$(...), not @...@' 1>&2; exit 1; } || 
:
+         && { echo '$(ME): use $$(...), not @...@' 1>&2; exit 1; } || :
 
 news-date-check: NEWS version-check
        today=`date +%Y-%m-%d`;                                         \
@@ -66,7 +70,7 @@ changelog-check:
 
 m4-check:
        @grep -n 'AC_DEFUN([^[]' $(srcdir)/m4/*.m4 \
-         && { echo 'Makefile.maint: quote the first arg to AC_DEFUN' 1>&2; \
+         && { echo '$(ME): quote the first arg to AC_DEFUN' 1>&2; \
               exit 1; } || :
 
 vc-diff-check:
-- 
1.5.4


reply via email to

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