gantt

gantt is a semi-clone of Apache Ant, written in C. It's small, fast, and extensible without knowledge of Java. The idea is to provide a free Ant-like tool for Java projects that will run on systems that don't necessarily have a Java virtual machine installed.

gantt is distributed under the GNU GPL.

gantt uses the Gnome libxml2 and glib libraries to provide multi-platform support. It processes standard Ant buildfiles and has the same syntax. However, you cannot (yet) use Ant Java extensions in gantt. Instead, you can define your own tags and they will be executed as regular programs.

Most of the core Ant tasks are implemented in gantt. Some of these use the extensibility feature described above: when gantt encounters a task tag it doesn't have built-in support for, it tries to find and execute a program of that name, setting various evironment variables appropriately. For instance, all attributes of the tag are available as environment variables of the same name, and the list of files defined by a fileset are available as an environment variable "files". gantt first tries to execute a program of the name gantt_name, where name is the name of the tag, and falls back to name, so you can easily write wrapper scripts for simple commands.

There's still quite a bit to do. The remainder of the core tasks as well as all the extra tasks still need to be implemented, and support for conditions as well as some of the more esoteric options is still absent. One possible task would be to integrate with Ant Java extensions using JNI and a libxmlj-like interface.

Hope you enjoy working with gantt!