# \[ANN\] Rant 0.4.8

**URL:** <https://rubytalk.org/t/ann-rant-0-4-8/22053>\
**Category:** ruby-talk\
**Created:** [31 October 2005 20:44 UTC](https://rubytalk.org/t/ann-rant-0-4-8/22053 "2005-10-31T20:44:24Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Stefan\_Lang](https://avatars.discourse-cdn.com/v4/letter/s/e0b2c6/32.png) [@Stefan\_Lang](https://rubytalk.org/u/Stefan_Lang)\
**Post date:** [31 October 2005 20:44 UTC](https://rubytalk.org/t/ann-rant-0-4-8/22053/1 "2005-10-31T20:44:24Z")

</div>

Rant is a flexible build tool written entirely in Ruby,  
similar to Rake.

== What's new in this release?

Incompatible changes:  
\* The filenames Rantfile.rb and rantfile.rb which  
were deprecated since the last release aren't recognized anymore.  
Use Rantfile, rantfile or root.rant instead.

Fixes and minor improvements:  
\* Besides others fixes, a fix for latest ruby 1.9 and one for  
&nbsp;&nbsp;ruby 1.8.4 preview1.

New features:  
\* rant-import supports --zip (-z) option for zip-compression now.  
\* Tasks with command change recognition.  
\* Improved rule support.

For more details read [http://make.rubyforge.org/files/NEWS.html](http://make.rubyforge.org/files/NEWS.html)

I have also written a Rake/Rant comparison. It's available under  
[http://make.rubyforge.org/files/doc/rant\_vs\_rake\_rdoc.html](http://make.rubyforge.org/files/doc/rant_vs_rake_rdoc.html)  
(I can't guarantee that it is 100% objective... 😉

== Installing Rant

You can install Rant as a RubyGem:  
% gem install --remote rant

or download the package from  
RubyForge([http://rubyforge.org/frs/?group\_id=615](http://rubyforge.org/frs/?group_id=615))  
and install with install.rb:  
% ruby install.rb

== Example Rantfile

import "command"

var :CFLAGS =\> "-g -O2" # can be overridden from commandline

gen Command, "foo", ["foo.o", "util.o"],  
"cc $[CFLAGS] -o $(name) $(prerequisites)"

The last two lines tell Rant, that the file foo depends on the files  
foo.o and util.o and that foo can be built by running the command in  
the last line ("cc …") in a subshell. If at least one of the  
following three conditions is met, foo will be rebuilt:

1. foo doesn’t exist.  
2. foo.o or util.o changed since the last build of foo.  
3. The command (most probably CFLAGS) changed since the last build  
of foo.

== More about Rant

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

Rant currently features:  
\* Defining custom tasks  
\* Automated packaging, testing and RDoc generation for Ruby  
applications and libraries.  
\* Creating gzipped tar and zip archives — without installing  
additional software.  
\* Optional recognition of file changes based on MD5 checksums instead  
of file modification times.  
\* Multiple buildfiles (e.g. one per directory).  
\* The rant-import command creates a monolithic rant script,  
so you don't depend on an rant installation anymore.  
\* Dependency checking for C/C++ source files.  
\* Tasks with command change recognition.  
\* Primitive support for compiling C# sources portably with csc, cscc  
and mcs.

... and more, visit [http://make.ruby-co.de](http://make.ruby-co.de)

Rubyforge page:: [http://rubyforge.org/projects/make/](http://rubyforge.org/projects/make/)  
Repository:: [http://developer.berlios.de/svn/?group\_id=5046](http://developer.berlios.de/svn/?group_id=5046)

> **···**
>
> --  
> Stefan

---

<div class="post-metadata">

**Author:** ![Joel\_VanderWerf1](https://avatars.discourse-cdn.com/v4/letter/j/94ad74/32.png) [@Joel\_VanderWerf1](https://rubytalk.org/u/Joel_VanderWerf1)\
**Post date:** [31 October 2005 20:49 UTC](https://rubytalk.org/t/ann-rant-0-4-8/22053/2 "2005-10-31T20:49:18Z")

</div>

Stefan Lang wrote:

> 3. The command (most probably CFLAGS) changed since the last build  
> &nbsp;&nbsp;&nbsp;of foo.

Interesting. How is that state stored between rant executions? Or am I  
misunderstanding what 3 means?

> **···**
>
> --  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407

---

<div class="post-metadata">

**Author:** ![Stephan\_Mueller](https://avatars.discourse-cdn.com/v4/letter/s/51bf81/32.png) [@Stephan\_Mueller](https://rubytalk.org/u/Stephan_Mueller)\
**Post date:** [1 November 2005 09:12 UTC](https://rubytalk.org/t/ann-rant-0-4-8/22053/3 "2005-11-01T09:12:07Z")

</div>

Hi,

\* Stefan Lang \<langstefan@gmx.at\> [051031 21:44]:

> Rant is a flexible build tool written entirely in Ruby,  
> similar to Rake.

What are the differences between rant and rake? Can you explain the  
advantages of rant over rake?

Thanks in advance 🙂

Steph.

---

<div class="post-metadata">

**Author:** ![Stu\_George](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stu\_George](https://rubytalk.org/u/Stu_George)\
**Post date:** [1 November 2005 14:27 UTC](https://rubytalk.org/t/ann-rant-0-4-8/22053/4 "2005-11-01T14:27:07Z")

</div>

thanks Stefan! I use rant every day and its superb. Have not  
ran into any problems since 0.4.0. I really appreciate the  
work done.

- Stu : Email via [xdi.org](http://public.xdi.org/=stu)

> **···**
>
> On Tue, 1 Nov 2005 05:44:24 +0900, Stefan Lang \<langstefan@gmx.at\> wrote:
> 
> > Rant is a flexible build tool written entirely in Ruby,  
> > similar to Rake.

---

<div class="post-metadata">

**Author:** ![Stefan\_Lang](https://avatars.discourse-cdn.com/v4/letter/s/e0b2c6/32.png) [@Stefan\_Lang](https://rubytalk.org/u/Stefan_Lang)\
**Post date:** [31 October 2005 20:56 UTC](https://rubytalk.org/t/ann-rant-0-4-8/22053/5 "2005-10-31T20:56:08Z")

</div>

The MD5 checksum of the command string is calculated and then  
stored in a file called .rant.meta in each directory containing  
one ore more target files.

Regards,  
&nbsp;&nbsp;Stefan

> **···**
>
> On Monday 31 October 2005 21:49, Joel VanderWerf wrote:
> 
> > Stefan Lang wrote:  
> > \> 3. The command (most probably CFLAGS) changed since the last  
> > \> build of foo.
> > 
> > Interesting. How is that state stored between rant executions? Or  
> > am I misunderstanding what 3 means?

---

<div class="post-metadata">

**Author:** ![Stefan\_Lang](https://avatars.discourse-cdn.com/v4/letter/s/e0b2c6/32.png) [@Stefan\_Lang](https://rubytalk.org/u/Stefan_Lang)\
**Post date:** [1 November 2005 10:29 UTC](https://rubytalk.org/t/ann-rant-0-4-8/22053/6 "2005-11-01T10:29:30Z")

</div>

> Hi,
> 
> \* Stefan Lang \<langstefan@gmx.at\> [051031 21:44]:  
> \> Rant is a flexible build tool written entirely in Ruby,  
> \> similar to Rake.
> 
> What are the differences between rant and rake? Can you explain the  
> advantages of rant over rake?
> 
> Thanks in advance 🙂

Basic syntax is (nearly) the same.  
To quote myself, from the anouncement 😉

> I have also written a Rake/Rant comparison. It's available under  
> [http://make.rubyforge.org/files/doc/rant\_vs\_rake\_rdoc.html](http://make.rubyforge.org/files/doc/rant_vs_rake_rdoc.html)  
> (I can't guarantee that it is 100% objective... 😉

Regards,  
&nbsp;&nbsp;Stefan

> **···**
>
> On Tuesday 01 November 2005 10:12, Stephan Mueller wrote:

---

<div class="post-metadata">

**Author:** ![Stephan\_Mueller](https://avatars.discourse-cdn.com/v4/letter/s/51bf81/32.png) [@Stephan\_Mueller](https://rubytalk.org/u/Stephan_Mueller)\
**Post date:** [1 November 2005 12:12 UTC](https://rubytalk.org/t/ann-rant-0-4-8/22053/7 "2005-11-01T12:12:08Z")

</div>

\* Stefan Lang \<langstefan@gmx.at\> [051101 11:29]:

> Basic syntax is (nearly) the same.  
> To quote myself, from the anouncement 😉

oops, shame on me!

Anyway, thank you for pointing me to the right direction.

Cheers,

Steph.
