How comm-central's build system works

by 2 contributors:

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
  • MOZILLA_DIR
    • This is a useful variable that can be used from within mozilla-central or comm-central
    • Within mozilla-central it points to mozilla's topsrcdir
    • Within comm-central it also points to mozilla's topsrcdir
  • 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

Document Tags and Contributors

Contributors to this page: Standard8, KaiRo
Last updated by: Standard8,