cilc ==== cilc is a CIL-to-C binding generator. It can be used to expose any CIL library to the C (and C++) world using the GObject object model and coding style. This should be of particular interest to GNOME developers who wish to make use of libraries developed in C#, perhaps Gtk# widgets, within their own C applications. Developers who use a generated binding need no specific knowledge pertaining to Mono and runtime embedding -- almost everything is done behind the scenes. Right now, cilc is in an early stage of development. See TODO for a list of pending tasks. For a demonstration, see Test.cs and demo.c to get an idea of what's going on. Then run: $ make run-test-local $ cd generated $ ./demo To make a redistributable shared object that includes the assembly, you can then: $ make clean $ make bundle=true $ rm *.dll $ ./demo Note that you must have Mono's mkbundle tool installed to use the bundle feature. If all you want to do is generate a binding for an assembly, you can simply pass the assembly name as a single argument to cilc and it will automatically generate bindings in a temporary directory, compile them using the bundle feature, and install the produced shared library in the lib/ subdirectory and the headers in include/. $ cilc Assembly.dll To tie-in with existing GOjbect hierarchies, pass pairs of pkg-config package and comma-separated namespaces. For example: If you want to use a Gtk# widget in a Gtk+ application: $ cilc Widget.dll gtk+-2.0 gtk To bind gtk-sharp, but tying it into the native hierarchy for gdk: $ cilc gtk-sharp.dll gtk+-2.0 gdk -- Alp Toker