ZeroC-IceE para el Chumby
Veamos una forma de compilar ZeroC-IceE para usarlo en el Chumby.
Esta receta se parecerá mucho a su análoga de Ice en la fonera: Ice-E en OpenWRT. La diferencia estriba en que la plataforma destino, en vez de ser MIPS es ARM. Realmente, esta vez creo que va a ser más sencillo :-p
Ingredientes (para todos los Chumbys :-))
- Tener la toolchain afilada y lista para usar. Puedes seguir mi anterior receta (Entorno de desarrollo para el Chumby), o no. Para esta receta, asumiré que así es.
- Las fuentes de ZeroC-IceE
Primero los translators
Como sabrás, para poder usar IceE, es necesario disponer de los translators, que crean los stubs a partir de las interfaces Slice que vayamos a usar. Puesto que son generadores de código, y por tanto, se ejecutan en la máquina que usamos para desarrollar, no se deben compilar para ARM. Así pues, los instalamos como si de cualquier otra cosa se tratara:
Esto sería lo ideal, pero si solo tienes los sources de SID, a día de hoy (28/07/08) te va dar un errorcito tal que así:
Tranquilidad, no te asustes. Se soluciona colocando los repos de Lenny (que sí tienen lo que hay que tener…):
Con esto debería bastarte. Si aún así sigues teniendo problemas, siempre te queda la opción de bajarte las fuentes de la Web de ZeroC-IceE. De nuevo, a día de hoy es posible que cuando vayas a compilar los translators, te encuentres con el siguiente problema:
Que se soluciona de una forma un tanto… en fin, se soluciona añadiendo las siguientes lineas en los siguientes ficheros:
En include/IceUtil/Config.h:
En include/Slice/DoNetNames.h:
Esta es la manera que se me ha ocurrido a mi, seguro que encuentras una mucho mejor. Si así es, te agradecería que me lo comentaras. Si necesitas algún paquete más para compilar los translators, sabes que usando apt-get build-dep icee-translators se instalan, ¿verdad? :-p
Compilar IceE
Ahora toca la parte más jugosa :-). Creo (y si no llevo razón, por favor, quitadmela) que IceE no esta empaquetado para ARM, o por lo menos, no esta en los repos oficiales. Por ello, lo primero es descargarse las fuentes. Lo puedes hacer desde la web de ZeroC-IceE o usando el repositorio de Debian, tú eliges.
Nota: si no te has descargado antes las fuentes de ningún paquete y estas en el chroot de mi anterior receta, necesitas instalarte el paquete dpkg-dev.
Ahora es buen momento para configurar la instalación. Entra en el directorio de Ice. En el fichero config/Make.rules tienes algunos parámetros con los que jugar. Aquí dependerá de tus necesidades en concreto. Yo, personalmente, he dejado las siguientes variables así:
Tendrás que modificar tus variables de entorno para que el compilador busque en las rutas correspondientes a esta instalación (es decir, en /usr/icee/lib y /usr/icee/include) lo que necesite (o crear enlaces simbólicos…). Como estamos en una jaula, no importa ensuciarnos las manos ;-)
Antes de compilar, un pequeño pero importante detalle: ¡tenemos que especificar que compilador usar! Para ello, basta con:
Y listo. Ya puedes hacer el esperado make
Probando… un, dos…
Si tarda mucho la compilación, haztelo mirar, eso no es normal :-p Cuando haya terminado, seguro que estarás deseoso de probar el invento, ¿no? Pues lo vamos a hacer usando el típico Hello World
Para la ocasión, he empaquetado un pequeño ejemplo, que crea el servidor usando el compilador cruzado, y el cliente con el compilador para x86. De esta forma, puedes probar el ejemplo desde tu equipo y cerciorarte de que no te miento.
Para probarlo haz lo siguiente:
FIXME: esta parte esta sin terminar. para ir abriendo boca, mírate los demos en IceE-1.2.0/demo/IceE/ :-)