diff options
author | Akim Demaille <akim@epita.fr> | 2001-02-06 09:09:36 +0000 |
---|---|---|
committer | Akim Demaille <akim@epita.fr> | 2001-02-06 09:09:36 +0000 |
commit | 8a34b58d76892209b5c19f64ea85a64704dfc036 (patch) | |
tree | 20120c4682ee7d1396827faa0fc53ade38472b5f /tags-clean.am | |
parent | 279adc2a18c4f7a71204524d9fba349a15fb1be2 (diff) | |
download | automake-8a34b58d76892209b5c19f64ea85a64704dfc036.tar.gz |
Monstro unsplitable patch.
The aim is to remove hard coded knowledge about clean targets from
automake.in, leaving them in the *.am files.
In addition to the mechanic needed to factor some dependencies, it
appears some rules (most notably distclean and maintainer-clean)
need factored actions. So first, be ready to catch factored
rules.
* automake.in (&file_contents): For the time being, use an extended
$RULE_PATTERN which is able to match any kind of rules, with or
without dependency, with or without actions.
Handle all the rules uniformly, storing in %actions the factored
actions.
(&flatten, &target_cmp): New.
(&handle_factored_dependencies): Output the %actions.
No longer special case `clean'.
Output the rules in alphabetical order, but keeping `.PHONY' last.
Now we must not use &push_phony_cleaners, which is doing all sort
of magic to push a bit of everything in all the clean targets.
The biggest problem being that, making a Cartesian product, it
requires many useless targets. The `*.am' file know better.
But first, register the new factored rules.
* automake.in (&initialize_per_input): Include clean, mostlyclean,
maintainer-clean, distclean and their `*-am' counterpart in
%dependencies.
Initialize %actions.
(get_object_extension, handle_texinfo, handle_tags, handle_multilib)
handle_dependencies, handle_subdirs, handle_configure, handle_clean)
(handle_emacs_lisp, handle_python): Don't play with
&push_phony_cleaners nor &depend and `clean'.
* texinfos.am, texi-vers.am, tags-clean.am:
* subdirs.am,python-clean.am, multilib.am, lisp-clean.am:
* libtool.am, kr-extra.am, depend.am, compile.am, clean.am:
* clean-kr.am, clean-hdr.am: Do it.
Whenever a target is empty, just remove it, it will no longer be
called.
There is still some magic about clean to hard code. But really,
that's the end of &do_one_clean_target.
* automake.in (&do_one_clean_target): Kaboom out.
(&handle_clean): Rewrite the magic code.
(&am_install_var): No longer use &push_phony_cleaners, nor depend
on `clean'.
(&push_phony_cleaners): Kaboom too.
Diffstat (limited to 'tags-clean.am')
-rw-r--r-- | tags-clean.am | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/tags-clean.am b/tags-clean.am index f90741935..cdac6a62b 100644 --- a/tags-clean.am +++ b/tags-clean.am @@ -1,5 +1,5 @@ ## automake - create Makefile.in from Makefile.am -## Copyright 1994, 1995, 1996 Free Software Foundation, Inc. +## Copyright 1994, 1995, 1996, 2001 Free Software Foundation, Inc. ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by @@ -15,9 +15,6 @@ ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ## 02111-1307, USA. -mostlyclean-tags: - -clean-tags: ## The GNU Standards mandates that tags files be removed by ## maintainer-clean. But I'm told (by François Pinard) that this is @@ -25,7 +22,8 @@ clean-tags: ## distributions. Since we do not, we instead have "distclean" remove ## them. The rule is: if the user built it, "distclean" removes it. ## If it is shipped, "maintainer-clean" removes it. +distclean-am: distclean-tags distclean-tags: -rm -f TAGS ID -maintainer-clean-tags: +.PHONY: distclean-tags |