______ ___ ___ /\ _ \ /\_ \ /\_ \ \ \ \L\ \\//\ \ \//\ \ __ __ _ __ ___ \ \ __ \ \ \ \ \ \ \ /'__`\ /'_ `\/\`'__\/ __`\ \ \ \/\ \ \_\ \_ \_\ \_/\ __//\ \L\ \ \ \//\ \L\ \ \ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/ \/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/ /\____/ \_/__/ Notas para construir la versión MingW32/Cygwin de Allegro. Escrito por Henrik Stokseth. Robert J Ohannessian añadió actualizaciones a las instrucciones de instalación y un ejemplo de cómo usar Dev-C++ con Allegro. Véase readme.txt para un punto de vista más general. ========================================== ============ notas de MingW32 ============ ========================================== Esto es una versión completa de Allegro para MingW32. Su construcción no depende de las librerías DLL compiladas con MSVC, ya que puede crearlas por sí mismo. Me agrada decir que usando Allegro y otras herramientas profesionales y libres pueden crearse programas para la plataforma Win32. En esta nota me gustaría agradecer a Peter Puck que haya hecho esto realidad y que acabase lo que yo empecé. ¡Disfruten! El ejemplo de salvapantallas es construido, pero debe copiar el archivo scrsave.scr a la carpeta de windows para probarlo adecuadamente. Si tiene instaladas tanto las utilidades GNU como el Bash GNU, ajuste la variable de entorno UNIX_TOOLS (ajuste UNIX_TOOLS=1) para que funcione la compilación. Esto sucede porque la herramienta make GNU usará automáticamente sh.exe en lugar de command.com si lo encuentra accesible. Ejecutar 'make depend' y 'fixdll.bat' requiere que se haya instalado el programa GNU sed. Ejecutar 'make clean' y 'make uninstall' requiere que se tengan instaladas las herramientas de archivo (fileutils) GNU. Puede descargar algunas utilidades extra para MingW32 desde 'http://agnes.dida.physik.uni-essen.de/~janjaap/mingw32/download.html' y 'ftp://ftp.franken.de/pub/win32/develop/gnuwin32/mingw32/porters/Mikey/'. Si, en cualquier momento del proceso de instalación, obtiene un mensaje del tipo 'Out of Environment space' (sin espacio para entorno), diríjase las F.A.Q. (P.U.F., preguntas usualmente formuladas) de Allegro para saber cómo solucionarlo. ============================================================================= ============ Obtener e instalar el compilador y las herramientas ============ ============================================================================= Tienes cuatro formas diferentes de usar MingW32 y Allegro en tu ordenador. - La sección 'Preparando MingW32 para construir Allegro' describe cómo preparar las herramientas de línea de comandos MingW32, que es la elección para aquellos a los que les guste trabajar en linea de comandos. - La sección 'Preparando Dev-C++ para construir Allegro' describe cómo prepara las herramientas de línea de comandos MingW32 y el entorno de desarrollo Dev-C++. Esta es la elección de los que prefieren trabajar en un entorno gráfico de desarrollo. - La sección 'Preparando Cygwin para construir Allegro' describe cómo preparar el compilador Cygwin para construir Allegro. Cygwin ofrece un maduro entorno de estilo UNIX para trabajar. - La última sección 'Compilación cruzada' describe cómo preparar las herramientas de línea de comando MingW32 para compilar programas Win32 desde sistemas Linux. Nota: Será necesario un programa para descomprimir archivos de tipos .zip, .tar.gz y, opcionalmente, .tar.bz2. Se recomienda PowerArchiver (shareware), el cual puede descargar de: 'http://www.powerarchiver.com'. =================================================================== ============ Preparando MingW32 para construir Allegro ============ =================================================================== Para disponer de MingW32, necesita obtener las siguientes distribuciones de internet. Por favor, no descomprima ni instale nada hasta el paso 3. 1) Descargue la distribución MingW32 completa desde 'http://www.mingw.org'. Debería descargar el paquete completo en lugar de varios pequeños, salvo que quiera mover archivos a mano. :-) En el momento de escribir esto (Noviembre de 2001), la versión 1.1 es la más nueva. Aquí tiene un enlace directo: 'http://prdownloads.sourceforge.net/mingw/MinGW-1.1.tar.gz' 2) Obtenga el SDK DirectX minimal para Mingw32. (dx70_mgw.zip) Se puede descargar de 'http://alleg.sourceforge.net/wip.html'. Por favor, no lo confunda con dx70_min.zip. 3) Instale la distribución MingW32 del paso 1. Recomendamos descomprimirlo en 'c:\mingw32' (los pasos siguientes asumen que se ha hecho así). No instale nada en un directorio con espacios, símbolos de suma o resta, barras de división o cualquier otra cosa que pueda confundir al compilador. Eso va de aviso por si lo quería meter en C:\Archivos de Programa. 4) Descomprima el archivo del paso 2 en 'c:\mingw32'. Sobreescriba los archivos repetidos. Nota: Si se usa una copia antigua de MingW32 donde los subdirectorios Include y Lib no existen, entonces descomprima el archivo en el subdirectorio 'c:\mingw32\i386-mingw32msvc'. 5) Ahora es necesario añadir 'c:\mingw32\bin' al *comienzo* de la variable PATH. Si usa Windows 9x, puede añadir la línea 'path c:\mingw32\bin;%PATH%' al final del archivo 'c:\autoexec.bat'. Puede usar 'edit', 'msconfig', 'sysedit', 'notepad' o cualquier otro editor capaz de editar texto ASCII. Si usa Windows NT (lo que incluye al 2000 y al XP), entonces abra el Panel de Control, pulse sobre el accesorio 'Sistema', la sección 'Avanzada', y, finalmente, el botón 'Entorno'. Seleccione la línea 'PATH=', y añádale 'c:\mingw32\bin'. 6) De la misma forma añada la línea 'set MINGDIR=C:\mingw32' a su 'c:\autoexec.bat'. 7) ¡Ahora, reinicie! Pruebe la instalación tecleando en la línea de comandos: 'gcc -v'. La respuesta debe ser similar a: Reading specs from C:\MINGW32\BIN\..\lib\gcc-lib\i386-mingw32msvc\2.95.3\specs gcc version 2.95.3 20010726 (release) (Si no conoce otra manera, pulse Inicio -> Ejecutar y escriba 'command'. En Windows 2000 y XP debe escribir 'cmd'.) =================================================================== ============ Preparando Dev-C++ para construir Allegro ============ =================================================================== Algunos prefieren usar la distribución Dev-C++ para crear programas con Allegro. Dev-C++ es un entorno de desarrollo integrado (IDE) muy bonito e incluye un compilador MingW32 actualizado. Por favor, no descomprima o instale nada hasta el paso 4. Obteniendo lo que necesita: 1) Descargue la distribución MingW32 completa de 'http://www.mingw.org'. Debería descargar el paquete completo en lugar de varios pequeños, salvo que quiera mover archivos a mano. :-) En el momento de escribir esto (Noviembre de 2001), la versión 1.1 es la más nueva. Aquí tiene un enlace directo: 'http://prdownloads.sourceforge.net/mingw/MinGW-1.1.tar.gz' 2) Descargue el entorno de desarrollo Dev-C++ 4 (sin compilador Mingw y librerías) desde 'http://www.bloodshed.net/dev/download.html'. De nuevo, asegúrese de que no instala nada hasta que llegue al paso 4. 3) Obtenga el SDK DirectX minimal para Mingw32. (dx70_mgw.zip) Se puede descargar de 'http://alleg.sourceforge.net/wip.html'. Por favor, no lo confunda con dx70_min.zip. Proceso de instalación: 4) Instale el paquete del paso 1. Se recomienda descomprimirlo en la carpeta 'C:\Dev-Cpp' (los pasos siguientes asumen que esa es la que va a usarse). No instale nada en un directorio con espacios, símbolos de suma o resta, barras de división o cualquier otra cosa que pueda confundir al compilador. Eso va de aviso por si lo quería meter en C:\Archivos de Programa. 5) Instale el paquete del paso 2 en la carpeta 'C:\Dev-Cpp'. Sobreescriba cualquier archivo existente con los nuevos. 6) Descomprima el archivo del paso 3 a 'C:\Dev-Cpp'. Sobreescriba cualquier archivo existente con los nuevos. 7) Ahora necesita añadir 'C:\Dev-Cpp\bin' al *comienzo* del PATH (ruta de búsqueda). Si usa Windows 9x, puede añadir la línea 'path c:\Dev-Cpp\bin;%PATH%' al final del archivo 'c:\autoexec.bat'. Puede usar 'edit', 'msconfig', 'sysedit', 'notepad' o cualquier otro editor capaz de edita texto ASCII. Si usa Windows ME, necesitará ejecutar 'msconfig', seleccionar la sección 'Entorno' y añadir 'c:\Dev-Cpp\bin' a la variable PATH. Si usa Windows NT (lo que incluye al 2000 y al XP), entonces abra el Panel de Control, pulse sobre el accesorio 'Sistema', la sección 'Avanzada', y, finalmente, el botón 'Entorno'. Seleccione la línea 'PATH=', y añádale 'c:\Dev-Cpp\bin'. 8) De la misma forma añada la línea 'set MINGDIR=C:\Dev-Cpp' a su 'c:\autoexec.bat', o a su entorno. 9) ¡Ahora, reinicie! Compruebe la instalación tecleando desde la línea de comando lo siguiente: 'gcc -v'. La respuesta debe ser similar a: Using builtin specs. gcc version 2.95.2 19991024 (release) (Pulse en Inicio -> Ejecutar y teclee "command" o "cmd" para tener una linea de comandos.) 10) Ahora siga leyendo un poco más abajo las instrucciones sobre instalar Allegro y un programa de ejemplo. ================================================================== ============ Preparando Cygwin para construir Allegro ============ ================================================================== 1) Obtenga los paquetes que forman Cygwin. Obtenga setup.exe de 'http://sources.redhat.com/cygwin/'. Inicie el programa de configuración y descargue los paquetes: bash, binutils, cygwin, fileutils, gcc, gdb, login, make, man, mingw, sed, sh-utils, texinfo, textutils y w32api. Instale los paquetes. El resto de la instalación supone que se ha instalado en 'c:\cygwin'. 2) Obtenga el kit de desarrollo (SDK) minimal de DirectX 7 para MingW32. (dx70_mgw.zip). Descárguelo de 'http://alleg.sourceforge.net/wip.html' y descomprímalo en un direcxtorio temporal, por ejemplo 'C:\Temp'. Mueva el contenido de 'C:\Temp\lib' a 'C:\cygwin\lib\w32api', y el de 'C:\Temp\include' a 'c:\cygwin\usr\include\w32api'. 3) Sitúe el texto siguiente en '/etc/profile' (c:\cygwin\etc\profile): export ALLEGRO_USE_CYGWIN=1 export MINGDIR=/usr/local 4) Inicie su entorno BASH shell de cygwin, que puede encontrar tanto en su escritorio como en el menú inicio. Asegúrese de que /bin/sh existe, si no es así, ejecute: 'ln -s /bin/bash.exe /bin/sh.exe'. 5) Ejecute './fix.sh mingw32'. Esto tardará un poco... Pruebe la instalación tecleando en la linea de comandos del entorno BASH: 'gcc -v'. La respuesta debe ser similar a: Reading specs from /usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-5/specs gcc version 2.95.3-5 (cygwin special) ============================================= ============ Compilación cruzada ============ ============================================= Breve ejemplo de como preparar un sistema de compilador cruzado basado en MingW32: 1) Descargue el compilador cruzado precompilado MingW32 cross-compiler de: 'http://www.devolution.com/~slouken/SDL/Xmingw32/' Descomprímalo en '/usr/local/'. Si lo sitúa en cualquier otro sitio, deberá editar el archivo 'xmake.sh' y substituir XC_PATH y INSTALL_BASE con los nombres apropiados. 2) Obtenga el SDK DirectX minimal para Mingw32. (dx70_mgw.zip) Se puede descargar de 'http://alleg.sourceforge.net/wip.html'. Descomprímalo en '/usr/local/cross-tools/i386-mingw32msvc/'. Asegúrese que convierte todos los archivos de texto al estilo unix (con unzip -a) o el preprocesador se quejará. 3) Ejecute './fix.sh mingw32 --dtou'. Ha terminado los preparativos. 4) Ya puede ejecutar './xmake.sh' para construir la biblioteca Allegro y ejecutar './xmake.sh install' como superusuario para instalar Allegro. Puede usar 'xmake.sh' como usaría 'make' para compilar todo el material que acompaña a Allegro. Por ejemplo: Para obtener la documentación puede ejecutar './xmake.sh docs'. ========================================== ============ Instalar Allegro ============ ========================================== Instrucciones de cómo construir la versión MingW32 de Allegro paso a paso. Se asume que has descomprimido allegro a c:\allegro. Primero se configura Allegro escribiendo en la línea de comandos lo siguiente: (Pulse en Inicio -> Ejecutar y teclee "command" o "cmd" para tener una linea de comandos.) cd c:\allegro fix.bat mingw32 Por defecto se construye la versión de Allegro enlazada dinámicamente, pero si desea obtener la versión enlazada estáticamente (sus programas serán más grandes pero no requerirán el archivo DLL), escriba en la línea de comandos: SET STATICLINK=1 De la misma forma podemos escribir una de las líneas siguientes para obtener la versión de depuración o la de perfilado de la biblioteca: SET DEBUGMODE=1 SET PROFILEMODE=1 Ahora estamos preparados para crear la biblioteca Allegro . Teclee: make Una vez que la compilación ha terminado, puede recuperar algo de espacio en disco tecleando "make compress", que usa el programa UPX para comprimir los archivos ejecutables y las .dll optimizadas. Antes de ejecutar "make compress", se debería haber fijado la variable de entorno UPX_BIN a la dirección correcta de upx.exe. Se tendrá que ejecutar "make compress" antes de "make install" si se desea que sea la .dll comprimida la que se sitúe en la carpeta windows. Para liberar aún más espacio en disco, se puede ejecutar "make clean" para eliminar todos los ficheros temporales y la documentación en formato HTML. Y entonces, el último paso: make install ¡Ahora se tiene instalado tanto mingW32 como Allegro! Mire el resto de la documentación y los ejemplos para aprender más de ella. ======================================== ============ Usando Allegro ============ ======================================== Todas las funciones, variables y estructuras de datos de Allegro están definidas en allegro.h. Se debe incluir este archivo en todos los programas, y enlazarlos con la librería optimizada liballeg.a, o bien con la librería de depuración liballd.a, o con la librería de perfilado liballp.a. Debe incluir las librerías de enlace dinámico (DLL) de Allegro en cualquier programa que quiera distribuir para instalar en otros equipos. Si se usa una librería enlazada estáticamente, se debe definir el símbolo de prepocesador ALLEGRO_STATICLINK antes de incluir cualquiera de las cabeceras (.h) de Allegro y enlazar el programa resultante con Allegro y las librerías Win32/DirectX en ese orden (ver la variable LIBRARIES en el archivo makefile.mgw). No debe olvidar que es necesario usar la macro END_OF_MAIN() después del fin de la función main(). ======================================= Un ejemplo simple de una línea de comando que compila el programa de ejemplo 'foo' que usa allegro: gcc foo.c -mwindows -O2 -Wall -o foo.exe -lalleg ======================================= Un ejemplo sencillo de cómo crear un pequeño programa con Dev-C++: Ponga en funcionamiento Dev-C++ y cree un nuevo proyecto (File/New Project). Seleccione "Windows Application", y pulse sobre el botón "Ok". Nombre el proyecto y asócielo a un archivo nuevo. Ahora debería ver un ejemplo de código en una ventana. Ciérrela, ya que no la va a necesitar (el uso de Allegro es mucho más sencillo). Cree un nuevo archivo (File/New Source File), entonces escriba un pequeño programa Allegro. Puede inspirarse en los ejemplos que acompañan a la librería si lo desea. Aquí tiene un pequeño programa que puede teclear para ver que todo funciona: #include int main() { allegro_init(); allegro_message("Hola, mundo!"); return 0; } END_OF_MAIN(); Ahora necesita decirle a Dev-C++ que va a hacer un programa que usa Allegro. Para ello, vaya la ventana de opciones del proyecto (menú Project/Project Options), y teclee -lalleg (o -lalld para la versión de depuración) en el espacio bajo "Further object file or linker options". ¡Compile su proyecto! Simplemente pulse en la marca verde de la barra de tareas de Dev-C++. Corrija los errores sintácticos del código y pulse en "Execute" para ejecutarlo. Si todo ha funcionado, verá una ventana emergente con el mensaje "¡Hola, mundo!" en ella. ¡Feliz programación!