From ba95b9133c12258fcd795f2b3e3597d9273b2f89 Mon Sep 17 00:00:00 2001 From: James Laird Date: Fri, 20 May 2005 13:03:35 -0500 Subject: [svn-r10775] Purpose: Bug fix (kind of...) Description: When trying to 'make distclean', the Makefiles will attempt to re-run configure if configure has changed. This is a nice idea, but prevents the distclean from happening if configure fails (e.g., if the environment has changed). This happens frequently in the Daily Tests when configure is altered. Solution: It turns out to be easier than I had feared to override the dependency that is causing configure to be re-run. Now configure will never be run automatically, even if it is out-of-date. It would be more complicated to cause it to be re-run in all cases except distclean, so we'll try just the inelegant fix for now. Platforms tested: mir. This change doesn't affect the source, only what is built when. The real test will be how the Daily Tests handle changes to configure (like the one I checked in earlier today). --- Makefile.am | 9 +++++++++ Makefile.in | 12 +++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/Makefile.am b/Makefile.am index a15e389..58864e0 100755 --- a/Makefile.am +++ b/Makefile.am @@ -152,5 +152,14 @@ check-install: installcheck-local: (cd examples && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; +# Automake wants to make config.status depend on configure. This +# makes sense, but config.status can't always be regenerated +# properly, which can cause builds to fail. +# This is a problem for our Daily Tests, which need to be able to +# 'make distclean' reliably before running configure. +# The simple solution is to override the dependency Automake supplies +# for config.status so that it will never be regenerated. +$(top_builddir)/config.status: + # Don't include conclude.am in root Makefile; tests target needs to # recurse into perform directory as well as reguar subdirs. diff --git a/Makefile.in b/Makefile.in index 0dc46f7..6bbcb6f 100644 --- a/Makefile.in +++ b/Makefile.in @@ -366,9 +366,6 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck - $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) @@ -832,6 +829,15 @@ check-install: installcheck-local: (cd examples && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; +# Automake wants to make config.status depend on configure. This +# makes sense, but config.status can't always be regenerated +# properly, which can cause builds to fail. +# This is a problem for our Daily Tests, which need to be able to +# 'make distclean' reliably before running configure. +# The simple solution is to override the dependency Automake supplies +# for config.status so that it will never be regenerated. +$(top_builddir)/config.status: + # Don't include conclude.am in root Makefile; tests target needs to # recurse into perform directory as well as reguar subdirs. # Tell versions [3.59,3.63) of GNU make to not export all variables. -- cgit v0.12