From 07bc841590ceccf8eac9a98d55001bb0412f5299 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Tue, 4 Mar 2008 20:54:45 +0100 Subject: [PATCH] Reinstate GNUmakefile patch, but with workaround for automake. * 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 | 3 ++- Makefile.am | 5 +++++ configure.ac | 16 +++++++++------- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/GNUmakefile b/GNUmakefile index 2fce1fd..95758f5 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -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)) - _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) diff --git a/Makefile.am b/Makefile.am index 67f4934..2862940 100644 --- a/Makefile.am +++ b/Makefile.am @@ -94,6 +94,11 @@ gen-ChangeLog: 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 diff --git a/configure.ac b/configure.ac index d55b2da..cc4e152 100644 --- a/configure.ac +++ b/configure.ac @@ -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 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 -- 2.7.4