Windows 8 will eventually support compiling mozilla-central and related repositories and products. This page documents the steps to get a working Windows 8 development environment.

Installing Windows 8

Installing Windows 8 is accomplished following the instructions on the download site and onscreen.

Windows 8 Pro can be obtained from http://windows.microsoft.com/en-US/windows/download-shop. An ISO image of the Windows 8 installation can be downloaded if you prefer, and installed on a bootable USB device using the 'Windows 7 USB/DVD download tool' at http://www.microsoftstore.com/store/msstore/html/pbPage.Help_Win7_usbdvd_dwnTool.

The Windows 8 Consumer Preview setup is no longer available from http://windows.microsoft.com/en-US/windows-8/download and http://windows.microsoft.com/en-US/windows-8/iso. Both links redirect to the "download-shop" page above.

If you want to run Windows 8 on Virtualbox, one resource to do this is at https://www.groovypost.com/howto/install-windows-8-vm-virtualbox/. (The page was posted in September 2011 before the current release of Windows 8 Pro and may be out-of-date.)

As for hardware resources of the VM or Virtualbox, you should be able to fit the base OS, all the dependencies, source, and build in a 30GB partition. For memory, 2GB should be considered the minimum. More memory will yield better performance.

Install Developer Tools

As with the existing Windows 7 development steps, you'll need to install a number of prerequisites.

(required) Visual Studio 2012 or Visual Studio 2013

Visual Studio Express can be downloaded from https://www.visualstudio.com/downloads/download-visual-studio-vs. The download there is just a simple installer that will download and install the real components. When you install VS2012, have something else to do because it takes a long time.

For now, installation of the full Visual Studio is required. Eventually, compiling on Visual Studio Express should be possible. bug 701050 has more.

(required) mozilla-build Bundle

The latest mozilla-build is required.

(optional) DirectX SDK

Download and install the DirectX SDK from https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=6812.

If you don't install the DirectX SDK, add the following to your .mozconfig:

ac_add_options --disable-webgl
ac_add_options --disable-gamepad

(optional) Windows SDK

Download and install the Windows 8 SDK from https://dev.windows.com/en-us/downloads/windows-8-sdk. But the Windows SDK isn't technically required (the files in Visual Studio 2011 will suffice). Like Visual Studio, this is a web downloader, so the bulk of the downloading is performed while running the installer. The default install options should be sufficient.

Theoretically, you can install the Windows 7 (or 7.1) SDK as a substitute. If you want to install the 7.1 SDK, the download you want is at https://www.microsoft.com/en-us/download/details.aspx?id=8279.

(optional) Outlook 2010 MAPI Header Files

If you want to build Thunderbird or Seamonkey, you also need the Outlook 2010 MAPI Header Files from https://www.microsoft.com/en-us/download/details.aspx?id=12905 if you use the Windows 8 SDK. This is because that SDK doesn't contain the MAPI headers any more.

Compiling

Start up your compilation environment by running start-msvc11.bat from mozilla-build (if you are using Visual Studio 2012). You should see output resembling the following:

"Mozilla tools directory: C:\mozilla-build\"
Visual C++ 11 directory: C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\
Visual C++ 11 Express directory: C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\
Windows SDK directory: C:\Program Files (x86)\Windows Kits\8.0\
Windows SDK version: 8.0
Using VC 2012 built-in SDK
Mozilla build environment: MSVC version 11.

Now, you'll need to fetch mozilla-central:

cd /c/dev
hg clone https://hg.mozilla.org/mozilla-central

Then, create your .mozconfig: (with mozilla-build >=1.9.x you can skip this step. It will generate automatically an object folder and a mozinfo.json file with autodetected options)

# This specifies the directory where 
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-ff

# Uncomment the following line if you want to build with debugging code enabled:
#ac_add_options --enable-debug

# uncomment the following if you did NOT install the DirectX SDK:
#ac_add_options --disable-webgl
#ac_add_options --disable-angle
#ac_add_options --disable-gamepad

Then, you should be able to build and run Firefox by running the following commands in the mozilla-central directory. Building for the first time may take an hour or more, depending on your hardware!

./mach build
./mach run

Compiling Firefox for Windows 8 Touch ("Metro style")

To build Firefox with the Windows 8 "Metro" style interface enabled, you must install the Windows 8 SDK and the DirectX SDK.  If you are using any version of Visual Studio Express, you may need to install additional libraries.  For details, see the Windows 8 Integration wiki page.

To enable the Metro feature, add the following line to your .mozconfig:

ac_add_options --enable-metro

Then build and run Firefox as above, and use the "Relaunch in Windows 8 Style" button in the menu to switch to the "Metro" interface.

Since WIndows 8 isn't officially supported yet, there may be a breakage. But the tree has been known to compile. If you run into errors, look for bugs here. If you see an issue not reported, please file a bug!