Amkel

Wed, 20 Jun 2007

Here is a program for all you people who are sick of writing makefiles. If you don't know what a makefile is, then you can skip this one. Amkel is a quick and dodgy build system which can build C projects or Ruby projects. You write:

amkel my_file.c

And it will figure out all the dependencies for my_file.c, compile them (if they have changed), link them (if needed), and give you a new binary called my_file. All this without you learning another build system. Of course, building most stuff is more complicated than that, but I find that I have so many small programs where figuring out everything that needs to be done can be done just by reading the #includes.

If you are wondering what I mean by "build" when it comes to a ruby project, then it just means package into a single executable file. This is all done using the magic of tar2rubyscript and rubyscript2exe (which depsite the name, can produce ELF binaries too). Note that the executable created by amkel will include all the contents of the directory the script you give it is in (so if you had a 'hello world' program in your home directory and you ran amkel hello.rb then the output file would contain everything in your home directory. Most likely this isn't what you wanted. If you feel like writing an improved handler for Ruby (or C) then do so.

So, it isn't really meant to be a replacement for make, but if you keep your project simple enough (every .c file has a corresponding .h and nothing fancy needs to be done) then maybe you can have a big program which is build with amkel. I'm not holding my breath though. I will add stuff to it as I need stuff (e.g. currently the only C library recognised is the standard maths library, but they are easy to add), I think there are plenty of more interesting things to do than to work on build systems.

Get the source here: amkel initial release version epsilon (GPL2)

Feel free to email me patches and I'll do my best to keep a current version available here.

Name & email are optional. Email will not be obfuscated.
HTML tags will be removed except hyperlinks.
 

About

I'm a nerd living in Sydney. This is a place where I can write stuff about my interests and not care that no one else is reading.

I like music, maths, programming, pretty pictures, filters and other good things.

(more info)

It should be fairly obvious that this isn't connected to my employer at all.

Email me (not a catchpa)

Email policy

Subscribe

RSS Feed RSS

Get an aggregator

Liferea (Linux)

Vienna (OSX)

Feedreader (Windows)

Google Reader (Web based)

I've only used Liferea, so I can't vouch for the other ones.

About this site

This site runs a (modified) version of blosxom.

The host is GeekISP, and they seem to do an excellent job.