aboutsummaryrefslogtreecommitdiff
path: root/files/fr/archive/b2g_os/compiler/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/fr/archive/b2g_os/compiler/index.html')
-rw-r--r--files/fr/archive/b2g_os/compiler/index.html442
1 files changed, 442 insertions, 0 deletions
diff --git a/files/fr/archive/b2g_os/compiler/index.html b/files/fr/archive/b2g_os/compiler/index.html
new file mode 100644
index 0000000000..7227ce6ddd
--- /dev/null
+++ b/files/fr/archive/b2g_os/compiler/index.html
@@ -0,0 +1,442 @@
+---
+title: Compiler Firefox OS
+slug: Archive/B2G_OS/Compiler
+translation_of: Archive/B2G_OS/Building
+---
+<div class="summary">
+<p>Une fois que vous <a href="/fr/Firefox_OS/Prerequis_pour_construire_Firefox_OS" title="/fr/Firefox_OS/Prerequis_pour_construire_Firefox_OS">avez mis en place votre système de compilation</a> puis<a href="/fr/Firefox_OS/Preparing_for_your_first_B2G_build" title="/fr/Firefox_OS/Preparing_for_your_first_B2G_build"> récupéré et configuré le code</a>, vous pouvez compiler Boot to Gecko. Ce guide détaille les étapes nécessaires à la compilation.</p>
+</div>
+
+<h2 id="Mettre_à_jour_votre_code">Mettre à jour votre code</h2>
+
+<p>Si ce n'est pas la première fois que vous compilez B2G, vous pouvez récupérer la dernière version du code avant de commencer à compiler. Pour ce faire, vous devez mettre à jour les outils B2G ainsi que les dépendances grâce aux commandes suivantes :</p>
+
+<pre>git pull
+./repo sync -d
+</pre>
+
+<p>L'option <code>-d</code> permet de récupérer les dernières versions (HEAD) des projets Android selon le manifeste de révision (c'est-à-dire la version principale, par défaut, du dépôt). Cette option est pratique si vous avez effectué des modifications mais que vous voulez revenir à l'état de la branche <code>master</code> de façon temporaire. Vos changements seront mis de côté (staged) le répertoire de travail ne sera pas modifié (voir la <a href="http://stackoverflow.com/questions/11448864/what-is-the-usage-for-repo-sync-d-in-android-source-repository">question Stack Overflow</a> sur ce sujet ou la page de documentation sur la commande <a href="https://source.android.com/source/using-repo.html#sync">repo</a>). Si vous n'avez pas modifié les sources, vous pouvez utiliser :</p>
+
+<pre>git pull
+./repo sync</pre>
+
+<p>Vous pouvez mettre à jour votre dépôt selon une cible donnée en indiquant son nom :</p>
+
+<pre>./repo sync gaia
+</pre>
+
+<p>La commande <code>repo</code> possède d'autres options qui peuvent être utilisées. Utilisez la commande <code>repo help</code> pour avoir plus d'informations.</p>
+
+<h2 id="Compiler_Boot_to_Gecko">Compiler Boot to Gecko</h2>
+
+<div class="note">
+<p><strong>Note :</strong> Avant la compilation, vous pouvez utiliser un fichier <code>.userconfig</code> pour personnaliser votre version. Voir la page <a href="/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file" title="Mozilla/Firefox_OS/Customization_with_the_.userconfig_file">Personnaliser la version grâce au fichier .userconfig </a>pour plus d'informations.</p>
+</div>
+
+<p>Pour compiler Boot to Gecko, il suffit d'utiliser le script <code>build.sh</code> :</p>
+
+<pre>cd B2G
+./build.sh
+</pre>
+
+<p>À ce moment, vous pouvez sans doute prendre une autre pause café (voire une sieste si c'est votre première compilation). Pour indication, la compilation dure environ 30 minutes sur un Core i7 avec 8 Go de RAM). Comme expliqué dans la page précédente, si vous utilisez un autre répertoire dans lequel vous avez sauvegardé des fichiers système Android, vous devrez définir la variable d'environnement <code>ANDROIDFS_DIR</code> avant de lancer <code>build.sh</code>.</p>
+
+<div class="note">
+<p><strong>Note</strong> : Pour plus d'informations sur l'installation (<em>flashing</em>) d'une nouvelle version sur un téléphone, lire la page <a href="/fr/Firefox_OS/Installer_sur_un_telephone_mobile">Installer Firefox OS sur un appareil mobile</a>.</p>
+</div>
+
+<h3 id="Compiler_des_modules_particuliers">Compiler des modules particuliers</h3>
+
+<p>Si vous souhaitez compiler uniquement un certain module, vous pouvez spécifier le nom du module souhaité comme argument du script. Ainsi, si vous souhaitez ne compiler que Gecko, vous pourrez utiliser la commande suivante :</p>
+
+<pre>./build.sh gecko
+</pre>
+
+<p>Si vous souhaitez ne rafraîchir qu'une seule application, vous pouvez compiler le module <code>gaia</code> et spécifier la variable d'environnement <code>BUILD_APP_NAME</code> avec le nom de l'application :</p>
+
+<pre>BUILD_APP_NAME=calendar ./build.sh gaia</pre>
+
+<p>Afin d'obtenir une liste des modules que vous pouvez compiler, vous pouvez utiliser la commande suivante :</p>
+
+<pre>./build.sh modules
+</pre>
+
+<h3 id="Définir_le_nombre_de_tâches_parallèles">Définir le nombre de tâches parallèles</h3>
+
+<p>Par défaut, les scripts B2G lancent des tâches parallèles (le nombre de tâches par défaut étant égal au nombre de cœurs plus (+) deux). Le nombre de tâches à lancer en parallèle est défini grâce au paramètre <code>-j</code> de <code>build.sh</code>. Cet argument peut s'avérer utile lorsque vous souhaitez réduire la charge CPU prise par la compilation pour pouvoir faire autre chose. De plus, n'avoir qu'une seule tâche pour la compilation permet d'interpréter beaucoup plus facilement les informations affichées par le script.</p>
+
+<p>Ainsi, pour compiler en utilisant uniquement deux tâches parallèles, vous pouvez utiliser la commande suivante :</p>
+
+<pre>./build.sh -j2
+</pre>
+
+<p>Le plus souvent, ce paramètre est utilisé pour empêcher toute exécution parallèle. De cette façon, le processus peut être analysé plus simplement. Pour n'avoir qu'une seule tâche, lancer la commande suivante :</p>
+
+<pre>./build.sh -j1
+</pre>
+
+<h3 id="Compiler_une_version_multilocales">Compiler une version multilocales</h3>
+
+<p>Pour compiler une version avec plusieurs locales, il faut réaliser les étapes suivantes :</p>
+
+<ol>
+ <li>Déterminer le fichier de locales à utiliser. Actuellement, ce sont les fichiers <a href="https://github.com/mozilla-b2g/gaia/blob/master/locales/languages_dev.json"><code>locales/languages_dev.json</code></a> et <a href="https://github.com/mozilla-b2g/gaia/blob/master/locales/languages_all.json"><code>locales/languages_all.json</code></a> qui sont utilisés comme fichiers de locales.</li>
+ <li>Cloner les locales adéquates depuis <a href="http://hg.mozilla.org/gaia-l10n">http://hg.mozilla.org/gaia-l10n</a> vers un répertoire. Le répertoire utilisé est <code>gaia-l10n/</code>. Vous pourriez très bien utiliser un répertoire <code>locales/</code>. Vous devrez cloner un dépôt pour chaque locale listée dans le fichier de langues.</li>
+ <li>Dans votre environnement définissez la variable d'environnement <code>LOCALE_BASEDIR</code> avec le chemin absolu du répertoire choisi à l'étape 2. La variable d'environnement <code>LOCALES_FILE</code> doit être définie avec le chemin absolu du répertoire utilisé à l'étape 1.</li>
+ <li>Vous pouvez également définir la variable d'environnement <code>GAIA_DEFAULT_LOCALE</code> si vous souhaitez définir une locale par défaut.</li>
+</ol>
+
+<pre style="font-size: 12px;">cd gaia/locales/
+hg clone https://hg.mozilla.org/releases/gaia-l10n/v1_2/es</pre>
+
+<div>Définir les variables d'environnement :</div>
+
+<div> </div>
+
+<pre>export LOCALE_BASEDIR=$PWD/locales
+export LOCALES_FILE=$PWD/locales/languages_dev.json
+export GAIA_DEFAULT_LOCALE=fr
+</pre>
+
+<p>Le fichier <code>languages-dev.json</code> peut être remplacé par votre propre fichier <code>mes-langues.json</code> à condition que celui-ci respecte le format suivant (où chaque entrée correspond à une locale clonée dans le répertoire des locales) <span style="line-height: 1.5;">:</span></p>
+
+<pre>{
+ "en-US" : "English (US)",
+ "es" : "Español"
+}
+</pre>
+
+<div>
+<p>Depuis la livraison du bug 884752 (en novembre 2013), il est possible d'utiliser la variable d'environnement GAIA_KEYBOARD_LAYOUTS pour ajouter des agencements de clavier.</p>
+
+<p>Voir la fiche du bug : <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=884752">https://bugzilla.mozilla.org/show_bug.cgi?id=884752</a></p>
+
+<p>Voir des exemples d'agencements: <a href="https://github.com/mozilla-b2g/gaia/tree/v1.2/keyboard/layouts">https://github.com/mozilla-b2g/gaia/tree/v1.2/keyboard/layouts </a></p>
+
+<p>Ainsi, si vous souhaitez ajouter des agencements de clavier pour l'espagnol, l'italien et l'anglais, vous pouvez définir la variable d'environnement de cette façon :</p>
+
+<pre> GAIA_KEYBOARD_LAYOUTS=en,es,it</pre>
+
+<p><span style="line-height: 1.5;">Vous pouvez alors flasher Gaia sur le téléphone. Connectez le téléphone et vérifiez que le débogage USB est activé dans l'écran Paramètres &gt; Informations &gt; Plus d'informations &gt; Développeurs. Vous n'aurez pas besoin de répéter cette étape. En effet, votre version de Gaia aura le paramètre REMOTE_DEBUGGER à 1. Pour compiler une version multilocales :</span></p>
+
+<pre> make clean &amp;&amp; make production LOCALES_FILE=locales/languages-own.json</pre>
+
+<div class="note">
+<p>Si vous souhaitez cloner et/ou mettre à jour l'ensemble des locales prises en charge pour une branche donnée, vous pouvez utiliser <a href="https://raw.githubusercontent.com/dattaz/build-firefoxos/master/langs.sh">ce script</a>.</p>
+</div>
+
+
+<h3 id="Compiler_une_version_«_engineering_build_officielle_»">Compiler une version « engineering build officielle »</h3>
+
+<div class="note">
+<p>If this paragraph gets outdated. Please refer to the logs of the <strong>Be </strong>job <a href="https://treeherder.mozilla.org/#/jobs?repo=mozilla-central">in Treeherder</a> to get the latest variables set.</p>
+</div>
+
+<p>Pour compiler une version  « engineering build officielle » comme <a href="http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central-flame-kk-eng/">celles publiées par Mozilla</a>, vous devez utiliser les options suivantes sur votre ligne de commande:</p>
+
+<pre>VARIANT=eng MOZILLA_OFFICIAL=1 B2G_SYSTEM_APPS=1 GAIA_OPTIMIZE=1 B2G_UPDATER=1 B2G_UPDATE_CHANNEL=default MOZ_TELEMETRY_REPORTING=1 MOZ_CRASHREPORTER_NO_REPORT=1 LOCALES_FILE=locales/languages_all.json GAIA_KEYBOARD_LAYOUTS=en,pt-BR,es,de,fr,pl,zh-Hans-Pinyin,zh-Hant-Zhuyin,en-Dvorak ./build.sh</pre>
+
+<p>Ci-dessous l'explication des paramètres:</p>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Variable</th>
+ <th scope="col">Explication</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>VARIANT=eng</td>
+ <td>Définition d'une version de type « engineering ». C'est aussi la valeur par défaut.</td>
+ </tr>
+ <tr>
+ <td>MOZILLA_OFFICIAL=1</td>
+ <td>Génère une version affichant le logo et <a href="https://github.com/mozilla-b2g/gaia/blob/master/shared/locales/branding/official/branding.en-US.properties">la marque</a> Firefox OS. Ne pas utiliser cette option avec des versions que vous souhaitez distribuer. Mozilla se réserve ce droit.</td>
+ </tr>
+ <tr>
+ <td>B2G_SYSTEM_APPS=1</td>
+ <td>Installe lest applications dans  le dossier /system/b2g/webapps (au lieu de /data/local/webapps).</td>
+ </tr>
+ <tr>
+ <td>GAIA_OPTIMIZE=1</td>
+ <td>Concatène les sources de Gaia.</td>
+ </tr>
+ <tr>
+ <td>B2G_UPDATER=1</td>
+ <td>Active les mises à jour quotidienne.</td>
+ </tr>
+ <tr>
+ <td>B2G_UPDATE_CHANNEL=default</td>
+ <td>Le <a href="https://developer.mozilla.org/fr/Firefox_OS/Phone_guide/Flame/Updating_your_Flame#Switch_to_nightly_update_channel">canal de mises à jour Firefox OS.</a> La valeur «default» pointe vers mozilla-central.</td>
+ </tr>
+ <tr>
+ <td>MOZ_TELEMETRY_REPORTING=1</td>
+ <td>Active la <a href="https://wiki.mozilla.org/Telemetry">Télémétrie</a> permettant de partager les données concernant l'utilisation du téléphone.</td>
+ </tr>
+ <tr>
+ <td>MOZ_CRASHREPORTER_NO_REPORT=1</td>
+ <td>Désactive l'interface <a href="https://developer.mozilla.org/fr/docs/Environment_variables_affecting_crash_reporting">Firefox Desktop lors d'un crash</a>, so the Gaia reporter only is used.</td>
+ </tr>
+ <tr>
+ <td>LOCALES_FILE=locales/languages_all.json</td>
+ <td>Défini les langues disponibles dans Gaia (l'arborescence relative part du dossier de gaia).</td>
+ </tr>
+ <tr>
+ <td>GAIA_KEYBOARD_LAYOUTS=en,pt-BR,es,de,fr,pl,zh-Hans-Pinyin,zh-Hant-Zhuyin,en-Dvorak</td>
+ <td>Défini les dispositions de clavier inclues dans Gaia.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h3 id="Générer_une_archive_système_sans_aucun_blob_binaire">Générer une archive système sans aucun blob binaire</h3>
+
+<p>Il est possible de générer une archive de système complet sans recourrir à un seul blob binaire, qui peut être utilisée pour convertir un appareil, fonctionnant sous Android, à Firefox OS, en s'affranchissant de l'interdiction de distribution de systèmes contenant des blobs binaires. Cette possibilité doit être développée séparément pour chaque type d'appareil, avec seulement les téléphones Flame et Z3/Z3 Compact supportés initialement.</p>
+
+<div class="note">
+<p><strong>Note</strong>: Nous devrions pouvoir le faire pour n'importe quel appareil pour lequel nous générons déjà des systèmes, mais il faut faire des vérifications dans chaque cas avant de pouvoir l'affirmer.</p>
+</div>
+
+<p>Une telle archive est générée à l'aide de l'option suivante :</p>
+
+<pre class="bz_comment_text" id="comment_text_14">./build.sh blobfree</pre>
+
+<p>Ceci produit une archive zip composé de :</p>
+
+<ul>
+ <li>Un fichier .zip contenant toutes les partitions du système prêtes à être utilisée mais pas sous forme de fichier image (dossiers <code>BOOT</code>, <code>RECOVERY</code> et <code>SYSTEM</code>)</li>
+ <li>Un fichier <code>devices.json</code> décrivant les appareils supportés avec les propriétés adb et les variables fastboot à lire et gérées pour chacun d'eux.</li>
+ <li>fstab de secours, permettant le partitionnement et le mapping des images.</li>
+ <li><code>dt.img</code>  si nécessaire.</li>
+ <li>Blob de mapping système, basé sur le résultat de <code>extract-files.sh</code>.</li>
+</ul>
+
+<p>Le but de cette archive est d'être utilisée avec l'installeur d'addon B2G (voir <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1166276" title="[meta] Getting a B2G Installer Addon">bug 1166276</a>.)</p>
+
+<h2 id="Erreurs_fréquentes">Erreurs fréquentes</h2>
+
+<h3 id="Build_failed!">"Build failed!"</h3>
+
+<p><span id="cke_bm_81S" style="display: none;"> </span>Si vous obtenez le message générique "Build failed" (« la compilation a échoué), vous pouvez essayer de reconnecter votre téléphone à votre ordinateur. Il peut arriver que le volume du téléphone soit démonté du système.</p>
+
+<div class="note">
+<p><strong>Attention, configurer et compiler B2G pour un Keon ne FONCTIONNERA PAS pour Mac.</strong> Pour cet appareil, il est nécessaire d'utiliser Linux.<span id="cke_bm_81E" style="display: none;"> </span></p>
+</div>
+
+<h3 id="Erreurs_propres_à_Mountain_Lion">Erreurs propres à Mountain Lion</h3>
+
+<div>
+<p>1. Si vous compilez sur OS X 10.8 <em>Mountain Lion</em> (Xcode 4.4.1 ou ultérieur) et que vous obtenez l'erreur suivante :</p>
+
+<pre style="font-size: 14px;">external/qemu/android/skin/trackball.c:130:25: error: 'M_PI' undeclared (first use in this function)</pre>
+Éditez le fichier : <code style="font-size: 14px;">B2G/external/qemu/Makefile.android</code> et ajoutez le code suivant à la ligne 78:
+
+<pre style="font-size: 14px;">MY_CFLAGS += -DM_PI=3.14159265358979323846264338327950288   #/* B2G_fix: not finding M_PI constant */
+</pre>
+</div>
+
+<div>2. Si vous utilisez Mountain Lion et que vous obtenez l'erreur suivante avec ./build.sh :</div>
+
+<div>
+<pre>/System/Library/Frameworks/IOKit.framework/Headers/usb/USB.h:797:9: error: too many #pragma options align=reset</pre>
+
+<p>Remplacez les occurences de '#pragma options align=reset' par '#pragma pack()' dans le fichier /System/Library/Frameworks/IOKit.framework/Headers/usb/USB.h</p>
+</div>
+
+<h3 id="Undefined_symbols__sqlite3_androidopt_handle_pragma_and__sqlite3_androidopt_open">Undefined symbols "_sqlite3_androidopt_handle_pragma" and "_sqlite3_androidopt_open"</h3>
+
+<p>Cette erreur se produit si vous compilez sur OS X 10.7 ou ultérieur avec Xcode 4.5 ou ultérieur. Pour résoudre le problème, appliquez le correctif <a href="https://groups.google.com/forum/#!msg/android-building/yAfPyUqCsiQ/7zvICk4GWjYJ">https://groups.google.com/forum/#!msg/android-building/yAfPyUqCsiQ/7zvICk4GWjYJ</a> au fichier external/sqlite/dist/Android.mk.</p>
+
+<h3 id="KeyedVector.h19331_error_indexOfKey_was_not_declared_in_this_scope">KeyedVector.h:193:31: error: indexOfKey was not declared in this scope</h3>
+
+<p>Cette erreur se produit lorsque la version de gcc utilisée est trop récente. Installez les versions gcc/g++/g++-multilib. Voir la page <a href="/fr/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file" title="Mozilla/Firefox_OS/Customization_with_the_.userconfig_file">personnaliser la version compilée avec le fichier .userconfig</a> pour plus d'informations.</p>
+
+<div class="note">
+<p><strong>Note :</strong> Vous pouvez utiliser gcc 4.7.x en apportant de légères modifications. En raison des priorités de développement, les bugs liés à ces modifications ne seront pas corrigés.</p>
+</div>
+
+<h3 id="arm-linux-androideabi-g_Internal_error_Killed_(program_cc1plus)">arm-linux-androideabi-g++: Internal error: Killed (program cc1plus)</h3>
+
+<p>Si vous obtenez ce message, cela signifie probablement qu'il manque de la mémoire. Assurez-vous de disposer de suffisamment de mémoire avant de lancer <code>./build.sh</code>. Si vous disposez de 4 Go, cela devrait suffire.</p>
+
+<h3 id="Erreur_«_...is_referenced_by_DSO_»">Erreur « ...is referenced by DSO »</h3>
+
+<p>Lors de la compilation de l'émulateur, si vous obtenez « /usr/bin/ld: out/host/linux-x86/obj/EXECUTABLES/triangleCM_intermediates/triangleCM: hidden symbol `_XGetRequest' in out/host/linux-x86/obj/STATIC_LIBRARIES/libSDL_intermediates/libSDL.a(SDL_x11dyn.o) is referenced by DSO ».</p>
+
+<p>Cela peut arriver avec certaines versions de binutils. Si vous utilisez Debian Stable, vous pouvez utiliser le linker <em>gold </em>en installant le paquet <code>binutils-gold</code>. Le linker <em>gold</em> est déjà installé avec <code>binutils</code> mais il n'est pas utilisé par défaut. <code>binutils-gold</code> permet de le passser en linker par défaut.</p>
+
+<h3 id="Si_vous_obtenez_des_erreurs_de_compilation_lorsque_le_système_de_compilation_exécute_les_tests">Si vous obtenez des erreurs de compilation lorsque le système de compilation exécute les tests</h3>
+
+<p>Certaines fois (surtout lorsque les outils de compilation et/ou le système sont mis à jour) vous pouvez obtenir certaines erreurs étranges lorsque le script effectue les tests post-compilation :</p>
+
+<pre>Generating permissions.sqlite...
+test -d profile || mkdir -p profile
+run-js-command permissions
+WARNING: permission unknown:offline-app
+WARNING: permission unknown:indexedDB-unlimited
+build/permissions.js:122: NS_ERROR_UNEXPECTED: Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIPermissionManager.add]
+make[1]: *** [permissions] Error 3
+make: *** [gaia/profile.tar.gz] Error 2</pre>
+
+<p>Pour résoudre ce problème, supprimez le répertoire <code>gaia/xulrunner-sdk</code> avant de récupérer le code :</p>
+
+<pre>rm -r gaia/xulrunner-sdk
+</pre>
+
+<p>Cette commande permettra de supprimer la version téléchargée, précompilée de <a href="/en-US/docs/XULRunner" title="/en-US/docs/XULRunner">XULRunner</a> que le système de compilation récupère automatiquement. Lors de la prochaine compilation, le système téléchargera automatiquement une nouvelle version de XULRunner.</p>
+
+<h3 id="Impossible_de_récupérer_platformlibcore">Impossible de récupérer platform/libcore</h3>
+
+<p>Si vous essayez de configurer B2G pour Nexus S (<code>./config.sh nexus-s</code>) et que vous obtenez une erreur liée à libcore, cela est dû à un problème avec le git linaro. Pour résoudre ce problèmé, récupérez le manifeste de B2G :</p>
+
+<pre class="brush: bash">git clone https://github.com/mozilla-b2g/b2g-manifest.git</pre>
+
+<p>Puis éditez le fichier <code>nexus-s.xml</code> dans ce dépôt, remplacez l'entrée pour le git linaro avec une référence à l'entrée aosp. Le résultat obtenu devrait ressembler à :</p>
+
+<pre class="brush: xml">&lt;default revision="refs/tags/android-4.0.4_r1.2"
+ remote="aosp"
+ sync-j="4" /&gt;</pre>
+
+<p>Effectuez un commit ces modifications (<code>git commit -a</code>) puis modifiez le fichier <code>config.sh</code> dans la branche <code>master</code> du dépôt principal de B2G puis modifiez le pour pointer vers votre fichier de manifeste local (plutôt que celui de Mozilla) avec la commande suivante :</p>
+
+<pre class="brush: bash">GITREPO=${GITREPO:-"file:///home/path/to/my/b2g-manifest"}</pre>
+
+<h3 id="Erreurs_clang_lors_de_la_compilation_avec_Xcode_5_sur_OS_X">Erreurs clang lors de la compilation avec Xcode 5 sur OS X</h3>
+
+<p>Si vous compilez en utilisant Xcode 5 sur OS X 10.8, il est probable que vous rencontriez les erreurs suivantes :</p>
+
+<pre class="brush: bash">clang: error: argument unused during compilation: '-include system/core/include/arch/darwin-x86/AndroidConfig.h'
+clang: error: argument unused during compilation: '-U DEBUG'
+clang: error: argument unused during compilation: '-U DEBUG'
+clang: error: argument unused during compilation: '-MF out/host/darwin-x86/obj/EXECUTABLES/obbtool_intermediates/Main.d'
+make: *** [out/host/darwin-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1</pre>
+
+<p>Cela est dû à la modification du compilateur g++ dans le dossier <code>/usr/bin</code> par Xcode 5, ce qui fait planter le processus de compilation. Pour résoudre ce problème, éditer la ligne du fichier <code>build/core/combo/HOST_darwin-x86.mk:</code></p>
+
+<pre class="brush: bash">HOST_CXX := g++</pre>
+
+<p>en</p>
+
+<pre class="brush: bash">HOST_CXX := g++-4.7
+ifeq (,$(wildcard /usr/local/bin/g++-4.7))
+ HOST_CXX := g++
+endif</pre>
+
+<p>Ensuite, désinstaller gcc avec brew (ici, on considère que vous avez utilisé le <a href="/fr/Firefox_OS/Prerequis_pour_construire_Firefox_OS#Installer_les_pr.C3.A9requis_Firefox_OS_pour_Mac">script de mise en route pour Mac OS</a>, si ce n'est pas le cas, utiliser ce script avant de continuer) :</p>
+
+<pre class="brush: bash">brew uninstall gcc-4.7</pre>
+
+<p>Puis réinstaller gcc avec le support multilib et c++ :</p>
+
+<pre class="brush: bash">brew install --enable-cxx https://gist.github.com/artlogic/6988658/raw/aeb9d1ea098274ad3f3fe2637b9df7f308a8a120/gcc-4.7.rb</pre>
+
+<p>Assurez vous que /usr/local/bin soit bien dans votre PATH. Vous pouvez l'ajouter temporairement à votre PATH grâce à la ligne suivante :</p>
+
+<pre class="brush: bash">export PATH=/usr/local/bin:$PATH</pre>
+
+<p>Pour rendre cette modification permanente, vous pouvez ajouter cette ligne dans le fichier <code>.bash_profile</code> de votre répertoire home.</p>
+
+<p>Une fois que vous avez bien défini votre PATH, assurez-vous de pouvoir lancer chacune d eces commandes :</p>
+
+<pre class="brush: bash">gcc-4.7 -v
+
+g++-4.7 -v</pre>
+
+<p>Si l'une de ces commandes échoue, il faudra peut-être lier de nouveau GCC à brew grâce à la commande suivante :</p>
+
+<pre class="brush: bash">brew link --overwrite gcc-4.7</pre>
+
+<p>Il se peut également que <code>/usr/bin/c++</code> ne pointe pas vers clang++ alors que ça devrait être le cas avec Xcode 5 installé. Vous pouvez le vérifier en tapant la commande suivante :</p>
+
+<pre class="brush: bash">ls -l /usr/bin/c++</pre>
+
+<p>Le résultat de cette commande devrait ressembler à :</p>
+
+<pre class="brush: bash">lrwxr-xr-x 1 root admin 7 Sep 19 11:40 /usr/bin/c++ -&gt; clang++
+</pre>
+
+<p>Si c++ pointe vers autre chose que vers clang++, il faut mettre à jour avec le lien :</p>
+
+<pre class="brush: bash">sudo rm /usr/bin/c++
+
+sudo ln -s /usr/bin/clang++ /usr/bin/c++</pre>
+
+<h3 id="systemcoreincludeloglog.h3820_error_stdarg.h_No_such_file_or_directory">"system/core/include/log/log.h:38:20: error: stdarg.h: No such file or directory"</h3>
+
+<p>Cette erreur peut se produire si vous utilisez 10.6 SDK pour compiler sur Mac OSX 10.10, ou tout autre configuration SDK qui n'est pas supportée par la cible que vous essayer de compiler. Voir <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1071266" title="FIXED: [flame] XCode 6 only provides 10.9 SDK causing flame builds to fail">bug 1071266</a> pour plus de détails.</p>
+
+<h3 id="Impossible_de_récupérer_les_fichiers_depuis_le_répertoire_de_sauvegarde">Impossible de récupérer les fichiers depuis le répertoire de sauvegarde</h3>
+
+<p>Cela peut arriver lorsque la connexion USB a été interrompue lors de la récupération des données de l'appareil vers l'ordinateur.</p>
+
+<p>Lorsque vous lancez le script, vous obtenez un résultat semblable à celui-là (obtenu pour un Peak) :</p>
+
+<pre class="brush: bash"><code>Pulling files from ../../../backup-peak
+cat: ../../../backup-peak/system/build.prop: No such file or directory
+Found firmware with build ID
+Pulling "libaudioeq.so"
+cp: cannot stat `../../../backup-peak/system/lib/libaudioeq.so': No such file or directory
+Failed to pull libaudioeq.so. Giving up.
+
+&gt; Build failed! &lt;
+
+Build with |./build.sh -j1| for better messages
+If all else fails, use |rm -rf objdir-gecko| to clobber gecko and |rm -rf out| to clobber everything else.</code></pre>
+
+<p>Pour résoudre ce problème, il n'est pas nécessaire de supprimer les répertoires <code>objdir-gecko</code> et <code>out</code> dans leur intégralité. Il suffit de supprimer le répertoire de sauvegarde avec cette commande) :</p>
+
+<pre class="brush: bash"><code class="brush: bash">$rm -rf backup-peak</code></pre>
+
+<h3 id="Problèmes_de_compilation_pour_l'émulateur"><strong>Problèmes de compilation pour l'émulateur</strong></h3>
+
+<p>Si vous construisez une version d'un <strong>émulateur</strong>, vous pourrez rencontrer certains problèmes. Les informations détaillées ici permettent d'en résoudre certains.</p>
+
+<div class="note">
+<p><strong>Attention : l'émulateur x86 est plus difficile à installer et n'est pas très bien supporté.</strong></p>
+</div>
+
+<p>Le système de compilation d'un émulateur construit à la fois la version 32 bits et la version 64 bits de l'émulateur. L'émulateur aura besoin d'utiliser OpenGL, cela signifie qu'il vous faudra avoir installé les bibliothèques 32 bits et 64 bits pour OpenGL. Voir la discussion à ce sujet sur le <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=897727" title="https://bugzilla.mozilla.org/show_bug.cgi?id=897727">bug 897727</a>.</p>
+
+<p>Deux méthodes permettent de résoudre ce problème :</p>
+
+<h4 id="Première_solution_avoir_installé_les_deux_bibliothèques_OpenGL_32_bits_et_64_bits_et_avoir_construit_les_liens_symboliques_(symlinks)">Première solution : avoir installé les deux bibliothèques OpenGL 32 bits et 64 bits et avoir construit les liens symboliques (<em>symlinks</em>)</h4>
+
+<p>Si votre distribution Linux dispose de paquets multilib pour les bibliothèques OpenGL, vous pouvez les installer manuellement. Il vous faudra peut être ajouter manuellement certains liens symboliques.</p>
+
+<p>Par exemple, sur Ubuntu 12.04 LTS x86-64, le paquet <code>libgl1-mesa-dev</code> ne peut pas être installé simultanément pour les versions x86-64 et i386 mais la combinaison de paquets suivante peut être installée :</p>
+
+<pre class="bz_comment_text" id="comment_text_12">sudo apt-get install libgl1-mesa-dev libglapi-mesa:i386 libgl1-mesa-glx:i386</pre>
+
+<p>Une fois avoir lancé la commande précédente, il vous faudra créer quelques liens symboliques pour que la compilation puisse fonctionner :</p>
+
+<pre class="note">sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
+sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so</pre>
+
+<h4 id="Seconde_solution_corriger_le_dépôt_pour_que_l'émulateur_ne_soit_compilé_qu'en_64_bits">Seconde solution : corriger le dépôt pour que l'émulateur ne soit compilé qu'en 64 bits</h4>
+
+<p>Il suffit d'appliquer <a href="https://bug897727.bugzilla.mozilla.org/attachment.cgi?id=786280" title="https://bug897727.bugzilla.mozilla.org/attachment.cgi?id=786280">ce correctif</a> au dépôt git sdk/ situé sous le dépôt B2G. L'émulateur B2G ne sera ainsi compilé qu'en une version 64 bits, ce qui permettra d'éviter tout problème e gestion des bibliothèques pour différentes architectures. Dans tous les cas, l'émulateur 32 bits ne sera pas utilisé sur un système 64 bits. Cette solution est la plus simple à mettre en œuvre (sauf si le patch devient un jour corrompu...).</p>
+
+<h2 id="Prochaines_étapes">Prochaines étapes</h2>
+
+<p>Une fois la compilation achevée, la suite dépendra de votre cible : un appareil mobile « réel » ou un émulateur. Pour obtenir les informations pertinentes, vous pouvez lire les articles suivants :</p>
+
+<ul>
+ <li><a href="/docs/Mozilla/Firefox_OS/Using_the_B2G_emulators" title="Mozilla/Firefox_OS/Using_the_B2G_emulators">Utiliser les émulateurs B2G</a></li>
+ <li><a href="/fr/Firefox_OS/Building_the_B2G_desktop_client" title="Mozilla/Firefox_OS/Using_the_B2G_desktop_client">Utiliser le client B2G pour ordinateur</a></li>
+ <li><a href="/fr/Firefox_OS/Installer_sur_un_telephone_mobile" title="Mozilla/Firefox_OS/Installing_on_a_mobile_device">Installer Boot to Gecko sur un appareil mobile</a></li>
+ <li><a href="/docs/Mozilla/Firefox_OS/Pandaboard" title="Mozilla/Firefox_OS/Pandaboard">Installer Boot to Gecko sur une PandaBoard</a></li>
+</ul>
+</div>
+
+<h3 id="Soumettre_des_bugs_sur_B2GFirefox_OSGaia">Soumettre des bugs sur B2G/Firefox OS/Gaia</h3>
+
+<p>Une fois que votre version de B2G/Firefox OS fonctionne, vous serez en mesure de rapporter des bogues et d'aider à l'amélioration de Firefox OS. Si vous trouvez un bug<a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox%20OS">, vous pouvez le décrire sur Bugzilla</a>, grâce au projet "Firefox OS" en spécifiant bien les éléments de version :</p>
+
+<ol>
+ <li>Pour commencer, indiquez le numéro de version <em>majeur</em>, par exemple <em>1.4.0.0-prerelease</em>. Cette information se trouve dans <em>Paramètres &gt; Informations</em>.</li>
+ <li>Vous pouvez fournir des identifiants de versions plus spécifiques en indiquant les hash correspondant aux dépôt gaia et gecko. Pour obtenir ces informations, vous pouvez utiliser les commanes suivantes :
+ <pre class="brush: bash">#!/bin/bash
+(cd gaia; echo "gaia $(git rev-parse HEAD)")
+(cd gecko; echo "gecko $(git rev-parse HEAD)")</pre>
+ </li>
+</ol>