Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Configurar las opciones de compilación

 

NOTE: Do not make substantive changes to this document without consulting Benjamin Smedberg <[email protected]> or one of the build-config peers.

Ejecutar la configuración y make con las opciones por defecto no te dará un buen resultado. Deberías usar un archivo .mozconfig para obtener una compilación razonable para la distribución. Por favor lee estas instrucciones cuidaadosamente antes de compilar.

Usando un archivo de configuración .mozconfig

Si bien es posible llamar <tt>configure</tt> desde la línea de comandos, no es recomendable. En lugar de eso, crea un archivo .mozconfig en tu directorio fuente (mozilla/.mozconfig) o en tu directorio HOME (~/.mozconfig).

También puedes dar la variable de entorno MOZCONFIG con el path completo de tu archivo de configuración:

export MOZCONFIG=~/mozilla/mozconfig-firefox

Mas alla del nombre que le hayas dado a tu archivo, nos referiremos a él como .mozconfig.

.mozconfig contiene dos tipos de opciones:

  • Opciones con prefijo <tt>mk_add_options</tt>, son pasadas a <tt>client.mk</tt> y, usualmente, son opciones para controlar las vistas y actualizaciones de <tt>cvs</tt>
  • Opciones con prefijo <tt>ac_add_options</tt>, son pasadas a <tt>configure</tt> y afectan el proceso de compilado.

Estas opciones serán usadas de forma automática cuando se ejecute <tt>./configure</tt> o <tt>make -f client.mk</tt>

Compilando con un Objdir

Se recomienda que uses un objdir cuando compiles mozilla. esto quiere decir que tu código fuente y tus archivos objeto no están todos mezclados en el directorio. Si usas un objdir puedes compilar múltiples aplicaciones (Firefox, Thunderbird, etc) desde el mismo árbol fuente.

El usar un objdir significa que cada Makefile.in en tu árbol fuente se convertirá en un Makefile en el objdir. Los directorios superiores en el Makefile.in serán los mismos en objdir. Por ejemplo, para el archivo: <tt>mozilla/modules/plugin/base/src/Makefile.in</tt> con un objdir de valor <tt>@TOPSRCDIR@/obj-debug</tt>, se creará el archivo y el directorio <tt>mozilla/obj-debug/modules/plugin/base/src/Makefile</tt>. Este Makefile referirá a las fuentes en el directorio <tt>mozilla/modules/plugin/base/src</tt> por arte de magia.

Si necesitas volver a ejecutar configure de forma manual, por favor pásalo desde dentro de tu objeto, y hazlo pasando al script el path completo. Por ejemplo, si ejecutas sobre Win32, y tu árbol fuente es <tt>/cygdrive/c/Projects/FIREFOX/mozilla</tt>, entonces, desde tu objdir, debes ejecutar <tt>/cygdrive/c/Projects/FIREFOX/mozilla/configure</tt>.

La siguente opción crea un objdir:

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@

Elegir una aplicación

 

Suite Mozilla (SeaMonkey)
Debes especificar:
ac_add_options --enable-application=suite
# Usa la siguiente línea para verificar SeaMonkey desde CVS:
mk_add_options MOZ_CO_PROJECT=suite

 

Browser (Firefox)
Tu archivo .mozconfig debería contener el archivo mozconfig de Firefox por defecto:
. $topsrcdir/browser/config/mozconfig

No copies y pegues directamente el contenido del archivo a tu propio archivo ya que estos cambian constantemente.

 

Mail (Thunderbird)
Tu archivo .mozconfig debería contener el archivo mozconfig de Thunderbird por defecto:
. $topsrcdir/mail/config/mozconfig

No copies y pegues directamente el contenido del archivo a tu propio archivo ya que estos cambian constantemente.

 

Calendario (Sunbird)
Tu archivo .mozconfig debería contener el archivo mozconfig de Sunbird por defecto:
. $topsrcdir/calendar/sunbird/config/mozconfig

No copies y pegues directamente el contenido del archivo a tu propio archivo ya que estos cambian constantemente.

 

XULRunner
Tu archivo .mozconfig debería contener el archivo mozconfig de XULRunner por defecto:
. $topsrcdir/xulrunner/config/mozconfig

No copies y pegues directamente el contenido del archivo a tu propio archivo ya que estos cambian constantemente.

 

Seleccionando las opciones para compilar

Las opciones que selecciones dependerán de que aplicación estés compilando y para qué usarás esa compilación. Si vas a usarla regularmente, querrás una compilación para distribución sin información extra sobre depuración; si eres un desarrollador que desea "hackear" el código fuente, tal vez quieras una compilación sin optimizar y con información de depuración extra.

El Mozilla Build Configurator es una herramienta que puede ayudarte a armar una buena configuración. Actualmente es útil pricinpalmente para compilar la suite Mozilla, para compilar Firefox u otras aplicaciones habría que editarla manualmente.

El script de configuración reconoce muchas opciones que no deberían ser usadas para compilar la suite completa y aplicaciones XUL, ya que son para propósito-especial o ciertas situaciones. La lista completa de opciones puede ser vista ejecutando ./configure --help o mirando Mozilla Build Configurator.

Si no sabes lo que hace alguna opción de configuración, no la uses ! Las siguientes opciones son muy comunes:

Optimización

ac_add_options --enable-optimize 
Habilita las opciones de optimización del compilador por defecto.
ac_add_options --enable-optimize=-O2 
Selecciona ciertas opciones en particular de optimización del compilador. Generalmente no da el resultado deseado, a menos que conozcas el código base de Mozilla.
ac_add_options --disable-debug 
Desactiva las macros de depuración.
ac_add_options --disable-optimize 
Desactiva la optimización del compilador. Facilita mucho revisar el código en un depurador.
ac_add_options --enable-debug 
Habilita las macros de depuración y otros códigos de sólo-depuración. Puede que lentifique mucho la compilación pero es invaluable para escribir parches.

Herramientas gráficas

 

ac_add_options --enable-default-toolkit=gtk|xlib|qt|cairo-gtk2|cairo-xlib|cairo-windows|windows|mac|cocoa|cairo-cocoa|os2|beos|photon
Selecciona la herramienta gráfica. No se necesita para Windows/OS2/BeOS/Photon desde que éstas plataforma seleccionan la herramienta correcta. Tampoco se necesita en Mac, a menos que estés compilando Camino en una versión vieja (Camino usa --enable-default-toolkit=cocoa).

En plataformas *nix selecciona la herramienta adecuada. GTK2 y GTK han sido probadas con éxito. xlib se considera una tier-3 platform. Qt y Cairo son experimentales, vas a encontrar bugs. En el tronco usa Cairo-gtk2 (por defecto).

 

ac_add_options --enable-xft
Habilita el rendering avanzado de fuente XFT. Sólo esta disponible con --enable-default-toolkit=gtk2, y se recomienda con gtk2.

 

ac_add_options --enable-freetype2
Habilita el rendering de fuente freetype. Es por defecto para GTK. No compatible con --enable-xft.

Compilación estática

 

ac_add_options --enable-static --disable-shared
Estas opciones generan un único ejecutable muy grande, el cuál tiene componentes enlazados de forma estática. Esto significa que hay muy pocos DLLs. De todas formas, a menos que tengas mucha RAM, no se recomienda su uso. 512 RAM mínimo. Se recomienda 1 GB. Estas opciones se deberían usar siempre juntas, si usas --enable-static, se recomienda que también uses --disable-tests

 

ac_add_options --disable-static --enable-shared
Estas opciones generan componentes dentro de librerías compartidas separadas. Esto hace la depuración mucho mas fácil, pero la compilación resultante puede ser más lenta y a veces menos eficiente.

Esta opción es por defecto.

Extensiones

 

ac_add_options --enable-extensions=default|all|ext1,ext2,-skipext3
Hay muchas piezas de código opcionales que habitan en las extensiones/ directorio en el árbol fuente. Muchas de éstas se consideran ya, una parte integral de la navegación. Hay una lista por defecto de extensiones para la suite, y cada aplicación-específica de mozconfig especifica un conjunto diferente por defecto, algunas extensiones no son compatibles con todas las aplicaciones, por ejemplo:
  • cookie no es compatible con thunderbird
  • typeaheadfind no es compatible con ninguna herramienta (firefox, thunderbird, sunbird)

A menos que conozcas qué extensión es compatible con cada aplicación, no uses --enable-extensions option; el sistema seleccionará automaticamente el conjunto de extesiones apropiado.

Tests

 

ac_add_options --disable-tests
Activada por defecto. Se han creado muchas aplicaciones para testeo, las cuales pueden ayudar a depurar y crear parches para las fuentes de Mozilla. Desabilitando ésta opción ganarás tiempo al compilar y espacio en disco.

Otras opciones

 

ac_add_options --disable-crypto
La criptografía está activada por defecto, en algunos paises puede ser ilegal usar o exportar software criptográfico. Deberías ponerte al tanto de las leyes de tu país.

En la rama 1.7, la criptografía estaba desactivada, debes especificar --enable-crypto, si deseas SSL, SMIME, o alguna otra caracterísca que requiera criptografía.

 

ac_add_options --disable-javaxpcom (No Java)
Por defecto, XULRunner compila el Java-XPCOM bridge, que requiere tener instalado un JDK, si tienes el siguiente error al configurar: The header jni.h was not found. Set $JAVA_HOME or use --with-java-include-path puedes desactivar las dependencias de java usando ac_add_options --disable-javaxpcom.

Ejemplos de archivos .mozconfig

Firefox estático optimizado

. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-opt-static
ac_add_options --enable-optimize
ac_add_options --disable-debug
ac_add_options --enable-static
ac_add_options --disable-shared
ac_add_options --disable-tests
mk_add_options MOZ_CO_PROJECT=browser

Thunderbird, compilación para depurar

. $topsrcdir/mail/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/tbird-debug
mk_add_options MOZ_CO_PROJECT=mail,calendar
ac_add_options --disable-optimize
ac_add_options --enable-debug

SeaMonkey, optimizado (pero no estático)

mk_add_options MOZ_CO_PROJECT=suite
ac_add_options --enable-application=suite
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/suite-opt
ac_add_options --enable-optimize
ac_add_options --disable-debug

Construyendo varias aplicaciones desde el mismo árbol fuente

Es posible compilar múltiples aplicaiones desde el mismo árbol fuente, siempre y cuando hayas verificado todos los recursos necesarios y uses un objdir diferente para cada aplicaión.

También puedes crear múltiples archivos mozconfig, o usar la opción MOZ_BUILD_PROJECTS como alternativa.

Usando MOZ_BUILD_PROJECTS en un único mozconfig

Para usar MOZ_BUILD_PROJECTS, debes especificar un MOZ_OBJDIR y una opctión MOZ_BUILD_PROJECTS que contenga nombres separados por espacios. Cada nombre puede ser un nombre de directorio arbitrario. Para cada nombre se crea un subdirectorio debajo del objdir de nivel superior. Tienes que usar ac_add_app_options con los nombre especificados para habilitar cada aplicación en cada directorio objeto .

Por ejemplo:

 ac_add_options --disable-optimize --enable-debug 
 ac_add_options --enable-default-toolkit=gtk2 --disable-freetype2 --enable-xft
 mk_add_options MOZ_OBJDIR=/home/amil082/mozilla_trunk/obj-@CONFIG_GUESS@
 mk_add_options MOZ_BUILD_PROJECTS="xulrunner browser mail"
 mk_add_options MOZ_CO_PROJECT="xulrunner browser mail"
 ac_add_app_options browser --enable-application=browser
 ac_add_app_options xulrunner --enable-application=xulrunner
 ac_add_app_options mail --enable-application=mail

Si deseas compilar un solo projecto usando este mozconfig debes usar: make -f client.mk build MOZ_CURRENT_PROJECT=browser. Esto generará sólo el navegador.

Usando múltiples archivos mozconfig

Tal vez desees crear mozconfig separados.

El siguiente ejemplo se puede usar para compilar Firefox y Thunderbird. Primero deberías crear tres archivos mozconfig.

mozconfig-en común

mk_add_options MOZ_CO_PROJECT=browser,mail

# agrega opciones en común aquí, como hacer una compilación estática para distribuir o 
# desabilitar tests
ac_add_options --enable-optimize --disable-debug
ac_add_options --disable-tests

mozconfig-firefox

# incluye el mozconfig-en común
. ./mozconfig-en común

# compila Firefox
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox-static
ac_add_options --enable-application=browser

mozconfig-thunderbird

# incluye el mozconfig-en común
. ./mozconfig-en común

# compila Thunderbird
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/thunderbird-static
ac_add_options --enable-application=mail

Para verificar, ejecuta:

export MOZCONFIG=/path/to/mozilla/mozconfig-en común
make -f client.mk checkout

Para compilar Firefox, ejecuta:

export MOZCONFIG=/path/to/mozilla/mozconfig-firefox
make -f client.mk build

Para compilar Thunderbird, ejecuta:

export MOZCONFIG=/path/to/mozilla/mozconfig-thunderbird
make -f client.mk build

 

 

Etiquetas y colaboradores del documento

 Colaboradores en esta página: luisgf, teoli, Nukeador, Blank zero, Mgjbot
 Última actualización por: luisgf,