Peter Nordlund wrote:
It is focuesed on compiling Java, but maybe it could also be used
for C++, if you could live with the burden of having a Java-environment
up and running.
I agree that it is a burden.  I'm not a big fan of Java and I would prefer not to pollute my pure Windoze or Linux environment with JAVA.  That said, people are going to have to install something to make this work
I joined the Ant-mailing list quite a few months ago.
I remember someone asking if Ant
was suitable for C++, but I don't remember the answer.
I poked around a bit and couldn't find anything about using Ant for C++.  Maybe you could post to the group and see if anyone had done this?

see http://jakarta.apache.org/ant/index.html for some info
and links for getting the stuff etc.
 
After looking at the documentation I assume we would have to write a few "tasks" to do things like build an object file from a source file, build a library, and build an executable. These would have to have parameters for all of the various options like the name of the compiler (or other tool), path, various flags, etc.  And then these parameters are configured in an XML file?  So if someone wanted to build Boost on Windows with the Borland compiler, he/she would edit the XML and viola!?
 
I see two advantages of Ant: portability and CVS support.  The CVS support goes one level above the IMAKE suggestion because it is able to initialize the build tree from a repository and then build it all in one environment.  Of course, I'm not sure how you version manage the XML configuration files in this scheme.  Anyway, to do the same thing with IMAKE you typically write a script to check out the build tree (good luck making this portable) , generate the Makefiles using an IMAKE bootstrap program (if you use Imboot you need Perl).
 
 
I think we need to start formalizing some goals for this little activity.  Here is what I can think of at the moment (in no particular order):
 
1) The solution needs to be highly portable to all development platforms (we could discuss what this means, but for sure it means: Linux/Unix variants and Win32). 
2) The solution needs to neatly factor out into some sort of configuration all the build variations due to both platforms and compilers.
3) The solution should be really easy to use.  For example, pick a configuration file with my platform and compiler, enter a single command, and it builds itself.
4) The solution should require a minimum of effort to learn and maintain.  That is, it should be easy to add new files and libraries.
5) It would be nice if the solution could integrate with CVS to checkout a particular version and build it.
6) The solution should minimize the required additional tool and language installations.  Of course, some platforms may be easier than others.
7) If acquired from elsewhere, the tool(s) should be demonstrably stable and well documented.
 
Any thoughts?
 
Jeff