The Mozilla
Organization
At A Glance
Feedback
Get Involved
Newsgroups
License Terms
Newsbot
Developer Docs
Roadmap
Projects
Ports
Module Owners
Hacking
Get the Source
Build It
Testing
Download
Bugzilla
Bug Writing
Tools
View Source
Tree Status
New Checkins
Submit A Bug
FAQ
Search

Unix Detailed Build Instructions

Daniel Nunes, leaf@mozilla.org
Last modified: Thu Nov 4 11:26:33 PST 1999

This is a guide to building Mozilla on Unix including,

  • A list of the required development tools.
  • Commands to build Mozilla using the Autoconf build system.

For documentation on developing features or fixing bugs, look at the Mozilla Technical Documents or Mozilla Library. For general Unix issues, look at the Mozilla Unix.

Other Unix Build pages

Requirements

Your hardware should be equal to, or better than:
    32 MB RAM, 128 MB swap (64 MB RAM recommended)

The following software should be installed. (You can download gcc, gmake and autoconf from prep.ai.mit.edu.)

  • If you're using a glibc 2.07 system, you need this patch
  • egcs 1.0.3 (or higher), or gcc 2.7.2.x (2.8.x still has some bugs),
    or your platform's native C/C++ compiler.
    egcs is recommended, this is the compiler that the Linux tinderboxes and many developers are using.
  • Perl 5
  • GNU make 3.74 (or higher except 3.77).
    GNU make 3.77 shipped with bug a that breaks the NSPR build. Revert to 3.76.1 until this is fixed.
  • CVS 1.10 (or higher). To get started:
    1. setenv CVSROOT :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
    2. cvs login (password: anonymous) (You only need to do the login once.)
  • GTK+ / GLib 1.2.0 (or higher).
  • libIDL 6.3 (or higher).
    Source snapshots are available from Mozilla via ftp. If you're running Red Hat, download the libIDL and libIDL-devel RPMs and install them as above.

    OPTIONAL

    • Autoconf 2.12 (which requires GNU m4), is necessary if you want to hack on configure.in. If you have no idea what this means, then don't worry about it. It's optional.

Get the Code

There are two ways to get the code:

  • ftp: Drops are generally produced at least once per month, and are known to compile and even run on a few platforms.
  • CVS: Provides the most current code, but is slower than ftp.
      setenv CVSROOT :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
      cvs co SeaMonkeyAll
    The SeaMonkeyAll module pulls the right source for building the viewer and apprunner.

Build the Lizard

Manually drive the build

  1. cd mozilla
  2. ./configure
  3. gmake

Once you have configured, you only have to run configure if you add or remove Makefile.in files (cvs update can do this. Beware!). The list of makefiles is in mozilla/allmakefiles.sh

For build system hackers: If you change configure.in, cd to mozilla, and run autoconf. This generates a new configure script. (When you checkin configure.in, cvs will run autoconf and check in a new configure script for you).

Automated build (client.mk)

  1. Save the script from Unix Build Configurator as ~/.mozconfig.
  2. cvs co -f mozilla/client.mk
  3. cd mozilla
  4. gmake -f client.mk
If you want to build without pulling the tree (as in, you already have the source lying around),
    gmake -f client.mk build
If you just want to pull the tree,
    gmake -f client.mk checkout

After the build

  • cd dist/bin and you should see links to the scripts to run the executables: mozilla-viewer.sh and mozilla-apprunner.sh.
  • If the scripts do not work, set LD_LIBRARY_PATH and run viewer and apprunner directly. Set LD_LIBRARY_PATH to include dist/bin, and the NSPR and GTK libraries. (For example, you might set it to .:../../nspr/lib).
    • On HP-UX, the equivalent environment variable is SHLIB_PATH.
    • On AIX, the equivalent environment variable is LIBPATH.
  • If you run the executables from anywhere other than dist/bin, you must set the environment variable MOZILLA_FIVE_HOME to point to the absolute path of the dist/bin directory.
  • Update your tree by re-checking out the source, e.g. repeating the initial checkout process.

etc.

  • Parallel builds: just adding -j4 to gmake doesn't work, you need to do this:
      setenv MAKE gmake -j4
Copyright © 1998-1999 The Mozilla Organization.
Last modified November 4, 1999.