Reinstate GNUmakefile patch, but with workaround for automake.
authorEric Blake <ebb9@byu.net>
Tue, 4 Mar 2008 19:54:45 +0000 (20:54 +0100)
committerJim Meyering <meyering@redhat.com>
Tue, 4 Mar 2008 19:54:45 +0000 (20:54 +0100)
* configure.ac (AC_CONFIG_LINKS): Use shell variable to bypass
automake distclean rules.
* Makefile.am (distclean-local): Clean GNUmakefile in VPATH builds,
since we are bypassing automake.
* GNUmakefile (_is-dist-target): 'distclean' is not a dist target.

GNUmakefile
Makefile.am
configure.ac

index 2fce1fd..95758f5 100644 (file)
@@ -45,7 +45,8 @@ _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))
 # 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))
+  _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 (,$(_is-dist-target))
     _curr-ver := $(shell cd $(srcdir) && ./build-aux/git-version-gen \
                    $(srcdir)/.tarball-version)
index 67f4934..2862940 100644 (file)
@@ -94,6 +94,11 @@ gen-ChangeLog:
 distcheck-hook: check-ls-dircolors
        $(MAKE) my-distcheck
 
 distcheck-hook: check-ls-dircolors
        $(MAKE) my-distcheck
 
+# 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
+
 DISTCLEANFILES = VERSION
 MAINTAINERCLEANFILES = THANKS-to-translators
 THANKS-to-translators: po/LINGUAS THANKStt.in
 DISTCLEANFILES = VERSION
 MAINTAINERCLEANFILES = THANKS-to-translators
 THANKS-to-translators: po/LINGUAS THANKStt.in
index d55b2da..cc4e152 100644 (file)
@@ -337,13 +337,15 @@ 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 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 Disabled for now, since this would cause "make distclean" to
-dnl remove the sole copy of GNUmakefile in a non-VPATH build.
-dnl TODO restore once automake has been fixed to do the right thing.
-dnl m4_if(m4_version_compare([2.61a.100],
-dnl       m4_defn([m4_PACKAGE_VERSION])), [1], [],
-dnl       [AC_CONFIG_LINKS([GNUmakefile:GNUmakefile])])
+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
 
 AC_CONFIG_FILES(
   Makefile