automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Recursive targets for the user


From: Ralf Wildenhues
Subject: Re: Recursive targets for the user
Date: Mon, 2 Aug 2010 20:28:47 +0200
User-agent: Mutt/1.5.20 (2010-04-22)

Hi Stefano,

* Stefano Lattarini wrote on Mon, Aug 02, 2010 at 12:10:10PM CEST:
> At Sunday 01 August 2010, Ralf Wildenhues wrote:
> > So, here's the deal: currently, Automake has
> >   RECURSIVE_TARGETS
> >   RECURSIVE_CLEAN_TARGETS
> >   AM_RECURSIVE_TARGETS
> Is there any good reason (apart from naybe backward-compatibility)
> for keeping these as three separate variables?

Well, yes.  clean targets need to a different subdir traversal order,
and currently, the latter lists more than the sum of the former: it
also lists targets that invoke `make' recursively within the same
directory.  The latter is needed in some cases (mostly for hidden
dependencies), and listing them is needed in order to avoid unwanted
parallel execution; writing a section about this necessity has been
on my todo list for a while: the deal is that you should not run
  make -jN T1 T2

if both T1 and T2 are listed in $(AM_RECURSIVE_TARGETS).

And yes, backward compatibility is very important, too.  I've checked
codesearch now, these variables are used elsewhere already.  :-/

> > 
> > 1) What to name them?
> >   RECURSIVE_USER_TARGETS
> >   RECURSIVE_USER_CLEAN_TARGETS
> >   ALL_RECURSIVE_USER_TARGETS

> What about `EXTRA_RECURSIVE_TARGETS' etc. instead?

Ah, that's a good idea; thanks.

> Also, I'd like to have a way to specify a recursive targers which 
> should recurse in a limited set of a projects' subdirectories, and not 
> in all of $(SUBDIRS).  Do you think this would be possible/worthwhile?

Can you give an example what this would be good for?  My idea was that
if the user adds a recursive target but then doesn't specify an *-am
rule in some directory, that the rule would just traverse that directory
without doing anything by default.  So your suggestion would be
optimization only, right?

Thanks,
Ralf



reply via email to

[Prev in Thread] Current Thread [Next in Thread]