Compiler Mozilla avec MinGW

Cet article nécessite une relecture rédactionnelle. Voici comment vous pouvez aider.

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

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 http://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

 

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : cocof35
 Dernière mise à jour par : cocof35,