After having a bunch of trouble (missing ml.exe, missing manifests, missing dlls, broken spellcheck) building Thunderbird 2.0b2 (to add in a trivial fix for bcc hname parsing in mailto URIs), I found a simple way to build Thunderbird. Grab the latest and greatest off the trunk instead.
Set up the build enviroment
- Install Visual C++ 2005 Express Edition
- Install the Windows Platform SDK.
- Install MASM
- Install the MozillaBuild tools to the default directory of "c:\mozilla-build".
- Copy msvcm80.dll, msvcp80.dll and msvcr80.dll from the "%windir$\WinSxS\x86_Microsoft.VC80.CRT…" directory to "%windir%\system32".
Get the source:
- Double-left-click on "c:\mozilla-build\start-msvc8.bat".
- Enter "cd c:"
- Enter "cvs -d :pserver:email@example.com:/cvsroot co mozilla/client.mk"
- Enter "cd mozilla"
- Check the Thunderbird trunk status before continuing.
- Enter "make -f client.mk checkout MOZ_CO_PROJECT=mail" to download the source.
Generate the Makefiles
- Enter "./configure –enable-application=mail –enable-static –disable-shared –enable-optimize=-Zc:wchar_t-"
- Enter "make" and sit back while it builds.
If you get lucky, it will build successfully and all the Thunderbird executables will be in the "c:\mozilla\dist\bin". You can then copy the content of the folder somewhere and run thunderbird.exe.
There are some extra steps involved in setting up the version information, branding, the installer and adding the redistributable runtime dlls and manifest, but haven't went there. (I disabled updates in Thunderbird though just in case the update checker thinks the build is old.)
Having access to the Thunderbird source so I can fix things (the fix worked btw) is really cool. However, building it is still a pain (much easier than building gaim and all its dependencies in Debian woody though). It's not automated enough and build instructions are even more vague than the above. Of course, Thunderbird is a beast.
I'm also not too happy about the dependency on Microsoft's compiler for Win32 builds. I'd really like to be able to *just as easily* use Mingw (plus MSYS for ./configure) to build Thunderbird, but oh well.
I also got a broken pipe cvs error. I didn't realize that I could ignore it at first, so I kept redownloading the source. Turns out, the error happens after everything is downloaded and it can be ignored.