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