mozilla

Compare Revisions

Simple Firefox build

Change Revisions

Revision 18053:

Revision 18053 by Mitch 1 2 on

Revision 18054:

Revision 18054 by Mitch 1 2 on

Title:
Simple Firefox build
Simple Firefox build
Slug:
Simple_Firefox_build
Simple_Firefox_build
Tags:
Firefox, "Developing Mozilla", "Build documentation"
Firefox, "Developing Mozilla", "Build documentation"
Content:

Revision 18053
Revision 18054
n70              <li>Make sure your system is up-to-date through&nbsn70              <li>Make sure your system is up-to-date through&nbs
>p;Windows Update. In particular, if you're using Windows XP, you >p;Windows Update. Windows XP needs at least <a class="external" h
>must have <a class="external" href="http://www.microsoft.com/wind>ref="http://www.microsoft.com/windowsxp/sp2/default.mspx">Service
>owsxp/sp2/default.mspx">Windows XP Service Pack 2</a> and <a clas> Pack 2</a> and <a class="external" href="http://www.microsoft.co
>s="external" href="http://www.microsoft.com/downloads/info.aspx?n>m/downloads/info.aspx?na=47&amp;p=3&amp;SrcDisplayLang=en&amp;Src
>a=47&amp;p=3&amp;SrcDisplayLang=en&amp;SrcCategoryId=&amp;SrcFami>CategoryId=&amp;SrcFamilyId=4377f86d-c913-4b5c-b87e-ef72e5b4e065&
>lyId=4377f86d-c913-4b5c-b87e-ef72e5b4e065&amp;u=details.aspx?fami>amp;u=details.aspx?familyid=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&
>lyid=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&amp;displaylang=en">.NE>amp;displaylang=en">.NET Framework 2.0</a>.
>T Framework 2.0</a>. 
n72              <li>Install Visual C++ 2005 Professional, VC++&nbspn72              <li>Install Visual C++ 2005 Professional, VC++&nbsp
>;2008 Professional or <a class="external" href="http://www.micros>;2008 Professional or <a class="external" href="http://www.micros
>oft.com/downloads/details.aspx?FamilyId=F3FBB04E-92C2-4701-B4BA-9>oft.com/downloads/details.aspx?FamilyId=F3FBB04E-92C2-4701-B4BA-9
>2E26E408569&amp;displaylang=en" title="http://www.microsoft.com/d>2E26E408569&amp;displaylang=en" title="http://www.microsoft.com/d
>ownloads/details.aspx?FamilyId=F3FBB04E-92C2-4701-B4BA-92E26E4085>ownloads/details.aspx?FamilyId=F3FBB04E-92C2-4701-B4BA-92E26E4085
>69&amp;displaylang=en">Express with SP1</a>, or Visual C++ 2010 P>69&amp;displaylang=en">Express with SP1</a>, or Visual C++ 2010 P
>rofessional. VC++ 2008 Express without SP1 is known to not work.>rofessional. VC++ 2008 Express without SP1 will not work.
n76              <li>Install <a class="external" href="http://ftp.mon76              <li>Install <a class="external" href="http://ftp.mo
>zilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSet>zilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSet
>up-Latest.exe" title="http://ftp.mozilla.org/pub/mozilla.org/mozi>up-Latest.exe" title="http://ftp.mozilla.org/pub/mozilla.org/mozi
>lla/libraries/win32/MozillaBuildSetup-Latest.exe">MozillaBuild</a>lla/libraries/win32/MozillaBuildSetup-Latest.exe">MozillaBuild</a
>>, a package of additional build tools. (If you get a message say>>, a package of additional build tools. (If you see a Windows err
>ing this application did not install properly then you should see>or dialog giving you the option to re-install with the 'correct s
> a windows dialog giving you the option to re-install with the 'c>ettings', choose that option and after that all should be well.)
>orrect settings'. After that all should be well.) 
n95# Get the sourcen
n97cd mozilla-centraln
98 
99# Setup a basic mozconfig file
100echo '. $topsrcdir/browser/config/mozconfig' &gt; mozconfig      
>                # let's build Firefox... 
101echo 'mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-ff-release' &g
>t;&gt; mozconfig   # ...in this directory... 
102 
103# Parallel compilation is a nice speedup.
104# USE THIS ONLY IF NOT ON WINDOWS!  Parallel compilation on Windo
>ws is 
105# unreliable now due to bug 524149.
106echo 'mk_add_options MOZ_MAKE_FLAGS="-j4"' &gt;&gt; mozconfig
107 
108# Build
109make -f client.mk
n111    <ul>n97    <p>
112      <li>On Windows, the shell may default to a directory with a98      On Windows, the shell may default to a directory with a spa
> space in the path (eg&nbsp;"Documents and Settings"). This will >ce in the path (e.g"Documents and Settings"). This will break t
>break things. Make sure your clone is not in such a path. For exa>hings. Make sure your clone is not in such a path. For example, f
>mple, first do "<code>cd /c</code>" to clone to <code>C:\mozilla->irst do "<code>cd /c</code>" and then cloning will happen in <cod
>central</code>.>e>/c/mozilla-central (which is C:\mozilla-central</code>).
113      </li>99    </p>
100    <h3>
101      mozconfig
102    </h3>
103    <p>
104      For a standard release build (optimized), a mozconfig file 
 >is not strictly required. For a debug build, you need different <
 >a href="/en/Configuring_Build_Options" title="en/Configuring Buil
 >d Options">configuration options</a> in your <code>mozconfig</cod
 >e>.
105    </p>
106    <p>
107      Use as few configuration options as you can.
108    </p>
109    <p>
114      <li>OS&nbsp;X 10.6 ("Snow Leopard") users will need extra o110      OS&nbsp;X 10.6 ("Snow Leopard") users will need extra optio
>ptions in their <code>mozconfig</code>, see the <a class="interna>ns in their <code>mozconfig</code>, see the <a class="internal" h
>l" href="/En/Developer_Guide/Build_Instructions/Mac_OS_X_Prerequi>ref="/En/Developer_Guide/Build_Instructions/Mac_OS_X_Prerequisite
>sites" title="En/Developer Guide/Build Instructions/Mac OS X Prer>s" title="En/Developer Guide/Build Instructions/Mac OS X Prerequi
>equisites">OS&nbsp;X&nbsp;Build Prerequisites</a> page for detail>sites">OS&nbsp;X&nbsp;Build Prerequisites</a> page for details.
>s. 
115      </li>111    </p>
116      <li>For a debug build, you need different <a href="/en/Conf112    <p>
>iguring_Build_Options" title="en/Configuring Build Options">confi 
>guration options</a> in your <code>mozconfig</code> file. You sho 
>uld use as few configuration options as you can. 
117      </li>
118      <li>The source directory (topsrcdir) is&nbsp;the root direc113      The source directory (topsrcdir) is&nbsp;the root directory
>tory of&nbsp;the&nbsp;checkout. It&nbsp;has many subdirectories w> of&nbsp;the&nbsp;checkout. It&nbsp;has many subdirectories withi
>ithin it,&nbsp;containing source code files&nbsp;and makefiles. A>n it,&nbsp;containing source code files&nbsp;and makefiles. An ob
>n objdir is where object files&nbsp;and processed makefiles are p>jdir is where object files&nbsp;and processed makefiles are put d
>ut during the build.&nbsp;A <code>mozconfig</code> named ".mozcon>uring the build.&nbsp;A <code>mozconfig</code> named ".mozconfig"
>fig"&nbsp;in the&nbsp;top source dir is automatically used. If yo>&nbsp;in the&nbsp;top source dir is automatically used. If you do
>u do not specify a MOZ_OBJDIR&nbsp;it will be automatically set t> not specify a MOZ_OBJDIR within a mozconfig it will be automatic
>o @TOPSRCDIR@/obj-@CONFIG_GUESS@. Here's a sample <code>mozconfig>ally set to @TOPSRCDIR@/obj-@CONFIG_GUESS@.
></code>:<br> 
119      </li>114    </p>
120      <li>115    <p>
116      <code>"export MOZCONFIG=/c/some/path/mozconfig"</code> in t
 >he shell will tell the build system to use that mozconfig instead
 >.
117    </p>
118    <p>
119      Parallel compilation is generally faster. Use a value equal
 > to the number of processor cores. Parallel compilation on Window
 >s is unreliable due to bug 524149.
120    </p>
121    <p>
122      Here's a sample <code>mozconfig</code> for a debug build:
123    </p>
121        <pre>124    <pre>
nn126mk_add_options MOZ_MAKE_FLAGS="-j4"
n126      </li>n130    <p>
127      <li>The <code>firefox</code> executable can be found in <co131      In your <code>mozilla-central</code> directory, run
>de>objdir-ff-release/dist/bin</code>/ (on Mac, <code>objdir-ff-re 
>lease/dist/Minefield.app/Contents/MacOS/</code>). 
128      </li>
129    </ul>132    </p>
133    <pre>
134make -f client.mk
135</pre>
136    <p>
137      to start building. After a successful build with the above 
 >configuration, the <code>firefox</code> executable can be found i
 >n <code>objdir-ff-debug/dist/bin</code>/ (on Mac, <code>objdir-ff
 >-debug/dist/Minefield.app/Contents/MacOS/</code>).
138    </p>
t142      Then just re-run the "make -f client.mk" command above. <cot151      Then just re-run the "<code>make -f client.mk</code>" comma
>de>make</code> will only recompile files that changed, but it's s>nd above. <code>make</code> will only recompile files that change
>till a long haul. An <a class="internal" href="/en/Incremental_Bu>d, but it's still a long haul. An <a class="internal" href="/en/I
>ild" title="En/Incremental Build">incremental build</a> can be fa>ncremental_Build" title="En/Incremental Build">incremental build<
>ster.>/a> can be faster.

Back to History