ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Shott <>
Subject Re: converting ant from a make file
Date Fri, 18 Sep 2009 14:38:42 GMT

> for c in A B C D E; do
>       perl ...
>      perl ...
>      perl...
>      - mkdir Backup
>       mv *bak Backup
> How do I move this script over to ant build.xml.
This is probably a bit hard to answer.  In principle, you can simply 
call the existing script using something like the exec task along with 
appropriate arg values.  Or, you can consider breaking the script apart 
and call individual perl scripts with appropriate arguments.  In 
general, however, I think that you'll be happier if you are able to use 
the built-in ant tasks wherever possible and resort to things like the 
exec task only when you absolutely need to.

While I'm not a great authority on either make or ant, I did spend a 
great deal of time converting a good sized project with a bunch of 
Makefiles to an ant-based build.  My experience is that if you try to 
simply do a line-by-line conversion of your Makefiles into the ant 
equivalent, that you will not be terribly happy with the result.  Why?  
Ant is not make and they approach things differently.

I suspect that you'll be a lot happier with the result if you look 
carefully at what Make is doing, make sure that you understand that 
fully, and then look at ant to see how some of it's tasks can be 
harnessed to do the same thing.  For example, make tends to do things on 
a directory by directory basis whereas ant has a much more sophisticated 
(to me at least) means of specifying filesets that become the target of 
a task.  Also, ant now has a wide range of tasks that perform 
interesting and often complex elements of a build in a single step.  You 
may even find it desirable (if you have that flexibility) to restructure 
your source tree in a more "ant friendly" structure.  You may also find 
that some of the things that your Perl scripts are doing are 
conveniently doable by ant tasks so that when everything is done, 
instead of having a handful of Makefiles plus Perl scripts that you may 
have a single build.xml file.  Of course, not knowing what your Perl 
scripts are doing .... they may be doing things that would be hard to do 
in ant.

I hope that helps,


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message