MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Compiler Mozilla avec MinGW

Note : This page used to be linked from Windows Build Prerequisites and should be again.

Cet article décrit la compilation de Mozilla en utilisant Mingw sur Windows sans installer Microsoft Visual Studio en 14 étapes. Les versions compilées dans cet article ont été compilées en mode debug.

Espace Requis

Vous allez avoir besoin d'au moins 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 créer 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 fonctionnant 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 optionnels, cliquez sur le bouton Curr puis cherchez les outils individuellement dans la zone de recherche.

Les outils suivants sont censés être installés de base, mais veuillez vérifier qu'ils sont tous sélectionné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 résoudre certains problèmes souvent liés au makefile et à la compatibilité avec la compilation style GNU UNIX.

Décompresser le fichier dans un dossier temporaire. Puis ouvrez un invité de commandes et faites :

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 récupérer ces paquets.  Autrement, vous pouvez décompresser tous les fichiers tar.gz dans le dossier C:\mozilla\mingw\. Vous pouvez le faire en plaçant tous les 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

Créer le fichier de configuration

Créer un fichier nommé 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

Préparez-vous a récupérer le code source Mozilla. Lancer les commandes suivantes dans un invité de commandes :

cd c:\mozilla\
mozset.bat

Laisser l'invité de commande après avoir fait ceci.

Convertir les headers au format UNIX

Puisque nous sommes 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 http://hg.mozilla.org/mozilla-central/ mozilla

Créer le fichier .mozconfig

Maintenant, vous devez créer un fichier appelé .mozconfig dans C:\mozilla\mozilla\. Il devra contenir certaines de ces lignes :

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 informations 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 informations 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 informations 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 prendre plus de temps que de récupérer le code. La vitesse dépend en réalité de votre configuration matérielle.

cd c:\mozilla\mozilla\
make -f client.mk

Vous pouvez créer un fichier contenant tous les avertissements(warnings) et les erreurs en tapant ceci:

cd c:\mozilla\mozilla\
make -f client.mk > c:\mozilla\build.log 2>&1

La prochaine fois, si vous voulez mettre à jour et compiler le code, vous devrez taper ces commandes:

cd c:\mozilla\mozilla\
hg update
make -f client.mk

Lancer l'éxécutable

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èmes

Voici quelques astuces pouvant résoudre certains problèmes.

Vérifier vos outils

Vérifiez que tous les outils que vous utilisez sont installés et fonctionnent.

Tester gcc
cd c:\mozilla\
mozset.bat
gcc -v

Gcc devrait être en version 4.9.2. S'il ne l'est pas, alors il y a un problème.

Tester make
cd c:\mozilla\
mozset.bat
make -v

Make devrait être en version 4.1. S'il ne l'est pas, alors il y a 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 n'a pas trouvé cl. Cl est le compilateur Microsoft Visual C++. Vous voulez utiliser le compilateur gcc a la place de MinGW.

Solution: Vérifiez que le chemin vers le dossier Cygwin est bien configuré dans le fichier mozset.bat. Vérifiez aussi que le chemin vers MinGW est specifié avant le chemin vers MOZ_TOOLS.

Problème avec cdefs.h

Si vous avez cette erreur:

sys/cdefs.h: No such file or directory

Solution: Vérifiez que le chemin vers MinGW est specifié avant le chemin vers Cygwin.

Problème avec glib.h

Solution: [[#Convertir les headers au format UNIX|Convertir] les headers moztools avec dos2unix.

Erreur d'analyse

Si 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 désactiver:

ac_add_options --disable-accessibility
ac_add_options --disable-activex

Pour l'instant les headers et les librairies mingw n'émule pas encore accessibility. Peut-être qu'a un moment mingw le fera.

Problème avec "vtable cant be auto-imported"

Certaines personnes ont des problèmes avec "vtable" quand il compile . Voici le type de message:  "variable vtable cant be auto-imported".

Solution: La solution consiste à ajouter la ligne suivante dans votre .mozconfig:

LDFLAGS="-mwindows -Wl,--enable-runtime-pseudo-reloc"

Pas d'ID de compilation

Si vous compilez Mozilla et qu'il n'a pas d'ID de compilation, vous devrez ajouter les lignes suivantes à 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

 

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : Godrod, mliatt, Hell_Carlito
 Dernière mise à jour par : Godrod,