mozilla

Revision 132744 of How comm-central's build system works

  • Revision slug: How_comm-central's_build_system_works
  • Revision title: How comm-central's build system works
  • Revision id: 132744
  • Created:
  • Creator: Standard8
  • Is current revision? No
  • Comment /* Theory */

Revision Content

This document is targeted at developers who need to use and update the comm-central build system.

This document is not intended for people who just want to build Mozilla. For that, see the Build Documentation.

Introduction

The comm-central build system is an extension of the system used for mozilla-central. Readers of this document should first read How_Mozilla's_build_system_works and ensure they are familiar with it.

It is also worth being familiar with the code layout of comm-central.

Theory

Work in Progress: This section is still being written and needs more information

The comm-central build system is a wrapper/extension of the mozilla build system. The few build files that are required to run the comm-central system call into the core mozilla files (under mozilla/) to share the same code.

  • Configuring:
    • client.mk is used to call the master configure file.
    • configure calls mozilla/configure
      • mozilla/configure calls the NSPR and NSS configure scripts
    • configure calls the directory/c-sdk configure script
  • Building:
    • The [tier build] system is still present.
    • Makefile.in calls make default in mozilla/
      • The main mozilla build then takes place
    • According to the details in rules.mk, make is called on all the TIERS, for each of their directories.
      • For the comm-central specific code, this is just tier_app.

Special Variables

  • COMM_BUILD
    • set to 1 in the comm-central build system, undefined elsewhere
    • used in places that are called from both the comm-central build system and others, like the Mozilla build system (for example, build.mk, confvars.sh, mozconfig or calendar as long as it's still pulled from CVS)
  • MOZILLA_SRCDIR
    • points to the topsrcdir of the included Mozilla source
    • used instead of topsrcdir when pointing to code inside mozilla-central
  • MOZDEPTH
    • relative pointer to Mozilla's top src/objdir from the current src/objdir
    • used instead of DEPTH when pointing to objdir files built from mozilla-central

Revision Source

<p>This document is targeted at developers who need to use and update the <a href="en/Comm-central">comm-central</a> build system.
</p><p>This document is not intended for people who just want to build Mozilla. For that, see the <a href="en/Build_Documentation">Build Documentation</a>.
</p>
<h3 name="Introduction"> Introduction </h3>
<p>The <a href="en/Comm-central">comm-central</a> build system is an extension of the system used for <a href="en/Mozilla-central">mozilla-central</a>. Readers of this document should first read <a href="en/How_Mozilla's_build_system_works">How_Mozilla's_build_system_works</a> and ensure they are familiar with it.
</p><p>It is also worth being familiar with the <a href="en/Comm-central#comm-central_code_layout">code layout of comm-central</a>.
</p>
<h3 name="Theory"> Theory </h3>
<div class="warning">Work in Progress: This section is still being written and needs more information</div>
<p>The comm-central build system is a wrapper/extension of the mozilla build system. The few build files that are required to run the comm-central system call into the core mozilla files (under mozilla/) to share the same code.
</p>
<ul><li> Configuring:
<ul><li> client.mk is used to call the master configure file.
</li><li> configure calls mozilla/configure
<ul><li> mozilla/configure calls the NSPR and NSS configure scripts
</li></ul>
</li><li> configure calls the directory/c-sdk configure script
</li></ul>
</li><li> Building:
<ul><li> The [<a class="external" href="http://developer.mozilla.org/en/docs/How_Mozilla%27s_build_system_works#Build_Tiers">tier build</a>] system is still present.
</li><li> Makefile.in calls make default in mozilla/
<ul><li> The main mozilla build then takes place
</li></ul>
</li><li> According to the details in rules.mk, make is called on all the <code>TIERS</code>, for each of their directories.
<ul><li> For the comm-central specific code, this is just <code>tier_app</code>.
</li></ul>
</li></ul>
</li></ul>
<h3 name="Special_Variables"> Special Variables </h3>
<ul><li> COMM_BUILD
<ul><li> set to 1 in the comm-central build system, undefined elsewhere
</li><li> used in places that are called from both the comm-central build system and others, like the Mozilla build system (for example, build.mk, confvars.sh, mozconfig or calendar as long as it's still pulled from CVS)
</li></ul>
</li><li> MOZILLA_SRCDIR
<ul><li> points to the topsrcdir of the included Mozilla source
</li><li> used instead of topsrcdir when pointing to code inside mozilla-central
</li></ul>
</li><li> MOZDEPTH
<ul><li> relative pointer to Mozilla's top src/objdir from the current src/objdir
</li><li> used instead of DEPTH when pointing to objdir files built from mozilla-central
</li></ul>
</li></ul>
Revert to this revision