Building Thunderbird Mail

We are assuming you already know how to build the mozilla source. Alpha builds can be found on ftp.mozilla.org if you don't want to build Thunderbird yourself.

Thanks to some platform contributors, we now run on all three major platforms: windows, unix and Mach-o builds.

At this time we don't recommend using the same tree for Thunderbird and other Mozilla applications. Thunderbird replaces various mail and toolkit files in the chrome during the build process which would then leave the resulting JAR files incompatible with Mozilla Mail.

Pulling the Source

Development is currently occuring on the Mozilla trunk. In addition to a traditional mozilla build, we also pull two new directories: mozilla/toolkit and mozilla/mail. If you want to build the latest milestone instead of the trunk, the CVS tag to use is THUNDERBIRD_0_5_RELEASE. If you do not want to use CVS, you can download a source tarball for the latest 0.5 Milestone.

cvs co mozilla/client.mk

Before pulling the tree, set up your .mozconfig file to ensure several new modules are pulled. This file should be placed in your mozilla directory before pulling the Thunderbird source. Here is an example .mozconfig file which could be used to build a debug version of stand alone mail. You may wish to tailor these options to your specific needs. For instance, you may not wish to build stand alone mail with crypto.

# sh
# Build configuration script
#
# See http://www.mozilla.org/build/unix.html for build instructions.
#
#
# Typical Win32 build options for 'configure' (same as command-line options)

ac_add_options --enable-crypto
ac_add_options --disable-mathml
ac_add_options --disable-installer
ac_add_options --disable-activex
ac_add_options --disable-activex-scripting
ac_add_options --disable-tests
ac_add_options --disable-oji
ac_add_options --disable-necko-disk-cache

# Note: remove enable-optmize and disable debug if you want a debug build
ac_add_options --enable-optimize
ac_add_options --disable-debug

ac_add_options --disable-profilesharing
ac_add_options --enable-extensions=wallet,spellcheck,xmlextras
ac_add_options --enable-necko-protocols=http,file,jar,viewsource,res,data

# Note: Only include icon for mac, windows and os2
ac_add_options --enable-image-decoders=icon,png,gif,jpeg,bmp

export MOZ_THUNDERBIRD=1
mk_add_options MOZ_THUNDERBIRD=1

# Note: When building bits to distribute to other uses and not just a debug build, I also suggest
# adding these flags. 

# export BUILD_OFFICIAL=1
# export MOZILLA_OFFICIAL=1
# mk_add_options BUILD_OFFICIAL=1
# mk_add_options MOZILLA_OFFICIAL=1

Now you are ready to pull the source:

cd mozilla
make -f client.mk pull_all

Building the Source

Now, build the source just like you would build a seamonkey build.

make -f client.mk build_all

If your build breaks in mozilla/toolkit/components/console, during some JAR packaging, you may be running into Bug #206785 where the xul pre-processor is dying. A temporary work around is listed in the bug.

Running

When the build is complete, you should be left with dist\thunderbird\thunderbird.exe (for windows, otherwise dist\bin\thunderbird). It currently uses its own profile. Please check the Thunderbird Project page for the latest comments and suggestions about running Thunderbird.