We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

User:Biesi/Configure options

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

Build a performance profiler for xpcshell scripts. It can log performance results of a piece of Javascript code in a file. See also XPCShell:Profiling

 --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. 

Turn on --enable-debug for specific modules. See also NSPR_LOG_MODULES Reference


Allows compiling only specific modules with debug info. Use it with:


See also How to build a Firefox release with Debug Symbols

 --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

See also: http://www.mozilla.org/performance/leak-brownbag.html and http://mozilla.org/performance/refcnt-balancer.html (?)



 --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 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.


 --disable-gtktest       Do not try to compile and run a test GTK program
 --disable-mailnews      Disable building of mail & news components
 --disable-ldap          Disable LDAP support
 --disable-freetype2     Disable FreeType2 support
 --disable-xft           Disable Xft support
 --disable-postscript    Disable PostScript printing support
 --disable-xprint        Disable Xprint printing support
 --disable-gnomevfs      Disable GnomeVFS support
 --disable-gnomeui       Disable libgnomeui support (default: auto, optional at runtime)
 --disable-crypto        Disable crypto support (Personal Security Manager)
 --disable-jsd           Disable JavaScript debug library
 --disable-plugins       Disable plugins support
 --disable-oji           Disable Open JVM Integration support
 --disable-view-source     Disable view source support
 --disable-accessibility Disable accessibility support
 --disable-xpinstall     Disable xpinstall support
 --disable-jsloader      Disable xpcom js loader support
 --disable-printing  Disable printing support
 --disable-composer      Disable building of Composer
 --disable-xpcom-obsolete           Disable XPCOM Obsolete Library
 --disable-xpcom-fastload           Disable XPCOM fastload support
 --disable-negotiateauth Disable GSS-API negotiation
 --disable-xtf           Disable XTF (pluggable xml tags) support
 --disable-xmlextras Disable XMLExtras such as XMLHttpRequest
 --disable-webservices Disable Webservices/SOAP support
 --disable-mathml        Disable MathML support
 --disable-installer     Disable building of installer
 --disable-updater       Disable building of updater
 --disable-activex       Disable building of ActiveX control (win32 only)
 --enable-debug-modules  Enable/disable debug info for specific modules
                         Enable/disable debugger info for specific modules
 --disable-logging       Disable logging facilities
                         Enable/disable profiling for specific modules
 --disable-pedantic      Issue all warnings demanded by strict ANSI C
 --disable-auto-deps     Do not automatically generate dependency info
 --disable-md            Do not use compiler-based dependencies
 --disable-libIDLtest    Do not try to compile and run a test libIDL program
 --disable-glibtest      Do not try to compile and run a test GLIB program
 --disable-libIDLtest    Do not try to compile and run a test libIDL program
 --disable-glibtest      Do not try to compile and run a test GLIB program
 --disable-glibtest      Do not try to compile and run a test GLIB program
 --disable-xul           Disable XUL
 --disable-profilesharing           Disable profile sharing
 --disable-profilelocking           Disable profile locking
                         Enable/disable specific protocol handlers
 --disable-cookies       Disable cookie support
 --disable-v1-string-abi   Disable binary compatibility layer for strings

Document Tags and Contributors

Contributors to this page: emorley, Lucas Malor, Mook, Db48x, cbiesinger
Last updated by: emorley,