This will eventually move elsewhere, probably to /Configure_Options or something
--enable-macos-target=VER (default=10.2/ppc, 10.4/x86)
MacOS only. The minimum MacOS version that the build will run on (?)
--enable-glitz Enable Glitz for use with Cairo
Enables glitz support when compiling with --enable-default-toolkit=cairo-gtk2. To be used at runtime, still needs an environment variable (?) (Glitz uses OpenGL for faster rendering; the normal builds use XRender (when using cairo-gtk2) or normal X11 functions (all assuming Unix))
The graphics toolkit to use. Usually the default is the best choice.
Which application to compile. APP must be one of the valid choices. browser is firefox, mail is thunderbird, suite is seamonkey.
(Firefox/Thunderbird (?) only) Which language to use. Possibly also needs special checkout flags?
--enable-calendar Enable building of the calendar client
--enable-static-mail Enable static mail build support
Compiles all mail components into a single library for better performance.
--enable-official-branding Enable Official mozilla.org Branding
Uses official branding. See http://www.mozilla.org/foundation/trademarks/ before compiling with this option enabled.
--with-branding=DIR Enable branding from the specified directory.
Apply the given branding;
--with-branding=other-licenses/branding/firefox is (basically) equivalent to --enable-official-branding for Firefox, for example.
--enable-pango Enable Pango font rendering support
(Almost only for X11 (Unix)) Uses Pango for font rendering rather than core X fonts / Xft. Required for correct display of fonts for certain languages (which ones?) but less tested and possibly slower.
--enable-xinerama Enable Xinerama support
Need a description here.
--enable-ctl Enable Thai Complex Script support
Need a description here, beyond the obvious. Probably pointless when pango is enabled?
--enable-single-profile Enable single profile support
You probably do not want to use this explicitly. --enable-application automatically turns it on when needed. When not needed, does not usually produce a working build.
--enable-native-uconv Enable iconv support
Enables the less tested character set conversion code using native converters (iconv on Unix). Mostly for smaller codesize. Do not use unless you need a small build.
Disables the HTML editor. You probably don't want this (as it disables midas (right?))
Enable JavaXPCOM, a way to embed Gecko into Java applications. Requires an installed JDK.
--enable-extensions Enable extensions
In its simplest form enables all available extensions. For some applications (including Firefox), this will not produce a good build. This does not affect whether extensions can be installed in the resulting build. This also supports the syntax:
To enable the default set plus extension foo, and
To enable the default set excluding extension foo.
The available extensions are the directories in extensions/
Only compile in the chosen image decoders. (Should only be used if you need a very small build)
Only compile in the chosen image encoders (Should only be used if you need a very small build)
Enables experimental LDAP code (fix this description)
--enable-canvas Enable html:canvas feature
Enables support for the HTML
<canvas> tag, as invented by Apple for Safari and specified by WhatWG.
--enable-svg Enable SVG support
Enables support for the SVG image format.
Selects the update channel that will be used for looking for updates. (This is probably only needed by mozilla.org build people)
Need a description here.
--enable-leaky Build leaky memory tool
--enable-xpctools Build JS profiling tool
--enable-xpcom-lea Use Lea malloc in xpcom
--enable-places Enable 'places' bookmark/history implementation
Places (now on by default for Firefox) is a rewritten Bookmarks and History implementation, using SQLite as its storage format.
--enable-storage Enable mozStorage module and related components
Implied by --enable-places. Otherwise, can be used to build the SQLite xpcom wrapper.
--enable-system-sqlite Use system sqlite (located with pkgconfig)
--enable-safe-browsing Enable safe browsing (anti-phishing) implementation
--enable-url-classifier Enable url classifier module
--disable-zipwriter Disable zipwriter component
--enable-js-ultrasparc Use UltraSPARC optimizations in JS
--enable-debug[=DBG] Enable building with developer debug info
Builds with debug symbols for use with gdb, and enables NS_ASSERTION and related debugging features. Also enables NSPR logging (non-debug builds only get specially marked NSPR logging)
--disable-optimize Disable compiler optimization
Disables compiler optimization. This makes it much easier to step through code in a debugger.
--enable-optimize=[OPT] Specify compiler optimization flags [OPT=-O]
--enable-debug-modules Enable/disable debug info for specific modules.
--enable-debug for specific modules. See also NSPR_LOG_MODULES Reference
Allows compiling only specific modules with debug info. Use it with:
--enable-boehm Enable the Boehm Garbage Collector
--enable-reorder Enable function reordering (requires GNU ld)
--enable-logrefcnt Enable logging of refcounts (default=debug)
Enable logrefcount, a tool for finding memory leaks. To use with --disable-debug
--enable-jemalloc Replace memory allocator with jemalloc
--enable-wrap-malloc Wrap malloc calls (gnu linker only)
--enable-efence Link with Electric Fence
--enable-jprof Enable jprof profiling tool (needs mozilla/tools/jprof)
Compile jprof support, a profiler for Mozilla. See http://lxr.mozilla.org/mozilla/sourc...of/README.html and http://www.mozilla.org/performance/jprof.html
--enable-strip Enable stripping of libs & executables
Strips libraries and executables to produce smaller binaries, at the cost of making debugging impossible.
--enable-elf-dynstr-gc Enable elf dynstr garbage collector (opt builds only)
Removes un-referenced strings from ELF shared objects generated during the build.
(x86 and Linux only (?)) Compile compatibility functions that were used with pre-GCC3 compilers and that plugins expect. Not needed if compatibility with such plugins is not important to you.
--enable-prebinding Enable prebinding (Mac OS X only)
--enable-timeline Enable timeline services
Timeline is a linear growing timestamp on when what is happening starting from the launch. It also enables code that can be used to time individual functions or bodies of code. See also: How to Measure and Analyze Startup Performance
--enable-reflow-perf Enable reflow performance tracing
--enable-perf-metrics Enable performance metrics
--enable-codesighs Enable code size analysis tools
Enable codesize analysis tools, a way to track the codesize of builds with changing sources. Mostly for use by tinderbox scripts. http://www.mozilla.org/projects/foot...codesighs.html
--enable-trace-malloc Enable malloc tracing
Enable trace-malloc, a leak finding tool. http://www.mozilla.org/performance/leak-brownbag.html
--enable-insure Enable insure++ instrumentation (linux only)
--enable-quantify Enable Quantify support (Windows only)
--enable-xterm-updates Update XTERM titles with current command.
Show the current directory where the build is in in the title of the terminal. Does not affect the resulting build. Contrary to what the name implies, this also works in Windows's cmd.exe.
Different ways to package the XUL/JS/CSS files for use by Mozilla. jar is recommended and fastest. When changing the XUL files often, symlink might be easier. Unfortunately, the symlink cannot be used with Firefox and Thunderbird, as the jar files may need to be preprocessed as well.
--enable-cpp-rtti Enable C++ RTTI
Enables RTTI (-frtti). Normal builds are compiled without RTTI for codesize reasons. There is no good reason to enable this; some toolkits require it and enable it automatically.
--enable-static Enable building of internal static libs
Compiles the internal components into the binary rather than as separate .so files. Improves performance. Makes embedding impossible. Slows down the build a lot, do not use this if you expect to build often (i.e. if you want to change the C/C++ source code)
--enable-libxul Enable building of libxul
Compiles many internal components into libxul. Improves performance almost like --enable-static, without losing embeddability. This is the default for XULRunner builds. This also has the build slowdown problem of --enable-static, don't use this if you're a developer.
--enable-js-static-build Force js to be a static lib
? (for use with minimo?)
Allows building only certain modules and the transitive closure of their dependencies.
--enable-system-cairo Use system cairo (located with pkgconfig)
Instead of using an in-tree cairo, link with a system-installed one. Does not work when using one of the cairo-* toolkits.
Only enable certain protocols. You should only use this when you need a very small build.
--disable-necko-disk-cache Disable necko disk cache
Disable the hard disk caching system.
Limit the size of certain necko buffers. Mostly meant for embedded devices with not much RAM.
--disable-tests Do not build test libraries & programs
By default, many auxiliary test applications are built, which can help debug and patch the mozilla source. Disabling these tests can speed build time and reduce disk space considerably.