Simple Sunbird build

  • Revision slug: Simple_Sunbird_build
  • Revision title: Simple Sunbird build
  • Revision id: 94507
  • Created:
  • Creator: shogunjp
  • Is current revision? No
  • Comment 7 words added, 1 words removed

Revision Content

{{ Note(Sunbird is very broken, as can be seen on its Tinderbox page http://tinderbox.mozilla.org/showbuilds.cgi?tree=Sunbird. If you would like to build Lightning, please refer to the Simple Thunderbird build.) }}

You can build a bleeding-edge, development version of Sunbird using the commands below. For complete information, see the build documentation.

Installing build tools

If your system is not listed below, see the build prerequisites page.

Ubuntu Linux:
sudo apt-get build-dep sunbird
sudo apt-get install mercurial libasound2-dev libcurl4-openssl-dev libnotify-dev libiw-dev autoconf2.13
Fedora Linux:
sudo yum groupinstall 'Development Tools' 'Development Libraries' 'GNOME Software Development'
sudo yum install mercurial autoconf213
Mac:
  • Install Xcode Tools. Insert "Mac OS X Install Disc 2", then open XcodeTools.mpkg. (For some Mac OS X versions, you will find it in a directory called "Optional Installs".)
  • Install MacPorts.
  • Run these commands to install the other build tools:
    sudo port sync
    sudo port install mercurial libidl autoconf213
    

Problems? See Mac OS X build prerequisites.

Windows:
  • If you're using Windows XP, you must have Windows XP Service Pack 2 and .NET Framework 2.0.
  • Install Visual C++ 2005 or 2008. Both the professional edition and the express edition will work.
  • You may need to install one or more Windows SDKs. See Windows SDK versions for a quick guide.
  • Install MozillaBuild, a package of additional build tools. (If you get a message saying this application did not install properly then you should see a windows dialog giving you the option to re-install with the 'correct settings'. After that all should be well.)
  • Open a shell window by running: c:\mozilla-build\start-msvcX.bat (where X is 8 for VS 2005, and 9 for VS 2008).

Problems? See Windows build prerequisites.

Building Sunbird

Building Sunbird requires at least 2.5 GB of disk space, 500 MB of RAM, and lots of available swap space.

  • On Windows, if you open the command prompt you are usually in your user profile folder which often contains spaces ( C:\Documents and Settings\...). This causes problems while building. To avoid this issue, change to a directory without spaces (i.e. C:\ ) before doing the following steps. You can use the "cd" command to do so.
# Get the source
hg clone http://hg.mozilla.org/comm-central/
cd comm-central
python client.py checkout

# Setup a basic .mozconfig file
echo 'ac_add_options --enable-application=calendar' > .mozconfig               # let's build Sunbird...
echo 'mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-sb-release' >> .mozconfig   # ...in this directory...

# USE THIS ONLY IF NOT ON WINDOWS!  Parallel compilation on Windows is
# unreliable now due to bug 524149.
echo 'mk_add_options MOZ_MAKE_FLAGS="-j4"' >> .mozconfig                       # ...quickly.

# Build
make -f client.mk
  • For a debug build, you need different configuration options in your .mozconfig file.  This requires more disk space, about 2.5 GB.
    mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-sb-debug
    ac_add_options --enable-application=calendar
    ac_add_options --enable-debug
    ac_add_options --disable-optimize
    

Running Sunbird

The Sunbird executable can be found in objdir-sb-release/mozilla/dist/bin/ (on Mac, objdir-sb-release/dist/Calendar.app/Contents/MacOS/). 

Building Sunbird and Lightning

If you've set up you build environment as above, then all you need to do is:

echo 'ac_add_options --enable-calendar' >> .mozconfig

or just add the ac_add_options --enable-calendar line to your .mozconfig with your favourite editor.

Then just re-run the "make -f client.mk" command above (you can do the addition before running make for the first time).

This will build the lightning extension into src/../objdir-sb/mozilla/dist/xpi-stage/. See this section for information on how to easily integrate Lightning into a nightly version of Thunderbird.

How to build again later

In your comm-central directory, run these commands:

# Get the latest source
python client.py checkout

Then just re-run the "make -f client.mk" command above. make will only recompile files that changed, but it's still a long haul. An incremental build can be faster.

Building just Lightning

After you have completed a full build, if you would like to rebuild Lightning you don't need to go through the whole build process:

# Enter the calendar directory in the object-directory
cd src/../objdir-sb-release/calendar

# Make the Lightning extension
make -C lightning

References

Revision Source

<p>{{ Note(Sunbird is very broken, as can be seen on its <a href="/en/Tinderbox" title="en/Tinderbox">Tinderbox</a> page http://tinderbox.mozilla.org/showbuilds.cgi?tree=Sunbird. If you would like to build Lightning, please refer to the <a href="/en/Simple_Thunderbird_build" title="en/Simple Thunderbird build">Simple Thunderbird build</a>.) }}</p>
<p>You can build a bleeding-edge, development version of Sunbird using the commands below. For complete information, see the <a class="internal" href="/En/Developer_Guide/Build_Instructions" title="En/Build Documentation">build documentation</a>.</p>
<h2>Installing build tools</h2>
<p>If your system is not listed below, see the <a class="internal" href="/En/Developer_Guide/Build_Instructions#Build_prerequisites" title="En/Build Documentation#Build prerequisites">build prerequisites page</a>.</p>
<table style="margin-left: 2.5em;"> <tbody> <tr> <td style="vertical-align: baseline;">Ubuntu Linux:</td> <td> <pre>
sudo apt-get build-dep sunbird
sudo apt-get install mercurial libasound2-dev libcurl4-openssl-dev libnotify-dev libiw-dev autoconf2.13
</pre> </td> </tr> <tr> <td style="vertical-align: baseline;">Fedora Linux:</td> <td> <pre>
sudo yum groupinstall 'Development Tools' 'Development Libraries' 'GNOME Software Development'
sudo yum install mercurial autoconf213
</pre> </td> </tr> <tr> <td style="vertical-align: baseline;">Mac:</td> <td> <ul> <li>Install Xcode Tools. Insert "Mac OS X Install Disc 2", then open <code>XcodeTools.mpkg</code>. (For some Mac OS X versions, you will find it in a directory called "Optional Installs".)</li> <li>Install <a class="external" href="http://www.macports.org/install.php">MacPorts</a>.</li> <li>Run these commands to install the other build tools: <pre class="eval">
sudo port sync
sudo port install mercurial libidl autoconf213
</pre> </li> </ul> <p>Problems? See <a class="internal" href="/En/Developer_Guide/Build_Instructions/Mac_OS_X_Prerequisites" title="en/Mac_OS_X_Build_Prerequisites">Mac OS X build prerequisites</a>.</p> </td> </tr> <tr> <td style="vertical-align: baseline;">Windows:</td> <td> <ul> <li>If you're using Windows XP, you must have <a class="external" href="http://www.microsoft.com/windowsxp/sp2/default.mspx">Windows XP Service Pack 2</a> and <a class="external" href="http://www.microsoft.com/downloads/info.aspx?na=47&amp;p=3&amp;SrcDisplayLang=en&amp;SrcCategoryId=&amp;SrcFamilyId=4377f86d-c913-4b5c-b87e-ef72e5b4e065&amp;u=details.aspx?familyid=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&amp;displaylang=en">.NET Framework 2.0</a>.</li> <li>Install Visual C++ 2005 or 2008. Both the professional edition and the <a class="external" href="http://www.microsoft.com/Express/vc/" title="http://www.microsoft.com/Express/vc/">express edition</a> will work.</li> <li>You may need to install one or more Windows SDKs. See <a class="internal" href="/En/Windows_SDK_versions" title="En/Windows SDK versions">Windows SDK versions</a> for a quick guide.</li> <li>Install <a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe" title="http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe">MozillaBuild</a>, a package of additional build tools. (If you get a message saying this application did not install properly then you should see a windows dialog giving you the option to re-install with the 'correct settings'. After that all should be well.)</li> <li>Open a shell window by running: <code>c:\mozilla-build\start-msvcX.bat</code> (where X is 8 for VS 2005, and 9 for VS 2008).</li> </ul> <p>Problems? See <a class="internal" href="/En/Developer_Guide/Build_Instructions/Windows_Prerequisites" title="en/Windows_Build_Prerequisites">Windows build prerequisites</a>.</p> </td> </tr> </tbody>
</table>
<h2>Building Sunbird</h2>
<p>Building Sunbird requires at least 2.5 GB of disk space, 500 MB of RAM, and lots of available swap space.</p>
<ul> <li>On Windows, if you open the command prompt you are usually in your user profile folder which often contains spaces ( C:\Documents and Settings\...). This causes problems while building. To avoid this issue, change to a directory without spaces (i.e. C:\ ) before doing the following steps. You can use the "cd" command to do so.</li>
</ul>
<pre># Get the source
hg clone http://hg.mozilla.org/comm-central/
cd comm-central
python client.py checkout

# Setup a basic .mozconfig file
echo 'ac_add_options --enable-application=calendar' &gt; .mozconfig               # let's build Sunbird...
echo 'mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-sb-release' &gt;&gt; .mozconfig   # ...in this directory...

# USE THIS ONLY IF NOT ON WINDOWS!  Parallel compilation on Windows is
# unreliable now due to bug 524149.
echo 'mk_add_options MOZ_MAKE_FLAGS="-j4"' &gt;&gt; .mozconfig                       # ...quickly.

# Build
make -f client.mk</pre>
<ul> <li>For a debug build, you need different configuration options in your <code>.mozconfig</code> file.  This requires more disk space, about 2.5 GB.<br> <pre>mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-sb-debug
ac_add_options --enable-application=calendar
ac_add_options --enable-debug
ac_add_options --disable-optimize
</pre> </li>
</ul>
<h4>Running Sunbird</h4>
<p>The Sunbird executable can be found in <code>objdir-sb-release/mozilla/dist/bin</code>/ (on Mac, <code>objdir-sb-release/dist/Calendar.app/Contents/MacOS/</code>). </p>
<h2>Building Sunbird and Lightning</h2>
<p>If you've set up you build environment as above, then all you need to do is:</p>
<pre>echo 'ac_add_options --enable-calendar' &gt;&gt; .mozconfig
</pre>
<p>or just add the <code>ac_add_options --enable-calendar</code> line to your .mozconfig with your favourite editor.</p>
<p>Then just re-run the "<code>make -f client.mk</code>" command above (you can do the addition before running make for the first time).</p>
<p>This will build the lightning extension into <code>src/../objdir-sb/mozilla/dist/xpi-stage/</code>. See <a class="internal" href="../../../../en/Setting_up_extension_development_environment#Custom_code_location" rel="internal"> this section</a> for information on how to easily integrate Lightning into a nightly version of Thunderbird.</p>
<h2>How to build again later</h2>
<p>In your <span style="font-family: monospace;">comm</span><code>-central</code> directory, run these commands:</p>
<pre># Get the latest source
python client.py checkout
</pre>
<p>Then just re-run the "<code>make -f client.mk</code>" command above. <code>make</code> will only recompile files that changed, but it's still a long haul. An <a class="internal" href="/en/Incremental_Build" title="En/Incremental Build">incremental build</a> can be faster.</p>
<h4>Building just Lightning</h4>
<p>After you have completed a full build, if you would like to rebuild Lightning you don't need to go through the whole build process:</p>
<pre># Enter the calendar directory in the object-directory
cd src/../objdir-sb-release/calendar

# Make the Lightning extension
make -C lightning
</pre>
<h3>References</h3>
<ul> <li><a class="internal" href="/En/Developer_Guide/Build_Instructions" title="En/Developer Guide/Build Instructions">General Build Documentation</a></li> <li><a class="internal" href="/en/comm-central" title="en/comm-central">comm-central</a></li>
</ul>
Revert to this revision