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

From: Jon Rafkind (rafkind at cs.utah.edu)
Date: Fri Apr 27 17:13:52 EDT 2012

This is essentially what I was doing to distribute Allegro4. I'll put the code on github so you can see how it loaded the ffi libraries.

(FYI, compiling all the libraries and keeping things working was a huge pain, especially when something changes in the ffi library and you need to recompile)

On 04/27/2012 02:56 PM, Danny Yoo wrote:
> 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
> platform.
> Does that sound about right?
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users

Posted on the users mailing list.