C’est long de compiler un firefox ?

Compiler le code source de firefox, ce n’est pas trop compliqué, surtout si l’on suit les instructions fournies par le wiki des développeurs de la Fondation Mozilla.

< Mode troll de la mort qui tue, quoique…>
Même si mettre en place l’environnement de compilation sous des Unix (Linux, BSD libres, Solaris et MacOS-X) est largement plus simple que sous Windows 😉
</ Mode troll de la mort qui tue, quoique…>

Bref, une fois l’environnement de compilation mis en place, et le code source récupéré via CVS, on peut utiliser le .mozconfig suivant (Attention, fichier adapté pour la compilation du tronc, ou du code de la future version Beta 1 de Firefox).

Si vous désirez récupérer le code de Firefox 3.0 beta 1 pour le compiler, en gardant à l’esprit que ce n’est toujours qu’une version candidate à la version beta 1 officielle.

cvs co -r FIREFOX_3_0b1_RELEASE mozilla/client.mk mozilla/browser/config

Ensuite, on copie le .mozconfig suivant dans le répertoire .mozilla :

# See http://www.mozilla.org/build/ for build instructions.
#

export MAKEOPTS= »-j2″

. $topsrcdir/browser/config/mozconfig

# Options for ‘configure’ (same as command-line options).
ac_add_options –enable-optimize= »-Os -w -pipe »
ac_add_options –disable-debug
ac_add_options –disable-tests

ac_add_options –enable-default-toolkit=cairo-gtk2

ac_add_options –enable-strip
ac_add_options –disable-updater
ac_add_options –disable-mochitest

On récupère le code source :

make -f client.mk checkout

Enfin, on fait une copie du code source récupéré :

cd ..
tar cvf moz-fox.tar mozilla/ ; bzip2 -vv9 *.tar

On retourne dans le répertoire du code source, et on lance la compilation en chronométrant l’ensemble :

cd mozilla
time make -f client.mk ; make -C browser/installer

Une fois la compilation finie, on trouvera un fichier .zip ou .tar.bz2 contenant le firefox recompilé ne demandant plus qu’à être testé 😉

Pour donner un exemple : AMD Sempron 3100+ épaulé avec 1,5 Go de mémoire vive, gcc 4.2 et Ubuntu Linux 7.10 AMD64 :


real 46m28.493s
user 36m30.177s
sys 4m10.656s

Pour le support du compilateur gcc 4.2, j’ai rajouté les lignes suivantes dans le .mozconfig :


export CC=gcc-4.2
export CXX=g++-4.2

Je sais que c’est long, mais au moins, on voit le travail nécessaire pour la compilation d’un navigateur récent et au code moderne 😉