From: Jeff Garland (jeff_at_[hidden])
Date: 2000-07-25 21:52:55
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
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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk