Mozilla supports building against several versions of the Windows SDK. Several features will be disabled if you build with an SDK older than the default, which means that you'll have to specify a non-default SDK version explicitly.
Help! I know I have the correct SDK, but configure.in's still failing! Try a make clean or a nuke of your object directory. Also try restarting your msys console.
You may need to run the Windows SDK Configuration Tool to select the right SDK. Also try the
ac_add_options --with-windows-version=502 .mozconfig configure option as a last resort.
Follow the instructions for whichever version of Visual C++ you're using.
Visual C++ 10 (VS2010) Professional
You should be all set out of the box.
Visual C++ 10 (VS2010) Express
Download and install the Windows 7 SDK.
Visual C++ 9 (VS2008) Professional/Express
Download and install the Windows 7 SDK.
Visual C++ 8 (VS2005) Professional
- Download and install the Windows 7 SDK.
- Install this Microsoft hotfix to allow linking to work correctly.
Visual C++ 7.1 or Visual C++ 8 (VS2005) Express
The Windows 7 SDK will probably not work with these versions. It is recommended that you upgrade to one of the newer Visual C++ versions above.
You could also download the Windows Vista SDK and follow the instructions there to allow you to build against it.
Windows 7 SDK
This is the SDK that official builds are built against. Features that depend on this SDK include:
- Windows 7 taskbar previews
- Windows 7 download taskbar progress
- Windows 7 jump lists
You can download the SDK (v7.0 or unsupported v7.1 [web setup or ISO image]) from the Microsoft Download Center. Note that if you're running a 64 bit version of Windows you may require the "AMD" version of the SDK even if you have an Intel processor, and you may need to deselect the documentation component in the installer in order to avoid an installation error. (This was certainly the case for 64 bit Windows 7 on a late 2008 MacBook Pro.)
Windows Vista SDK
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:
- Download the Windows Vista SDK from the Microsoft Download Center.
- Use Visual Studio 2008 Professional.
If you would like to use this SDK on mozilla-1.9.2 and higher, add
ac_add_options --with-windows-version=600 to your .mozconfig.
Windows Server 2003 R2 Platform SDK
This is your only option if you're on Windows 2000.
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.
If you're building only with this SDK, you will need to add
ac_add_options --with-windows-version=502 to your .mozconfig.
ac_add_options --disable-vista-sdk-requirementsto your .mozconfig instead.
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.