[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 18:40:52 EDT 2012

I put all the code here https://github.com/kazzmir/racket-allegro-4

It might not completely work, ill fix any minor bugs asap.

On 04/27/2012 03:13 PM, Jon Rafkind wrote:
> 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
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users


Posted on the users mailing list.