- At first I had decided to build Firefox using Visual Studio 2005 on Windows XP. No knowing where to start I did what I usually do when I don’t have a clue about something. I googled it. Using the following search query “build Firefox using visual studio” in google I was directed to .
- I followed the instructions on that page up to the point where the buildsetup.bat needed to be executed. It did not work. I was unable to execute the script. I knew this because it wasn’t setting up the correct environmental variables for CVS to work properly. After an hour of struggle with this problem I decided to give up on Windows and decided to try my luck with OS X.
- I chose to build Firefox using the release 126.96.36.199 source which was available online on the mozilla release website. I downloaded firefox-188.8.131.52-source.tar.bz2 and then extracted the content of the archive into /Users/Moe/proj/.
- My .mozconfig settings
sudo gcc_select 3.3 export MOZCONFIG=~/proj . $topsrcdir/browser/config/mozconfig mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-opt-static ac_add_options --with-macos-sdk=/Developer/SDKs/MacOSX10.4u.sdk ac_add_options --enable-optimize ac_add_options --disable-debug ac_add_options --enable-static ac_add_options --disable-shared ac_add_options --disable-tests mk_add_options MOZ_CO_PROJECT=browser ac_add_options --enable-application=browser
- I searched google with the following query “mac osx build firefox” and this page  was returned as one of the search results. I then followed the instructions on the build documentation page and at the end was able to get Firefox built and running in no time.
: Hardware and Software Requirements
- I didn’t care much about the hardware requirements listed on the Build Documentation page because I knew that my laptop was a fairly recent model [2 years old] and that the only reason why they usually require high system requirements is mostly to decrease the time that it takes to compile code.
- My hardware configuration
Machine Name: PowerBook G4 12" Machine Model: PowerBook6,8 CPU Type: PowerPC G4 (1.2) Number Of CPUs: 1 CPU Speed: 1.5 GHz L2 Cache: 512 KB Memory: 512 MB Bus Speed: 167 MHz
- Xcode: I already had Xcode installed since I had used it before in my BTP course. Xcode provided me with the SDKs that were required for building Firefox as well as the build tools like the gcc 3.3 compiler. [Get Xcode]
- My software configuration
Mac OS X Version 10.7.7 GNU Make 3.80 DarwinPorts 1.310 gcc version 3.3 20030304 (Apple Computer, Inc. build 1819) Xcode 2.3
: Problems encountered & Resolutions
- When compiling Firefox I realized that I was missing the QuickTime, CoreAudio and the OpenGL SDK. To resolve this issue I re-downloaded Xcode and installed the missing files.
- Missing QuickTime SDK
In file included from /Users/Moe/proj/mozilla/widget/src/mac/nsSound.cpp:64: /Developer/Headers/FlatCarbon/Movies.h:1:33: error: QuickTime/QuickTime.h: No such file or directory /Users/Moe/proj/mozilla/widget/src/mac/nsSound.cpp:166: error: 'Movie' has not been declared /Users/Moe/proj/mozilla/widget/src/mac/nsSound.cpp:170: error: 'Movie' does not name a type /Users/Moe/proj/mozilla/widget/src/mac/nsSound.cpp: In constructor 'nsMovieSoundRequest::nsMovieSoundRequest()': ....... In file included from /System/Library/Frameworks/QuickTime.framework/Headers/QuickTime.h:62, from /Developer/Headers/FlatCarbon/Movies.h:1, from /Users/Moe/proj/mozilla/widget/src/mac/nsSound.cpp:64: /System/Library/Frameworks/QuickTime.framework/Headers/QuickTimeComponents.h:10966: error: parse error before `*' token /Users/Moe/proj/mozilla/widget/src/mac/nsSound.cpp: In member function `virtual nsresult nsMovieSoundRequest::OnStreamComplete(nsIStreamLoader*, nsISupports*, unsigned int, unsigned int, const PRUint8*)': /Users/Moe/proj/mozilla/widget/src/mac/nsSound.cpp:782: warning: unused variable `nsresult rv' make: *** [nsSound.o] Error 1 make: *** [libs] Error 2 make: *** [libs] Error 2 make: *** [tier_9] Error 2 make: *** [default] Error 2 make: *** [build] Error 2
- Missing CoreAudio SDK
/System/Library/Frameworks/QuickTime.framework/Headers/Movies.h:47:33: CoreAudio/CoreAudio.h: No such file or directory
- Missing OpenGL SDK
/System/Library/Frameworks/QuickTime.framework/Headers/ImageCompression.h:24:27: OpenGL/OpenGL.h: No such file or directory
- After I added the missing SDKs I was still unable to compile and I would get the same build error message over and over again.
ld: Undefined symbols: _fprintf$LDBLStub make: *** [updater] Error 1 make: *** [libs] Error 2 make: *** [libs] Error 2 make: *** [libs] Error 2 make: *** [libs] Error 2 make: *** [tier_50] Error 2 make: *** [default] Error 2 make: *** [build] Error 2
- After many build attempts I realized that the old object files that were compiled before, when I was missing the SDKs, were causing the build process to fail. The removal of the object files with in the objdir resulted it a successful build of Firefox.
: Resources Used
: Final Thoughts
- My first experience with building Firefox has been quite uneventful. I was expecting hours of painful struggle with this assignment but luckily the entire process went without a hitch at least compared to the other horror stories I’ve heard. I however consider myself lucky to have all the tools needed already installed and ready to go.