mozilla

Revision 141109 of Tamarin Tracing Build Documentation

  • Revision slug: Tamarin_Tracing_Build_Documentation
  • Revision title: Tamarin Tracing Build Documentation
  • Revision id: 141109
  • Created:
  • Creator: Changm
  • Is current revision? No
  • Comment /* Current Build Status */

Revision Content

Tamarin Source Versions

The following instructions are for obtaining and building the Tamarin Tracing source code. For instructions on Tamarin Central, please see Tamarin Build Documentation

Supported platforms

Operating System Processor Status
Windows XP x86 supported, acceptance and performance tests automated in buildbot
Mac OS X 10.4 x86 supported, acceptance and performance tests automated in buildbot
Linux - Ubuntu 8.0.4 x86 supported, acceptance and performance tests automated in buildbot
Windows Mobile (Pocket PC 5.0) ARMv4t supported, acceptance and performance tests automated in buildbot
Raw image (no OS) ARMv5 supported, acceptance and performance tests NOT done
Linux (Nokia N810) ARMv5 supported, acceptance and performance tests NOT done

Current Build Status

The current Tamarin Tracing build status can be found at Tamarin Tracing Build Status

Getting the Tamarin source

The Tamarin Tracing source resides in Mercurial at Tamarin Tracing. Use the following command to create a copy of the Tamarin repository:

    $ hg clone http://hg.mozilla.org/tamarin-tracing tamarin-tracing

Building Tamarin

Building Tamarin will create all the libraries for the AVMPlus and garbage collector (MMgc), and create a standalone executable, avmshell, for executing files in the ABC file format. Running avmshell without any arguments will list the available options. Note that additional command-line arguments are only available in the debug configuration.

The Tamarin codebase contains a cross-platform build system for Mozilla developers. The cross-platform build system is used for daily automated build testing so it is the most reliable system.

The Tamarin codebase has the ability to build additional code which supports debugging hooks. In the XCode project, this is the Debug_Debugger and Release_Debugger configurations. The Flash Player builds Tamarin with the debugging hooks off for codesize reasons, but the Mozilla client will build Tamarin with the debugging hooks on.

Cross-platform build

First, you must have the Mozilla build prerequisites for your platform. Additionally, you need Python 2.4 or later and GNU <tt>make</tt> 3.81 or later. (GNU <tt>make</tt> 3.80 does not work. Nor does any other brand of <tt>make</tt>.)

With the right prerequisites, use these commands to build Tamarin Tracing:

 $ hg clone http://hg.mozilla.org/tamarin-tracing
 $ cd tamarin-tracing
 $ mkdir objdir-debug
 $ cd objdir-debug
 $ python ../configure.py --enable-shell
 $ make
 ...
 $ shell/avmshell
 avmshell 1.0 build cyclone
 ...

That's all. The avmplus executable is avmshell.

For verbose build of Tamarin, you can pass CPPFLAGS to make.

 $ make CPPFLAGS=-DAVMPLUS_VERBOSE
Windows Mobile

To build for ARM:

 $ python ../configure.py --target=arm-windows --enable-shell; make

To build for Thumb:

 $ python ../configure.py --target=thumb-windows --enable-shell; make

Platform-specific Builds

Project files for specific platforms/IDEs (Microsoft Visual Studio, XCode, etc) are included in the source tree under tamarin-tracing/platform, but are not formally supported.


Running Tamarin compliance tests

Tamarin BuildBot

Adobe maintains a continuous build and test system for Tamarin Tracing and continuous build and test system for Tamarin Central, similar to TinderBox.

Tamarin BuildBot TryServer

The TryServer/Sandbox is setup to allow users to push any code changes that they would like to have tested in the automated build/test process prior to actually pushing the changes into tamarin-tracing. The repository has the same buildbot process watching it, so it will run through the exact same build/test process.

Any comments, questions or problems can be directed to Brent Baker

How To

In this first phase we are using a single shared repository (http://hg.mozilla.org/users/brbaker_adobe.com/tamarin-tracing/) but in phase two buildbot will be setup so that you can submit a URL and rev to clone & test (similar to submitting a patch and baseline url, the way i think mozilla's works http://wiki.mozilla.org/Build:TryServer).

  1. First thing that you should do is check the status of the buildbot to make sure nobody is currently using the system: http://tamarin-builds.mozilla.org/tamarin-tracing-sandbox
  2. To push the changes to the sandbox use the following command. This will push all changes that you have locally to the sandbox repository. This is most likely going to not only push your change but any changes that you have pulled that are not already in the sandbox. In the end the sandbox will contain all of the changes that you have locally.
   $ hg push -f ssh://hg.mozilla.org/users/brbaker_adobe.com/tamarin-tracing/

Check the status of the build @ http://tamarin-builds.mozilla.org/tamarin-tracing-sandbox

Binaries are posted to ftp://ftp.mozilla.org/pub/js/tamarin/builds/tamarin-tracing-sandbox

TryServer Etiquette

The Sandbox is not a good substitute for running the regression tests locally to catch obvious problems.

This is a shared resource, each push takes approximately 3+ hours to run, please wait your turn. In the coming weeks we will implement a queued build system so that this is not an issue.

Revision Source

<h2 name="Tamarin_Source_Versions"> Tamarin Source Versions </h2>
<p>The following instructions are for obtaining and building the Tamarin Tracing source code. For instructions on Tamarin Central, please see <a href="en/Tamarin_Build_Documentation">Tamarin Build Documentation</a>
</p>
<h2 name="Supported_platforms"> Supported platforms </h2>
<table class="standard-table">
  <tbody><tr>
    <th>Operating System</th>
    <th>Processor</th>
    <th>Status</th>
  </tr>
  <tr>
    <td>Windows XP</td>
    <td>x86</td>
    <td>supported, acceptance and performance tests automated in buildbot</td>
  </tr>
  <tr>
    <td>Mac OS X 10.4</td>
    <td>x86</td>
    <td>supported, acceptance and performance tests automated in buildbot</td>
  </tr>
  <tr>
    <td>Linux - Ubuntu 8.0.4</td>
    <td>x86</td>
    <td>supported, acceptance and performance tests automated in buildbot</td>
  </tr>
  <tr>
    <td>Windows Mobile (Pocket PC 5.0)</td>
    <td>ARMv4t</td>
    <td>supported, acceptance and performance tests automated in buildbot</td>
  </tr>
  <tr>
    <td>Raw image (no OS)</td>
    <td>ARMv5</td>
    <td>supported, acceptance and performance tests NOT done</td>
  </tr>
  <tr>
    <td>Linux (Nokia N810)</td>
    <td>ARMv5</td>
    <td>supported, acceptance and performance tests NOT done</td>
  </tr>
</tbody></table>
<h2 name="Current_Build_Status"> Current Build Status </h2>
<p>The current Tamarin Tracing build status can be found at <a class="external" href="http://tamarin-builds.mozilla.org/tamarin-tracing-sandbox/waterfall">Tamarin Tracing Build Status</a>
</p>
<h2 name="Getting_the_Tamarin_source"> Getting the Tamarin source </h2>
<p>The Tamarin Tracing source resides in <a class="external" href="http://www.selenic.com/mercurial/wiki/">Mercurial</a> at <a class="external" href="http://hg.mozilla.org/tamarin-tracing">Tamarin Tracing</a>.   Use the following command to create a copy of the Tamarin repository:
</p>
<pre class="eval">    <span class="plain">$ hg clone http://hg.mozilla.org/tamarin-tracing tamarin-tracing</span>
</pre>
<h2 name="Building_Tamarin"> Building Tamarin </h2>
<p>Building Tamarin will create all the libraries for the AVMPlus and garbage collector (MMgc), and create a standalone executable, <code>avmshell</code>, for executing files in the ABC file format.  Running <code>avmshell</code> without any arguments will list the available options. Note that additional command-line arguments are only available in the debug configuration.
</p><p>The <a href="en/Tamarin">Tamarin</a> codebase contains a cross-platform build system for Mozilla developers.  The cross-platform build system is used for daily automated build testing so it is the most reliable system.
</p><p>The Tamarin codebase has the ability to build additional code which supports debugging hooks. In the XCode project, this is the <code>Debug_Debugger</code> and <code>Release_Debugger</code> configurations. The Flash Player builds Tamarin with the debugging hooks off for codesize reasons, but the Mozilla client will build Tamarin with the debugging hooks on.
</p>
<h3 name="Cross-platform_build"> Cross-platform build </h3>
<p>First, you must have the <a href="en/Build_Documentation#Build_requirements">Mozilla build prerequisites</a> for your platform.  Additionally, you need Python 2.4 or later and GNU <tt>make</tt> 3.81 or later.  (<b>GNU <tt>make</tt> 3.80 does not work.</b>  Nor does any other brand of <tt>make</tt>.)
</p><p>With the right prerequisites, use these commands to build Tamarin Tracing:
</p>
<pre class="eval"> $ hg clone http://hg.mozilla.org/tamarin-tracing
 $ cd tamarin-tracing
 $ mkdir objdir-debug
 $ cd objdir-debug
 $ python ../configure.py --enable-shell
 $ make
 ...
 $ shell/avmshell
 avmshell 1.0 build cyclone
 ...
</pre>
<p>That's all.  The avmplus executable is <b>avmshell</b>. 
</p><p>For verbose build of Tamarin, you can pass CPPFLAGS to make.
</p>
<pre class="eval"> $ make CPPFLAGS=-DAVMPLUS_VERBOSE
</pre>
<h5 name="Windows_Mobile"> Windows Mobile </h5>
<p>To build for ARM:
</p>
<pre class="eval"> $ python ../configure.py --target=arm-windows --enable-shell; make
</pre>
<p>To build for Thumb:
</p>
<pre class="eval"> $ python ../configure.py --target=thumb-windows --enable-shell; make
</pre>
<h3 name="Platform-specific_Builds"> Platform-specific Builds </h3>
<p>Project files for specific platforms/IDEs (Microsoft Visual Studio, XCode, etc) are included in the source tree under <code>tamarin-tracing/platform</code>, but are not formally supported.
</p><p><br>
</p>
<h2 name="Running_Tamarin_compliance_tests"> Running Tamarin compliance tests </h2>
<h2 name="Tamarin_BuildBot"> Tamarin BuildBot </h2>
<p>Adobe maintains a <a class="external" href="http://tamarin-builds.mozilla.org/tamarin-tracing/waterfall">continuous build and test system</a> for Tamarin Tracing and <a class="external" href="http://tamarin-builds.mozilla.org/tamarin-central/waterfall">continuous build and test system</a> for Tamarin Central, similar to TinderBox. 
</p>
<h2 name="Tamarin_BuildBot_TryServer"> Tamarin BuildBot TryServer </h2>
<p>The TryServer/Sandbox is setup to allow users to push any code changes that they would like to have tested in the automated build/test process prior to actually pushing the changes into tamarin-tracing. The repository has the same buildbot process watching it, so it will run through the exact same build/test process.
</p><p>Any comments, questions or problems can be directed to <a class="external" href="mailto:brbaker@adobe.com">Brent Baker</a>
</p>
<h3 name="How_To"> How To </h3>
<p>In this first phase we are using a single shared repository (http://hg.mozilla.org/users/brbaker_adobe.com/tamarin-tracing/) but in phase two buildbot will be setup so that you can submit a URL and rev to clone &amp; test (similar to submitting a patch and baseline url, the way i think mozilla's works http://wiki.mozilla.org/Build:TryServer).
</p>
<ol><li> First thing that you should do is check the status of the buildbot to make sure nobody is currently using the system: http://tamarin-builds.mozilla.org/tamarin-tracing-sandbox
</li><li> To push the changes to the sandbox use the following command. This will push all changes that you have locally to the sandbox repository. This is most likely going to not only push your change but any changes that you have pulled that are not already in the sandbox. In the end the sandbox will contain all of the changes that you have locally. 
</li></ol>
<pre class="eval">   <span class="plain">$ hg push -f ssh://hg.mozilla.org/users/brbaker_adobe.com/tamarin-tracing/</span>
</pre>
<p>Check the status of the build @ http://tamarin-builds.mozilla.org/tamarin-tracing-sandbox
</p><p>Binaries are posted to ftp://ftp.mozilla.org/pub/js/tamarin/builds/tamarin-tracing-sandbox
</p>
<h3 name="TryServer_Etiquette"> TryServer Etiquette </h3>
<p>The Sandbox is not a good substitute for running the regression tests locally to catch obvious problems.
</p><p>This is a shared resource, each push takes approximately 3+ hours to run, please wait your turn. In the coming weeks we will implement a queued build system so that this is not an issue.
</p>
Revert to this revision