I haven't said anything for a while and mostly you have no idea who I am but I'll jump in anyway. The procedural vs. declarative argument is a fallacy. As has been pointed out, a procedure is a declaration. The important point (IMHO) is that the declaration in the build tool should declare as clearly as possible the intent of the CM person/build manager etc. Some amount of stuff like foreach etc... might be OK (although my prejudices/beliefs are to avoid it) because it can be useful and some people will use it for complex unanticipated situations. I think Ant should try to push it to the edges though. The example way below can be expressed: Now this is a bit of hand waving and not totally clear. I have told Stefan I will put together something RSN to describe some of the ideas I've come across, from the workflow and process definition world. Ant is defining a build process, and there is a lot of literature and previous work about how to express a process. Tasks have subtasks, input and outputs, constraints, dependencies. (Unfortunately I'm totally swamped at my job that I've resigned from, and am still struggling with the implications of a non-compete agreement and trying to be professional and leave with a successful completion of my current project, so you should all feel sorrry for me. ;-) (P.S. I really like Ant and 15 years of 'make' is enough.)) Marvin At 10:45 21/3/01 +1100, Tim Vernum wrote: >>I think that the desire to do something like >> >> Foreach subdir in toolkit >> do >> Compile subdir/source to subdir/classes >> Jar subdir/classes to subdir/subdir.jar >> done >> >>is a valid request for a build tool, and I don't see it as >>being declarative.