From 75e2530aa2bac3d18b479fc5620b967a1f7ede6e Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Tue, 6 Feb 2001 10:17:56 +0000 Subject: [PATCH] * subdirs.am: This file is the exception: clean recursive targets are called by the clean targets, not the clean-am targets. Otherwise we have a circular dependency: clean -> clean-am -> clean-recursive -> clean. * automake.in (handle_clean): Bind `-local' targets to `-am' targets, not top targets. Don't declare -recursive dependencies of the clean targets: `subdirs.am' did it. Less hard coded knowledge, transfered into... * clean.am: here. --- ChangeLog | 15 ++++++++++++++- Makefile.in | 11 ++++------- automake.in | 17 ++++++++++------- clean.am | 11 ++++++++--- lib/am/clean.am | 11 ++++++++--- lib/am/subdirs.am | 8 ++++---- subdirs.am | 8 ++++---- 7 files changed, 52 insertions(+), 29 deletions(-) diff --git a/ChangeLog b/ChangeLog index 10183982..83fbf5b0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2001-02-06 Akim Demaille + + * subdirs.am: This file is the exception: clean recursive targets + are called by the clean targets, not the clean-am targets. + Otherwise we have a circular dependency: clean -> clean-am -> + clean-recursive -> clean. + * automake.in (handle_clean): Bind `-local' targets to `-am' + targets, not top targets. + Don't declare -recursive dependencies of the clean targets: + `subdirs.am' did it. Less hard coded knowledge, transfered + into... + * clean.am: here. + 2001-02-06 Akim Demaille Monstro unsplitable patch. @@ -55,7 +68,7 @@ about libtool, and maintainer-clean. * clean.am, libtool.am: Handle these. - + 2001-02-05 Akim Demaille * automake.in (handle_texinfo): No longer hard code the clean diff --git a/Makefile.in b/Makefile.in index 41ae901b..49a833dc 100644 --- a/Makefile.in +++ b/Makefile.in @@ -574,25 +574,22 @@ maintainer-clean-generic: -rm -f Makefile.in clean: clean-recursive -clean-am: clean-generic clean-recursive mostlyclean-am +clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f config.status -distclean-am: clean-am distclean-generic distclean-recursive \ - distclean-tags +distclean-am: clean-am distclean-generic distclean-tags maintainer-clean: maintainer-clean-recursive -rm -f config.status maintainer-clean-am: distclean-am maintainer-clean-aminfo \ - maintainer-clean-generic maintainer-clean-recursive \ - maintainer-clean-vti + maintainer-clean-generic maintainer-clean-vti mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-aminfo mostlyclean-generic \ - mostlyclean-recursive mostlyclean-vti +mostlyclean-am: mostlyclean-aminfo mostlyclean-generic mostlyclean-vti .PHONY: all all-am all-recursive all-redirect check check-am \ check-recursive clean clean-generic clean-recursive distclean \ diff --git a/automake.in b/automake.in index 7f05dbc0..9bc7f9f4 100755 --- a/automake.in +++ b/automake.in @@ -3910,18 +3910,21 @@ sub handle_clean . 's,\@MFILES\@,' . join (' ', @maintainer_clean_files) . ',;'); } + if ($recursive_install) + { + $xform .= 's/^NSUBDIRS.*$//;'; + } + else + { + $xform .= 's/^NSUBDIRS//;'; + } $output_rules .= &file_contents ('clean', $xform); - &depend ('clean-am', 'mostlyclean-am'); - &depend ('distclean-am', 'clean-am'); - &depend ('maintainer-clean-am', 'distclean-am'); foreach ('clean', 'distclean', 'mostlyclean', 'maintainer-clean') { - &depend ($_, $_ . '-local') - if &target_defined ($_ . '-local'); - &depend ($_, - $_ . ($recursive_install ? '-recursive' : '-am')); + &depend ("$_-am", "$_-local") + if &target_defined ("$_-local"); } # We special-case config.status here. If we do it as part of the diff --git a/clean.am b/clean.am index fcdd10c3..d15edc8e 100644 --- a/clean.am +++ b/clean.am @@ -23,17 +23,17 @@ mostlyclean-am: mostlyclean-generic mostlyclean-generic: MOSTLYCLEAN -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) -clean-am: clean-generic +clean-am: clean-generic mostlyclean-am clean-generic: CLEAN -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) -distclean-am: distclean-generic +distclean-am: distclean-generic clean-am distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* DISTCLEAN -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) -maintainer-clean-am: maintainer-clean-generic +maintainer-clean-am: maintainer-clean-generic distclean-am maintainer-clean-generic: ## FIXME: shouldn't we really print these messages before running ## the dependencies? @@ -44,3 +44,8 @@ MAINTAINERCLEAN -test -z "@MCFILES@" || rm -f @MFILES@ .PHONY: clean mostlyclean distclean maintainer-clean \ clean-generic mostlyclean-generic distclean-generic maintainer-clean-generic + +NSUBDIRSclean: clean-am +NSUBDIRSdistclean: distclean-am +NSUBDIRSmostlyclean: mostlyclean-am +NSUBDIRSmaintainer-clean: maintainer-clean-am diff --git a/lib/am/clean.am b/lib/am/clean.am index fcdd10c3..d15edc8e 100644 --- a/lib/am/clean.am +++ b/lib/am/clean.am @@ -23,17 +23,17 @@ mostlyclean-am: mostlyclean-generic mostlyclean-generic: MOSTLYCLEAN -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) -clean-am: clean-generic +clean-am: clean-generic mostlyclean-am clean-generic: CLEAN -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) -distclean-am: distclean-generic +distclean-am: distclean-generic clean-am distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* DISTCLEAN -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) -maintainer-clean-am: maintainer-clean-generic +maintainer-clean-am: maintainer-clean-generic distclean-am maintainer-clean-generic: ## FIXME: shouldn't we really print these messages before running ## the dependencies? @@ -44,3 +44,8 @@ MAINTAINERCLEAN -test -z "@MCFILES@" || rm -f @MFILES@ .PHONY: clean mostlyclean distclean maintainer-clean \ clean-generic mostlyclean-generic distclean-generic maintainer-clean-generic + +NSUBDIRSclean: clean-am +NSUBDIRSdistclean: distclean-am +NSUBDIRSmostlyclean: mostlyclean-am +NSUBDIRSmaintainer-clean: maintainer-clean-am diff --git a/lib/am/subdirs.am b/lib/am/subdirs.am index da1dcba5..0c0b0aff 100644 --- a/lib/am/subdirs.am +++ b/lib/am/subdirs.am @@ -52,10 +52,10 @@ check-recursive installcheck-recursive info-recursive dvi-recursive: fi; test -z "$$fail" -mostlyclean-am: mostlyclean-recursive -clean-am: clean-recursive -distclean-am: distclean-recursive -maintainer-clean-am: maintainer-clean-recursive +mostlyclean: mostlyclean-recursive +clean: clean-recursive +distclean: distclean-recursive +maintainer-clean: maintainer-clean-recursive .PHONY: mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive diff --git a/subdirs.am b/subdirs.am index da1dcba5..0c0b0aff 100644 --- a/subdirs.am +++ b/subdirs.am @@ -52,10 +52,10 @@ check-recursive installcheck-recursive info-recursive dvi-recursive: fi; test -z "$$fail" -mostlyclean-am: mostlyclean-recursive -clean-am: clean-recursive -distclean-am: distclean-recursive -maintainer-clean-am: maintainer-clean-recursive +mostlyclean: mostlyclean-recursive +clean: clean-recursive +distclean: distclean-recursive +maintainer-clean: maintainer-clean-recursive .PHONY: mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive -- 2.43.5