Hi Christopher, Just a few points regarding jakarta-any: I've used it quite extensively and found it to be a very useful and powerful build tool. Being xml based its very easy to follow what the build is doing. In addition Ant is getting quite widely used so there are a lot of sample build scripts out there, all easy enough to follow.
Some of the features you require are readily available in ant: > I've looked at lots of makefile replacements, and the issue is not > just that we need something to trigger a compile when the .java file > is newer than the .class file. We need the following features: > > 0) There is a bootstrapping issue with java based tools. Somewhere, > the user needs to configure the system to find javac, java etc. > Most users have their path set properly, but those that don't send me > email :-) > A small platform independent configuration script is a good solution. as you say boot strapping is an issue; requiring users to set the JAVA_HOME environemnt variable is one option and used by tools like tomcat. > > 1) We need to run configure or something similar to look for > packages like java3d, matlab and the java comm api. If these > packages are not present, then we need to avoid compiling in certain > directories. Configure uses GNU autoconf, which generates a > shell script which uses shell utilities like sed ant does give you something similar to the above as you can set properties conditional on whether or not a given class is available on the classpath, and when creating the sets of classes to compile conditionally include classes by testing if this property is available. > > 2) We need to generate jar files, which means we need to be able > to make directories, copy files etc. all available in ant, and very easy to use/configure. > > 3) Before doing a release, I run rules like make checkjunk, which > looks for kruft in the directories, I also use > $PTII/util/testsuite/chkjava and ptspell, both of which are shell > scripts. this will be harder, though you can write your own tasks in ant. These tasks are written in Java and invoked like any other ant task via xml. Otherwise you could run everything from a script file initially calling ant as one of the script commands. > > 4) The nightly builds use make to build tar files and test them using > code coverage tools. This makefile uses shell utilities. if the code coverage tools are java based it should be pretty strghtforward to write custom tasks to call these tools. > > 5) The build system needs to be portable to both Unix and non-Unix > platforms. The build system must be freely available. The build > system must allow operations on files outside of the build system. > I need to be able to operate on the files in the tree using > external tools and the build system needs to use cvs to get my > changes. ant is under the apache license and can integrate with cvs. > > 6) The build system needs to have a non-graphical front end. If I > use > the mouse extensively, I'll probably be out on permanent disability > within 90 days :-) ant is primarily used non-graphically, though there is probably a graphical front end out there...it also hooks into popular IDEs like JBuilder so that youcan call it fro with that environment. > > In theory, a good java build system could provide most of this > functionality. Thanks for the pointer, I'll take a look. > > -Christopher Just my 0.02... Regards, Neil __________________________________________________ Do You Yahoo!? Buy the perfect holiday gifts at Yahoo! Shopping. http://shopping.yahoo.com ---------------------------------------------------------------------------- Posted to the ptolemy-hackers mailing list. Please send administrative mail for this list to: [EMAIL PROTECTED]