Open main menu

CDOT Wiki β

Vesper-labs-minefield

Building a Minefield

 
It didn't blow up this time!!

This was my first experience with Open Source, and it didn't go too badly. The quote that has touched me the most through this process was:

NOTE: You will have problems. Don't let that make you feel bad.

I took this as a direct challenge to achieve the unachievable; compile successfully on first try. Of course I failed. xD


After some trials and tribulations, I managed to build FF trunk on my home machine, running XP Home with SP3, and an AMD Athlon 64 processor (but not with 64-bit Windows).


The first try lasted about 60 minutes. The second attempt was interrupted by a system crash, so it couldn't be timed. The third try was dramatically shorter than 60 minutes; I started it 30 minutes before supper, thinking it wouldn't be done until I was full, but it finished before I left.


Laying the Mines

There were a few simpler problems I had run into, not counting the surprising amount of hard disk space I had to scrounge up for this. After installing Mozbuild, getting the source code, and running "./configure" successfully, the first thing I got yelled at for was not installing the Vista SDK in the instructions. (I'm running XP and I thought Vista wasn't relevant, so I ignored it on purpose. Silly me.)


The next issue was not so obvious, and was solved through dumb luck. I ran into this line in the install instructions:

$ make -f client.mk build

I ran this. Errors abounded. It asked for files like ".mozconfig.out", and wouldn't run even if I made those files. The solution was to simply type "make" by itself and toss the official instructions out the window. The core compile process finally began!


At this point, the command prompt started spewing forth text for the next hour or so. Things looked good, until the end, when it blew up in my face. (I'll try to reproduce the output here; the output was lost because the computer crashed shortly after the failed compile. :V )


The errors were unbelievably vague. They didn't list filenames or line numbers or anything. From this point, I could either plow through developer code bases for the next few hours, or I could see what my successful classmates were up to.


Solving that Last Hurdle

By skimming all the Seneca blogs on compiling FF3, I followed Zghansar's very relevant blog to his build page. His post seemed to match my OS and situation best.


His experience was a relatively painless one. Mine, on the other hand, ended in failure. The only difference I noticed between our two setups was that my configuration was different. I replaced my .mozconfig text with his, and my next build was successful. Thanks, Zghansar! :D


Aftermath

Here's my (relevant) directory structure, in case it's a deciding factor in terms of success.

Mozbuild directory (suggested default):
c:\mozilla-build

Source code directory (my random naming and location):
c:\mozilla-build\ff-src

Compiled executable:
c:\mozilla-build\ff-src\dist\bin\firefox.exe


 


Here's the .mozconfig file I thought should work (but didn't):

. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../ff-opt
ac_add_options --disable-tests
ac_add_options --enable-application=browser
mk_add_options MOZ_CO_PROJECT=browser