Cet article nécessite une relecture rédactionnelle. Voici comment vous pouvez aider.
Cet article decrit la compilation de Mozilla en utilisant Mingw sur Windows sans installer Microsoft Visual Studio en 14 étapes. Les version compiler dans cet article ont été compiler en mode debug.
Espace Disque Requis
Vous allez avoir besoin d'au moin 3.7 Go d'espace libre sur votre disque pour télécharger les outils et le code source, y compris une fois compilé.
Création du dossier principal
Tous les outils et le code source seront stockés dans ce dossier C:\mozilla\
, il faut donc le creer en premier.
mkdir C:\mozilla\
Télécharger les outils GNU pour Microsoft Windows (Cygwin)
Télécharger Cygwin. C'est une compilation d'outils fonctionnent sous Windows.
Installer les outils dans le dossier C:\mozilla\cygwin\.
En plus des outils de base, vous devrez installer:
- cygutils (Utils)
- make (Devel)
- patch (Utils)
- patchutils (Devel)
- autoconf (Devel)
- perl (Perl)
- python (Python)
- unzip (Archive)
- zip (Archive)
- m4 (interpreters)
Pour installer ces outils, cliquer sur le bouton Curr puis cher les outils individuelement dans la zone de recherche.
Les outils suivant sont censés être installer de base, mais veuillez verifier qu'ils soient tous séléctionnés.
- ash
- diffutils
- fileutils
- findutils
- gawk
- grep
- sed
- sh-utils
- textutils
Télécharger Mozilla wintools
Netscape a modifié de nombreux outils GNU en ligne de commande pour resoudre cetains probleme souvent lié au makefile et a la compatibilité avec la compilation style GNU UNIX.
Décompresser le fichier dans un dossier temporaire. Puis ouvrez un invite de commande et faite:
set MOZ_TOOLS=c:\mozilla\moztools mkdir c:\mozilla\moztools cd buildtools\windows install.bat
Récupérer MinGW
Télécharger les paquets MinGW suivants:
Utiliser mingw-get est la façon la plus simple et rapide de recuperer ces paquets. Parallèlement, vous pouvez décompresser tous le fichiers tar.gz
dans le dossier C:\mozilla\mingw\
. Vous pouvez le faire en plaçant tous le fichiers tar.gz
dans le dossier C:\mozilla\mingw\
puis en ouvrant un invité de commandes et en tapant les commandes suivantes:
cd c:\mozilla\mingw\ c:\mozilla\cygwin\bin\gzip -d *.tar.gz c:\mozilla\cygwin\bin\tar -xvf binutils-* c:\mozilla\cygwin\bin\tar -xvf gcc-core-* c:\mozilla\cygwin\bin\tar -xvf gcc-g++-* c:\mozilla\cygwin\bin\tar -xvf mingw-runtime-* c:\mozilla\cygwin\bin\tar -xvf w32api-* del *.tar
Creer le fichier de configuration
Creer un fichier nommer mozset.bat dans C:\mozilla. Ce fichier devra contenir les lignes suivantes:
@echo off set MOZ_TOOLS=c:\mozilla\moztools set PATH=c:\mozilla\mingw\bin;c:\mozilla\cygwin\bin;%MOZ_TOOLS%\bin;%PATH% set HOME=c:\mozilla
Lancer le fichier de configuration
Preparez vous a récupérer le code source Mozilla. Lancer les commandes suivantes dans un invité de commande:
cd c:\mozilla\ mozset.bat
Laissez l'invité de commande apres avoir fait ceci.
Convertir les headers au format UNIX
Puisque nous somme sur la plateforme Windows, nous devons convertir les headers au format UNIX.
cd c:\mozilla\moztools\include\ dos2unix.exe *.h cd libIDL\ dos2unix.exe *.h
Récupérer le code
Pour compiler Firefox, vous avez besoin des dernières sources provenant de mozilla-central.
cd c:\mozilla\ hg clone https://hg.mozilla.org/mozilla-central/ mozilla
Creer le fichier .mozconfig
Maintenant de dever creer un fichier appelé .mozconfig dans C:\mozilla\mozilla\
. Il devra contenir certaines des lignes suivantes:
Pour compiler Mozilla Thunderbird en mode optimisé:
. $topsrcdir/mail/config/mozconfig CC=gcc CXX=g++ CPP=cpp AS=as LD=ld ac_add_options --disable-accessibility
Pour compiler Mozilla Thunderbird en mode debug, le mode affichant les information de débogage:
. $topsrcdir/mail/config/mozconfig CC=gcc CXX=g++ CPP=cpp AS=as LD=ld ac_add_options --disable-accessibility ac_add_options --enable-debug ac_add_options --disable-optimize
Pour compiler Mozilla Firefox en mode optimisé:
. $topsrcdir/browser/config/mozconfig CC=gcc CXX=g++ CPP=cpp AS=as LD=ld ac_add_options --disable-accessibility
Pour compiler Mozilla Firefox en mode debug, le mode affichant les information de débogage:
. $topsrcdir/browser/config/mozconfig CC=gcc CXX=g++ CPP=cpp AS=as LD=ld ac_add_options --disable-accessibility ac_add_options --enable-debug ac_add_options --disable-optimize
Pour compiler Mozilla Sunbird en mode optimisé:
. $topsrcdir/calendar/sunbird/config/mozconfig CC=gcc CXX=g++ CPP=cpp AS=as LD=ld ac_add_options --disable-accessibility
Pour compiler Mozilla Sunbird en mode debug, le mode affichant les information de débogage:
. $topsrcdir/calendar/sunbird/config/mozconfig CC=gcc CXX=g++ CPP=cpp AS=as LD=ld ac_add_options --disable-accessibility ac_add_options --enable-debug ac_add_options --disable-optimize
Compiler
Maintenant compilons! Cela peut mettre plus de temps que de récupérer le code. La vitesse dépend en réalite de votre configuration matériel.
cd c:\mozilla\mozilla\ make -f client.mk
Vous pouvez creer un fichier tous les warnings et les erreur en tapant ceci:
cd c:\mozilla\mozilla\ make -f client.mk > c:\mozilla\build.log 2>&1
La prochaine fois, si vous voulez metre a jour et compiler le code, vous devrez taper ces commandes:
cd c:\mozilla\mozilla\ hg update make -f client.mk
Lancer l'executable
Pour lancer Mozilla Thunderbird:
cd c:\mozilla\mozilla\thunderbird\bin\ thunderbird.exe -console
Pour lancer Mozilla Firefox:
cd c:\mozilla\mozilla\dist\bin\ firefox.exe -console
Problème
Voici quelque astuces pouvant resoudre quelques problèmes.
Verifier vos outils
Verifier que tous les outils que vous utulisé son installer et fonctionnent.
Tester gcc
cd c:\mozilla\ mozset.bat gcc -v
Gcc devrait être en version 4.9.2. Si il ne l'est pas, alors il ya un problème.
Tester make
cd c:\mozilla\ mozset.bat make -v
Make devrait être en version 4.1. Si il ne l'est pas, alors il ya un problème.
exec: cl: not found
make[4]: Entering directory `/cygdrive/c/mozilla/mozilla/nsprpub/config' sh /cygdrive/c/mozilla/mozilla/nsprpub/build/cygwin-wrapper cl -Fonow.obj -c -W3 -nologo -GF -Gy -MDd -Od -Z7 -UNDEBUG -DDEBUG_hege -UWINNT -DMOZILLA_CLIENT=1 -DDEBUG=1 -DXP_PC=1 -DWIN32=1 -D_DEBUG=1 -DWIN95=1 -D_PR_GLOBAL_THREADS_ONLY=1 -D_X86_=1 -DFORCE_PR_LOG /cygdrive/c/mozilla/mozilla/nsprpub/config/now.c exec: cl: not found
Cette erreur veut dire qu'il na pas trouver cl
. Cl est le compilateur Microsoft Visual C++. Vous voulez utiliser le compilateur gcc a la place de MinGW.
Solution: Verifiez que le chemin vers le dossier Cygwin est bien configurer dans le fichier mozset.bat. Verifiez aussi que le chemin vers MinGW est specifier avant chemin vers MOZ_TOOLS
Problems with cdefs.h
Si vous avez cette erreur:
sys/cdefs.h: No such file or directory
Solution: Verifiez que le chemin vers MinGW est specifier avant le chemin vers Cygwin.
Probleme avec glib.h
Solution: [[#Convertir les headers au format UNIX|Convertir] les headers moztools
avec dos2unix
.
Parse erreur
Vous voyez une erreur comme celle-ci:
parse error before '*' token
Solution: [[#Convertir les headers au format UNIX|Convertir] les headers moztools
avec dos2unix
.
midl manquant
Si vous avez cette erreur:
"midl" c:/mozilla/mozilla/accessible/public/msaa/ISimpleDOMNode.idl "midl" not found
Solution: Les options suivantes ne fonctionnent pas encore avec gcc sur windows, vous devez donc les desactiver:
ac_add_options --disable-accessibility ac_add_options --disable-activex
Pour l'instant les headers et les librairis mingw n'emule pas encore accessibility. Peut-être qu'a un moment mingw le fera.
Probleme avec "vtable cant be auto-imported"
Certaines personne on des probleme avec "vtable" quand il compile . il dit quelque chose comme "variable vtable cant be auto-imported".
Solution: La solution est d'ajouter la ligne suivante a votre .mozconfig:
LDFLAGS="-mwindows -Wl,--enable-runtime-pseudo-reloc"
Pas d'ID de compilation
Si vous compiler Mozilla et qu'il n'a pas d'ID de compilation, vous devriez ajouter les lignes suivantes a votre fichier mozset.bat:
MOZILLA_OFFICIAL=1 set BUILD_OFFICIAL=1
A voir aussi
Original Document Information
- Author(s): Henrik Gemal
- Last Updated Date: February 6, 2008
- Copyright Information: 1995-2006 Henrik Gemal