Compilar Allegro 5 en Linux

Allegro es una librería de programación para hacer videojuegos que ha existido desde los años 90s y en un tiempo fue una librería con una presencia importante que era usada en proyectos como el emulador MAME o el sistema de juegos de pelea MUGEN. Actualmente no es tan popular pero sigue en desarrollo de manera activa. Allegro se distribuye principalmente en forma de código fuente y estas son las instrucciones para compilar el código en un sistema Linux.

Hay dos versiones principales de Allegro que aún reciben soporte de parte de la comunidad de desarrolladores: Allegro 4, que fue lanzado originalmente en el año 2000 aún recibe actualizaciones de seguridad y corrección de bugs pero su uso se recomienda únicamente para compilar antiguos programas de Allegro; por otro lado, Allegro 5 es la versión más reciente y es la versión recomendada para nuevos usuarios o para el desarrollo de nuevos juegos ya que ofrece múltiples ventajas sobre Allegro 4, como aceleración por hardware y soporte nativo para OpenGL (y DirectX en Windows).

Siendo usuario de Allegro desde hace algunos años, ya había tenido oportunidad de compilarlo en Windows usando el compilador MinGW pero es la primera vez que hago el proceso de compilarlo en Linux. Afortunadamente, gracias a cmake, un sistema multiplataforma de asistencia para la compilación, el proceso es fácil y relativamente similar a la forma en que se compilaba en Windows.

Primero que nada, hay que descargar el código de Allegro; actualmente hay dos ramas de Allegro 5: la rama estable Allegro 5.0.x y la rama de desarrollo (WIP) Allegro 5.1.x. Para obtener las últimas funciones de Allegro, recomiendo usar la versión 5.1.x que se puede descargar desde http://liballeg.org/ pero el proceso de compilación es el mismo si usas la versión 5.0. La descarga de Allegro consiste en un archivo comprimido que contiene el código fuente. Debes descomprimir el archivo antes de continuar.

Para poder compilar Allegro debes instalar el paquete cmake; la forma más sencilla de hacerlo es instalarlo desde el gestor de paquetes de tu distro de Linux. Cuando hayas instalado cmake puedes verificar que se haya instalado correctamente ejecutando el siguiente comando que debe imprimir en la pantalla la información sobre la versión de cmake instalada:

cmake –version

Cuando el cmake esté correctamente instalado, puedes usar la ventana de terminal para ir a la carpeta en la que descomprimiste el código fuente de Allegro (en mi caso por ejemplo, ~/allegro-5.1.12.0) y crear una nueva carpeta llamada build en la que se almacenarán los archivos temporales durante el proceso de compilación:

cd ~

cd allegro-5.1.12.0

mkdir build

cd build

Dentro de la carpeta build debes ejecutar el comando cmake indicando la ubicación del archivo de configuración de cmake CmakeLists.txt. Eso significa que para nuestra instalación de Allegro y ya que estamos en Linux sólo debemos ejecutar el siguiente comando (en Windows debes especificar un generador para cmake):

cmake ..

Nota: Si encuentras errores al ejecutar cualquiera de los comandos, sigue leyendo al final de este post para ver algunos errores que se me presentaron al instalar Allegro en Linux.

Cuando el comando cmake se complete exitosamente, es hora de comenzar el proceso de compilación usando el comando make nativo de Linux y que, junto con el compilador de C/C++, debe venir instalado de manera predeterminada en cualquier distro de Linux. Simplemente ejecuta desde la carpeta build el siguiente comando:

make

Verás que el proceso de compilación avanza mientras compila el código fuente y genera las librerías de Allegro. Espera unos minutos mientras el proceso se completa y entonces estás listo para instalar las librerías de Allegro en las rutas del compilador con el siguiente comando:

make install

Al terminar el proceso de instalación, las librerías están listas para que puedas usarlas en tus programas de Allegro. Puedes verificar que la instalación finalizó con éxito ejecutando algunos de los programas de ejemplo en la carpeta build/examples.

Algunos errores pueden presentarse durante el proceso de preparación; por ejemplo, al ejecutar cmake por primera vez, obtuve este error:

CMake Error at CMakeLists.txt:608 (message):

X11 support currently requires OpenGL support.

Este error indica que cmake no pudo encontrar las librerías de OpenGL en mi PC (toma en cuenta que las librerías necesarias para ejecutar un programa de OpenGL y las que se requieren para desarrollar programas que usen OpenGL son dos cosas distintas). Así que para corregir este error se tienen que instalar las librerías de desarrollo para OpenGL usando el gestor de paquetes de tu distro de Linux; básicamente sólo tienes que instalar el paquete libgl1-mesa-dev pero también puedes elegir de forma opcional instalar los paquetes libglu1-mesa-dev y freeglut3-dev que definen funciones para simplificar el desarrollo de aplicaciones basadas en OpenGL.

Después de instalar los paquetes de desarrollo de OpenGL y volver a ejecutar el cmake, obtuve otro error, esta vez sobre la librería Xcursor:

CMake Error at CMakeLists.txt:620 (message):

X11 support requires Xcursor library.

Como antes, es necesario usar el gestor de paquetes para instalar la librería de desarrollo de Xcursor, libxcursor-dev. Después de instalar la librería de desarrollo de Xcursor, obtuve el mismo error al ejecutar nuevamente el cmake; esto probablemente se debe a un error en el script de cmake de Allegro y eliminar todos los archivos en la carpeta build y ejecutar nuevamente el cmake permitió que esta vez el proceso se completara con éxito:

— Configuring done

— Generating done

— Build files have been written to: /home/monstruosoft/allegro-5.1.12.0/build

Si observas la salida del comando cmake en la ventana de terminal, es probable que notes algunas advertencias sobre librerías que no se encontraron; estas librerías no son esenciales para compilar la versión básica de Allegro pero si están instaladas pueden proporcionar a Allegro más características como soporte para fuentes TTF, imágenes PNG y JPEG, audio en formato OGG Vorbis, etc.. En próximos post trataré de describir el proceso para instalar esas librerías y recompilar Allegro con el soporte para las mismas.

Si al instalar las librerías de desarrollo de OpenGL únicamente instalaste el paquete libgl1-mesa-dev, es probable que al iniciar el proceso de compilación recibas un error por la falta del archivo GL/glu.h; esto significa que si bien la librería GLU es opcional en el desarrollo de aplicaciones OpenGL, es requerida por Allegro, así que debes instalar el paquete libglu1-mesa-dev. Si tuviste este problema, simplemente vuelve a ejecutar cmake y make después de instalar la librería GLU.

Al ejecutar el comando make install recibí un mensaje de error debido a que no tenía permiso para escribir en la carpeta /usr/local que es en donde se instalan de manera predeterminada las librerías. Hay varias formas de solucionar este problema: la primera es ejecutar el comando make install como root pero no es recomendable hacerlo de esta manera; la segunda opción es agregar tu nombre de usuario de Linux al grupo staff, eso te permitirá escribir a las carpetas de la ruta del compilador como /usr/local; finalmente, puedes instalar las librerías a en tu carpeta personal, por ejemplo /home/monstruosoft/libs, especificando la ruta en la que quieres instalar las librerías como parte del comando make install:

make install DESTDIR=/home/monstruosoft/libs

Si no estás seguro de qué opción usar, te recomiendo elegir la última e instalar las librerías en tu carpeta personal.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s