A petición de algunos foreros, y como apuntes de mis experiencias, voy a contar cómo preparar de manera sencilla un entorno para programar para Caanoo en Windows. Usaremos un SDK basado en GCC, por lo cual estamos hablando de C y C++.
Por ahora no hay un instalador que venga con todo ya preparado y configurado, como los compiladores comerciales. Por eso lo explicaré de manera sencilla y montaremos un entorno bastante completo. Con esto será más fácil empezar a programar juegos y aplicaciones para vuestras consolas.
Descargar el entorno Codeblocks
Necesitamos un entorno IDE o "editor" desde el cual podremos crear proyectos, editar y usar todas las herramientas. Este editor va a ser CodeBlocks, que es muy potente y configurable, además de gratuito.
Para ello iremos a la página de Codeblocks y bajaremos la última versión para Windows. Elegimos el instalador que incluye el compilador MINGW. Esta es una versión de las herramientas de compilación GCC para Windows, para poder probar nuestros programas en el PC. La ventaja de GCC es que es compatible POSIX. Lo que quiere decir que podremos usar casi el mismo código para varios sistemas, incluidos Windows y Linux.
Codeblocks-10.05mingw-setup.exe (74 Mb)
Pero todavía no lo instalaremos, porque necesitamos hacer otra cosa antes.
Instalar Codeblocks y las librerías adicionales
Para hacer más fácil la configuración, vamos a bajar un pack muy completo para Codeblocks con el SDK de Gp2x. ¿y por qué usamos este pack de GP2X? Pues porque tiene las librerías SDL para PC y plantillas de proyectos ya configuradas. Sin este pack, la configuración sería más engorrosa. Además, con este pack podremos compilar para las consolas GP2X, Wiz y Caanoo en el mismo entorno.
Pack de Gp2x adaptado a codeblocks (29.4 Mb)
Bajamos el archivo y lo colocamos en la misma carpeta que el archivo de Codeblocks 10.05 que hemos bajado antes. Antes de instalarlo hay que renombrar este último archivo a codeblocks-mingw-setup.exe, es decir quitar el número de versión. El instalador necesita este nombre.
Bien, ahora lanzamos el instalador del Pack, y primero nos instalará Codeblocks. Es recomendable elegir una ruta de instalación que no sea muy larga. Así no darán problemas los toolchains, que incluyen muchos subdirectorios. Si lo instalamos en C:\Codeblocks mucho mejor.
En las opciones del instalador, elegiremos sólo el lenguaje C++. Más adelante nos preguntará que si queremos iniciar Codeblocks, pulsamos No para que continúe la segunda parte de la instalación, en la que se configuran las librerías y el toolchain de Gp2x. Tras una barra de progreso terminará la instalación.
En este momento, si no queremos compilar para Gp2x o Wiz, sino sólo para Caanoo, podemos ir a la carpeta de Codeblocks y borrar la carpeta devkitGP2X sin problemas.
Ya sólo nos falta apuntar a las librerías SDL y otras del pack, para que podamos probar nuestros juegos y aplicaciones desde Windows. Estas librerías están en C:\Codeblocks\Mingw\bin.
Para ello, vamos a "Mi PC" > botón derecho > Propiedades > Opciones avanzadas > Variables de Entorno. En "variables de usuario" buscamos en la lista la variable PATH. Si no está, pulsamos Nueva y ponemos nombre PATH y valor C:\Codeblocks\Mingw\bin. Si ya teníamos un Path, pulsamos Modificar, y en el valor añadimos al final punto y coma ";" y el path de las dlls.
Después pulsamos Aceptar en todas las ventanas para aplicar los valores.
Instalar el toolchain de Caanoo para Windows
Necesitamos también el compilador con sus herramientas para generar código para Caanoo, lo que se llama "toolchain". El toolchain en este caso incluye también las librerías necesarias para la consola, como SDL y otras.
Toolchain de Caanoo para windows (50.8 Mb)
Este es un archivo comprimido en 7z. Necesitaréis el Winrar o el 7zip para extraerlo. Lo bajamos y los descomprimimos en una carpeta llamada GphCaanoo, dentro de la carpeta de Codeblocks. Da igual el nombre, pero yo me voy a referir por este nombre más adelante.
Configurar Codeblocks
Ahora vamos a configurar el CodeBlocks con un perfil, para poder usar el toolchain y generar ejecutables para nuestra consola. Esta parte es la más manual , así que vamos a ello.
Abrimos la opción "Settings" del menú > Compiler and debugger". Elegimos en la lista "selected compiler" el GNU ARM GCC compiler, y pulsamos el botón Copy. Damos el nombre Gph Caanoo al nuevo perfil. Vamos a configurarlo sus propiedades, en la misma ventana.
Voy a enumerar los valores a introducir en cada opción. En los paths usaré C:\Codeblocks como el directorio de instalación, si lo tienes en otro tendrás que cambiar los valores.
Compiler settings > Compiler Flags
Marcar "enable all compiler warnings"
Marcar "strip all symbols from binary"
Linker Settings > Other Linker options
Hay que poner lo siguiente para que funcione el compilador (truco!! ):
--sysroot=C:\CodeBlocks\gphCaanoo\arm-gph-linux-gnueabi\sys-root
Search directories > Compiler
C:\CodeBlocks\gphCaanoo\include
C:\CodeBlocks\gphCaanoo\arm-gph-linux-gnueabi\include\c++\4.2.4
C:\CodeBlocks\gphCaanoo\arm-gph-linux-gnueabi\include\c++\4.2.4\arm-gph-linux-gnueabi
C:\CodeBlocks\gphCaanoo\arm-gph-linux-gnueabi\sys-root\usr\include
C:\CodeBlocks\gphCaanoo\arm-gph-linux-gnueabi\sys-root\usr\include\SDL
Search directories > Linker
C:\CodeBlocks\gphCaanoo\lib
C:\CodeBlocks\gphCaanoo\lib\gcc\arm-gph-linux-gnueabi\4.2.4
Search directories > Resource compiler
C:\CodeBlocks\gphCaanoo\include
Toolchain executables > Compiler's instalation directory
C:\CodeBlocks\gphCaanoo
Toolchain executables > Program files
arm-gph-linux-gnueabi-gcc.exe
arm-gph-linux-gnueabi-g++.exe
arm-gph-linux-gnueabi-g++.exe
arm-gph-linux-gnueabi-ar.exe
gdb.exe
windres.exe
make.exe
Toolchain executables > Additional paths
C:\CodeBlocks\gphCaanoo\libexec\gcc\arm-gph-linux-gnueabi\4.2.4
C:\CodeBlocks\gphCaanoo\arm-gph-linux-gnueabi\bin
Opciones de entorno CYGWIN
Necesitamos definir esta variable para que funcione el toolchain de Caanoo (truco!! ). Se usa para soportar las rutas de windows con la barra "\" en vez de "/". Para ello vamos a "Mi PC" > botón derecho > Propiedades > Opciones avanzadas > Variables de Entorno. En variables de usuario pulsamos Nueva y damos el nombre: CYGWIN y valor: nodosfilewarning
Crear una plantilla de proyecto
Vamos a definir una plantilla para los proyectos de Caanoo. Para ello, iniciamos Codeblocks desde el icono del escritorio o desde el menú de Inicio. En el menú, elegimos File > Open, navegamos a la carpeta "Gp2x Template" (dentro de la carpeta de Codeblocks) y abrimos el fichero Gp2x_template.cbp.
Ahora usamos la opción del menú Project > Properties... y veremos una ventana llamada Project/tarjet options. En el cuadro Title pondremos "Caanoo_template". Marcamos la pestaña "Build targets", marcamos la opción DevkitGp2x GPL Release y pulsamos en Duplicate, le daremos el nombre "Gph Caanoo Release". En los cuadros de la derecha cambiaremos Gp2x por Caanoo.
Damos a Aceptar para cerrar la ventana, e iremos al menú de nuevo, esta vez con la opción Project > Build Options... Veremos una ventana similar a la anterior, en la lista marcaremos el elemento "Gph Caanoo Release" y en Selected compiler elegiremos "gphCaanoo", que estará al final.
Pulsar la pestaña "Linker settings", y en el cuadro Linker options quitar las siguientes opciones: -static -lmikmod -lmad -lexpat. Pulsamos el botón OK de la ventana, para aplicar los valores y cerrar.
Ahora usaremos la opción del menú File > Save project as user-template y le daremos el nombre "Caanno_template". Con esto hemos creado una plantilla reutilizable, una base que podemos usar en nuestro proyectos, ahorrando mucho tiempo.
Crear un proyecto de prueba
Ahora vamos a usar la plantilla que hemos creado para ver el compilador en acción. Esta plantilla nos crea un esqueleto de aplicación con SDL con todas las librerías y ajustes necesarios.
Para usarla, abrimos el menú File > New > From user template. En la ventana marcamos "Caanoo template" y pulsamos en Go. Elegimos una carpeta para el proyecto y le damos un nombre, por ejemplo Prueba. Ya tenemos un proyecto creado, si marcamos main.cpp en la ventana de la izquierda, podemos ver que tenemos código de ejemplo de SDL.
Para compilarlo, pulsamos en el icono azul del engranaje, o la opción Build > Build del menú. Nos mostrará en los mensajes "0 errors, 0 warnings". Ahora podemos ejecutarlo con el icono de la flecha azul, o la opción Build > Run. Veremos una ventana gráfica durante un segundo. Lo único que hace el ejemplo, es iniciar el modo gráfico y terminar. Ya es cosa nuestra añadir más cosas a esta plantilla.
Compilar el ejemplo para Caanoo
Para compilarlo para Caanoo, tenemos que ir a la lista "Build target", que está arriba, a la derecha de los iconos de compilar y ejecutar. Aquí elegimos "Gph Caanoo Release" y damos de nuevo a Build como antes. Ahora no podemos ejecutar, je, je. Tenemos que coger el archivo .gpe y pasarlo a la tarjeta de la consola. Tenéis que pasar el ejecutable y los ficheros de datos que use, como gráficos o música junto al ejecutable. Tened en cuenta también que la consola tiene Linux y que distingue entre mayúsculas y minúsculas en los archivos. En la consola lo tenéis que lanzar manualmente, a no ser que hagáis un archivo .ini para que salga un icono.
También puede necesitar librerías adicionales, que no suelen venir con la consola, como la libSDL_gfx.so o la libiconv.so. Estas librerías están el directorio gphCaanoo donde hemos instalado el toolchain. Pero eso lo tendréis que descubrir poco a poco.
P.D. Podéis ver información más detallada sobre la configuración de Codeblocks y las opciones a usar en los proyectos, en la guía del GPH SDK v10.08.
Y con esto, ya sólo queda programar.
Suerte.
Marcadores