diff --git a/docs/mach-parameters.md b/docs/mach-parameters.md new file mode 100644 index 0000000..b47cea5 --- /dev/null +++ b/docs/mach-parameters.md @@ -0,0 +1,423 @@ +To get all these options, use: +``` +./mach configure -- --help | less +``` + +``` + Usage: configure.py [options] + + Options: [defaults in brackets after descriptions] + Help options: + --help print this message + + Options from ../build/moz.configure/init.configure: + --enable-application Application to build. Same as --enable-project. + --enable-project Project to build [browser] + --enable-artifact-builds Download and use prebuilt binary artifacts. + --host Define the system type performing the build + --target Define the system type where the resulting executables will be used + --with-version-file-path Specify a custom path to app version files instead of auto-detecting + --as-milestone={early-beta,late-beta,release} + Build with another milestone configuration (e.g., as release) + --enable-update-channel Select application update channel [default] + --with-app-basename Typically stays consistent for multiple branded versions of a given application (e.g. Aurora and Firefox both use "Firefox"), but may vary for full rebrandings (e.g. Iceweasel). Used for application.ini's "Name" field, which controls profile location in the absence of a "Profile" field (see below), and various system integration hooks (Unix remoting, Windows MessageWindow name, etc. + + Options from ../moz.configure: + --enable-artifact-build-symbols={full} + Download symbols when artifact builds are enabled. + --disable-compile-environment + Disable compiler/library checks + --disable-tests Do not build test libraries & programs + --enable-debug Enable building with developer debug info. + --with-debug-label Debug DEBUG_ for each comma-separated value given + --disable-release Do not build with more conservative, release engineering-orient + --disable-unified-build Enable building modules in non unified context + --enable-valgrind Enable Valgrind integration hooks + --enable-build-backend={Clangd,ChromeMap,CompileDB,CppEclipse,FasterMake,FasterMake+Recur,RecursiveMake,StaticAnalysis,TestManifest,VisualStudio} + Deprecated + --build-backends={Clangd,ChromeMap,CompileDB,CppEclipse,FasterMake,FasterMake+RecursiveMasiveMake,StaticAnalysis,TestManifest,VisualStudio} + Build backends to generate [RecursiveMake,FasterMake,Clangd] + --enable-gtest-in-build Enable building the gtest libxul during the build. + --enable-ui-locale Select the user interface locale (default: en-US) [en-US] + --disable-icu4x Disable using ICU4X + --enable-dtrace Build with dtrace support + --disable-icf Disable Identical Code Folding + --enable-strip Enable stripping of libs & executables + --disable-install-strip Enable stripping of libs & executables when packaging + --with-system-zlib Use system libz + + Options from ../build/moz.configure/bootstrap.configure: + --enable-bootstrap Automatically bootstrap or update some toolchains + + Options from ../build/moz.configure/toolchain.configure: + --disable-optimize Disable optimizations via compiler flags + --with-toolchain-prefix Prefix for the target toolchain + --with-compiler-wrapper Enable compiling with wrappers such as distcc and ccache + --with-ccache Enable compiling with ccache + --enable-gold Deprecated + --enable-linker Select the linker {bfd, gold, ld64, lld, lld-*, mold} + --disable-debug-symbols Disable debug symbols using the given compiler flags + --enable-address-sanitizer + Enable Address Sanitizer + --enable-memory-sanitizer + Enable Memory Sanitizer + --enable-thread-sanitizer + Enable Thread Sanitizer + --enable-undefined-sanitizer + Enable UndefinedBehavior Sanitizer + --enable-signed-overflow-sanitizer + Enable UndefinedBehavior Sanitizer (Signed Integer Overflow Par + + --enable-unsigned-overflow-sanitizer + Enable UndefinedBehavior Sanitizer (Unsigned Integer Overflow P + + --enable-hardening Enables security hardening compiler options + --enable-frame-pointers Enable frame pointers + --enable-coverage Enable code coverage + --enable-clang-plugin Enable building with the Clang plugin (gecko specific static an + + --enable-clang-plugin-alpha + Enable static analysis with clang-plugin alpha checks. + --enable-mozsearch-plugin + Enable building with the mozsearch indexer plugin + --enable-fuzzing Enable fuzzing support + --enable-snapshot-fuzzing + Enable experimental snapshot fuzzing support + --enable-cpp-rtti Enable C++ RTTI + --enable-path-remapping={c,rust} + Enable remapping source and object paths in compiled outputs. + + Options from ../build/moz.configure/memory.configure: + --enable-jemalloc Replace memory allocator with jemalloc + --enable-jemalloc Replace memory allocator with jemalloc + + Options from ../build/moz.configure/headers.configure: + --with-linux-headers location where the Linux kernel headers can be found + + Options from ../build/moz.configure/warnings.configure: + --enable-warnings-as-errors + Enable treating warnings as errors + + Options from ../build/moz.configure/flags.configure: + --disable-new-pass-manager + Use the legacy LLVM pass manager in clang builds + + Options from ../build/moz.configure/lto-pgo.configure: + --enable-profile-generate={cross} + Build a PGO instrumented binary + --enable-profile-use={cross} + Use a generated profile during the build + --with-pgo-profile-path Path to the directory with unmerged profile data to use during + --with-pgo-jarlog Use the provided jarlog file when packaging during a profile-us + + --enable-lto={full,thin,cross} + Enable LTO + + Options from ../toolkit/moz.configure: + --enable-jprof Enable jprof profiling tool (needs mozilla/tools/jprof) + --enable-dmd Enable Dark Matter Detector (heap profiler). Also enables jemallace-malloc and profiling + --enable-audio-backends={aaudio,alsa,audiounit,jack,opensl,oss,pulseaudio,sndio,sunaudio, + + Enable various cubeb backends [pulseaudio] + --enable-alsa Enable ALSA audio backend. + --enable-jack Enable JACK audio backend. + --enable-pulseaudio Enable PulseAudio audio backend. + --enable-sndio Enable sndio audio backend. + --with-l10n-base Path to l10n repositories + --enable-default-toolkit={cairo-gtk3,cairo-gtk3-wayland,cairo-gtk3-x11-wayland,cairo-gtk3d-only,cairo-gtk3-x11-only} + Select default toolkit [cairo-gtk3] + --with-gl-provider Set GL provider backend type + --disable-wmf Disable support for Windows Media Foundation + --disable-ffmpeg Disable FFmpeg for fragmented H264/AAC decoding + --disable-av1 Disable av1 video support + --disable-jxl Disable jxl image support + --disable-real-time-tracing + Disable tracing of real-time audio callbacks + --enable-openmax Enable OpenMAX IL for video/audio decoding + --enable-chrome-format={omni,jar,flat} + Select FORMAT of chrome files during packaging. [omni] + --enable-minify={properties,js} + Select types of files to minify during packaging. [properties] + --enable-gpsd Enable gpsd support + --with-mozilla-api-keyfile + Use the secret key contained in the given keyfile for Mozilla A sts + --with-google-location-service-api-keyfile + Use the secret key contained in the given keyfile for Mozilla A sts + --with-google-location-service-api-keyfile + Use the secret key contained in the given keyfile for Google Lo ervice API requests + --with-google-safebrowsing-api-keyfile + Use the secret key contained in the given keyfile for Google Sa ng API requests + --with-bing-api-keyfile Use the client id and secret key contained in the given keyfile g API requests + --with-adjust-sdk-keyfile + Use the secret key contained in the given keyfile for Adjust SD ts + --with-leanplum-sdk-keyfile + Use the client id and secret key contained in the given keyfile nplum SDK requests + --with-pocket-api-keyfile + Use the secret key contained in the given keyfile for Pocket AP sts + --enable-webrender-debugger + Build the websocket debug server in WebRender + --enable-app-system-headers + Use additional system headers defined in $MOZ_BUILD_APP/app-sys ers.mozbuild + --disable-printing Disable printing support + --disable-synth-speechd Disable speech-dispatcher support + --disable-webspeech Disable support for HTML Speech API + --disable-webspeechtestbackend + Disable support for HTML Speech API Test Backend + --enable-skia-pdf Enable Skia PDF + --with-system-webp Use system libwebp (located with pkgconfig) + --disable-webdriver Disable support for WebDriver remote protocols + --enable-geckodriver Build geckodriver + --enable-webrtc Enable support for WebRTC + --enable-raw Enable support for RAW media + --enable-address-sanitizer-reporter + Enable Address Sanitizer Reporter Extension + --enable-proxy-bypass-protection + Prevent suspected or confirmed proxy bypasses + --disable-proxy-direct-failover + Disable direct failover for system requests + --disable-accessibility Disable accessibility support + --with-unsigned-addon-scopes={app,system} + Addon scopes where signature is not required + --allow-addon-sideload Addon sideloading is allowed + --enable-extensions-webidl-bindings + Enable building experimental WebExtensions WebIDL bindings + --enable-launcher-process + Enable launcher process by default + --enable-bundled-fonts Enable support for bundled fonts on desktop platforms + --enable-reflow-perf Enable reflow performance tracing + --enable-layout-debugger Enable layout debugger + --with-system-libvpx Use system libvpx (located with pkgconfig) + --with-system-jpeg Use system libjpeg (installed at given prefix) + --with-system-png Use system libpng + --with-wasm-sandboxed-libraries={graphite,ogg,hunspell,expat,woff2} + Enable wasm sandboxing for the selected libraries [graphite,ogg l,expat,woff2] + --with-wasi-sysroot Path to wasi sysroot for wasm sandboxing + --enable-disk-remnant-avoidance + Prevent persistence of auxiliary files on application close + --enable-forkserver Enable fork server + --disable-backgroundtasks + Disable running in background task mode + --enable-mobile-optimize Enable mobile optimizations + --disable-pref-extensions + Disable pref extensions such as autoconfig + --disable-startupcache Disable startup cache + --with-crashreporter-url Set an alternative crashreporter url [https://crash-reports.moz /] + --with-system-libevent Use system libevent + --enable-crashreporter Enable crash reporting + --disable-dbus Disable dbus support + --enable-debug-js-modules + Enable debug mode for frontend JS libraries + --enable-dump-painting Enable paint debugging + --enable-libproxy Enable libproxy support + --enable-logrefcnt Enable logging of refcounts + --disable-negotiateauth Disable GSS-API negotiation + --disable-parental-controls + Do not build parental controls + --enable-sandbox Enable sandboxing support + --disable-system-extension-dirs + Disable searching system- and account-global directories for ex of any kind; use only profile-specific extension directories + --enable-system-pixman Use system pixman (located with pkgconfig) + --disable-universalchardet + Disable universal encoding detection + --disable-zipwriter Disable zipwriter component + --with-user-appdir Set user-specific appdir [.mozilla] + --enable-uniffi-fixtures Enable UniFFI Fixtures/Examples + --disable-system-policies + Disable reading policies from Windows registry, macOS's file sy ributes, and /etc/firefox + --disable-legacy-profile-creation + Disable the creation a legacy profile, to be used by old versio refox, when no profiles exist. + + Options from ../js/moz.configure: + --with-app-name Used for e.g. the binary program file name. If not set, default owercase form of MOZ_APP_BASENAME. + --enable-smoosh Enable SmooshMonkey (new JS engine frontend) + --enable-js-shell Build the JS shell + --enable-record-tuple Enable records and tuples (and disables JIT) + --enable-decorators Enable experimental JS Decorators support + --enable-jit Enable use of the JITs + --enable-ion Deprecated + --enable-simulator={arm,arm64,mips32,mips64,loong64,riscv64} + Enable a JIT code simulator for the specified architecture + --enable-instruments Enable instruments remote profiling + --enable-callgrind Enable callgrind profiling + --enable-profiling Set compile flags necessary for using sampling profilers (e.g. erf) + --enable-vtune Enable VTune profiling + --enable-gc-probes Turn on probes for allocation and finalization + --enable-gczeal Enable zealous GCing + --enable-oom-breakpoint Enable a breakpoint function for artificial OOMs + --enable-perf Enable Linux perf integration + --enable-jitspew Enable the Jit spew and IONFLAGS environment variable + --enable-masm-verbose Enable MacroAssembler verbosity of generated code. + --enable-arm64-fjcvtzs Enable static use of FJCVTZS instruction on Aarch64 targets. + --disable-ctypes Disable js-ctypes + --enable-pipeline-operator + Enable pipeline operator + --enable-rust-simd Enable explicit SIMD in Rust code. + --enable-spidermonkey-telemetry + Enable performance telemetry for SpiderMonkey (e.g. compile and es) + --enable-wasm-codegen-debug + Enable debugging for wasm codegen + --wasm-no-experimental Force disable all wasm experimental features for testing. + --disable-wasm-function-references + Disable WebAssembly function-references + --enable-wasm-tail-calls Enable WebAssembly tail-calls + --disable-wasm-gc Disable WebAssembly GC + --disable-shared-memory Disable JS/WebAssembly shared memory and atomics + --disable-wasm-extended-const + Disable WebAssembly extended constant expressions + --enable-wasm-simd Enable WebAssembly SIMD + --enable-wasm-avx Enable AVX support for WebAssembly SIMD + --enable-wasm-relaxed-simd + Enable WebAssembly relaxed SIMD + --enable-wasm-moz-intgemm + Enable WebAssembly intgemm private intrinsics + --enable-wasm-memory64 Enable WebAssembly Memory64 + --enable-wasm-memory-control + Enable WebAssembly fine-grained memory control instructions + --enable-wasm-multi-memory + Enable WebAssembly multi-memory + --with-qemu-exe Use path as an arm emulator on host platforms + --with-cross-lib Use dir as the location for arm libraries [/usr/unknown-unknown + --with-cross-lib Use dir as the location for arm libraries [/usr/unknown-unknown ] --with-sixgill Enable static checking of code using sixgill + --with-jitreport-granularity={0,1,2,3} + Default granularity at which to report JIT code to external too no info, 1 - code ranges for while functions only, 2 - per-line information, 3 - per-op inform 3] + --with-system-icu Use system ICU + --without-intl-api Disable ECMAScript Internationalization API + --with-temporal-api Enable ECMAScript Temporal API + --enable-wasm-type-reflections + Enable type reflection in WASM JS-API + + Options from ../build/moz.configure/nspr.configure: + --with-system-nspr Use system NSPR + + Options from ../build/moz.configure/rust.configure: + --enable-rust-tests Enable building and running of Rust tests during `make check` + --enable-rust-debug Build Rust code with debug assertions turned on. + --disable-cargo-incremental + Disable incremental rust compilation. + + Options from ../build/moz.configure/bindgen.configure: + --with-libclang-path Absolute path to a directory containing Clang/LLVM libraries fo n (version 3.9.x or above) + --with-clang-path Absolute path to a Clang binary for bindgen (version 3.9.x or a + + + Options from ../js/ffi.configure: + --with-system-ffi Use system libffi (located with pkgconfig) + + Options from ../build/moz.configure/node.configure: + --disable-nodejs Require Node.js to build + + Options from ../build/moz.configure/nss.configure: + --with-system-nss Use system NSS + + Options from ../build/moz.configure/update-programs.configure: + --disable-updater Disable building the updater + --enable-unverified-updates + Enable application update without verifying MAR or updater bina tures + --enable-default-browser-agent + Enable building the default browser agent + + Options from ../build/moz.configure/old.configure: + --cache-file Help missing for old configure options + --datadir Help missing for old configure options + --enable-official-branding + Help missing for old configure options + --includedir Help missing for old configure options + --libdir Help missing for old configure options + --prefix Help missing for old configure options + --with-branding Help missing for old configure options + --with-distribution-id Help missing for old configure options + --with-macbundlename-prefix + Help missing for old configure options + --x-includes Help missing for old configure options + --x-libraries Help missing for old configure options + + + Environment variables: + Options from ../build/moz.configure/init.configure: + MOZ_AUTOMATION Enable options for automated builds + OLD_CONFIGURE Path to the old configure script + MOZCONFIG Mozconfig location + MOZILLABUILD Path to Mozilla Build (Windows-only) + CONFIG_SHELL Path to a POSIX shell + MOZILLA_OFFICIAL Build an official release + MOZBUILD_STATE_PATH Path to a persistent state directory for the build system and r ools + + Options from ../moz.configure: + MOZ_COPY_PDBS For builds that do not support symbols in the normal fashion, g and copy them into the resulting build archive. + MOZ_PGO Build with profile guided optimizations + WGET Path to the wget program + LLVM_OBJDUMP Path to llvm-objdump + READELF Path to the readelf program + OBJCOPY Path to the objcopy program + AWK Path to the awk program + MAKE Path to GNU make + GMAKE Path to the gmake program + WATCHMAN Path to the watchman program + XARGS Path to the xargs program + MKFSHFS Path to the mkfshfs program + HFS_TOOL Path to the hfs_tool program + RPMBUILD Path to the rpmbuild program + STRIP_FLAGS Flags for the strip command + STRIP Path to the strip program + + Options from ../build/moz.configure/toolchain.configure: + MOZ_HAZARD Build for the GC rooting hazard analysis + CCACHE_PREFIX Compiler prefix to use when using ccache + RUSTC_WRAPPER Wrap rust compilation with given tool + SCCACHE_VERBOSE_STATS Print verbose sccache stats after build + CC Path to the target C compiler + LD Deprecated + CXX Path to the target C++ compiler + HOST_CC Path to the host C compiler + HOST_LD Deprecated + HOST_CXX Path to the host C++ compiler + MOZ_DEBUG_FLAGS Debug compiler flags + AS Path to the assembler + AR Path to the ar program + HOST_AR Path to the host_ar program + + Options from ../build/moz.configure/pkg.configure: + PKG_CONFIG Path to the pkg_config program + + Options from ../build/moz.configure/lto-pgo.configure: + LLVM_PROFDATA Path to the llvm_profdata program + MOZ_LD64_KNOWN_GOOD Indicate that ld64 is free of symbol aliasing bugs. + + Options from ../build/moz.configure/rust.configure: + RUSTC Path to the rust compiler + CARGO Path to the Cargo package manager + RUSTDOC Path to the rustdoc program + RUSTFLAGS Rust compiler flags + RUSTC_OPT_LEVEL Rust compiler optimization level (-C opt-level=%s) [2] + + Options from ../build/moz.configure/bindgen.configure: + CBINDGEN Path to cbindgen + RUSTFMT Path to the rustfmt program + BINDGEN_CFLAGS Options bindgen should pass to the C/C++ parser + + Options from ../build/moz.configure/node.configure: + NODEJS Path to nodejs + + Options from ../toolkit/moz.configure: + MOZ_INSTRUMENT_EVENT_LOOP + Force-enable event loop instrumentation + USE_FC_FREETYPE Force-enable the use of fontconfig freetype + MOZ_TELEMETRY_REPORTING Enable telemetry reporting + TAR Path to the tar program + UNZIP Path to the unzip program + MIDL_FLAGS Extra flags to pass to MIDL + MOZ_REQUIRE_SIGNING Enforce that add-ons are signed by the trusted root + WASM_CC Path to the wasm C compiler + WASM_CXX Path to the wasm C++ compiler + WASM_CFLAGS Options to pass to WASM_CC + WASM_CXXFLAGS Options to pass to WASM_CXX + DUMP_SYMS Path to the dump_syms program + MOZ_APP_REMOTINGNAME Used for the internal program name, which affects profile name ting. If not t, defaults to MOZ_APP_NAME if the update channel is release, and MOZ_APP_NAME- TE_CHANNEL otherwise. + ANDROID_PACKAGE_NAME Name of the Android package (default org.mozilla.$MOZ_APP_NAME) + MOZ_WINCONSOLE Whether we can create a console window. + + Options from ../build/moz.configure/old.configure: + M4 Path to the m4 program +``` + +That's all, folks!