______ ___ ___ /\ _ \ /\_ \ /\_ \ \ \ \L\ \\//\ \ \//\ \ __ __ _ __ ___ \ \ __ \ \ \ \ \ \ \ /'__`\ /'_ `\/\`'__\/ __`\ \ \ \/\ \ \_\ \_ \_\ \_/\ __//\ \L\ \ \ \//\ \L\ \ \ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/ \/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/ /\____/ \_/__/ Información específica para Unix. Véase readme.txt para un punto de vista más general. Lea también en docs/build/linux.txt información específica para Linux. ==================================== ============ Notas Unix ============ ==================================== En Linux hay dos drivers de sistema diferentes -- uno para ejecutar bajo X, y otro cuando no hay X. Este fichero describe la versión X, que en teoría debería ser totalmente portable a cualquier variante Unix. Para más información sobre las rutinas de consola específicas de Linux, lea docs/build/linux.txt. =========================================== ============ Software required ============ =========================================== Dado que está usando un Sistema Operativo Real, hay una gran posibilidad de que ya tenga todas las herramientas de desarrollo necesarias, al menos para compilar e instalar la librería. No obstante, podría necesitar autoconf si necesita hacer cambios que requieran regenerar el script de configuración (configure). ============================================ ============ Instalando Allegro ============ ============================================ Si ha descargado Allegro en formato .tar Unix, ya estará todo configurado para funcionar. Si descargó la versión .zip para DOS o Windows, tendrá que convertir todo al formato Unix antes de poder empezar, ejecutando: chmod +x fix.sh ./fix.sh unix Desde aquí todo el proceso de instalación sigue los patrones habituales de instalación bajo Unix. Primero configure el software: ./configure Eso debería crear automáticamente las dependencias. Ahora compile todo: make Y finalmente instálelo (como root -- lea más abajo información sobre qué hacer si no puede ser root): su -c "make install" Puede que le interese instalar las páginas man: su -c "make install-man" Y quizás también la documentación en formato info: su -c "make install-info" El script de configuración tiene muchas opciones para cambiar las rutas de instalación, decidiendo qué partes de la librería desea incluir o excluir, y especificando si desea crear la librería optimizada, para depurar, etc. Ejecute ./configure --help para obtener una lista de opciones. Las opciones realmente útiles son: --enable-static - crea una librería de enlazado estático --disable-shared - desactiva la creación de librerías dinámicas --enable-dbglib - crea una librería con información para depurar --enable-dbgprog - enlaza los programas de ejemplo con la librería para depurar Estas opciones funcionan en combinaciones, por ejemplo, si usa --enable-static pero no --disable-shared, creará tanto la versión estática de Allegro como la versión enlazada dinámicamente. Por defecto, Allegro se instalará probablemente en /usr/local dentro de su sistema de archivso. Si esto no ha sido configurado en su máquina, puede que tenga problemas cuando los programas que usen Allegro no sean capaces de encontrar la librería. Puede solucionar esto añadiendo "/usr/local/lib" a su fichero /etc/ld.so.conf, y ejecutando después ldconfig. Si está compilando una versión CVS de Allegro, necesitará generar el script de configuración: autoconf También necesitará: make depend Para crear los ficheros de dependencia. ======================================== ============ Usando Allegro ============ ======================================== Las opciones de enlazado de Allegro son bastante complicadas, ya que para versiones estáticas de la librería, dependiendo de la configuración, puede ser necesario incluír otras librerías (X, SVGAlib), aparte de la propia Allegro, y para todas las versiones de la librería hay dos partes -- una que es siempre estática, y otra que a veces es enlazada dinámicamente. Para evitar que tenga que escribir los comandos de enlazado usted mismo, la instalación rea un script, allegro-config, que imprimirá la línea de comando adecuada. Puede usar este script dentro de una sustitución por comillas, por ejemplo: gcc mifichero.c -o miprograma `allegro-config --libs` O si desea compilar una versión para depurar de su programa, asumiendo que haya instalado la versión para depurar de Allegro: gcc mifichero.c -o miprograma `allegro-config --libs debug` Novatos del Unix, ¡tomad nota de que eso son las comas `, no las habituales '! También hay otros parámetros para imprimir el número de versión de Allegro o para especificar los directorios de instalación. Ejecute allegro-config sin argumentos para ver la lista completa de opciones. ¡No olvide que necesita usar la macro END_OF_MAIN() justo tras su función main()! ========================================================= ============ Compatibilidad binaria dinámica ============ ========================================================= Allegro puede interactuar con muchas otras librerías -- en particular, varias librerías X y SVGAlib. Si enlaza estáticamente con Allegro, su programa dependerá de todas estas librerías, por lo que también querrá enlazar estáticamente con ellas. Si enlaza dinámicamente con Allegro, si binario sólo dependera de Allegro (y cosas como libc); en este caso su binario es portable con más facilidad, pero depende mucho de cómo fue configurado Allegro. La forma más sencilla de hacer su programa portable es distribuirlo como código fuente. De este modo los usuarios pueden configurar Allegro a su gusto, y siempre acabarán usando el conjunto correcto de librerías para su sistema particular. Habiendo dicho esto, si activa el soporte de módulos dinámicaos (por defecto), entonces debería tener pocos (o ningún) problemas. Nota de seguridad: asegúrese de que los usuarios no puedan escribir en los directorios `/usr/local/lib/allegro/' o `/usr/lib/allegro/'. Allegro busca ahí los módulos que carga dinámicamente, y los carga según estén indicados en el fichero `modules.lst' durante la iniciación. Lea también el documento de compatibilidad ABI para más información. =================================================== ============ ¿Qué hacer si no es root? ============ =================================================== Allegro puede ser instalado en un sistema donde no tenga privilegios de root. Usando la opción estándar `--prefix' del script de configuración puede modificar el directorio destino de la instalación -- por ejemplo, puede escribir: ./configure --prefix=$HOME Sea cuidadoso, --prefix=~ funciona en bash pero no en tcsh -- es más seguro usar $HOME si no está seguro. Los binarios serán instalados en el subdirectorio `bin' de su directorio de usuario, las librerías en `lib', etc. Ahora necesita configurar su sistema para que sepa dónde encontrar ciertas cosas, si esto no lo ha hecho ya. Quizás le interese añadir estos comandos a su .bash_profile o script de iniciación similar. Si usa un intérprete de tipo csh, puede usar `setenv', no `export'. * Su PATH debe incluír al directorio `bin': export PATH=$PATH:$HOME/bin * Si está usando Allegro como librería dinámica, necesita indicarle al enlazador dinámico dónde encontrar las librerías de Allegro: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/lib * GCC necesita saber dónde encontrar los ficheros de cabecera y los ficheros de la librería: export C_INCLUDE_PATH=$C_INCLUDE_PATH:$HOME/include export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:$HOME/include export LIBRARY_PATH=$LIBRARY_PATH:$HOME/lib (Nota: de hecho `allegro-config' puede evitarle este último paso, si aparte de usarlo para enlazar también lo usa para compilar: gcc -c mijuego.c `allegro-config --cflags` gcc -o mijuego mijuego.o `allegro-config --libs` Pero es mejor activar también las variables de entorno. La mayoría de las personas no se preocuparán de usar `allegro-config' al compilar.) Alternativamente, puede obtener los cambios de entorno requeridos de allegro-config, tecleando en la línea de comando: allegro-config --env Puede concatenar la salida a su .bash_profile, que es casi lo mismo que añadir los comandos anteriores. Note que el propio `allegro-config' está en el directorio `bin' de la instalación, así que se deberá asegurar de que ese directorio está en su PATH antes de ejecutar `allegro-config' o indica la ruta exáctamente, por ejemplo: ~/bin/allegro-config --env >> ~/.bash_profile ================================================= ============ Notas sobre los drivers ============ ================================================= * Sistema: Durante la iniciación, Allegro intentará conectarse a un servidor X. Si no puede encontrar uno, se dará por vencido y en su lugar intentará usar un driver de sistema diferente (como el driver de Linux en consola). Esto significa que para ejecutar programas en X, deberá lanzarlos desde una sesión X, o tendrá que haber configrado previamente la variable de entorno DISPLAY para indicar qué servidor desea usar. * Gráficos: Hay tres drivers gráficos diferentes para X: GFX_XWINDOWS usa sólo llamadas X estándar, mientras que GFX_XDGA y GFX_XDGA2 usan la estensión DGA de XFree86, que permite escribir directamente en la superficie de la pantalla. DGA es normalmente mucho más rápido que el modo X estándar, pero necesitará permisos de superusuario y no funcionará de forma remota. GFX_XDGA usa la extensión DGA 1.0 que provee XFree86 3.3.x, y no producirá programas que se comporten tan bien en modo ventana como los del driver GFX_XWINDOWS; ambos drivers DGA 1.0 y X pueden ejecutarse en ventana como a pantalla completa. GFX_XDGA2 usa el nuevo DGA 2.0 que viene con XFree86 4.0.x, y se ejecuta directamente a pantalla completa (siempre y cuando las X estén configuradas para soportar la resolución solicitada), y además usará aceleración por hardware si está disponible. Si su programa solicita una profundidad de color diferente a la actual usada por X, Allegro emulará la profundidad que solicitó, así que su programa seguirá funcionando, aunque un poco más lento que si las profundidades de color coincidiesen. Para saber si está funcionando la emulación, mire en el cambio gfx_driver-desc (que es mostrado en la mitad de la pantalla por el programa tests/test). Si dice "matching", los formatos de color son idénticos, y no se requiere conversión. Si dice "fast", algunas conversiones simples están siendo ejecutadas, pero nada muy complejo. Si dice "slow", tendrá problemas :-) Esto no es válido para el driver DGA 2.0, el cual cambia el modo de vídeo a la resolución y profundidad de color solicitadas. ========================================== ============ Notas sobre Irix ============ ========================================== Si el compilador le escupe extrañas líneas como las siguientes cuando intenta compilar su programa con Allegro: include/allegro/alcompat.h:59: conflicting types for `ceilf' /usr/include/math.h:311: previous declaration of `ceilf' include/allegro/alcompat.h:60: conflicting types for `floorf' /usr/include/math.h:333: previous declaration of `floorf' include/allegro/alcompat.h:63: conflicting types for `tanf' /usr/include/math.h:176: previous declaration of `tanf' include/allegro/alcompat.h:64: conflicting types for `acosf' /usr/include/math.h:106: previous declaration of `acosf' include/allegro/alcompat.h:65: conflicting types for `asinf' /usr/include/math.h:116: previous declaration of `asinf' entonces debería definir ALLEGRO_NO_FIX_ALIASES antes de la línea #include .