Requerimientos para la compilación en OS/2

by 2 contributors:

 

Este documentos lista las herramientas necesarias para compilar Mozilla en la plataforma OS/2 y eComStation e indica como configurar, descargar y empezar a compilar. Hemos intentado hacer este documento lo más detallado posible. Si tienes problemas por favor pide ayuda en mozilla.dev.ports.os2 que está en news.mozilla.org.

Cuidado: Actualmente el tronco no se compila en OS/2. Bug 371503 (iugal puedes compilar código del tronco usando MOZ_CO_DATE 20070206 o anterior, pero luego utiliza --disable-svg).

Este documento está diseñado para aquellos que crean un entorno de compilado desde cero. El entorno es más fácil de configurar cuando todas las herrmientas se encuentra en una misma unidad. Para nuestros ejemplos usaremos la unidad D:.

Important sections of this page are * Warpzilla Developer Information ** contains link to ''Latest Build Instructions'' *** section ''Download the following packages'' contains link to the current location of the required ''glib'' and ''libidl'' binaries, required by ''XPIDL'', the IDL compiler for XPCOM objects<br/><small>current link as of 07/2006 is http://www.axess.com/users/sobotka/warpzilla/srcs/glibidl-b4.zip, link is subject to change or package may be outdated meanwhile, in case of problems please check original page!</small>

 

Requerimientos de hardware

Compilar un paquete tan grande como Mozilla requiere mucho espacio en disco y tiempo:

  • Compilar SeaMonkey en una máquina con Athlon XP 3000+ lleva más o menos
    • 45min (usando gcc 3.2.2, cronometrado SeaMonkey 1.1a 30-jul-2006)
    • 70min (usando gcc 3.3.5, cronometrado SeaMOnkey 1.1a 30-jul-2006)
    • Según las opciones de compilación puede variar varios minutos
  • Firefox y Thunderbird llevan unos minutos menos.
  • El árbol fuente en disco requiere 350 MB
  • El árbol binario' de una compilación de distribución tal vez lleve 300 MB
  • Se necesitan más de 1.2 GB si se depura.

Paquetes requeridos

Aquí se explica qué herramientas se necesitan para compilar Warpzilla.

  • En caso de que estes compilando Mozilla en eComStation, encontrarás más herramientes para el entorno Mozilla en el CD nro. 2 (en /DEVELOP/GCC cuando ejecutas "Developer's Install Guide" hay una opción para instalarlas) ecepto el paquete de soporte para cairo "mozfntcfgft" y Python (?).
  • OS/2 Toolkit
    Instala el kit de herramientas que viene con tu versión de OS/2 o eComStation.
  • EMX runtime
    Si no está instalado descomprime EMXRT.ZIP en el directorio raíz. Creará un directorio llamado EMX, agrega D:\EMX\DLL a tu LIBPATH en CONFIG.SYS.
  • autoconf
    Descomprime AUTOCONF.ZIP en el directorio raíz. Creará un directorio llamado AUTOCONF. Nota
    no intentes usar versiones posteriores a 2.13
  • glibidl (cuidado: no uses Shit click para descargar) Descomprime el archivo glibidl*.zip en el directorio raíz. Creará un directorio con ese nombre.
  • Perl 5.8.0 (bin y core)
    Descomprime ambos archivos en el directorio raíz. Crearán un directorio llamado PERL. En el archivo PERL\LIB\5.8.0\OS2\CONFIG.PM busca la etiqueta "archlib" (línea 120) y cambia la letra de la unidad por la cuál tienes instalado PERL. (el archivo ReadMe está equivocado, no deberías usar PERL_LIBBATH!)
  • Python (binarios v2.4.4)
    Descomprime el paquete en el directorio raíz. Creará un directorio llamado PYTHON244.
  • Paquete de soporte para compilaciones cairo-activadas mozfntcfgft (cuidado: no uses Shift clik para descargar).
    Descomprime mozfntcfgft*.zip en el directorio raíz. Si no estás usando gcc 3.3.5 necesitarás compilar el paquete (mira README). Nota: Este paquete sólo es necesario si quieres compilar con soporte SVG.
  • Hay un paquete del año 2003 que contiene la mayoría de los programas nombrados anteriormente: MozTools of 07Aug2003. If you use this package, and have problems, you may have to update CVS and GNU make afterwards.

Nota: En los paquetes siguientes debes extraer sólo los archivos especificados. Recomendamos poner todos los EXEs y DLLs en un único directorio llamado MOZTOOLS.

Compilador

Ya no es posible compilar Mozilla con el IBM VAC++. En lugar de eso podemos elegir entre dos versiones de GCC disponibles para OS/2. Deberías poder compilar todas versiones de Mozilla 1.7 o superior con ambos compiladores pero se recomienda que uses GCC 3.2.2 para Gecko 1.8.0.x y GCC 3.3.5 para versiones superiores.

GCC 3.2.2

Descarga GCC 3.2.2 Beta 4 desde el sitio de Innotek e instálalo. Luego, descarga la última acatualización, GCC 3.2.2 Beta 4 CSD 1, y colócala sobre ésta instlación. Vé al directorio lib y ejecuta MakeOmfLibs.cmd. El script de la configuración supone que instalaste en el directorio 'D:\GCC322. Si instalaste en otro lugar debes hacer los cambios necesarios.

Si elegiste este compilador y deseas compilar con SVG/Canvas activado debes recompilar el paquete mozfntcfgft después de descargarlo (ejecutando make en su directorio).

GCC 3.3.5

Descarga la última versión GCC 3.3.5 CSD1 desde el servidor de FTP de Netlabs, descomprime, ve a lib y ejecuta MakeOmfLibs.cmd El script de la configuración supone que instalaste en el directorio D:\GCC322. Si instalaste en otro lugar debes hacer los cambios necesarios.

Entorno de desarrollo

El proceso de compilado requiere todos los paquetes listados anteriormente. Son encontrados por variables de entorno específicas (ej. para Perl y Autoconf) o a través de PATH/LIBPATH que incluye al directorio moztools.

Este entorno es configurado usando los scripts setmozenv*.cmd de REXX. Hay dos scripts disponibles, uno para cada versión de GCC: para GCC 3.2.2 o para GCC 3.3.5. Por favor cambia todas las direcciones listadas en este archivo en caso de que no instales en la unidad D: y en el directorio D:\MOZTOOLS. Para configurar el entorno abre CMD y ejecuta el archivo batch. . An alternative CMD batchfile is attached to bug 294088, it is adapted for builds with GCC 3.2.2 without SVG/Canvas support, but is structured in a way that should make it easy to edit.

Obtiendo las fuentes y compilando

Las opciones para la compilación han sido tomadas de .mozconfig, que es un archivo que tu creas en el directorio mozilla. También se pueden generar usando Unix Build Configurator debes empezar con un archivo básico como éste:

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj
mk_add_options MOZ_CO_PROJECT=suite

ac_add_options --enable-application=suite
ac_add_options --disable-tests
ac_add_options --enable-optimize
ac_add_options --disable-debug

Eso creará una compilación optimizada de SeaMOnkey, con los binarios ubicados en el directorio obj dentro del directorio mozilla.

El código fuente de Mozilla es distribuido via CVS, el script setmozenv ya configura el entorno para eso. En principio, debes seleccionar un proyecto para bajar desde CVS (agrega la línea MO_CO_PROJECT al .mozconfig), mira el archivo make principal client.mk ( cvs co mozilla/client.mk) y deja que el sistema baje el resto de las fuentes (make -f client.mk pull_all). Los detalles para esto están descriptos aquí.

Una vez que creaste el archivo .mozconfig puedes empezar a compilar usando
make -f client.mk build 2>&1 | tee build.log
(la redirección y la llamada tee lleva un logfile de toda la compilación en el archivo buil.log, pero también muestra todos los mensajes en la pantalla)

Cuando se completa la compilación los bianrios se pueden hallar en obj/dist/bin. Si quieres hacer un paquete por favor sigue las intrucciones en Building a SeaMonkey package.

Si esta información es insuficiente, hay un poco más en How Mozilla's build system works.

Trucos

Algunos consejos en caso de problemas. También deberías postear en mozilla.dev.ports.os2 si tienes problemas.

  1. Si bien el comando para bajar las fuentes desde CVS debería hacer esto de forma automática, a veces es necesario borrar los tres archivos de configuración así pueden ser generados adecuadamente en OS/2. Esto suele suceder cuando hay un conflicto CVS bajando el código. Si hay errores en la compilación deberías probar borrando los archivos:
    • rm mozilla/configure
    • rm mozilla/nsprpub/configure
    • rm mozilla/directory/c-sdk/configure
    Este se regenerarán de forma automática desde el configure.in correspondiente. Para generarlos manualmente debes ir a cada directorio y ejecutar "bash autoconf".
  2. El primer paso de la compilación utiliza el script configure generado por GNU autoconf.
    • Automaticamente testea varios aspectos del entorno para compilar, generando programas que intentan compilarse usando el compilador seleccionado.
    • Deja un historial de las actividades en el archivo config.log (en el OBJDIR) donde puedes ver los errores.
    • i ocurre un error crítico, imprimirá en config.log el código fuente del programa generado y el respectivo archivo .h en el mismo directorio. Este puede ser compilado manualmente y utilizado para rastrear errores en la configuración para compilar.
  3. Si estás generando código Mozilla que sea capaz de compilar una extensión para ser usada en OS/2 (ej enigmail) sería buena idea editar los tres archivos configure.in en el árbol security\coreconf\OS2.mk y reemplazar emxexp -o con simplemente emxexp en la definición de la variable FILTER. Luego quita todos los archivos de configuración cómo se describe en el punto 1. Si haces esto no será necesario compilar la extensión en cada versión nueva..

Información del documento

Información sobre el documento original

  • -

 

Etiquetas y colaboradores del documento

Contributors to this page: teoli, Blank zero
Última actualización por: teoli,