0
Fork 0
mirror of https://codeberg.org/librewolf/source.git synced 2024-12-22 21:53:31 -05:00
LibreWolf/docs/mach-parameters.md
2023-10-21 15:09:41 +02:00

24 KiB

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_<value> 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!