> From: Mark Lundquist [mailto:[EMAIL PROTECTED]
>
> I've got several "modules" that I need to be able to build into various
> projects.  So what I think I'd like to be able to do is use <macrodef>
> and then be able to just call out the modules like so:
> 
>       <module name="killer-app" />
>       <module name="job-security" />
>       <module name="legacy-crap" />
>       <!-- etc... -->
> 
> The idea is that this would
> 
> (a) build up a file that I can use to invoke "svn propset svn:externals
> -f", then "svn update" the external 'mount-point' if it doesn't exist
> - i.e., "fetch" the module sources into the local project;
> 
> (b) create a task for each module (e.g., "modules:killer-app") that
> calls <ant> in the module subdirectory and also does some other stuff;

You mean create a target, right!?

> (c) make it so that the task "module" invokes all the module targets.

Again, that would be the "module" target, no!?

> I think I can handle all the ant machinery for (a) and (b); it's just
> (c) that has me flummoxed.
> 
> This kind of thing is a way of life in 'make'... there, you don't even
> think about it.  You can say:
> 
>       modules:; module.killer-app
>       modules:; module.legacy-crap

Like you say, this isn't an easy one to answer, but let me try to answer random 
questions, and see if any of it is useful...

I 'think' you could replace your (b) and (c) by <subant>. Sounds like (a) 
creates a new build file by module, in the main build, and with (b) and (c) you 
want a way to build one or all modules from the main build. Am I close?

If (a) creates stand-alone build file, you can build a single module by just 
using build -f modules/moduleA/build.xml ... and in the mail build, you can 
call <subant><fileset dir="modules" includes="*/build.xml" /></subant>.

I do have up my sleeve a <bm:targetdef> custom task that creates a empty target 
which depends on other targets on the fly, but you can't statically depend on 
such a target, you must <antcall> it (or <bm:call> or <ac:call> to avoid the 
cost of creating another project, but it's dangerous).

With <import>, you should be able to have your module builds pretty small.

Hopefully that was helpful.

> BTW this isn't meant as an ant vs. make thing, I just mention it in the
> hopes that maybe somebody else with a 'make' background will recognize
> what the crap I'm talking about :-) :-).

I think the make analogy was useful ;-) --DD

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to