Difference between revisions of "User:Mckwan/Assignment1"
Line 36: | Line 36: | ||
* Configure environment variables by create a script called buildsetup.bat in C:\assignment1. (the following code from David's website) | * Configure environment variables by create a script called buildsetup.bat in C:\assignment1. (the following code from David's website) | ||
<pre> | <pre> | ||
− | @echo off | + | @echo off |
− | rem --- CVS Setup | + | rem --- CVS Setup |
− | SET CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot | + | SET CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot |
− | SET CVS_RSH=ssh | + | SET CVS_RSH=ssh |
− | rem --- Setup the paths to the moztools build libraries | + | rem --- Setup the paths to the moztools build libraries |
− | set MOZ_TOOLS=C:\assignment1\moztools | + | set MOZ_TOOLS=C:\assignment1\moztools |
− | set GLIB_PREFIX=%MOZ_TOOLS% | + | set GLIB_PREFIX=%MOZ_TOOLS% |
− | set LIBIDL_PREFIX=%MOZ_TOOLS% | + | set LIBIDL_PREFIX=%MOZ_TOOLS% |
− | rem --- Scrub these variables first | + | rem --- Scrub these variables first |
− | SET INCLUDE= | + | SET INCLUDE= |
− | SET LIB= | + | SET LIB= |
− | SET PATH=C:\;C:\windows\system32;C:\windows\system32\wbem | + | SET PATH=C:\;C:\windows\system32;C:\windows\system32\wbem |
− | rem --- Prepend cygwin | + | rem --- Prepend cygwin |
− | SET PATH=C:\cygwin\bin;%PATH% | + | SET PATH=C:\cygwin\bin;%PATH% |
− | rem --- Setup VC8 compiler environment vars | + | rem --- Setup VC8 compiler environment vars |
− | CALL "C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat" x86 | + | CALL "C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat" x86 |
− | rem --- Add glib/libidl to build environment | + | rem --- Add glib/libidl to build environment |
− | SET PATH=%PATH%;%GLIB_PREFIX%;%GLIB_PREFIX%\bin | + | SET PATH=%PATH%;%GLIB_PREFIX%;%GLIB_PREFIX%\bin |
− | SET INCLUDE=%GLIB_PREFIX%\include;%INCLUDE% | + | SET INCLUDE=%GLIB_PREFIX%\include;%INCLUDE% |
− | SET LIB=%GLIB_PREFIX%\lib;%LIB% | + | SET LIB=%GLIB_PREFIX%\lib;%LIB% |
− | rem --- moztools comes last after glib/libIDL | + | rem --- moztools comes last after glib/libIDL |
− | SET PATH=%PATH%;%MOZ_TOOLS%\bin | + | SET PATH=%PATH%;%MOZ_TOOLS%\bin |
</pre> | </pre> | ||
* Run buildsetup.bat in C:\assignment1. | * Run buildsetup.bat in C:\assignment1. | ||
+ | <pre> c:\assignment1> buildsetup </pre> | ||
+ | |||
* Login to the mozilla CVS repository in C:\assignment1, type anonymous as password when prompted. | * Login to the mozilla CVS repository in C:\assignment1, type anonymous as password when prompted. | ||
− | C:\assignment1> cvs login | + | <pre> C:\assignment1> cvs login </pre> |
* Check out the build script | * Check out the build script | ||
− | + | <pre> C:\assignment1> cvs co mozilla/browser/config mozilla/client.mk | |
this will create mozilla directory within C:\assignment1 | this will create mozilla directory within C:\assignment1 | ||
− | + | </pre> | |
* create a text file .mozconfig in mozilla (the following code from David's website) | * create a text file .mozconfig in mozilla (the following code from David's website) | ||
+ | <pre> | ||
# Building Firefox Trunk with Debugging | # Building Firefox Trunk with Debugging | ||
. $topsrcdir/browser/config/mozconfig | . $topsrcdir/browser/config/mozconfig | ||
Line 89: | Line 92: | ||
# I'm using Canvas for my work | # I'm using Canvas for my work | ||
ac_add_options --enable-canvas | ac_add_options --enable-canvas | ||
+ | </pre> | ||
• Check out the source code from cvs | • Check out the source code from cvs | ||
− | + | <pre>c:\assignment1\mozilla> make -f client.mk checkout </pre> | |
• Finally do the build | • Finally do the build | ||
− | c:\assignment1\mozilla> make –f client.mk build | + | <pre>c:\assignment1\mozilla> make –f client.mk build |
Once the build is successful, firefox 3.0 will be in c:\assignment1\mozilla\firefox-objdir\dist\bin | Once the build is successful, firefox 3.0 will be in c:\assignment1\mozilla\firefox-objdir\dist\bin | ||
+ | </pre> | ||
==Problems== | ==Problems== | ||
Revision as of 19:16, 18 September 2006
Contents
Introduction
The following are the steps I took to build Firefox on Windows XP SP2 using Visual Studio.NET 2005. My first step is to read the build prerequisites for Windows in the Mozilla developer site. Then search “how to build firefox on Windows” on Google. I follow the instructions on David Humphrey's website.
Hardware Configuration
Intel Pentium 4 Processor-M 1.8 MHz 1 GB RAM 60 gig Hard Drive Windows XP sp2
Software Requirements
- Install Visual Studio.NET 2005 using the default paths. Download it from ACS.
- Install Cygwin following the instructions in http://developer.mozilla.org/en/docs/Windows_Build_Prerequisites and install the require packages.
ash -- UNIX-like command line interpreter shell (Base category) coreutils -- GNU core utilities (includes fileutils, install, sh-utils, and textutils) (Base category) cvs -- concurrent versions system (Devel category) diffutils -- file comparison utility (Base category) findutils (Base category) gawk -- pattern matching language (Base and Interpretors categories) grep -- text search tool (Base category) libiconv -- character set conversion (Devel category) make 3.80 (not 3.81!) -- dependency analyzer for software builds (Devel category) patchutils -- a small collection of programs that operate on patch files (Devel category) perl -- a scripting language used to control parts of the build (Interpreters category) sed -- a search and replace language (Base category) unzip -- zip file extraction (Archive category) zip -- zip file creation (Archive category)
- Create a directory C:\assignment1
- Download and Extract Moztools to C:\assignment1\moztools
Steps to Build Firefox
- Configure environment variables by create a script called buildsetup.bat in C:\assignment1. (the following code from David's website)
@echo off rem --- CVS Setup SET CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot SET CVS_RSH=ssh rem --- Setup the paths to the moztools build libraries set MOZ_TOOLS=C:\assignment1\moztools set GLIB_PREFIX=%MOZ_TOOLS% set LIBIDL_PREFIX=%MOZ_TOOLS% rem --- Scrub these variables first SET INCLUDE= SET LIB= SET PATH=C:\;C:\windows\system32;C:\windows\system32\wbem rem --- Prepend cygwin SET PATH=C:\cygwin\bin;%PATH% rem --- Setup VC8 compiler environment vars CALL "C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat" x86 rem --- Add glib/libidl to build environment SET PATH=%PATH%;%GLIB_PREFIX%;%GLIB_PREFIX%\bin SET INCLUDE=%GLIB_PREFIX%\include;%INCLUDE% SET LIB=%GLIB_PREFIX%\lib;%LIB% rem --- moztools comes last after glib/libIDL SET PATH=%PATH%;%MOZ_TOOLS%\bin
- Run buildsetup.bat in C:\assignment1.
c:\assignment1> buildsetup
- Login to the mozilla CVS repository in C:\assignment1, type anonymous as password when prompted.
C:\assignment1> cvs login
- Check out the build script
C:\assignment1> cvs co mozilla/browser/config mozilla/client.mk this will create mozilla directory within C:\assignment1
- create a text file .mozconfig in mozilla (the following code from David's website)
# Building Firefox Trunk with Debugging . $topsrcdir/browser/config/mozconfig # Put all obj files in one place, not in src tree mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox-objdir ac_add_options --disable-static ac_add_options --enable-shared # Debug Build Setup Options ac_add_options --disable-optimize ac_add_options --enable-debug # I'm using Canvas for my work ac_add_options --enable-canvas
• Check out the source code from cvs
c:\assignment1\mozilla> make -f client.mk checkout
• Finally do the build
c:\assignment1\mozilla> make –f client.mk build Once the build is successful, firefox 3.0 will be in c:\assignment1\mozilla\firefox-objdir\dist\bin
Problems
Screenshot
Coming soon
Conclusion
I was expecting a lot of problems with the Mozilla Firefox build. This turned out to be better then I expected as building on Windows XP professional proved to be very easy and straight forward as long as you follow the instruction closely and make sure all the version are correct. The build problems I encountered allowed me to understand more about the build system and how the slightest version change can break the build.