Difference between revisions of "Building the Fox"
(→Batch File) |
(→Batch File) |
||
Line 57: | Line 57: | ||
==Batch File== | ==Batch File== | ||
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 --- Set HOME so that cvs and ssh work correctly | rem --- Set HOME so that cvs and ssh work correctly | ||
rem --- cvs uses HOME to locate your .cvspass file, and ssh to locate your .ssh file | rem --- cvs uses HOME to locate your .cvspass file, and ssh to locate your .ssh file | ||
Line 64: | Line 63: | ||
in /etc/passwd. See http://www.cygwin.com/faq/faq0.html. | in /etc/passwd. See http://www.cygwin.com/faq/faq0.html. | ||
set HOME=C:\home | set HOME=C:\home | ||
− | |||
rem --- Set VCVARS to wherever the MSVC vcvars.bat file is found | rem --- Set VCVARS to wherever the MSVC vcvars.bat file is found | ||
set VCVARS=C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\vcvars32.bat | set VCVARS=C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\vcvars32.bat | ||
− | |||
rem --- Set MSSDK to wherever the MS SDK is installed | rem --- Set MSSDK to wherever the MS SDK is installed | ||
rem --- Only required for MSVC7 or the Free MSVC editions that don't come with an SDK | rem --- Only required for MSVC7 or the Free MSVC editions that don't come with an SDK | ||
set MSSDK=C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2 | set MSSDK=C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2 | ||
− | |||
rem --- Set MOZ_TOOLS to wherever you have the moztools packaged installed | rem --- Set MOZ_TOOLS to wherever you have the moztools packaged installed | ||
set MOZ_TOOLS=C:\moztools\moztools-static\moztools | set MOZ_TOOLS=C:\moztools\moztools-static\moztools | ||
− | |||
rem --- Set CYGWINBASE to wherever cygwin is installed | rem --- Set CYGWINBASE to wherever cygwin is installed | ||
rem --- Do not use CYGWIN or else cygserver, cygrunsrv, and Cygwin services will not function | rem --- Do not use CYGWIN or else cygserver, cygrunsrv, and Cygwin services will not function | ||
Line 82: | Line 77: | ||
rem --- Make sure Cygwin does not print out a DOS style path warning | rem --- Make sure Cygwin does not print out a DOS style path warning | ||
set CYGWIN=nodosfilewarning | set CYGWIN=nodosfilewarning | ||
− | |||
rem --- Prepend Cygwin path | rem --- Prepend Cygwin path | ||
rem --- This is necessary so that cygwin find is ahead of windows find.exe in the PATH, but | rem --- This is necessary so that cygwin find is ahead of windows find.exe in the PATH, but | ||
cgywin link is after MSVC link.exe. | cgywin link is after MSVC link.exe. | ||
set PATH=%CYGWINBASE%\bin;%PATH% | set PATH=%CYGWINBASE%\bin;%PATH% | ||
− | |||
rem --- Set MSVC environment vars | rem --- Set MSVC environment vars | ||
call "%VCVARS%" | call "%VCVARS%" | ||
− | |||
rem --- Prepend SDK paths | rem --- Prepend SDK paths | ||
rem --- Only required for MSVC7 or the Free MSVC editions that don't come with an SDK | rem --- Only required for MSVC7 or the Free MSVC editions that don't come with an SDK | ||
Line 96: | Line 88: | ||
set INCLUDE=%MSSDK%\include;%INCLUDE% | set INCLUDE=%MSSDK%\include;%INCLUDE% | ||
set LIB=%MSSDK%\lib;%LIB% | set LIB=%MSSDK%\lib;%LIB% | ||
− | |||
rem --- moztools comes last | rem --- moztools comes last | ||
set PATH=%PATH%;%MOZ_TOOLS%\bin | set PATH=%PATH%;%MOZ_TOOLS%\bin | ||
− | |||
rem --- Now the PATH variable contains: | rem --- Now the PATH variable contains: | ||
rem MS-SDK; MSVC; Cygwin; Windows; glib/libIDL; Moztools | rem MS-SDK; MSVC; Cygwin; Windows; glib/libIDL; Moztools | ||
− | |||
rem --- Typically the last thing the script does is launch a cygwin shell | rem --- Typically the last thing the script does is launch a cygwin shell | ||
rem --- watch for your ~/.profile and /etc/profile which may overwrite your carefully setup | rem --- watch for your ~/.profile and /etc/profile which may overwrite your carefully setup |
Revision as of 22:18, 17 September 2006
WORK IN PROGRESS
Contents
Aim
To build the Mozilla Firefox browser from source code.
Hypothesis
Apparatus
Hardware
AMD Athlon XP @ 1.82 GHz 512 MB RAM
Software
- Microsoft® Windows XP® Professional with Service Pack 2.
- Microsoft® Visual Studio .NET 2003® (with C++ module installed).(available from ACS: Disc 0 (Pre-requesite), Disc 1, Disc 2)
- Cygwin
- moztools
- Microsoft ® Windows Server® 2003 R2 Platform SDK
- NSIS Installer
- Make 3.80 (Needed to overwrite make 3.81 which is part of the Cygwin default install)
- 7-zip or similar archiving utility.
Method
Install all software in the default directory unless otherwise specified as it will save time and effort in the long run.
- Install Visual Studio .NET 2003 (with Visual C++ modules)
- Install Microsoft ® Windows Server® 2003 R2 Platform SDK
- Install Cygwin . Remember to install all the package binaries listed below as specified in the Windows Build Pre-requisites made available by the Mozilla Developer Center. To install a package simply expand the desired category and place a check in the bin check box. Source files are not required. Don't worry if you realize you made an error i.e. forgotten a required package. The Cygwin installer is smart enough to accomodate this situation. Simply re-run the Cygwin setup.exe and select the packages you want to add, remove or re-install).:
- 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 -- dependency analyzer for software builds (Devel category) (Don't worry if it is ver 3.81, we will correct this problem later).
- 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)
- Install Make 3.80
- Download and extract Make 3.80 (make-3.80-1.tar.bz2) to any folder of your choosing. A file named make-3.80-1.tar is created.
- Proceed to extract the make-3.80-1.tar file.
- Copy the make.exe file located within the usr/bin folder and overwrite the make.exe located in C:\cygwin\bin
- To Confirm that the version has changed to 3.80 by launching Cygwin. At the prompt type: make -v
- Download and Extract moztools to a folder of your chosing.
- Create an batch file containing steps needed to properly configure your build environment prior to proceeding with the build. The contents of the this batch file can be found within the #Batch File section of the #Appendix.
Observations
Conclusion
Appendix
Batch File
SET CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot SET CVS_RSH=ssh rem --- Set HOME so that cvs and ssh work correctly rem --- cvs uses HOME to locate your .cvspass file, and ssh to locate your .ssh file rem --- if you are using ssh, your HOME should match the home directory specified in /etc/passwd. See http://www.cygwin.com/faq/faq0.html. set HOME=C:\home rem --- Set VCVARS to wherever the MSVC vcvars.bat file is found set VCVARS=C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\vcvars32.bat rem --- Set MSSDK to wherever the MS SDK is installed rem --- Only required for MSVC7 or the Free MSVC editions that don't come with an SDK set MSSDK=C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2 rem --- Set MOZ_TOOLS to wherever you have the moztools packaged installed set MOZ_TOOLS=C:\moztools\moztools-static\moztools rem --- Set CYGWINBASE to wherever cygwin is installed rem --- Do not use CYGWIN or else cygserver, cygrunsrv, and Cygwin services will not function properly rem --- Variable CYGWIN is also used to modify Cygwin's behaviour a little bit. set CYGWINBASE=C:\cygwin rem --- Make sure Cygwin does not print out a DOS style path warning set CYGWIN=nodosfilewarning rem --- Prepend Cygwin path rem --- This is necessary so that cygwin find is ahead of windows find.exe in the PATH, but cgywin link is after MSVC link.exe. set PATH=%CYGWINBASE%\bin;%PATH% rem --- Set MSVC environment vars call "%VCVARS%" rem --- Prepend SDK paths rem --- Only required for MSVC7 or the Free MSVC editions that don't come with an SDK set PATH=%MSSDK%\bin;%PATH% set INCLUDE=%MSSDK%\include;%INCLUDE% set LIB=%MSSDK%\lib;%LIB% rem --- moztools comes last set PATH=%PATH%;%MOZ_TOOLS%\bin rem --- Now the PATH variable contains: rem MS-SDK; MSVC; Cygwin; Windows; glib/libIDL; Moztools rem --- Typically the last thing the script does is launch a cygwin shell rem --- watch for your ~/.profile and /etc/profile which may overwrite your carefully setup PATH! bash --login -i
.mozconfig File
# 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
ac_add_options --disable-installer