[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Doing rake-like stuff with mkmf?

Wincent Colaiuta

6/9/2007 2:13:00 PM

Following the pattern I've seen in widespread use, I use rake in my
Ruby projects for most high-level tasks (running specs, building gems
etc) and mkmf to make C extension makefiles.

mkmf works great for the simple case where you just want to compile
some C files and link to some libraries; the default behaviour seems
to handle most things automatically.

But what if I want to do some more sophisticated rake-like stuff where
I manually specify dependencies? For example:

* Start with ANTLR grammar file "Grammar.g"

* Whenever this file is updated, have to run ANTLR on it and this
regenerates new "GrammarLexer.c" and "GrammarParser.c" files

* In this case want to rebuild the extension

Is there a way to do this using mkmf? Or do I have to manually tweak
the generated Makefile myself?

Cheers,
Wincent

2 Answers

Nobuyoshi Nakada

6/11/2007 4:34:00 AM

0

Hi,

At Sat, 9 Jun 2007 23:15:08 +0900,
Wincent Colaiuta wrote in [ruby-talk:254933]:
> But what if I want to do some more sophisticated rake-like stuff where
> I manually specify dependencies? For example:
>
> * Start with ANTLR grammar file "Grammar.g"
>
> * Whenever this file is updated, have to run ANTLR on it and this
> regenerates new "GrammarLexer.c" and "GrammarParser.c" files
>
> * In this case want to rebuild the extension
>
> Is there a way to do this using mkmf? Or do I have to manually tweak
> the generated Makefile myself?

create_makefie in mkmf appends the content of "depend" file if
it exists, so that you can add your own rules.

--
Nobu Nakada

Jano Svitok

6/11/2007 8:15:00 PM

0

On 6/9/07, Wincent Colaiuta <win@wincent.com> wrote:
> Following the pattern I've seen in widespread use, I use rake in my
> Ruby projects for most high-level tasks (running specs, building gems
> etc) and mkmf to make C extension makefiles.
>
> mkmf works great for the simple case where you just want to compile
> some C files and link to some libraries; the default behaviour seems
> to handle most things automatically.
>
> But what if I want to do some more sophisticated rake-like stuff where
> I manually specify dependencies? For example:
>
> * Start with ANTLR grammar file "Grammar.g"
>
> * Whenever this file is updated, have to run ANTLR on it and this
> regenerates new "GrammarLexer.c" and "GrammarParser.c" files
>
> * In this case want to rebuild the extension
>
> Is there a way to do this using mkmf? Or do I have to manually tweak
> the generated Makefile myself?
>
> Cheers,
> Wincent

There's mkrf (http://rubyforge.org/pro...) aimed at replacing
mkmf generated makefile with rakefile.