Status
Complete
Build Machine
- Intel Pentium 4 2Ghz
- 512MB RAM
- Ubuntu Dapper Drake on 5GB partition with 500MB swap space
Needed Packages
- build-essential
- libIDL-dev0.8
- cvs
- g++4.0
- gcc4.0
- make8.0
- libgtk2.0-dev
Build Process
1. This code will checkout client.mk into ./mozilla from the Bon Echo branch. Go to that directory and the last command will checkout the browser project. This step may take a while depending on your internet speed.
$ cvs -d :pserver:anonymous:anonymous@cvs-mirror.mozilla.org:/cvsroot co -r MOZILLA_1_8_BRANCH mozilla/client.mk $ cd mozilla $ make -f client.mk checkout MOZ_CO_PROJECT=browser
2. Before you can build you need to have a .mozconfig file in your ./mozilla directory. I have created this one which builds firefox with shared libraries, no optimization and I also enabled debugging. I also used gtk2 because I have version 0.8 of libIDL. By default the build will use gtk1.
. $topsrcdir/browser/config/mozconfig mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-static mk_add_options MOZ_CO_PROJECT=browser ac_add_options --enable-application=browser ac_add_options --disable-static ac_add_options --enable-shared ac_add_options --disable-tests ac_add_options --disable-optimize ac_add_options --enable-debug ac_add_options --enable-default-toolkit=gtk2 ac_add_options --disable-installer
3. Finally I fired the build command to compile firefox.
make -f client.mk build
Problems
Some of the problems relate to build requirements. By default Ubuntu doesn't come with programmer packages. After solving the package requirements I had unexpected error message long in the build. My next reaction was go on IRC and ask some experts.
Solution
I talked to cf2 at #firefox but he couldn't help me much, he pointed me in the same direction I came from, mainly config stuff. viper and cbguy1 told me what their .mozconfig looked like, I took their advise and enabled debug option and disable installer. Eric also told me when running newly built firefox I should close any other instances of firefox so that they don't conflict. The build was now complete.