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.

Configuration des options de compilation

NOTE: Do not make substantive changes to this document without consulting Benjamin Smedberg <[email protected]> or one of the build-config peers. Lancer simplement configure et make avec les options par défaut ne vous donnera pas un bon exécutable fonctionnel. Vous devez utiliser un fichier .mozconfig pour obtenir une compilation distribuable raisonnable. Veuillez lire ces instructions attentivement avant de lancer la compilation.

Utilisation d'un fichier de configuration .mozconfig

Bien qu'il soit possible d'appeler manuellement <tt>configure</tt> avec des options sur la ligne de commande, ce n'est pas du tout recommandé. Au lieu de cela, placez un fichier .mozconfig dans votre répertoire de source (mozilla/.mozconfig) ou dans votre répertoire HOME (~/.mozconfig).

Vous pouvez également définir une variable d'environnement MOZCONFIG contenant le chemin complet vers votre fichier de configuration :

export MOZCONFIG=~/mozilla/mozconfig-firefox

Quel que soit le nom réel du fichier que vous utiliserez, nous ferons toujours référence à ce fichier comme étant le fichier .mozconfig.

Un fichier <tt>.mozconfig</tt> contient deux types d'options :

  • Les options préfixées par mk_add_options sont passées à <tt>client.mk</tt>, et sont habituellement des options contrôlant le checkout et la mise à jour CVS.
  • Les options préfixées par ac_add_options sont passées à <tt>configure</tt>, et affectent le processus de compilation.

Ces options seront ensuite automatiquement utilisées lorsque ./configure ou make -f client.mk sont exécutés.

Compilation avec un répertoire objdir

Il est vivement recommandé d'utiliser un répertoire objdir lors de la compilation de Mozilla. Cela signifie que le code source et les fichiers objet ne seront pas mélangés dans votre système. Si vous utilisez un répertoire objdir, vous pouvez compiler plusieurs applications (par exemple Firefox et Thunderbird) à partir du même arbre de sources.

Le fait d'utiliser un répertoire objdir signifie que tout fichier Makefile.in dans votre arbre de sources sera transformé en un Makefile dans le répertoire objdir. Les répertoires parents du fichier Makefile.in seront les mêmes dans le répertoire objdir. Par exemple, pour le fichier <tt>mozilla/modules/plugin/base/src/Makefile.in</tt>, avec une valeur objdir de @TOPSRCDIR@/obj-debug, les chemins de fichier et de répertoire <tt>mozilla/obj-debug/modules/plugin/base/src/Makefile</tt> sera créé. Ce Makefile fera automatiquement référence aux fichiers source dans le répertoire <tt>mozilla/modules/plugin/base/src</tt>.

Si vous avez besoin de relancer manuellement configure, faites-le depuis votre répertoire objdir et en donnant le chemin absolu vers le script de configuration. Par exemple, si vous êtes sous Windows et que votre arbre de sources est dans <tt>/cygdrive/c/Projects/FIREFOX/mozilla</tt>, alors vous devriez lancer <tt>/cygdrive/c/Projects/FIREFOX/mozilla/configure</tt> depuis votre répertoire objdir chaque fois que vous avez besoin de relancer configure manuellement.

L'option mozconfig suivante active un répertoire objdir :

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

Choix d'une application

 

Suite Mozilla (SeaMonkey)
Spécifiez les options suivantes :
ac_add_options --enable-application=suite
# Utilisez la commande suivante pour récupérer SeaMonkey depuis le CVS :
mk_add_options MOZ_CO_PROJECT=suite

 

Browser (Firefox)
Votre fichier .mozconfig doit mettre en source le fichier mozconfig par défaut de Firefox :
. $topsrcdir/browser/config/mozconfig

Ne copiez et collez pas le contenu du fichier dans votre mozconfig, car celui-ci peut changer avec le temps !

 

Mail (Thunderbird)
Votre fichier .mozconfig doit mettre en source le fichier mozconfig par défaut de Thunderbird :
. $topsrcdir/mail/config/mozconfig


Ne copiez et collez pas le contenu du fichier dans votre mozconfig, car celui-ci peut changer avec le temps !

 

Calendar (Sunbird)
Votre fichier .mozconfig doit mettre en source le fichier mozconfig par défaut de Sunbird :
. $topsrcdir/calendar/sunbird/config/mozconfig

Ne copiez et collez pas le contenu du fichier dans votre mozconfig, car celui-ci peut changer avec le temps !

 

XULRunner
Votre fichier .mozconfig doit mettre en source le fichier mozconfig par défaut de XULRunner :
. $topsrcdir/xulrunner/config/mozconfig

Ne copiez et collez pas le contenu du fichier dans votre mozconfig, car celui-ci peut changer avec le temps !

Sélection des options de compilation

Les options de compilation à choisir dépendent de l'application compilée et de l'utilisation qui en sera faite. Si vous désirez l'utiliser régulièrement, vous voudrez une compilation release sans informations de débogage supplémentaires ; si vous êtes un développeur désirant modifier le code source, vous voudrez probablement une compilation non optimisée avec des macros de débogage supplémentaires.

Il existe un outil Web qui peut vous aider à créer une bonne configuration : le Mozilla Build Configurator. Pour l'instant, il est surtout utile pour la suite Mozilla ; compiler Firefox ou d'autres applications utilisant le toolkit demande d'éditer manuellement le fichier généré.

Il existe de nombreuses options reconnues par le script de configuration qui sont des options à but très spécifique pour les intégrateurs ou d'autres situations spéciales, et ne doivent pas être utilisées pour compiler la suite complète ou les applications XUL. La liste complète des options peut être obtenue en lançant ./configure --help ou en consultant le Mozilla Build Configurator.

Si vous ne savez pas ce qu'une option de configuration fait, ne l'utilisez pas ! Les options de compilation suivantes sont les plus courantes :

Optimisation

ac_add_options --enable-optimize 
Active les options d'optimisation par défaut du compilateur
ac_add_options --enable-optimize=-O2 
Choisit des options d'optimisation du compilateur particulières. Dans la plupart des cas, cela ne donnera pas le résultat escompté, à moins que vous connaissiez très bien le code de Mozilla.
ac_add_options --disable-debug 
Désactive les macros de débogage
ac_add_options --disable-optimize 
Désactive les optimisations du compilateur. Cela rend l'utilisation d'un debugger pas à pas beaucoup plus simple.
ac_add_options --enable-debug 
Active les macros et autres codes de débogage. Cela peut ralentir significativement l'exécutable, mais est sans prix lorsqu'on rédige des patches.

Toolkit graphique

 

ac_add_options --enable-default-toolkit=gtk2|gtk|xlib|qt|cairo-gtk2|cairo-windows|windows|mac|cocoa|cairo-cocoa|os2|beos|photon
Sélectionne le toolkit graphique. Ce n'est pas nécessaire pour Windows/OS2/BeOS/Photon, étant donné que ces plateformes sélectionnent automatiquement le toolkit correct. Ce n'est pas nécessaire non plus sous Mac, sauf si vous compilez Camino sur une ancienne branche (Camino utilise --enable-default-toolkit=cocoa).

Sur les plateformes *nix, sélectionne le toolkit graphique à utiliser. GTK2 et GTK sont tous deux testés en profondeur. xlib est considéré comme une plateforme de tierce partie. Qt et cairo sont expérimentaux, vous y trouverez des bugs. Sur le tronc, utilisez cairo-gtk2 (gtk1 et xlib ont été retirés de l'arbre de sources).

 

ac_add_options --enable-xft
Active le rendu de polices avancé XFT. Cette option est uniquement disponible avec --enable-default-toolkit=gtk2, et est recommandée avec gtk2

 

ac_add_options --enable-freetype2
Active le rendu de polices freetype. Il s'agit du rendu par défaut pour le toolkit GTK. Non compatible avec --enable-xft

 

Compilation statique

 

ac_add_options --enable-static --disable-shared
Ces options produisent un seul exécutable de taille plus importante, dont des composants sont liés statiquement. Cela signifie qu'il y a nettement moins de DLL de composants, ce qui peut améliorer le temps de démarrage. Cepandant, à moins que votre machine de compilation ait beaucoup de mémoire RAM, cette option n'est pas recommandée. 512 Mo de RAM sont un minimum, 1Go est recommandé. Ces options doivent toujours être utilisée ensemble. Si vous utilisez --enable-static, il est recommandé d'aussi utiliser --disable-tests.

 

ac_add_options --disable-static --enable-shared
Ces options placent les composants dans des bibliothèques partagées séparées. Cela rend le débogage et la compilation incrémentale beaucoup plus facile, mais l'application réultante peut être plus lente et un peu moins performante.

Cette option est activée par défaut.

Extensions

 

ac_add_options --enable-extensions=default|all|ext1,ext2,-skipext3
Il existe beaucoup de parties de code optionnelles qui se trouvent dans extensions/ de l'arbre des sources. Beaucoup de ces extensions sont à présent considérées comme une part intégrante de l'expérience de navigation. Il y a une liste d'extensions par défaut pour la suite, et chaque fichier mozconfig spécifique à une application en utilise une série différente par défaut. Certaines extensions ne sont pas compatibles avec toutes les applications, par exemple :
  • cookie n'est pas compatible avec Thunderbird
  • typeaheadfind n'est compatible avec aucune application du toolkit (Firefox, Thunderbird, Sunbird)

À moins de savoir quelles extensions sont compatibles aver quelles applications, n'utilisez pas l'option --enable-extensions ; le système de compilation sélectionnera automatiquement la bonne série d'extensions.

Tests

 

ac_add_options --disable-tests
Par défaut, beaucoup de tests auxiliaires sont activés, ce qui peut aider à déboguer et patcher le code source de Mozilla. Désactiver ces tests peut accélérer le temps de compilation et réduire l'espace disque utilisé considérablement.

Autres options

 

ac_add_options --disable-crypto
La cryptographie est activée par défaut. Dans certains pays, il peut être illégal d'utiliser ou d'exporter des logiciels de cryptographie. Vous devez connaître les lois en la matière dans votre pays.

Sur les branches 1.7 et aviary, la cryptographie était désactivé par défaut. Il est nécessaire d'y spécifier --enable-crypto si vous désirez SSL, SMIME ou d'autres fonctionnalités logicielles utilisant la cryptographie.

 

ac_add_options --disable-javaxpcom (Sans Java)
Par défaut, XULRunner compile le pont Java-XPCOM, qui nécessite un JDK installé. Si vous obtenez l'erreur suivante au lancement de <tt>configure</tt> : The header jni.h was not found. Set $JAVA_HOME or use --with-java-include-path, vous pouvez désactiver les dépendances à Java en utilisant ac_add_options --disable-javaxpcom.

Exemples de fichiers .mozconfig

Firefox optimisé statique

. $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

Thunderbird, compilation en mode debug

. $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, optimisé (mais non statique)

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

Compilation de plusieurs applications depuis le même arbre de sources

Il est possible de compiler plusieurs applications à partir du même arbre de sources, à partir du moment où vous avez récupéré toutes les sources nécessaires et si vous utilisez un répertoire objdir différent pour chaque application.

Vous pouvez soit créer différents fichiers mozconfig, soit utiliser l'option MOZ_BUILD_PROJECTS pour make.

Utilisation de MOZ_BUILD_PROJECTS dans un seul mozconfig

Pour utiliser MOZ_BUILD_PROJECTS, vous devez spécifier un MOZ_OBJDIR et une option MOZ_BUILD_PROJECTS contenant des noms séparés par des espaces. Chaque nom peut être un nom de répertoire choisi arbitrairement. Pour chaque nom, un sous-répertoire est crée sous le répertoire objdir. Vous devrez ensuite utiliser les options ac_add_app_options avec les noms spécifiés pour activer les différentes applications dans chaque répertoire objet.

Par exemple :

 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 vous voulez compiler uniquement un projet avec ce fichier mozconfig, utilisez la ligne de commande suivante :

 make -f client.mk build MOZ_CURRENT_PROJECT=browser

Ceci compilera uniquement le navigateur (browser).

Utilisation de plusieurs fichiers mozconfig

L'alternative est d'utiliser des fichiers mozconfig séparés.

Par exemple, les instructions suivantes peuvent être utilisées pour compiler Firefox et Thunderbird. Il est d'abord nécessaire de créer trois fichiers mozconfig.

mozconfig-common :

mk_add_options MOZ_CO_PROJECT=browser,mail

# ajoutez d'autres options habituelles ici, comme la création d'une compilation statique
# et la sésactivation des tests
ac_add_options --enable-optimize --disable-debug
ac_add_options --disable-tests

mozconfig-firefox :

# inclusion du mozconfig commun
. ./mozconfig-common

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

mozconfig-thunderbird :

# inclusion du mozconfig commun
. ./mozconfig-common

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

Pour mettre à jour les sources (checkout), lancez les commmandes suivantes :

export MOZCONFIG=/path/to/mozilla/mozconfig-common
make -f client.mk checkout

Pour compiler Firefox, utilisez les commandes suivantes :

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

Pour compiler Thunderbird, utilisez les commandes suivantes :

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

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : teoli, BenoitL, Mgjbot, Fredchat, Chbok
 Dernière mise à jour par : teoli,