Vos résultats de recherche

    Configuration des options de compilation

    NOTE: Do not make substantive changes to this document without consulting Benjamin Smedberg <benjamin@smedbergs.us> 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 ayant participé à cette page : BenoitL, Fredchat, Chbok, teoli, Mgjbot
    Dernière mise à jour par : teoli,