>>>>> "Akim" == Akim Demaille <[EMAIL PROTECTED]> writes:
Akim> This patch introduces one semantical difference: tags-recursive
Akim> is bound to tags, not TAGS as was before. I think (i) it is
Akim> cleaner, and (ii) anyway it seems to me that TAGS itself
Akim> performs its own recursion:
The "recursion" in TAGS is different. tags-recursive should be
running `make tags' in each subdir. In TAGS we look for a TAGS file
in each subdir and if it exists we include it in the TAGS file we are
creating.
The thing is that `tags' is really a convenience for people who don't
like upper case. It is a historical thing and not mandated. TAGS is
the name of the mandated target.
So I think `make TAGS' has to do all the recursion.
Maybe we currently get this wrong, since the recursive invocation
invokes `make tags' and not `make TAGS'.
Akim> Another question is why don't we use the regular -am, -recursive
Akim> mechanism? Given that we always output a `tags' and `TAGS'
Akim> target, it should be equivalent and much simpler: just
Akim> RECURSIVE_TARGATS += tags-recursive.
Because the recursive tags invocation should never fail. Maybe it is
ok if a tags failure in a subdir propagates upwards, since it means
there's a bug somewhere. I'm ok with that change if you want to make
it.
Akim> * automake.in (%dependencies): Add 'tags'.
Akim> (&handle_tags): Move the handling of subdirs and of directories
Akim> where a dummy TAGS is needed into...
Akim> * tags.am: here.
Akim> Hook `tags-recursive' to `tags', not `TAGS'.
Akim> Condition the main targets to `%?TAGS%'.
I think this is only partly ok, per above notes.
Tom