Mozilla Detailed Unix Build Instructions

# Unix Detailed Build Instructions

See http://www.mozilla.org/build/unix-details.html for the lastest version of these instructions.

Daniel Nunes, `leaf@mozilla.org`
Last modified: Fri Sep 3 16:59:34 PDT 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

- Simple Unix Build Instructions
- How to add files and not break the build.
- Build Configuator FAQ: FAQ for the Unix Build Configurator.
- Irix build status: The Irix build is working now!
- Redhat on Intel build instructions (out of date): Makes life easy through RPMs.

## 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.9 (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).
  - Debian: ftp://ftp.gtk.org/pub/gtk/binary/DEBIAN/
  - Red Hat: ftp://ftp.gtk.org/pub/gtk/binary/RPMS/
    Remove any old glib-devel and gtk+-devel packages already installed on your machine. There is no need to remove the gtk+/glib RPMs that came with Redhat.
    `rpm -e glib-devel`
    `rpm -e gtk+-devel`
    Download new glib, glib-devel, gtk+, and gtk+-devel packages into the same directory and install them with one commmand.
    `rpm -i *.rpm`
  - Source tar balls or CVS
- 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
   Your options may vary. For configure options, run "./configure --help",
   or use the Unix Build Configurator.
   `
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.

`