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 https://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 archivoPERL\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).
Descomprimemozfntcfgft*.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.
- ZIP ZIP v2.3 con encriptación y UnZIP Unzip v5.51 con soporte unshrink.
Nota: Utiliza estos para descomprimir los paquetes.- zip.exe
- unzip.exe
- CVS
- cvs.exe
- NSINSTALL
- nsinstall.exe
- BSD Ash
- ash.exe
- Utilidades shell GNU (gnusutil.zip v1.12)
- Descomprime y copia EXE\*.EXE a y EXE\*.DLL al directorio MOZTOOLS.
- bash GNU bash v2.0-b264
- bash.exe
- Utilidades de texto GNU (gnututil v1.19)
- Descomprime y copia EXE\*.EXE a y EXE\*.DLL al directorio MOZTOOLS.
- Utilidades de archivo GNU (gnufutil.zip v3.13)
- Descomprime y copia EXE\*.EXE a y EXE\*.DLL al directorio MOZTOOLS.
- GNU diff (diffutils v2.8)
- Descomprime OS2TREE.ZIP
- Copia todo desde USR/BIN al directorio MOZTOOLS.
- GNU grep (grep v2.5.1)
- Copia todo BIN al directorio MOZTOOLS.
- GNU awk (gawk v3.1.2)
- Copia USR/BIN/GAWK.EXE al directorio MOZTOOLS.
- Copia gawk.exe to awk.exe
- GNU m4 v1.4
- m4.exe
- GNU make 3.81
- make.exe
- gettext-0_11_5-r2-bin.zip
- intl.dll
- GNU sed v4.0.5
- sed.exe
- GNU find v4.1
- find.exe
- xargs.exe
- gnufind.dll
- gnuregex.dll
- Copia gnuregex.dll a regex.dll (el último es necesitado por grep.exe)
- RC.EXE
Nota: Este paquete contiene rc.exe v.5.00.004 but se necesita la v.5.00.007 para compilar las fuentes sin modifcarlas. Esa versión se incluye en el paquete eCS moztools, pero si no puedes obtenerlo debes usar el parche de bug 272194, i.e. adjunto 180581 - ILINK 5.0
- Copia todo de BIN a MOZTOOLS dir.
- GNU Patch v2.5
- patch.exe
- GNU Tar v1.10
- tar.exe
- Icon converter version 0.92-2
- winico.exe
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.
- 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
- 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.
- 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 árbolsecurity\coreconf\OS2.mk
y reemplazaremxexp -o
con simplementeemxexp
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
- Traductor: Blank zero
- Ultima modificación: 01-may-2007
- Fuente: OS/2 Build Prerequisites
Información sobre el documento original
- -