Primero es necesario disponer de algunos componentes de terceras partes (ThirdParty) en las que está basado OGo. Entra en el directorio fuente de "ThirdParty" (cd ThirdParty).

Make => ObjC-Runtime => libFoundation => libxml2 => libical => SpiderMonkey

Requerimientos

Para construir la etapa inicial ThirdParty, debes asegurarte que ya están instaladas algunas herramientas GNU. Usa el sistema de administración de paquetes de tu plataforma para instalar los paquetes indicados antes de continuar.

  1. Compilador GNU de Objective-C (es parte del gcc, puede venir como un paquete RPM/Deb separado en tu plataforma, llamado habitualmente gcc-objc).
  2. GNU make (requerido como base para el gnustep-make)
  3. flex (para libical)
  4. bison (para libical)
GNUstep Make [siguiente]

GNUstep make es un paquete que facilita mucho la construcción de módulos compartidos y librerías en un amplio rango de plataformas. También incluye un entorno de shell para instalaciones independientes de la ubicación (sin path fijos preseteados en el software).

cd gnustep-make
./configure --prefix=$HOME/OGo \
    --without-system-root \
    --with-network-root=$HOME/OGo \
    --with-local-root=$HOME/OGo \
    --with-user-root=$HOME/OGo \
    --with-library-combo=gnu-fd-nil
make -s install
cd ..
source $HOME/OGo/Makefiles/GNUstep.sh

Esto creará un directorio de despliegue OGo en tu directorio home. Para todos los pasos siguientes es necesario que te asegures de que el entorno GNUstep esté cargado adecuadamente (con GNUstep.sh)!

Verificar: El directorio $HOME/OGo debe haberse creado, contener un directorio Makefiles, y lo más importante, el directorio Makefiles debe contener GNUstep.sh.


GNUstep Objective-C Runtime [siguiente] | [anterior]

No es realmente necesario tener incorporar un runtime Objective-C propio. OGo debería funcionar bien con el que viene con el GCC. Sin embargo, nos parece que hace más sencillo el despliegue (deployment), especialmente para windows, si se incorpora uno propio.

cd gnustep-objc
make -s debug=yes install
cd ..

Esto instalará la librería compartida libobjc y sus headers (.h) en el directorio de despliegue de OGo.

Verificar: libobjc_d.so.2 debe existir en el árbol de OGo (por ej. prueba find $HOME/OGo -name libobjc_d.so.2.


Librería libFoundation [siguiente] | [anterior]

La librería libFoundation, inicialmente escrita por Ovidiu Predescu <ovidiu@apache.org> y Mircea Oancea, contiene una implementación de la OpenStep Foundation API (cosas básicas como clases para colecciones y strings, abstracciones del sist. operativo, etc.).

cd libFoundation
./configure --with-gnustep
make -s debug=yes install
cd ..

Esto configurará la libFoundation para GNUstep (requerido para OGo) y la instalará en OGo root, headers, shared library y la herramienta Defaults.

Verificar: Este paquete incluye una herramienta llamada Defaults para manejar datos de configuración (NSUserDefaults). Puedes verificar si libFoundation se instaló correctamente probando lo siguiente:

$ Defaults write a b 10
$ Defaults read a
{
    b = 10;
}


libxml2 [siguiente] | [anterior]

OGo usa libxml2 para procesar archivos XML y HTML. Esta librería es "wrapeada" por skyrix-xml en parsers SAX y usada por SOPE.
Nota: también puedes usar la librería libxml2 que venga con tu sistema.

cd libxml2
./cfg-gnustep.sh
make -s install
cd ..

Esto configurará libxml2 como lo requiere OGo y la instalará en el path de despliegue (deployment) de OGo. De este modo puedes actualizar las librerías libxml2 de sistema y de OGo sin conflictos.

Verificar: Después de la instalación, $HOME/OGo/Headers/ debe contener un directorio libxml (conteniendo un subdirectorio libxml2). Un subdirectorio $HOME/OGo/Libraries/ debe incluir libxml2.so.2.


libical [siguiente] | [anterior]

La librería libical se usa para manejar archivos iCalendar y vCard. En realidad OGo wrapea libical en un driver SAX XML en skyrix-xml y procesa las estructuras parseadas por libical como entidades XML. De esta manera puede trabajar fácilmente con 'archivos iCalendar con sintaxis XML' (por ej. usado en WCAP y xCal).

cd libical
./cfg-gnustep.sh
make -s install
cd ..

Al igual que libxml, esto configurará libical como lo requiere OGo y la instalará en el directorio de despliegue de OGo.

Verificar: Después de la instalación, $HOME/OGo/Headers/ debe contener el archivo header ical.h. Un subdirectorio $HOME/OGo/Libraries/ debe contener libical.so.0.


Motor JavaScript SpiderMonkey [anterior]

SpiderMonkey es un motor JavaScript provisto por el proyecto Mozilla. En OGo se usa para implementar forms definidos por el usuario y scripted templates en SOPE. Su funcionalidad se wrapea en el puente JavaScript/Objective-C (skyrix-sope/NGJavaScript).

cd js-1.5
make -s install
cd ..

Esto instalará SpiderMonkey en el directorio de despliegue de OGo. Ya está preconfigurado para OGo en el CVS.

Verificar: El directorio de headers $HOME/OGo/Headers/ debe contener un sudirectorio js conteniendo los archivos header de SpiderMonkey. Un subdirectorio $HOME/OGo/Libraries/ debe contener libjs_d.so.1 y una herramienta js debe estar disponible, para probar el intérprete JavaScript hacer:

$ js
js> print(13 + 29)
42

Despues que hayas terminado de armar las cosas básicas de ThirdParty requeridas para OGo, puedes continuar con el armado del servidor de aplicaciones SOPE.