Summer of Code

Posted by kev Sat, 27 May 2006 17:06:00 GMT

If you missed the announcement on ruby-talk, I’ve been accepted as one of the 10 sponsored projects for Google’s Summer of Code. I’m really excited :)

Anyway, a bit about my project “mkmf for Rake”. mkmf is a script/library/thing that is included with Ruby and is used to generate the Makefiles needed to compile C extensions for Ruby. If you look at it (please don’t, for your own sake), you can see that it has some issues:

  1. In its current state, it can’t be tested with Test::Unit easily. This makes it very hard to make changes without breaking things.
  2. It isn’t object oriented or modular, and basically can’t be reused in other projects.

mkmf needs to be rewritten but shouldn’t be modified. I’ll be writing an alternative which I hope solves the problems mkmf has, and it will use Rakefiles instead of Makefiles which should allow for things like RDoc generation easily down the road.

So here’s an opportunity for feedback (of course you can always contact me at kevin dot clark at gmail dot com if you have ideas, or on ruby-talk):

  1. What do you like about mkmf?
  2. What do you hate?
  3. What could be improved?

Posted in ,  | 2 comments


  1. Avatar trans said 1 day later:

    I’m not sure what you mean by “use Rakefiles instead of Makefiles”. I guess I always though Makesfiles were a must when compiling c/c+. But I’m not a c/c+ coder so I guess I’ve been wrong about that? Anyway, I understand the idea of accessing this new mkmf as a library for creating a Rakefile task, but I would still expect for it to accessabe and executable independent of Rake too. Not everyone uses Rake mind you.

  2. Avatar Kevin Clark said 1 day later:

    Trans: Rake and Make both are just dependency systems really. Run commands based on what is required. Because of this, Rake can be used to compile C programs and the like.

    I understand not everyone uses Rake. This will not replace mkmf for all people. However, if you’d like to have something cleaner and don’t mind using Rake, this is what you’re looking for.

    In very very long term goals, we may want to also duplicate mkmf functionality and use Make, but that’s off in the distance.

Comments are disabled