Thank you for helping us build the world's best browser on the world's most popular OS. This document will will help you get set up to build and hack on your own version of Firefox on your local machine.
Getting set up won't be difficult, but it can take a while - we need to download a lot of bytes! Even on a fast connection, this can take ten to fifteen minutes of work, spread out over an hour or two.
The details are further down this page, but this quickstart guide should get you up and running:
Getting Ready.To build Firefox on Windows, you need a 64-bit version of Windows 7 or later and about 40 GB of free space on your hard drive . You can make sure your version of Windows is 64-bit on Windows 7 by right-clicking Computer in your Start menu, clicking Properties and then System. On Windows 8.1 and Windows 10, right-clicking the Windows menu button and choosing System will show you the same information. You can alternatively press Win + Pause Break on your keyboard on any version of Windows.
Next, we want to start on a solid foundation: make sure you’re up to date with Windows Update and then we’ll get moving.
Visual Studio 2015Official builds currently use Visual Studio 2015. To use it, download and install Visual Studio Community 2015 Update 3 from Microsoft. If you have an earlier version of Visual Studio, you'll need to upgrade; Firefox relies on C++ features that aren't supported in older versions of Visual Studio. Do not accept the default configuration. Instead, select Programming Languages > Visual C++ > Common Tools for Visual C++ 2015. This option is required for Rust. After installation, be sure to Launch Visual Studio 2015 from the GUI to complete the first time run procedure to associate this installation with an account. Otherwise, you will be running an evaluation version which will not properly update via Windows Update.
Next, you need to download and install the Cumulative Servicing Release for Microsoft Visual Studio 2015 Update 3 (KB3165756).
Visual Studio 2017You can also build with Visual Studio 2017, by downloading the community edition. When installing, the following workloads must be checked:
In addition, make sure for the desktop development workload, the following components are checked and will be installed:
Make sure you run the GUI after installing, so it finishes any first-run tasks and associates the installation with your account.
Required ToolsInstall Rust. See the Rust Platform Support page to find the the triplet you need for your installation.
If you are going to be building Thunderbird or SeaMonkey, check to see if C:\Program Files (x86)\Windows Kits\8.1\Include\shared\MAPIX.h
exists. If it does not, install the Outlook 2010: MAPI Header Files kit. Then copy the header files in C:\Office 2010 Developer Resources\Outlook 2010 MAPI Headers
to both:
C:\Program Files (x86)\Windows Kits\8.1\Include\shared
C:\Program Files (x86)\Windows Kits\10\Include\10.0.
nnnnn.0\shared
, where nnnnn is the highest number present on the system.Finally, download the MozillaBuild Package from Mozilla. Accept the default settings, in particular the default installation directory: c:\mozilla-build\
. On some versions of Windows an error dialog will give you the option to "reinstall with the correct settings", and you should agree and proceed.
Once this is done, putting a shortcut to c:\mozilla-build\start-shell.bat
on your desktop will make your life easier.
That last step can take some time. While it’s finishing you should take a moment to sign up for a Bugzilla account!
Bugzilla.mozilla.org is Mozilla’s issue tracker. To comment on a bug or submit a patch you’ll need a Bugzilla account; you can use your GitHub account if you have one, or sign up for a Bugzilla account directly.
As well as Bugzilla, much of Mozilla’s internal communication happens over IRC. You can download Limechat here, and learn how to connect to Mozilla with IRC here. If you’re just getting started or have questions about getting set up you can join us in the #introduction channel, where some of our community members hang out to try and help new contributors get rolling.
Getting The SourceThis is the last big step. Double-clicking the shortcut you’ve created will open a terminal window.
Add the line
PATH=$PATH:~/.cargo/bin
to one of ~/.bash_profile
, ~/.bash_login
, or ~/.profile
.
Start by creating a "mozilla-source" directory off of C:\
and cd into it like so
cd c:/
mkdir mozilla-source
cd mozilla-source
Next you can pull down the Firefox source code with Mercurial, our version control system, using this command:
hg clone https://hg.mozilla.org/mozilla-central
hg
is the chemical symbol for mercury,
While you’re waiting for that process to finish, take a look at our Mercurial documentation. It explains how we use version control at Mozilla to manage our code and land changes to our source tree.
Build Firefox!Now we tie it all together. In your terminal window, cd
to your source directory as before and type
cd mozilla-central
mach build
You’re on your way. Don’t be discouraged if this takes a while; this takes some time on even the fastest modern machines, and as much as two hours or more on older hardware. Firefox is pretty big, because the Web is big.
Join Mozillians.org!There’s one more thing you can do for yourself while you’re waiting: create an account for yourself on Mozillians. Mozillians is the Mozilla community directory, where you can connect with people who share your interests, projects or countries. This step is optional, but we think it will be worth your while.
You're Ready.When mach build completes, you'll have your own version of Firefox built from the source code on your hard drive, ready to run. You can run it with
mach run
... and now you have your own home-build version of Firefox.
If you saw an error here, look further down in this document for the "Troubleshooting" section - some antiviruses quarantine some of our tests, so you need to create execeptions for the "mozilla-source" and "mozilla-build" directories. Don't turn your antivirus off! Just add the exceptions.
Now the fun starts.You have the code, you’ve compiled Firefox. Fire it up with ./mach run
and you’re ready to start hacking. The next steps are up to you: join us on IRC in the#introduction channel, follow StartMozilla on Twitter and find a bug to start working on.
Thank you for joining us and helping us make Firefox and the open Web better for everyone.
Details and Troubleshooting Hardware and software requirementsThe Firefox build process is both I/O and CPU-intensive, and can take a long time to build even on modern hardware. Minimum and recommended hardware requirements for Mozilla development are:
The Mozilla build process requires many tools that are not preinstalled on most Windows systems. In addition to Visual Studio, install MozillaBuild, a software bundle that includes the required versions of bash, GNU make, autoconf, Mercurial, and much more.
Firefox 48 and later build with Visual Studio 2015 in our official releases. You should be using Visual Studio 2015 to build all current versions of Firefox.
Firefox 37 through 47 build with Visual Studio 2013 (VC12) and possibly Visual Studio 2015 (although Visual Studio 2015 may not build every revision).
Earlier versions of Firefox build with older versions of Visual Studio.
Installing the build prerequisitesComplete each of these steps. Otherwise, you may not be able to build successfully. There are notes on these software requirements below.
In some circumstances, the following problems can arise:
Some antivirus and system protection software can dramatically slow or break the build process:
./mach build
fails reporting a missing file, you are likely experiencing this problem. Our regression tests for well-known security bugs can include code samples that some antivirus software will identify as a threat, and will either quarantine or otherwise corrupt the files involved. To resolve this you will need to whitelist your source and object directories (the mozilla-source
and mozilla-build
directories) in Windows Defender or your antivirus software and if you're missing files, revert your source tree with the "hg update -C"
command. Once this is done your next ./mach build
should complete successfully.Installing Visual Studio in a different language than the system can cause issues
Please note that Mozilla will not build if the path to the installation folder of some tools contains spaces or other breaking characters such as pluses, quotation marks, or metacharacters. The Visual Studio tools and SDKs are an exception -- they may be installed in a directory which contains spaces. It is strongly recommended that you accept the default settings for all installation locations.
MozillaBuildThe MozillaBuild package contains other software prerequisites necessary for building Mozilla, including the MSYS build environment, Mercurial, autoconf-2.13, CVS, Python, YASM, NSIS, and UPX, as well as optional but useful tools such as wget and emacs.
Download the current MozillaBuild package.
By default, the package installs to c:\mozilla-build
. It is recommended to use the default path. Don't use a path that contains spaces. The installer does not modify the Windows registry. Note that some binaries may require Visual C++ Redistributable package to run.
MozillaBuild command prompt expectation setting: Note that the "UNIX-like" environment provided by MozillaBuild is only really useful for building and committing to the Mozilla source. Most command line tools you would expect in a modern Linux distribution are not present, and those tools that are provided can be as much as a decade or so old (especially those provided by MSYS). It's the old tools in particular that can cause problems, since they often don't behave as expected, are buggy, or don't support command line arguments that have been taken for granted for years. For example, copying a source tree using cp -rf src1 src2
does not work correctly because of an old version of cp (it gives "cp: will not create hard link" errors for some files). In short, MozillaBuild supports essential developer interactions with the Mozilla code, but beyond that don't be surprised if it trips you up in all sorts of exciting and unexpected ways.
After the prerequisites are installed, launch the start-shell.bat
batch file using the Windows command prompt in the directory to which you installed MozillaBuild (c:\mozilla-build
by default). This will launch an MSYS/BASH command prompt properly configured to build Firefox. All further commands should be executed in this command prompt window. (Note that this is not the same as what you get with the Windows CMD.EXE shell.)
Note: You won't be able to build the Firefox source code if it's under a directory with spaces in the path (e.g., don't use "Documents and Settings"). You can pick any other location, such as a new directory c:/mozilla-source or c:/thunderbird-src. The build command prompt also tolerates "c:\" and "/c/", but the former allows confusion with the windows command prompt, and the later is misinterpreted by some tools (at least MOZ_OBJDIR). The "C:/" syntax helps draw attention that the MozillaBuild command prompt is assumed from here on out since it provides configured environment and tools.
It's a sensible idea to create a new shallow directory, like "c:/mozilla-source" or "c:/thunderbird-src" dedicated solely to the code:
cd c:/; mkdir mozilla-source; cd mozilla-source
Keeping in mind the diagnostic hints below should you have issues, you are now ready to get the Firefox source and build; continue on to Simple Firefox build (Get_the_source), or another like Simple Thunderbird build (Get_the_source).
Command Prompt Tips and Caveatsstart-shell-msvc2015.bat
(use echo $PATH
to see your search path).start-shell-msvc2015.bat
, UNIX-style forward slashes (/) are used as path separators instead of the Windows-style backward slashes (\). So if you want to change to the directory c:\mydir
, in the MSYS shell to improve clarity, you would use cd /c/mydir
though both c:\mydir
and c:/mydir
are supported./c/mozilla-build/msys
if you used the default installation directory. It's a good idea not to build anything under this directory. Instead use something like /c/mydir
.ac_add_options --with-visual-studio-version=2015
ac_add_options --target=x86_64-pc-mingw32 ac_add_options --host=x86_64-pc-mingw32
PATH
environment variable contains quotes ("). Quotes are not properly translated when passed down to MozillaBuild sub-shells. Quotes are usually not needed so they can be removed.PYTHON
environment variable set. It displays an error almost immediately that says "The system cannot find the file specified
." In a command shell, typing "unset PYTHON
" before running the Mozilla build tools in that same shell should fix this. Make sure that PYTHON
is unset, rather than set to an empty value./c/mozilla-build
and subdirectories) come before any Cygwin directories in your PATH environment variable. If this does not help, remove the Cygwin directories from PATH, or try building on a clean PC with no Cygwin.WIN32_REDIST_DIR=$VCINSTALLDIR\redist\x86\Microsoft.VC80.CRT
in your mozconfig to get the Microsoft CRT DLLs packaged along with the application.conftest.exe
during build. To remedy this, add at least your object directory to the exclusion settings.-jN
) do not work with GNU make on Windows. You should use the mozmake
command included with current versions of MozillaBuild. Building with the mach
command will always use the best available make command.Return to the Build Documentation
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4