Obsolete Build Caveats and Tips

  • Revision slug: Introduction/Obsolete_Build_Caveats_and_Tips
  • Revision title: Obsolete Build Caveats and Tips
  • Revision id: 448565
  • Created:
  • Creator: kscarfone
  • Is current revision? No
  • Comment Editorial review

Revision Content

Purpose of this page

The Mozilla build process and code base have evolved considerably over the past few years. This has resulted in many caveats and tips being added to the MDN documentation for building older versions of the code base or dealing with older build tools. These tips, while helpful, are jarring and superfluous to the majority of new Mozilla builders who are mainly interested in building the latest version of Firefox. Therefore, instead of deleting all these nuggets of information, it's best to collect them all here and remove them from the majority happy path documentation. Each piece of information should mention the page and the section it originally came from. You can copy in the original text and bold out what has been removed.

Obsolete caveats and tips

From Simple_Firefox_build

Install a version of Visual Studio that supports C++ development: VS 2012 for Windows Desktop Pro or Express (free), or VC++ 2010 Pro or Express (free), or VC++ 2008 Pro or Express with SP1 (free) (Warning ! From Firefox 10, the compilator is Visual Studio 2010; if you want to use it, you must use a previous version of it !), or 2005 Professional

 

From Build_Instructions

Older Mozilla Source Code via CVS
Those who need to work with the code for Firefox 3/Mozilla 1.9 and earlier can check out the latest source using CVS. In reality, you should probably not need to do this, since that code is very obsolete.
This note below seems redundant as this is true by default http://msdn.microsoft.com/en-us/library/dh8che7s%28v=vs.110%29.aspx

{{ gecko_callout_heading("7.0") }}

Starting with Gecko 7.0, you should no longer include "-Zc:wchar_t-" in the command line when building on Windows. If you're using Visual Studio, go to Project Properties > C/C++ > Language > Treat wchar_t as Built-in Type and set it to "yes".

 

From Source_Code/Mercurial

mozilla-2.0 (Firefox 4.0)

Code for the Firefox 4.0 (Gecko 2.0) release lives in releases/mozilla-2.0. To get this code, do the following:

# Pull the Mozilla source to the folder 20src/ - may take a while 
# as hundreds of megabytes of history is downloaded to .hg
hg clone http://hg.mozilla.org/releases/mozilla-2.0/ 20src

cd 20src

mozilla-1.9.2 (Firefox 3.6)

Code for the Firefox 3.6 (Gecko 1.9.2) release lives in releases/mozilla-1.9.2. To get this code, do the following:

# Pull the Mozilla source to the folder 192src/ - may take a while 
# as hundreds of megabytes of history is downloaded to .hg
hg clone http://hg.mozilla.org/releases/mozilla-1.9.2/ 192src

cd 192src

mozilla-1.9.1 (Firefox 3.5)

Code for the Firefox 3.5 (Gecko 1.9.1) release lives in releases/mozilla-1.9.1. To get this code, do the following:

# Pull the Mozilla source to the folder 191src/ - may take a while 
# as hundreds of megabytes of history is downloaded to .hg
hg clone http://hg.mozilla.org/releases/mozilla-1.9.1/ 191src

cd 191src

Note: Starting with Gecko 5.0, you can actually build Firefox without a .mozconfig file. By default, a similar-to-release build is done.

 

From Windows_SDK_versions

 

Visual C++ 9 (VS2008) Professional/Express

Download and install the Windows 7 SDK. Note that you need Service Pack 1--for the Express edition it is a separate download.

Visual C++ 8 (VS2005) Professional

  1. Download and install the Windows 7 SDK.
  2. Install this Microsoft hotfix to allow linking to work correctly.

Visual C++ 7.1 or Visual C++ 8 (VS2005) Express

These versions are not supported and the Windows 7 SDK will not work with them. You need to upgrade to one of the newer Visual C++ versions above.

 

For Gecko 11 or below: you could also download the Windows Vista SDK and follow the instructions there to allow you to build against it.

 

{{ gecko_callout_heading("12.0") }}

Starting Gecko 12.0, this SDK is necessary.

 

Note: While this configuration will probably build on mozilla-1.9.1 and mozilla-1.9.0, it is not supported.

 

Warning: Due to a bug in old versions of MozillaBuild (prior to 1.6), if you download version 7.1 of the Windows 7 SDK (which is the current version available), your build will fail, often while building cairo with "ocidl.h" errors. In order to fix this issue, you need to use the latest version of MozillaBuild.

 

Windows Vista SDK

{{ obsolete_header("12.0") }}

This is the SDK that mozilla-1.9.1 (Firefox 3.5) builds used to be built against. Features that depend on this SDK include:

  • Windows Vista parental controls
  • File associations and application registration on Vista and above
  • Ability to display the UAC shield icon in the UI
  • Thunderbird Windows Search integration
  • Text Services Framework support

There are two ways to obtain it:

  1. Download the Windows Vista SDK from the Microsoft Download Center.
    • You may choose not to install the Sample Code and Documentation to save space and download time.
    • If you are using Windows XP, you must have Windows XP Service Pack 2 and .NET Framework 2.0 installed before installing the Vista SDK.
  2. Use Visual Studio 2008 Professional.

Gecko 1.9.2 through 11: If you would like to use this SDK, add ac_add_options --with-windows-version=600 to your .mozconfig.

Windows Server 2003 R2 Platform SDK

{{ obsolete_header("12.0") }}

This is your only option if you're on Windows 2000. This also used to be necessary for building a default Gecko 1.9.2 through 8 with Visual C++ Express editions (see atlbase.h for more).

You can download the SDK from the Microsoft Download Center.

  • You need to install at least the "Windows Core SDK", "Web Workshop (IE) SDK", and the "Data Access Services (MDAC) SDK".
  • For all SDKs, you may choose not to install Sample Code and Documentation to save space and download time.

Gecko 1.9.2 through 11: If you're building with this SDK, you will need to add ac_add_options --with-windows-version=502 to your .mozconfig.

For mozilla-1.9.1 and mozilla-1.9.0, you need to add ac_add_options --disable-vista-sdk-requirements to your .mozconfig instead.

Unsupported SDKs

The Windows SDK for Windows Server 2008 is not supported, and has been found to cause the following problems:

  • Breaks the vcvars32.bat file from Visual Studio 2008
  • No longer sets the correct PATH for the .NET framework
  • Causes an invalid PATH which breaks the Mozilla build

If you have the Windows Server 2008 SDK installed, uninstall it. The SDK will break builds even if you try to use other SDKs.

Other possible workarounds:

  • Use another SDK (the one shipped with Visual Studio 9).
  • Delete the vcvars32.bat file and repair your Visual Studio installation with the setup program.
  • Edit vcvars32.bat to correct the problem (see http://blogs.msdn.com/windowssdk/arc...vironment.aspx "Workaround: Repair the VS2008 command line build environment by editing c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat manually").

SDKs older than the Server 2003 R2 Platform SDK aren't supported either.

 

From Windows build prerequisites [en-US]

 

Microsoft Visual C++ (MSVC)

Depending on what you're building, you will need to use one of several available versions of Microsoft Visual C++ (MSVC) and/or Microsoft Visual Studio. See the chart at the top of this page to ensure that the version you've selected is compatible with the branch you want to build.

If you want to enable jemalloc, you must be using Visual Studio 2012, Visual Studio 2010 SP1, Visual Studio 2010, Visual Studio 2008 SP1, or Visual Studio 2005 SP1. Other versions of Visual Studio will not work.
  • Visual Studio 2012 Express for Windows Desktop is available free from Microsoft.
  • Visual C++ 10 is available from Microsoft as part of the free Visual C++ 2010 Express Edition.
  • Visual C++ 9 is available from Microsoft as part of the free Visual C++ 2008 Express Edition with SP1 (make sure you get this and not the one without SP1!). You do not need to install the Silverlight runtime or the SQL Server 2008 Express Edition when offered. Alternatively you can install the command-line compiler as part of the Windows 7 SDK, but you are then expected to use the included WinDbg debugger.
  • The Visual C++ 8 command-line compiler is included with the Vista SDK, but you are then expected to use the included WinDbg debugger.

 

From Configuring Build Options [en-US]

{{ gecko_callout_heading("5.0+") }}

Starting with Gecko 5.0 {{ geckoRelease("5.0") }}, building Firefox has become extremely simple. The default application is now Firefox, so you can build Firefox by simply doing configure && make (for standalone source tarballs) or make -f client.mk (for code from the Mercurial repository); this will build something roughly the same as the shipped version of Firefox corresponding to the code you have. You only need to follow the steps below if you want to customize the build (e.g., to create a debug build or a release build with debug symbols), you want to build something other than Firefox, or you want to build pre-gecko 5.0 source.

If you are building Mozilla source code from before Firefox 5, then you must first select the Mozilla application that you want to build (see below), and you will probably also need to set at least some of the other basic configuration options (such as whether to build a debug build or not) to get the type of build that you need.

 

If you are building from an older project branch that still uses CVS, you will need to set MOZ_CO_PROJECT to the appropriate value or values, using a comma-separated list, such as "mk_add_options MOZ_CO_PROJECT=browser,mail,calendar,suite,xulrunner".  This setting is ignored by most Mozilla project branches, which now use mercurial instead of CVS for source control.

 

{{ gecko_callout_heading("2.0") }}

Starting in Gecko 2.0, objdir builds are enabled by default.  If you do not specify a MOZ_OBJDIR it will be automatically set to @TOPSRCDIR@/obj-@CONFIG_GUESS@

Alternatively, you can run client.mk directly from your objdir, using make -f <path_to_srcdir>/client.mk.

{{ gecko_callout_heading("5.0") }}

Starting in Gecko 5.0 {{ geckoRelease("5.0") }}, if you don't specify an application, --enable-application=browser is assumed, thereby building Firefox.

 

Revision Source

<h2 id="Purpose_of_this_page">Purpose of this page</h2>
<p>The Mozilla build process and code base have evolved considerably over the past few years. This has resulted in many caveats and tips being added to the MDN documentation for building older versions of the code base or dealing with older build tools. These tips, while helpful, are jarring and superfluous to the majority of new Mozilla builders who are mainly interested in building the latest version of Firefox. Therefore, instead of deleting all these nuggets of information, it's best to collect them all here and remove them from the majority happy path documentation. Each piece of information should mention the page and the section it originally came from. You can copy in the original text and bold out what has been removed.</p>
<h2 id="Obsolete_caveats_and_tips">Obsolete caveats and tips</h2>
<p>From <a href="/en-US/docs/Simple_Firefox_build#Windows" title="/en-US/docs/Simple_Firefox_build#Windows">Simple_Firefox_build</a></p>
<p>Install a version of Visual Studio that supports C++ development: <a href="http://www.microsoft.com/visualstudio/eng/downloads" title="http://www.microsoft.com/visualstudio/eng/downloads">VS 2012 for Windows Desktop</a> Pro or Express (free), or VC++ 2010 Pro or <a class="external" href="http://go.microsoft.com/?linkid=9709949" title="http://go.microsoft.com/?linkid=9709949">Express (free)</a>,<strong> or VC++&nbsp;2008 Pro or <a class="external" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=F3FBB04E-92C2-4701-B4BA-92E26E408569&amp;displaylang=en" title="http://www.microsoft.com/downloads/details.aspx?FamilyId=F3FBB04E-92C2-4701-B4BA-92E26E408569&amp;displaylang=en">Express with SP1 (free)</a> (Warning ! From Firefox 10, the compilator is Visual Studio 2010; if you want to use it, you must use a previous version of it !), or 2005 Professional</strong></p>
<p>&nbsp;</p>
<p>From <a href="/en-US/docs/Developer_Guide/Build_Instructions" title="/en-US/docs/Developer_Guide/Build_Instructions">Build_Instructions</a></p>
<dl>
  <dt>
    <a href="/En/Developer_Guide/Source_Code/CVS" title="en/Mozilla_Source_Code_(CVS)">Older Mozilla Source Code via CVS</a></dt>
  <dd>
    Those who need to work with the code for Firefox 3/Mozilla 1.9 and earlier can check out the latest source using CVS. In reality, you should probably not need to do this, since that code is very obsolete.</dd>
  <dt>
    This note below seems redundant as this is true by default http://msdn.microsoft.com/en-us/library/dh8che7s%28v=vs.110%29.aspx</dt>
</dl>
<div class="geckoVersionNote">
  <p>{{ gecko_callout_heading("7.0") }}</p>
  <p>Starting with Gecko 7.0, you should no longer include "-Zc:wchar_t-" in the command line when building on Windows. If you're using Visual Studio, go to Project Properties &gt; C/C++ &gt; Language &gt; Treat wchar_t as Built-in Type and set it to "yes".</p>
</div>
<p>&nbsp;</p>
<p>From <a href="/en-US/docs/Developer_Guide/Source_Code/Mercurial" title="/en-US/docs/Developer_Guide/Source_Code/Mercurial">Source_Code/Mercurial</a></p>
<h4 id="mozilla-2.0_(Firefox_4.0)">mozilla-2.0 (Firefox 4.0)</h4>
<p>Code for the Firefox 4.0 (Gecko 2.0) release lives in <a class="external" href="http://hg.mozilla.org/releases/mozilla-2.0" title="http://hg.mozilla.org/releases/mozilla-2.0">releases/mozilla-2.0</a>. To get this code, do the following:</p>
<pre>
# Pull the Mozilla source to the folder 20src/ - may take a while 
# as hundreds of megabytes of history is downloaded to .hg
hg clone http://hg.mozilla.org/releases/mozilla-2.0/ 20src

cd 20src</pre>
<h4 id="mozilla-1.9.2_(Firefox_3.6)">mozilla-1.9.2 (Firefox 3.6)</h4>
<p>Code for the Firefox 3.6 (Gecko 1.9.2) release lives in <a class="external" href="http://hg.mozilla.org/releases/mozilla-1.9.2" title="http://hg.mozilla.org/releases/mozilla-1.9.2">releases/mozilla-1.9.2</a>. To get this code, do the following:</p>
<pre>
# Pull the Mozilla source to the folder 192src/ - may take a while 
# as hundreds of megabytes of history is downloaded to .hg
hg clone http://hg.mozilla.org/releases/mozilla-1.9.2/ 192src

cd 192src</pre>
<h4 id="mozilla-1.9.1_(Firefox_3.5)">mozilla-1.9.1 (Firefox 3.5)</h4>
<p>Code for the Firefox 3.5 (Gecko 1.9.1) release lives in <a class="external" href="http://hg.mozilla.org/releases/mozilla-1.9.1" title="http://hg.mozilla.org/releases/mozilla-1.9.1">releases/mozilla-1.9.1</a>. To get this code, do the following:</p>
<pre>
# Pull the Mozilla source to the folder 191src/ - may take a while 
# as hundreds of megabytes of history is downloaded to .hg
hg clone http://hg.mozilla.org/releases/mozilla-1.9.1/ 191src

cd 191src
</pre>
<p><strong>Note:</strong> Starting with Gecko 5.0, you can actually build Firefox without a <code>.mozconfig</code> file. By default, a similar-to-release build is done.</p>
<p>&nbsp;</p>
<p>From <a href="/en-US/docs/Windows_SDK_versions" title="/en-US/docs/Windows_SDK_versions">Windows_SDK_versions</a></p>
<p>&nbsp;</p>
<h3 id="Visual_C.2B.2B_9_(VS2008)_Professional.2FExpress">Visual C++ 9 (VS2008) Professional/Express</h3>
<p>Download and install the <a href="#Windows_7_SDK">Windows 7 SDK</a>. Note that you need Service Pack 1--for the Express edition it is a <a class="external" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=F3FBB04E-92C2-4701-B4BA-92E26E408569&amp;displaylang=en" title="http://www.microsoft.com/downloads/details.aspx?FamilyId=F3FBB04E-92C2-4701-B4BA-92E26E408569&amp;displaylang=en">separate download</a>.</p>
<h3 id="Visual_C.2B.2B_8_(VS2005).C2.A0Professional">Visual C++ 8 (VS2005)&nbsp;Professional</h3>
<ol>
  <li>Download and install the <a href="#Windows_7_SDK">Windows 7 SDK</a>.</li>
  <li>Install this <a class="external" href="http://support.microsoft.com/kb/949009/" title="http://support.microsoft.com/kb/949009/">Microsoft hotfix</a> to allow linking to work correctly.</li>
</ol>
<h3 id="Visual_C.2B.2B_7.1_or_Visual_C.2B.2B_8_(VS2005)_Express">Visual C++ 7.1 or Visual C++ 8 (VS2005) Express</h3>
<p>These versions are <strong>not supported </strong>and the Windows 7 SDK will not work with them. You need to upgrade to one of the newer Visual C++ versions above.</p>
<p>&nbsp;</p>
<p><strong>For Gecko 11 or below</strong>: you could also download the <a href="#Windows_Vista_SDK">Windows Vista SDK</a> and follow the instructions there to allow you to build against it.</p>
<p>&nbsp;</p>
<div class="geckoVersionNote" style="undefined">
  <p>{{ gecko_callout_heading("12.0") }}</p>
  <p>Starting Gecko 12.0, this SDK is necessary.</p>
</div>
<p>&nbsp;</p>
<p><strong>Note:</strong> While this configuration will probably build on mozilla-1.9.1 and mozilla-1.9.0, it is not supported.</p>
<p>&nbsp;</p>
<div class="warning">
  <strong>Warning:</strong> Due to a bug in old versions of MozillaBuild (prior to 1.6), if you download version 7.1 of the Windows 7 SDK (which is the current version available), your build <strong>will</strong> fail, often while building cairo with "ocidl.h" errors. In order to fix this issue, you need to use the latest version of MozillaBuild.</div>
<p class="warning">&nbsp;</p>
<h2 id="Windows_Vista_SDK">Windows Vista SDK</h2>
<p>{{ obsolete_header("12.0") }}</p>
<p>This is the SDK&nbsp;that mozilla-1.9.1 (Firefox 3.5) builds used to be built against. Features that depend on this SDK&nbsp;include:</p>
<ul>
  <li>Windows Vista parental controls</li>
  <li>File associations and application registration on Vista and above</li>
  <li>Ability to display the UAC shield icon in the UI</li>
  <li>Thunderbird Windows Search integration</li>
  <li>Text Services Framework support</li>
</ul>
<p>There are two ways to obtain it:</p>
<ol>
  <li>Download the <a class="external" href="http://www.microsoft.com/downloads/details.aspx?familyid=4377F86D-C913-4B5C-B87E-EF72E5B4E065&amp;displaylang=en" title="http://www.microsoft.com/downloads/details.aspx?familyid=4377F86D-C913-4B5C-B87E-EF72E5B4E065&amp;displaylang=en">Windows Vista SDK</a> from the Microsoft Download Center.
    <ul>
      <li>You may choose not to install the Sample Code and Documentation to save space and download time.</li>
      <li>If you are using Windows XP, you must have <a class="external" href="http://www.microsoft.com/windowsxp/sp2/default.mspx" rel="external nofollow" target="_blank" title="http://www.microsoft.com/windowsxp/sp2/default.mspx">Windows XP Service Pack 2</a> and <a class="external" href="http://www.microsoft.com/downloads/info.aspx?na=47&amp;p=3&amp;SrcDisplayLang=en&amp;SrcCategoryId=&amp;SrcFamilyId=4377f86d-c913-4b5c-b87e-ef72e5b4e065&amp;u=details.aspx?familyid=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&amp;displaylang=en" rel="external nofollow" target="_blank" title="http://www.microsoft.com/downloads/info.aspx?na=47&amp;p=3&amp;SrcDisplayLang=en&amp;SrcCategoryId=&amp;SrcFamilyId=4377f86d-c913-4b5c-b87e-ef72e5b4e065&amp;u=details.aspx%3ffamilyid%3d0856EACB-4362-4B0D-8EDD-AAB15C5E04F5%26displaylang%3den">.NET Framework 2.0</a> installed before installing the Vista SDK.</li>
    </ul>
  </li>
  <li>Use Visual Studio 2008 Professional.</li>
</ol>
<p><strong>Gecko 1.9.2 through 11: </strong>If you would like to use this SDK, add <code>ac_add_options --with-windows-version=600</code> to your .mozconfig.</p>
<h2 id="Windows_Server_2003_R2_Platform_SDK">Windows Server 2003 R2 Platform SDK</h2>
<p>{{ obsolete_header("12.0") }}</p>
<p>This is your only option if you're on Windows 2000. This also used to be necessary for building a default <strong>Gecko 1.9.2 through 8</strong> with Visual C++ Express editions (see <a href="/en/atlbase.h" title="atlbase.h">atlbase.h</a> for more).</p>
<p>You can <a class="external" href="http://www.microsoft.com/downloads/details.aspx?familyid=0baf2b35-c656-4969-ace8-e4c0c0716adb&amp;displaylang=en" title="http://www.microsoft.com/downloads/details.aspx?familyid=0baf2b35-c656-4969-ace8-e4c0c0716adb&amp;displaylang=en">download the SDK</a>&nbsp;from the Microsoft Download Center.</p>
<ul>
  <li>You need to install at least the "Windows Core SDK", "Web Workshop (IE) SDK", and the "Data Access Services (MDAC) SDK".</li>
  <li>For all SDKs, you may choose not to install Sample Code and Documentation to save space and download time.</li>
</ul>
<p><strong>Gecko 1.9.2 through 11: </strong>If you're building with this SDK, you will need to add <code>ac_add_options --with-windows-version=502</code> to your .mozconfig.</p>
<div class="note">
  For mozilla-1.9.1 and mozilla-1.9.0, you need to add <code>ac_add_options --disable-vista-sdk-requirements</code> to your .mozconfig instead.</div>
<h2 id="Unsupported_SDKs">Unsupported SDKs</h2>
<p>The Windows SDK for Windows Server 2008 is not supported, and has been found to cause the following problems:</p>
<ul>
  <li>Breaks the vcvars32.bat file from Visual Studio 2008</li>
  <li>No longer sets the correct PATH for the .NET framework</li>
  <li>Causes an invalid PATH which breaks the Mozilla build</li>
</ul>
<p><strong>If you have the Windows Server 2008 SDK installed, uninstall it. The SDK will break builds even if you try to use other SDKs.</strong></p>
<p>Other possible workarounds:</p>
<ul>
  <li>Use another SDK (the one shipped with Visual Studio 9).</li>
  <li>Delete the vcvars32.bat file and repair your Visual Studio installation with the setup program.</li>
  <li>Edit vcvars32.bat to correct the problem (see <a class="external" href="http://blogs.msdn.com/windowssdk/archive/2008/04/18/installing-win-sdk-for-svr-2008-after-vs-2008-breaks-vs-command-line-build-environment.aspx" rel="freelink">http://blogs.msdn.com/windowssdk/arc...vironment.aspx</a> "Workaround: Repair the VS2008 command line build environment by editing c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat manually").</li>
</ul>
<p>SDKs older than the Server 2003 R2 Platform SDK&nbsp;aren't supported either.</p>
<p>&nbsp;</p>
<p>From <a href="/en-US/docs/Developer_Guide/Build_Instructions/Windows_Prerequisites" title="/en-US/docs/Developer_Guide/Build_Instructions/Windows_Prerequisites">Windows build prerequisites [en-US]</a></p>
<p>&nbsp;</p>
<h3 id="Microsoft_Visual_C.2B.2B_(MSVC)">Microsoft Visual C++ (MSVC)</h3>
<p>Depending on what you're building, you will need to use one of several available versions of Microsoft Visual C++ (MSVC) and/or Microsoft Visual Studio. See the chart at the top of this page to ensure that the version you've selected is compatible with the branch you want to build.</p>
<div class="warning">
  If you want to enable jemalloc, you must be using Visual Studio 2012, Visual Studio 2010 SP1, Visual Studio 2010, Visual Studio 2008 SP1, or <a class="external" href="http://www.microsoft.com/downloads/details.aspx?familyid=bb4a75ab-e2d4-4c96-b39d-37baf6b5b1dc&amp;displaylang=en">Visual Studio 2005 SP1</a>. Other versions of Visual Studio will not work.</div>
<ul>
  <li><a href="http://www.microsoft.com/visualstudio/eng/downloads" title="http://www.microsoft.com/visualstudio/eng/downloads">Visual Studio 2012 Express for Windows Desktop</a> is available free from Microsoft.</li>
  <li>Visual C++ 10 is available from Microsoft as part of the free <a class="external" href="http://go.microsoft.com/?linkid=9709949" title="http://go.microsoft.com/?linkid=9709949">Visual C++ 2010 Express Edition</a>.</li>
  <li>Visual C++ 9 is available from Microsoft as part of the free <a class="external" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=F3FBB04E-92C2-4701-B4BA-92E26E408569&amp;displaylang=en" title="http://www.microsoft.com/downloads/details.aspx?FamilyId=F3FBB04E-92C2-4701-B4BA-92E26E408569&amp;displaylang=en">Visual C++ 2008 Express Edition with SP1</a>&nbsp;(make sure you get this and not the one without SP1!). You do not need to install the Silverlight runtime or the SQL&nbsp;Server 2008 Express Edition when offered. Alternatively you can install the command-line compiler as part of the Windows 7 SDK, but you are then expected to use the included WinDbg debugger.</li>
  <li>The Visual C++&nbsp;8 command-line compiler is included with the Vista SDK, but you are then expected to use the included WinDbg debugger.</li>
</ul>
<p>&nbsp;</p>
<p>From <a href="/en-US/docs/Configuring_Build_Options" title="/en-US/docs/Configuring_Build_Options">Configuring Build Options [en-US]</a></p>
<div class="geckoVersionNote">
  <p>{{ gecko_callout_heading("5.0+") }}</p>
  <p>Starting with Gecko 5.0 {{ geckoRelease("5.0") }}, building Firefox has become extremely simple. The default application is now Firefox, so you can build Firefox by simply doing <code>configure &amp;&amp;&nbsp;make</code> (for standalone source tarballs) or <code>make -f client.mk</code> (for code from the Mercurial repository); this will build something roughly the same as the shipped version of Firefox corresponding to the code you have. You only need to follow the steps below if you want to customize the build (e.g., to create a debug build or a release build with debug symbols), you want to build something other than Firefox, or you want to build pre-gecko 5.0 source.</p>
</div>
<p>If you are building Mozilla source code from before Firefox 5, then you <strong>must</strong> first select the Mozilla application that you want to build (see below), and you will probably <em>also</em> need to set at least <em>some</em> of the other basic configuration options (such as whether to build a debug build or not) to get the type of build that you need.</p>
<p>&nbsp;</p>
<p>If you are building from an older project branch that still uses CVS, you will need to set MOZ_CO_PROJECT to the appropriate value or values, using a comma-separated list, such as "<code>mk_add_options MOZ_CO_PROJECT=browser,mail,calendar,suite,xulrunner</code>".&nbsp; This setting is ignored by most Mozilla project branches, which now use mercurial instead of CVS for source control.</p>
<p>&nbsp;</p>
<div class="geckoVersionNote">
  <p>{{ gecko_callout_heading("2.0") }}</p>
  <p>Starting in Gecko 2.0, objdir builds are enabled by default.&nbsp; If you do not specify a MOZ_OBJDIR&nbsp;it will be automatically set to @TOPSRCDIR@/obj-@CONFIG_GUESS@</p>
  <p>Alternatively, you can run <code>client.mk</code> directly from your objdir, using <code>make -f &lt;path_to_srcdir&gt;/client.mk.</code></p>
</div>
<div class="geckoVersionNote">
  <p>{{ gecko_callout_heading("5.0") }}</p>
  <p>Starting in Gecko 5.0 {{ geckoRelease("5.0") }}, if you don't specify an application, <code>--enable-application=browser</code> is assumed, thereby building Firefox.</p>
</div>
<p>&nbsp;</p>
Revert to this revision