[racket] What's involved in distributing a game that uses Allegro video game bindings?

From: Danny Yoo (dyoo at cs.wpi.edu)
Date: Fri Apr 27 16:56:56 EDT 2012

Let me mutter for a bit and see if this all makes sense.

* Jon Rafkind's bindings (https://github.com/kazzmir/racket-allegro-5)
use the FFI and assume the presence of the Allegro 5 shared libraries.

* If I wanted to build binary packages for the main platforms (Linux,
Windows, Mac OS X) that does not assume these bindings are already
installed, then I must distribute the shared libraries with my
program, too.

* That means I should somehow obtain or generate the shared libraries
for the three platforms.  I can get the Windows ones easily from
http://www.allegro.cc/files/, and generate the Linux and Mac OS X ones
by building from source.

* I will need to adjust Jon's FFI bindings to use the correct set of
shared libraries based on (system-type).

* I should use 'define-runtime-path' for each of the shared libraries,
so that 'raco distribute' can properly collect them.  Since the
libraries are platform-specific, I should do a compile-time
computation to include the right set of libraries based on the current

Does that sound about right?

Posted on the users mailing list.