Compilando crrcsim en MacOS X Snow Leopard

Tengo desde hace un tiempo una maqueta de radiocontrol, un Multiplex Easy Start, que he intentado volar un par de veces, con resultado de diversos choques, ya que no conocía a nadie que me pudiese enseñar a volarlo. Buscando información por los foros de aficionados a los aviones de radiocontrol, vi que había algunos simuladores que permitían aprender poco a poco el manejo de un avión de este tipo. Muchas emisoras tienen una salida que le permite mandar información a un ordenador a través de una interfaz USB o serie y de esta manera controlar el simulador. La emisora que tiene el kit que me compré no tenía demasiada información sobre la posibilidad de conectar la emisora al ordenador, así que me hice con un simulador de vuelo, que realmente tiene una versión del FMS, que además tiene el modelo de avión que yo tengo.

Mi primera opción fue utilizar bajo Wine el simulador FMS. Tras varias pruebas infructuosas compilando Wine (en Snow Leopard no es evidente como hacerlo), lo probé, funcionaba correctamente la instalación, pero la simulación acababa con un error de acceso en memoria.

Tras buscar algo más de información, encontré un simulador opensource, crrcsim, que podía compilarse bajo MacOS X. Pensando que la cosa iba a ser el clasico ./configure;make;make install, me puse a compilarlo, y es donde empiezan los problemas.

Para empezar, crrcsim depende de dos librerías, SDL (Simple Media Layer) y plib (Portable Games Library). Me baje el código fuente y empecé a compilarlas:

SDL

Las SDL se compilan limpiamente con la siguiente secuencia de comandos:

env CFLAGS=»-arch i386 -arch x86_64″ CXXFLAGS=»-arch i386 -arch x86_64″ LDFLAGS=»-arch i386 -arch x86_64″ ./configure –prefix=/usr/local
make
(como un usuario administrador)
make install

Esta secuencia de comandos nos va a compilar la versión de 32 y 64 bits de las librerías.

PLIB

El problema de las PLIB es que usa bajo MacOS X el API de Carbon Sound Manager, que no está soportado en Snow Leopard para compilar programas bajo 64 bits. Por tanto esta librería la vamos compilar con una versión de 32 bits, y todo el simulador lo vamos a tener que compilar en 32 bits. Para ello:

env CFLAGS=»-arch i386″ CXXFLAGS=»-arch i386″ LDFLAGS=»-arch i386″ ./configure –prefix=/usr/local
make

El problema, es que al menos en la versión 1.8.5 de la librería, no compilará correctamente el fichero src/ssg/ssgLoadFLT.cxx. La solución a este error es muy sencilla, editar el fichero y añadir al principio una línea que esa #include . Con esta modificación volvemos a teclear make y debe de compilar sin problemas. Por último, con un make install, debe instalar los ficheros de cabecera y las librerías de desarrollo bajo los directorios de /usr/local

Compilar crrcsim

Una vez que tenemos las librerías instaladas, es necesario compilar el simulador. Tras varias pruebas, hay que realizar la configuración con la siguiente línea de comandos:

env CFLAGS=»-arch i386″ CXXFLAGS=»-arch i386 -framework OpenGL» LDFLAGS=»-arch i386 -L/usr/X11/lib -lGLU -lGL» ./configure –prefix=/usr/local
make
make install

Básicamente le decimos al compilador que queremos un binario de 32 bits y que use el framework OpenGL, para evitar ciertos errores de linkado. Aparte, también le pasamos de manera explícita donde están parte de las librerías de OpenGL en MacOS X

Desde el directorio donde están las fuentes, podremos ejecutar el simulador de vuelo con crrcsim :). Dejo para otro post como debemos de configurarlo.


Technorati Tags: macosx,rcmodel

Deja un comentario

Tu dirección de correo electrónico no será publicada.