Rant — Ruby’s ant

Rant is a flexible build tool written entirely in Ruby.

The equivalent to a Makefile for make is the Rantfile. An Rantfile is actually a valid Ruby script that is read in by the rant command.

Rant currently features:

  • Rantfiles are written in Ruby.
  • Defining custom tasks
  • Automated packaging, testing and RDoc generation for Ruby applications and libraries.
  • The rant-import command creates a monolithic rant script, so you don’t depend on an rant installation anymore.
  • Creating gzipped tar and zip archives — without installing additional software.
  • Optional recognition of file changes based on MD5 checksums instead of file modification times.
  • Tasks with command change recognition.
  • Dependency checking for C/C++ source files.
  • Compiling of C# sources and resources

As programmers usually want to see code, here is a short and very basic example of rant usage:

A file called Rantfile contains the code:

    file "backup/data" => "data" do |t|
        sys.cp t.source, t.name
    end

Running rant in the directory of this file:

    % rant
    cp data backup/data

will ensure that the "data" file in the "backup" directory is up to date.

This document was written for version 0.5.7 of Rant. Most things described here will work for older/newer versions of Rant, but look at the README file in the Rant distribution you’ve installed for exact documentation of your Rant version.

Support

The newest version of this document can be found at rant.rubyforge.org.

For further information, feature requests, bugreports or comments join the mailing list rant-cafe or visit the RubyForge site for Rant.

Roadmap

Installing Rant:read INSTALL
License:read the section Copying in this document
Invoking rant:read doc/rant.rdoc
Writing an Rantfile:read doc/rantfile.rdoc
Automation for your Ruby library/application:read doc/rubyproject.rdoc
Independent from Rant? The rant-import command:read doc/rant-import.rdoc
Advanced Rantfiles:read doc/advanced.rdoc
Packaging (creating zip/tgz archives):read doc/package.rdoc
Using MD5 checksums instead of file modification times:read doc/md5.rdoc
Compiling C/C++:read doc/c.rdoc
Buildfiles in subdirectories:read doc/subdirs.rdoc
Tasks with command change recognition:read doc/command.rdoc
Using the Configure plugin:read doc/configure.rdoc deprecated
Compiling C#:read doc/csharp.rdoc
Common file system operations:read doc/sys.rdoc
Upgrading:read the NEWS for new features, not backwards compatible changes and other issues.
Using Rant libraries:read doc/rubylib.rdoc

Copying

Copyright (C) 2005 Stefan Lang

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA