summaryrefslogtreecommitdiffstats
path: root/browser/config/mozconfigs
diff options
context:
space:
mode:
Diffstat (limited to 'browser/config/mozconfigs')
-rw-r--r--browser/config/mozconfigs/common7
-rw-r--r--browser/config/mozconfigs/linux32/beta5
-rw-r--r--browser/config/mozconfigs/linux32/common-opt14
-rw-r--r--browser/config/mozconfigs/linux32/debug15
-rw-r--r--browser/config/mozconfigs/linux32/debug-asan18
-rw-r--r--browser/config/mozconfigs/linux32/devedition8
-rw-r--r--browser/config/mozconfigs/linux32/l10n-mozconfig18
-rw-r--r--browser/config/mozconfigs/linux32/l10n-mozconfig-devedition18
-rw-r--r--browser/config/mozconfigs/linux32/nightly5
-rw-r--r--browser/config/mozconfigs/linux32/nightly-asan17
-rw-r--r--browser/config/mozconfigs/linux32/profile-generate6
-rw-r--r--browser/config/mozconfigs/linux32/release12
-rw-r--r--browser/config/mozconfigs/linux32/rusttests10
-rw-r--r--browser/config/mozconfigs/linux32/rusttests-debug10
-rw-r--r--browser/config/mozconfigs/linux32/valgrind11
-rw-r--r--browser/config/mozconfigs/linux64-aarch64/common-opt19
-rw-r--r--browser/config/mozconfigs/linux64-aarch64/opt5
-rw-r--r--browser/config/mozconfigs/linux64/add-on-devel10
-rw-r--r--browser/config/mozconfigs/linux64/asan-fuzzing-ccov38
-rw-r--r--browser/config/mozconfigs/linux64/beta5
-rw-r--r--browser/config/mozconfigs/linux64/code-coverage15
-rw-r--r--browser/config/mozconfigs/linux64/code-coverage-debug4
-rw-r--r--browser/config/mozconfigs/linux64/code-coverage-opt4
-rw-r--r--browser/config/mozconfigs/linux64/common-opt16
-rw-r--r--browser/config/mozconfigs/linux64/debug14
-rw-r--r--browser/config/mozconfigs/linux64/debug-asan32
-rw-r--r--browser/config/mozconfigs/linux64/debug-fuzzing30
-rw-r--r--browser/config/mozconfigs/linux64/debug-searchfox-clang20
-rw-r--r--browser/config/mozconfigs/linux64/debug-static-analysis-clang14
-rw-r--r--browser/config/mozconfigs/linux64/devedition8
-rw-r--r--browser/config/mozconfigs/linux64/fuzzing-ccov4
-rw-r--r--browser/config/mozconfigs/linux64/l10n-mozconfig13
-rw-r--r--browser/config/mozconfigs/linux64/l10n-mozconfig-devedition13
-rw-r--r--browser/config/mozconfigs/linux64/nightly5
-rw-r--r--browser/config/mozconfigs/linux64/nightly-asan30
-rw-r--r--browser/config/mozconfigs/linux64/nightly-asan-reporter20
-rw-r--r--browser/config/mozconfigs/linux64/nightly-fuzzing-asan36
-rw-r--r--browser/config/mozconfigs/linux64/noopt-debug7
-rw-r--r--browser/config/mozconfigs/linux64/plain-debug3
-rw-r--r--browser/config/mozconfigs/linux64/plain-opt0
-rw-r--r--browser/config/mozconfigs/linux64/profile-generate6
-rw-r--r--browser/config/mozconfigs/linux64/release12
-rw-r--r--browser/config/mozconfigs/linux64/rusttests10
-rw-r--r--browser/config/mozconfigs/linux64/rusttests-debug10
-rw-r--r--browser/config/mozconfigs/linux64/source6
-rw-r--r--browser/config/mozconfigs/linux64/tsan25
-rw-r--r--browser/config/mozconfigs/linux64/tsan-fuzzing7
-rw-r--r--browser/config/mozconfigs/linux64/valgrind13
-rw-r--r--browser/config/mozconfigs/macosx64-aarch64/beta5
-rw-r--r--browser/config/mozconfigs/macosx64-aarch64/common-opt30
-rw-r--r--browser/config/mozconfigs/macosx64-aarch64/devedition19
-rw-r--r--browser/config/mozconfigs/macosx64-aarch64/nightly12
-rw-r--r--browser/config/mozconfigs/macosx64-aarch64/release12
-rw-r--r--browser/config/mozconfigs/macosx64/add-on-devel10
-rw-r--r--browser/config/mozconfigs/macosx64/beta5
-rw-r--r--browser/config/mozconfigs/macosx64/code-coverage12
-rw-r--r--browser/config/mozconfigs/macosx64/common-opt15
-rw-r--r--browser/config/mozconfigs/macosx64/cross-noopt-debug9
-rw-r--r--browser/config/mozconfigs/macosx64/debug14
-rw-r--r--browser/config/mozconfigs/macosx64/debug-asan18
-rw-r--r--browser/config/mozconfigs/macosx64/debug-fuzzing8
-rw-r--r--browser/config/mozconfigs/macosx64/debug-searchfox16
-rw-r--r--browser/config/mozconfigs/macosx64/debug-static-analysis10
-rw-r--r--browser/config/mozconfigs/macosx64/devedition19
-rw-r--r--browser/config/mozconfigs/macosx64/l10n-mozconfig24
-rw-r--r--browser/config/mozconfigs/macosx64/l10n-mozconfig-devedition28
-rw-r--r--browser/config/mozconfigs/macosx64/nightly12
-rw-r--r--browser/config/mozconfigs/macosx64/nightly-asan22
-rw-r--r--browser/config/mozconfigs/macosx64/nightly-fuzzing-asan4
-rw-r--r--browser/config/mozconfigs/macosx64/opt-static-analysis12
-rw-r--r--browser/config/mozconfigs/macosx64/plain-debug3
-rw-r--r--browser/config/mozconfigs/macosx64/plain-opt0
-rw-r--r--browser/config/mozconfigs/macosx64/profile-generate6
-rw-r--r--browser/config/mozconfigs/macosx64/release12
-rw-r--r--browser/config/mozconfigs/macosx64/repack7
-rw-r--r--browser/config/mozconfigs/whitelist42
-rw-r--r--browser/config/mozconfigs/win32/add-on-devel10
-rw-r--r--browser/config/mozconfigs/win32/beta7
-rw-r--r--browser/config/mozconfigs/win32/common-opt22
-rw-r--r--browser/config/mozconfigs/win32/common-win3231
-rw-r--r--browser/config/mozconfigs/win32/debug15
-rw-r--r--browser/config/mozconfigs/win32/debug-static-analysis12
-rw-r--r--browser/config/mozconfigs/win32/devedition10
-rw-r--r--browser/config/mozconfigs/win32/l10n-mozconfig17
-rw-r--r--browser/config/mozconfigs/win32/l10n-mozconfig-devedition17
-rw-r--r--browser/config/mozconfigs/win32/mingwclang59
-rw-r--r--browser/config/mozconfigs/win32/mingwclang-debug3
-rw-r--r--browser/config/mozconfigs/win32/nightly7
-rw-r--r--browser/config/mozconfigs/win32/noopt-debug9
-rw-r--r--browser/config/mozconfigs/win32/profile-generate6
-rw-r--r--browser/config/mozconfigs/win32/release14
-rw-r--r--browser/config/mozconfigs/win32/rusttests8
-rw-r--r--browser/config/mozconfigs/win32/rusttests-debug8
-rw-r--r--browser/config/mozconfigs/win64-aarch64/beta7
-rw-r--r--browser/config/mozconfigs/win64-aarch64/common-opt26
-rw-r--r--browser/config/mozconfigs/win64-aarch64/common-win6432
-rw-r--r--browser/config/mozconfigs/win64-aarch64/debug16
-rw-r--r--browser/config/mozconfigs/win64-aarch64/devedition10
-rw-r--r--browser/config/mozconfigs/win64-aarch64/l10n-mozconfig17
-rw-r--r--browser/config/mozconfigs/win64-aarch64/l10n-mozconfig-devedition17
-rw-r--r--browser/config/mozconfigs/win64-aarch64/nightly7
-rw-r--r--browser/config/mozconfigs/win64-aarch64/release14
-rw-r--r--browser/config/mozconfigs/win64/add-on-devel10
-rw-r--r--browser/config/mozconfigs/win64/beta7
-rw-r--r--browser/config/mozconfigs/win64/code-coverage29
-rw-r--r--browser/config/mozconfigs/win64/common-opt22
-rw-r--r--browser/config/mozconfigs/win64/common-win6431
-rw-r--r--browser/config/mozconfigs/win64/debug15
-rw-r--r--browser/config/mozconfigs/win64/debug-asan16
-rw-r--r--browser/config/mozconfigs/win64/debug-fuzzing11
-rw-r--r--browser/config/mozconfigs/win64/debug-searchfox19
-rw-r--r--browser/config/mozconfigs/win64/devedition10
-rw-r--r--browser/config/mozconfigs/win64/l10n-mozconfig17
-rw-r--r--browser/config/mozconfigs/win64/l10n-mozconfig-devedition17
-rwxr-xr-xbrowser/config/mozconfigs/win64/mingwclang59
-rw-r--r--browser/config/mozconfigs/win64/mingwclang-debug3
-rw-r--r--browser/config/mozconfigs/win64/nightly7
-rw-r--r--browser/config/mozconfigs/win64/nightly-asan16
-rw-r--r--browser/config/mozconfigs/win64/nightly-asan-reporter18
-rwxr-xr-xbrowser/config/mozconfigs/win64/nightly-fuzzing-asan13
-rw-r--r--browser/config/mozconfigs/win64/noopt-debug9
-rw-r--r--browser/config/mozconfigs/win64/plain-debug3
-rw-r--r--browser/config/mozconfigs/win64/plain-opt3
-rw-r--r--browser/config/mozconfigs/win64/profile-generate6
-rw-r--r--browser/config/mozconfigs/win64/release14
-rw-r--r--browser/config/mozconfigs/win64/rusttests8
-rw-r--r--browser/config/mozconfigs/win64/rusttests-debug8
127 files changed, 1786 insertions, 0 deletions
diff --git a/browser/config/mozconfigs/common b/browser/config/mozconfigs/common
new file mode 100644
index 0000000000..febf5622fa
--- /dev/null
+++ b/browser/config/mozconfigs/common
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This file is included by all browser mozconfigs
+
+. "$topsrcdir/build/mozconfig.common"
diff --git a/browser/config/mozconfigs/linux32/beta b/browser/config/mozconfigs/linux32/beta
new file mode 100644
index 0000000000..c8aedd4f81
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/beta
@@ -0,0 +1,5 @@
+. "$topsrcdir/browser/config/mozconfigs/linux32/common-opt"
+
+ac_add_options --enable-official-branding
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux32/common-opt b/browser/config/mozconfigs/linux32/common-opt
new file mode 100644
index 0000000000..b5a9d258e9
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/common-opt
@@ -0,0 +1,14 @@
+# This file is sourced by nightly, beta, and release mozconfigs.
+
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --with-google-location-service-api-keyfile=/builds/gls-gapi.data
+ac_add_options --with-google-safebrowsing-api-keyfile=/builds/sb-gapi.data
+ac_add_options --with-mozilla-api-keyfile=/builds/mozilla-desktop-geoloc-api.key
+
+. $topsrcdir/build/unix/mozconfig.linux32
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
diff --git a/browser/config/mozconfigs/linux32/debug b/browser/config/mozconfigs/linux32/debug
new file mode 100644
index 0000000000..30e3213182
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/debug
@@ -0,0 +1,15 @@
+ac_add_options --enable-debug
+
+. $topsrcdir/build/unix/mozconfig.linux32
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+#Use ccache
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux32/debug-asan b/browser/config/mozconfigs/linux32/debug-asan
new file mode 100644
index 0000000000..3f45589230
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/debug-asan
@@ -0,0 +1,18 @@
+# Use at least -O1 for optimization to avoid stack space
+# exhaustions caused by Clang function inlining.
+ac_add_options --enable-debug
+ac_add_options --enable-optimize="-O1"
+
+# ASan specific options on Linux
+ac_add_options --enable-valgrind
+
+. $topsrcdir/build/unix/mozconfig.asan
+ac_add_options --disable-elf-hack
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+# Need this to prevent name conflicts with the normal nightly build packages
+export MOZ_PKG_SPECIAL=asan
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux32/devedition b/browser/config/mozconfigs/linux32/devedition
new file mode 100644
index 0000000000..fa4b3ad273
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/devedition
@@ -0,0 +1,8 @@
+. "$topsrcdir/browser/config/mozconfigs/linux32/common-opt"
+
+# Add-on signing is not required for DevEdition
+MOZ_REQUIRE_SIGNING=0
+
+ac_add_options --with-branding=browser/branding/aurora
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux32/l10n-mozconfig b/browser/config/mozconfigs/linux32/l10n-mozconfig
new file mode 100644
index 0000000000..c6f41967f6
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/l10n-mozconfig
@@ -0,0 +1,18 @@
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --enable-official-branding
+ac_add_options --disable-nodejs
+
+. "$topsrcdir/build/mozconfig.no-compile"
+
+if test `uname -m` = "x86_64"; then
+ ac_add_options --target=i686-pc-linux
+ ac_add_options --host=i686-pc-linux
+fi
+
+export MOZILLA_OFFICIAL=1
+
+# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
+# Bug 1283438
+mk_add_options AUTOCLOBBER=
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux32/l10n-mozconfig-devedition b/browser/config/mozconfigs/linux32/l10n-mozconfig-devedition
new file mode 100644
index 0000000000..62ca359388
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/l10n-mozconfig-devedition
@@ -0,0 +1,18 @@
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --with-branding=browser/branding/aurora
+ac_add_options --disable-nodejs
+
+. "$topsrcdir/build/mozconfig.no-compile"
+
+if test `uname -m` = "x86_64"; then
+ ac_add_options --target=i686-pc-linux
+ ac_add_options --host=i686-pc-linux
+fi
+
+export MOZILLA_OFFICIAL=1
+
+# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
+# Bug 1283438
+mk_add_options AUTOCLOBBER=
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux32/nightly b/browser/config/mozconfigs/linux32/nightly
new file mode 100644
index 0000000000..686266944d
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/nightly
@@ -0,0 +1,5 @@
+. "$topsrcdir/browser/config/mozconfigs/linux32/common-opt"
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux32/nightly-asan b/browser/config/mozconfigs/linux32/nightly-asan
new file mode 100644
index 0000000000..7664fa71a8
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/nightly-asan
@@ -0,0 +1,17 @@
+# We still need to build with debug symbols
+ac_add_options --disable-debug
+ac_add_options --enable-optimize="-O2 -g"
+
+# ASan specific options on Linux
+ac_add_options --enable-valgrind
+
+. $topsrcdir/build/unix/mozconfig.asan
+ac_add_options --disable-elf-hack
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+# Need this to prevent name conflicts with the normal nightly build packages
+export MOZ_PKG_SPECIAL=asan
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux32/profile-generate b/browser/config/mozconfigs/linux32/profile-generate
new file mode 100644
index 0000000000..8157dc0965
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/profile-generate
@@ -0,0 +1,6 @@
+. $topsrcdir/browser/config/mozconfigs/linux32/nightly
+
+mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0"
+
+ac_add_options --enable-profile-generate=cross
+ac_add_options --disable-tests
diff --git a/browser/config/mozconfigs/linux32/release b/browser/config/mozconfigs/linux32/release
new file mode 100644
index 0000000000..d7ad589810
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/release
@@ -0,0 +1,12 @@
+# This make file should be identical to the beta mozconfig, apart from the
+# safeguard below
+
+. "$topsrcdir/browser/config/mozconfigs/linux32/common-opt"
+
+ac_add_options --enable-official-branding
+
+# safeguard against someone forgetting to re-set EARLY_BETA_OR_EARLIER in
+# defines.sh during the beta cycle
+export BUILDING_RELEASE=1
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux32/rusttests b/browser/config/mozconfigs/linux32/rusttests
new file mode 100644
index 0000000000..b931afff2b
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/rusttests
@@ -0,0 +1,10 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+
+mk_add_options MOZ_MAKE_FLAGS=--output-sync=line
+
+. "$topsrcdir/browser/config/mozconfigs/linux32/nightly"
+
+unset ENABLE_CLANG_PLUGIN
+
+# Test geckodriver, which isn't built as part of the build jobs
+ac_add_options --enable-geckodriver
diff --git a/browser/config/mozconfigs/linux32/rusttests-debug b/browser/config/mozconfigs/linux32/rusttests-debug
new file mode 100644
index 0000000000..ad1269b94f
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/rusttests-debug
@@ -0,0 +1,10 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+
+mk_add_options MOZ_MAKE_FLAGS=--output-sync=line
+
+. "$topsrcdir/browser/config/mozconfigs/linux32/debug"
+
+unset ENABLE_CLANG_PLUGIN
+
+# Test geckodriver, which isn't built as part of the build jobs
+ac_add_options --enable-geckodriver
diff --git a/browser/config/mozconfigs/linux32/valgrind b/browser/config/mozconfigs/linux32/valgrind
new file mode 100644
index 0000000000..d335038dea
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/valgrind
@@ -0,0 +1,11 @@
+. $topsrcdir/browser/config/mozconfigs/linux32/nightly
+
+ac_add_options --enable-valgrind
+ac_add_options --disable-dmd
+ac_add_options --disable-jemalloc
+ac_add_options --disable-install-strip
+ac_add_options --disable-gtest-in-build
+
+# Include the override mozconfig again (even though the above includes it)
+# since it's supposed to override everything.
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux64-aarch64/common-opt b/browser/config/mozconfigs/linux64-aarch64/common-opt
new file mode 100644
index 0000000000..c04dbde753
--- /dev/null
+++ b/browser/config/mozconfigs/linux64-aarch64/common-opt
@@ -0,0 +1,19 @@
+# This file is sourced by the nightly, beta, and release mozconfigs.
+
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --with-google-location-service-api-keyfile=/builds/gls-gapi.data
+ac_add_options --with-google-safebrowsing-api-keyfile=/builds/sb-gapi.data
+ac_add_options --with-mozilla-api-keyfile=/builds/mozilla-desktop-geoloc-api.key
+
+. $topsrcdir/build/unix/mozconfig.linux
+
+unset NASM
+ac_add_options --target=aarch64
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+unset MOZ_STDCXX_COMPAT
diff --git a/browser/config/mozconfigs/linux64-aarch64/opt b/browser/config/mozconfigs/linux64-aarch64/opt
new file mode 100644
index 0000000000..a2c91b2b2f
--- /dev/null
+++ b/browser/config/mozconfigs/linux64-aarch64/opt
@@ -0,0 +1,5 @@
+. "$topsrcdir/browser/config/mozconfigs/linux64-aarch64/common-opt"
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux64/add-on-devel b/browser/config/mozconfigs/linux64/add-on-devel
new file mode 100644
index 0000000000..379e8867ed
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/add-on-devel
@@ -0,0 +1,10 @@
+. $topsrcdir/browser/config/mozconfigs/linux64/nightly
+
+#add-on signing is checked but not enforced
+MOZ_REQUIRE_SIGNING=0
+
+ac_add_options --with-branding=browser/branding/unofficial
+ac_add_options --enable-update-channel=default
+
+# Need this to prevent name conflicts with the normal nightly build packages
+export MOZ_PKG_SPECIAL=add-on-devel
diff --git a/browser/config/mozconfigs/linux64/asan-fuzzing-ccov b/browser/config/mozconfigs/linux64/asan-fuzzing-ccov
new file mode 100644
index 0000000000..52fb0afc09
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/asan-fuzzing-ccov
@@ -0,0 +1,38 @@
+# We still need to build with debug symbols
+ac_add_options --disable-debug
+ac_add_options --enable-optimize="-O2 -gline-tables-only"
+
+#add-on signing is checked but not enforced
+MOZ_REQUIRE_SIGNING=0
+
+. $topsrcdir/build/mozconfig.wasm-sandboxing
+
+# ASan specific options on Linux
+ac_add_options --enable-valgrind
+
+. $topsrcdir/build/unix/mozconfig.asan
+ac_add_options --disable-elf-hack
+
+ac_add_options --disable-sandbox
+ac_add_options --disable-profiling
+ac_add_options --disable-warnings-as-errors
+ac_add_options --enable-coverage
+
+export CFLAGS="$CFLAGS --coverage"
+export CXXFLAGS="$CXXFLAGS --coverage"
+export LDFLAGS="$LDFLAGS --coverage -Wl,--compress-debug-sections=zlib"
+
+# gold is required for libFuzzer to work properly
+ac_add_options --enable-linker=gold
+
+ac_add_options --enable-fuzzing
+unset MOZ_STDCXX_COMPAT
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+# Need this to prevent name conflicts with the normal nightly build packages
+export MOZ_PKG_SPECIAL=asan-ccov
+
+. "$topsrcdir/build/mozconfig.common.override"
+
diff --git a/browser/config/mozconfigs/linux64/beta b/browser/config/mozconfigs/linux64/beta
new file mode 100644
index 0000000000..37723c43d4
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/beta
@@ -0,0 +1,5 @@
+. "$topsrcdir/browser/config/mozconfigs/linux64/common-opt"
+
+ac_add_options --enable-official-branding
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux64/code-coverage b/browser/config/mozconfigs/linux64/code-coverage
new file mode 100644
index 0000000000..d04e505dc4
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/code-coverage
@@ -0,0 +1,15 @@
+. "$topsrcdir/browser/config/mozconfigs/linux64/nightly"
+
+ac_add_options --disable-install-strip
+ac_add_options --disable-elf-hack
+ac_add_options --disable-sandbox
+ac_add_options --disable-dmd
+ac_add_options --disable-profiling
+ac_add_options --disable-warnings-as-errors
+ac_add_options --enable-coverage
+
+CLANG_LIB_DIR="$(cd $MOZ_FETCHES_DIR/clang/lib/clang/* && cd lib/linux && pwd)"
+export LDFLAGS="--coverage -L$CLANG_LIB_DIR"
+export LIBS="-lclang_rt.profile-x86_64"
+export RUSTFLAGS="-Ccodegen-units=1 -Zprofile -Cpanic=abort -Zpanic_abort_tests -Clink-dead-code -Coverflow-checks=off"
+export RUSTDOCFLAGS="-Cpanic=abort"
diff --git a/browser/config/mozconfigs/linux64/code-coverage-debug b/browser/config/mozconfigs/linux64/code-coverage-debug
new file mode 100644
index 0000000000..23b06e8a18
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/code-coverage-debug
@@ -0,0 +1,4 @@
+. "$topsrcdir/browser/config/mozconfigs/linux64/code-coverage"
+
+ac_add_options --enable-debug=-g1
+ac_add_options --enable-rust-tests
diff --git a/browser/config/mozconfigs/linux64/code-coverage-opt b/browser/config/mozconfigs/linux64/code-coverage-opt
new file mode 100644
index 0000000000..151219de0d
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/code-coverage-opt
@@ -0,0 +1,4 @@
+. "$topsrcdir/browser/config/mozconfigs/linux64/code-coverage"
+
+ac_add_options --enable-debug-symbols=-g1
+ac_add_options --enable-rust-tests
diff --git a/browser/config/mozconfigs/linux64/common-opt b/browser/config/mozconfigs/linux64/common-opt
new file mode 100644
index 0000000000..bef83fbc6d
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/common-opt
@@ -0,0 +1,16 @@
+# This file is sourced by the nightly, beta, and release mozconfigs.
+
+. $topsrcdir/build/mozconfig.wasm-sandboxing
+
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --with-google-location-service-api-keyfile=/builds/gls-gapi.data
+ac_add_options --with-google-safebrowsing-api-keyfile=/builds/sb-gapi.data
+ac_add_options --with-mozilla-api-keyfile=/builds/mozilla-desktop-geoloc-api.key
+
+. $topsrcdir/build/unix/mozconfig.linux
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
diff --git a/browser/config/mozconfigs/linux64/debug b/browser/config/mozconfigs/linux64/debug
new file mode 100644
index 0000000000..0e66312134
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/debug
@@ -0,0 +1,14 @@
+ac_add_options --enable-debug
+
+. $topsrcdir/build/mozconfig.wasm-sandboxing
+. $topsrcdir/build/unix/mozconfig.linux
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux64/debug-asan b/browser/config/mozconfigs/linux64/debug-asan
new file mode 100644
index 0000000000..9cfe53e70b
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/debug-asan
@@ -0,0 +1,32 @@
+# Use at least -O1 for optimization to avoid stack space
+# exhaustions caused by Clang function inlining.
+ac_add_options --enable-debug
+ac_add_options --enable-optimize="-O1"
+
+. $topsrcdir/build/mozconfig.wasm-sandboxing
+
+# ASan specific options on Linux
+ac_add_options --enable-valgrind
+
+. $topsrcdir/build/unix/mozconfig.asan
+ac_add_options --disable-elf-hack
+
+# Build with fuzzing support, so this build can also be used
+# to analyze fuzzing bugs with rr.
+ac_add_options --enable-fuzzing
+
+# Enable ASan for rust code. This is done for specific build tasks rather than
+# globally in mozconfig.asan because it requires an unstable -Z flag.
+export RUSTFLAGS="$RUSTFLAGS -Zsanitizer=address"
+
+# Include 'SourceRepository' in application.ini which
+# is used by Pernosco to locate source
+export MOZ_INCLUDE_SOURCE_INFO=1
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+# Need this to prevent name conflicts with the normal nightly build packages
+export MOZ_PKG_SPECIAL=asan
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux64/debug-fuzzing b/browser/config/mozconfigs/linux64/debug-fuzzing
new file mode 100644
index 0000000000..1c496ece68
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/debug-fuzzing
@@ -0,0 +1,30 @@
+ac_add_options --enable-debug
+
+. $topsrcdir/build/mozconfig.wasm-sandboxing
+. $topsrcdir/build/unix/mozconfig.linux
+
+export LLVM_SYMBOLIZER="$MOZ_FETCHES_DIR/llvm-symbolizer/llvm-symbolizer"
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+ac_add_options --enable-fuzzing
+ac_add_options --enable-linker=gold
+unset MOZ_STDCXX_COMPAT
+
+# Even in fuzzing builds without sanitizers, the UBSan runtime is pulled
+# in as a dependency to allow libFuzzer to have rudimentary stacks.
+# Hence we need to disable jemalloc until bug 1435148 is fully resolved.
+ac_add_options --disable-jemalloc
+
+# Also, for consistency we disable the crash reporter and solely rely
+# on libFuzzer to provide stacks both in the browser fuzzing case as
+# well as for libFuzzer targets. See also bug 1649062.
+ac_add_options --disable-crashreporter
+ac_add_options --disable-install-strip
+ac_add_options --enable-optimize="-O2 -gline-tables-only"
+
+# Need this to prevent name conflicts with the normal nightly build packages
+export MOZ_PKG_SPECIAL=fuzzing
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux64/debug-searchfox-clang b/browser/config/mozconfigs/linux64/debug-searchfox-clang
new file mode 100644
index 0000000000..d90bc56ed9
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/debug-searchfox-clang
@@ -0,0 +1,20 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_CHECK=0
+
+. "$topsrcdir/build/unix/mozconfig.unix"
+
+ac_add_options --enable-debug
+
+. $topsrcdir/build/mozconfig.wasm-sandboxing
+
+# Save rust analysis (this requires unlocking the unstable features,
+# which is done in the taskcluster task definition via RUSTC_BOOTSTRAP)
+export RUSTFLAGS="-Zsave-analysis"
+
+# Add the static checker
+ac_add_options --enable-clang-plugin
+ac_add_options --enable-mozsearch-plugin
+
+. "$topsrcdir/build/unix/mozconfig.stdcxx"
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux64/debug-static-analysis-clang b/browser/config/mozconfigs/linux64/debug-static-analysis-clang
new file mode 100644
index 0000000000..02cb8d87b0
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/debug-static-analysis-clang
@@ -0,0 +1,14 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+
+. "$topsrcdir/build/mozconfig.common"
+
+ac_add_options --enable-debug
+
+. $topsrcdir/build/mozconfig.wasm-sandboxing
+
+# Add the static checker
+ac_add_options --enable-clang-plugin
+
+. "$topsrcdir/build/unix/mozconfig.stdcxx"
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux64/devedition b/browser/config/mozconfigs/linux64/devedition
new file mode 100644
index 0000000000..e89a8f6faf
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/devedition
@@ -0,0 +1,8 @@
+. "$topsrcdir/browser/config/mozconfigs/linux64/common-opt"
+
+# Add-on signing is not required for DevEdition
+MOZ_REQUIRE_SIGNING=0
+
+ac_add_options --with-branding=browser/branding/aurora
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux64/fuzzing-ccov b/browser/config/mozconfigs/linux64/fuzzing-ccov
new file mode 100644
index 0000000000..89797c4557
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/fuzzing-ccov
@@ -0,0 +1,4 @@
+. "$topsrcdir/browser/config/mozconfigs/linux64/code-coverage"
+
+ac_add_options --enable-debug-symbols=-g1
+ac_add_options --enable-fuzzing
diff --git a/browser/config/mozconfigs/linux64/l10n-mozconfig b/browser/config/mozconfigs/linux64/l10n-mozconfig
new file mode 100644
index 0000000000..def7c5dcbe
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/l10n-mozconfig
@@ -0,0 +1,13 @@
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --enable-official-branding
+
+. "$topsrcdir/build/mozconfig.no-compile"
+ac_add_options --disable-nodejs
+
+export MOZILLA_OFFICIAL=1
+
+# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
+# Bug 1283438
+mk_add_options AUTOCLOBBER=
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux64/l10n-mozconfig-devedition b/browser/config/mozconfigs/linux64/l10n-mozconfig-devedition
new file mode 100644
index 0000000000..df7093ee8e
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/l10n-mozconfig-devedition
@@ -0,0 +1,13 @@
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --with-branding=browser/branding/aurora
+
+. "$topsrcdir/build/mozconfig.no-compile"
+ac_add_options --disable-nodejs
+
+export MOZILLA_OFFICIAL=1
+
+# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
+# Bug 1283438
+mk_add_options AUTOCLOBBER=
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux64/nightly b/browser/config/mozconfigs/linux64/nightly
new file mode 100644
index 0000000000..15090cc01c
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/nightly
@@ -0,0 +1,5 @@
+. "$topsrcdir/browser/config/mozconfigs/linux64/common-opt"
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux64/nightly-asan b/browser/config/mozconfigs/linux64/nightly-asan
new file mode 100644
index 0000000000..6a0afa5620
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/nightly-asan
@@ -0,0 +1,30 @@
+# We still need to build with debug symbols
+ac_add_options --disable-debug
+ac_add_options --enable-optimize="-O2 -gline-tables-only"
+
+. $topsrcdir/build/mozconfig.wasm-sandboxing
+
+# ASan specific options on Linux
+ac_add_options --enable-valgrind
+
+. $topsrcdir/build/unix/mozconfig.asan
+ac_add_options --disable-elf-hack
+
+# Enable ASan for rust code. This is done for specific build tasks rather than
+# globally in mozconfig.asan because it requires an unstable -Z flag.
+export RUSTFLAGS="$RUSTFLAGS -Zsanitizer=address"
+
+# Piggybacking UBSan for now since only a small subset of checks are enabled.
+# A new build can be created when appropriate.
+ac_add_options --enable-undefined-sanitizer
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+# Need this to prevent name conflicts with the normal nightly build packages
+export MOZ_PKG_SPECIAL=asan
+
+# Disable telemetry
+ac_add_options MOZ_TELEMETRY_REPORTING=
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux64/nightly-asan-reporter b/browser/config/mozconfigs/linux64/nightly-asan-reporter
new file mode 100644
index 0000000000..d9c7aa314f
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/nightly-asan-reporter
@@ -0,0 +1,20 @@
+. "$topsrcdir/browser/config/mozconfigs/linux64/common-opt"
+
+# We still need to build with debug symbols
+ac_add_options --disable-debug
+ac_add_options --enable-optimize="-O2 -gline-tables-only"
+
+# ASan specific options on Linux
+ac_add_options --enable-valgrind
+
+. $topsrcdir/build/unix/mozconfig.asan
+ac_add_options --disable-elf-hack
+
+ac_add_options --enable-address-sanitizer-reporter
+
+# Need this to prevent name conflicts with the normal nightly build packages
+export MOZ_PKG_SPECIAL=asan-reporter
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux64/nightly-fuzzing-asan b/browser/config/mozconfigs/linux64/nightly-fuzzing-asan
new file mode 100644
index 0000000000..9ba29a07bd
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/nightly-fuzzing-asan
@@ -0,0 +1,36 @@
+# We still need to build with debug symbols
+ac_add_options --disable-debug
+ac_add_options --enable-optimize="-O2 -gline-tables-only"
+
+#add-on signing is checked but not enforced
+MOZ_REQUIRE_SIGNING=0
+
+. $topsrcdir/build/mozconfig.wasm-sandboxing
+
+# ASan specific options on Linux
+ac_add_options --enable-valgrind
+
+. $topsrcdir/build/unix/mozconfig.asan
+ac_add_options --disable-elf-hack
+
+# Enable ASan for rust code. This is done for specific build tasks rather than
+# globally in mozconfig.asan because it requires an unstable -Z flag.
+export RUSTFLAGS="$RUSTFLAGS -Zsanitizer=address"
+
+# gold is required for libFuzzer to work properly
+ac_add_options --enable-linker=gold
+
+ac_add_options --enable-fuzzing
+unset MOZ_STDCXX_COMPAT
+
+# Piggybacking UBSan for now since only a small subset of checks are enabled.
+# A new build can be created when appropriate.
+ac_add_options --enable-undefined-sanitizer
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+# Need this to prevent name conflicts with the normal nightly build packages
+export MOZ_PKG_SPECIAL=asan
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux64/noopt-debug b/browser/config/mozconfigs/linux64/noopt-debug
new file mode 100644
index 0000000000..7c13faad7b
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/noopt-debug
@@ -0,0 +1,7 @@
+# Developers often build with these options for a better debugging experience.
+. "$topsrcdir/browser/config/mozconfigs/linux64/debug"
+
+# We add this last to guard against inadvertent changes in the debug config.
+# It may conflict with settings from mozconfig.override, but that seems
+# unlikely.
+ac_add_options --disable-optimize
diff --git a/browser/config/mozconfigs/linux64/plain-debug b/browser/config/mozconfigs/linux64/plain-debug
new file mode 100644
index 0000000000..7fa7f88f16
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/plain-debug
@@ -0,0 +1,3 @@
+. "$topsrcdir/browser/config/mozconfigs/linux64/plain-opt"
+
+ac_add_options --enable-debug
diff --git a/browser/config/mozconfigs/linux64/plain-opt b/browser/config/mozconfigs/linux64/plain-opt
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/plain-opt
diff --git a/browser/config/mozconfigs/linux64/profile-generate b/browser/config/mozconfigs/linux64/profile-generate
new file mode 100644
index 0000000000..6499ff99c1
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/profile-generate
@@ -0,0 +1,6 @@
+. $topsrcdir/browser/config/mozconfigs/linux64/nightly
+
+mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0"
+
+ac_add_options --enable-profile-generate=cross
+ac_add_options --disable-tests
diff --git a/browser/config/mozconfigs/linux64/release b/browser/config/mozconfigs/linux64/release
new file mode 100644
index 0000000000..ab09eef653
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/release
@@ -0,0 +1,12 @@
+# This make file should be identical to the beta mozconfig, apart from the
+# safeguard below
+
+. "$topsrcdir/browser/config/mozconfigs/linux64/common-opt"
+
+ac_add_options --enable-official-branding
+
+# safeguard against someone forgetting to re-set EARLY_BETA_OR_EARLIER in
+# defines.sh during the beta cycle
+export BUILDING_RELEASE=1
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux64/rusttests b/browser/config/mozconfigs/linux64/rusttests
new file mode 100644
index 0000000000..9e63bcf4ba
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/rusttests
@@ -0,0 +1,10 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+
+mk_add_options MOZ_MAKE_FLAGS=--output-sync=line
+
+. "$topsrcdir/browser/config/mozconfigs/linux64/nightly"
+
+unset ENABLE_CLANG_PLUGIN
+
+# Test geckodriver, which isn't built as part of the build jobs
+ac_add_options --enable-geckodriver
diff --git a/browser/config/mozconfigs/linux64/rusttests-debug b/browser/config/mozconfigs/linux64/rusttests-debug
new file mode 100644
index 0000000000..5daf2db20b
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/rusttests-debug
@@ -0,0 +1,10 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+
+mk_add_options MOZ_MAKE_FLAGS=--output-sync=line
+
+. "$topsrcdir/browser/config/mozconfigs/linux64/debug"
+
+unset ENABLE_CLANG_PLUGIN
+
+# Test geckodriver, which isn't built as part of the build jobs
+ac_add_options --enable-geckodriver
diff --git a/browser/config/mozconfigs/linux64/source b/browser/config/mozconfigs/linux64/source
new file mode 100644
index 0000000000..8ad4faf6b3
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/source
@@ -0,0 +1,6 @@
+# The source "build" only needs a mozconfig because we use the build system as
+# our script for generating it. This allows us to run configure without any
+# extra dependencies on specific toolchains, e.g. gtk3.
+ac_add_options --disable-compile-environment
+ac_add_options --disable-nodejs
+export MOZILLA_OFFICIAL=1
diff --git a/browser/config/mozconfigs/linux64/tsan b/browser/config/mozconfigs/linux64/tsan
new file mode 100644
index 0000000000..4718f8e1ac
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/tsan
@@ -0,0 +1,25 @@
+# We still need to build with debug symbols
+ac_add_options --disable-debug
+ac_add_options --enable-optimize="-O2 -gline-tables-only"
+
+. $topsrcdir/build/mozconfig.wasm-sandboxing
+
+. $topsrcdir/build/unix/mozconfig.tsan
+ac_add_options --disable-elf-hack
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+# Need this to prevent name conflicts with the normal nightly build packages
+export MOZ_PKG_SPECIAL=tsan
+
+# Disable telemetry
+ac_add_options MOZ_TELEMETRY_REPORTING=
+
+# rustfmt is currently missing in Rust nightly
+unset RUSTFMT
+
+# Current Rust Nightly has warnings
+ac_add_options --disable-warnings-as-errors
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux64/tsan-fuzzing b/browser/config/mozconfigs/linux64/tsan-fuzzing
new file mode 100644
index 0000000000..f200f7f85e
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/tsan-fuzzing
@@ -0,0 +1,7 @@
+. "$topsrcdir/browser/config/mozconfigs/linux64/tsan"
+
+# gold is required for libFuzzer to work properly
+ac_add_options --enable-linker=gold
+
+ac_add_options --enable-fuzzing
+unset MOZ_STDCXX_COMPAT
diff --git a/browser/config/mozconfigs/linux64/valgrind b/browser/config/mozconfigs/linux64/valgrind
new file mode 100644
index 0000000000..ffaeab65d7
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/valgrind
@@ -0,0 +1,13 @@
+MOZ_AUTOMATION_CHECK=0
+
+. $topsrcdir/browser/config/mozconfigs/linux64/nightly
+
+ac_add_options --enable-valgrind
+ac_add_options --disable-dmd
+ac_add_options --disable-jemalloc
+ac_add_options --disable-install-strip
+ac_add_options --disable-gtest-in-build
+
+# Include the override mozconfig again (even though the above includes it)
+# since it's supposed to override everything.
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/macosx64-aarch64/beta b/browser/config/mozconfigs/macosx64-aarch64/beta
new file mode 100644
index 0000000000..c5c7d9558a
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64-aarch64/beta
@@ -0,0 +1,5 @@
+. "$topsrcdir/browser/config/mozconfigs/macosx64-aarch64/common-opt"
+
+ac_add_options --enable-official-branding
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/macosx64-aarch64/common-opt b/browser/config/mozconfigs/macosx64-aarch64/common-opt
new file mode 100644
index 0000000000..880087f44b
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64-aarch64/common-opt
@@ -0,0 +1,30 @@
+# This file is sourced by the nightly, beta, and release mozconfigs.
+
+. $topsrcdir/build/macosx/mozconfig.common
+
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+
+if test `uname -s` != Linux; then
+APIKEYDIR="${APIKEYDIR:-${WORKSPACE}}"
+else
+APIKEYDIR="${APIKEYDIR:-/builds}"
+fi
+
+ac_add_options --with-google-location-service-api-keyfile=${APIKEYDIR}/gls-gapi.data
+ac_add_options --with-google-safebrowsing-api-keyfile=${APIKEYDIR}/sb-gapi.data
+ac_add_options --with-mozilla-api-keyfile=${APIKEYDIR}/mozilla-desktop-geoloc-api.key
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+ac_add_options --target=aarch64-apple-darwin
+export MACOS_SDK_DIR=$MOZ_FETCHES_DIR/MacOSX11.0.sdk
+
+# Xcode clang defaults to something similar to -mcpu=apple-a12, while upstream
+# clang defaults to -mcpu=apple-a7, which disables a bunch of performance-enabling
+# CPU features. TODO: this should be done by configure.
+export CFLAGS="$CFLAGS -mcpu=apple-a12"
+export CXXFLAGS="$CXXFLAGS -mcpu=apple-a12"
diff --git a/browser/config/mozconfigs/macosx64-aarch64/devedition b/browser/config/mozconfigs/macosx64-aarch64/devedition
new file mode 100644
index 0000000000..54cdd5436e
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64-aarch64/devedition
@@ -0,0 +1,19 @@
+. "$topsrcdir/browser/config/mozconfigs/macosx64-aarch64/common-opt"
+
+# Add-on signing is not required for DevEdition
+MOZ_REQUIRE_SIGNING=0
+
+ac_add_options --enable-instruments
+
+# Cross-compiled builds fail when dtrace is enabled
+if test `uname -s` != Linux; then
+ ac_add_options --enable-dtrace
+fi
+
+if test "${MOZ_UPDATE_CHANNEL}" = "nightly"; then
+ac_add_options --with-macbundlename-prefix=Firefox
+fi
+
+ac_add_options --with-branding=browser/branding/aurora
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/macosx64-aarch64/nightly b/browser/config/mozconfigs/macosx64-aarch64/nightly
new file mode 100644
index 0000000000..742b1bc7b6
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64-aarch64/nightly
@@ -0,0 +1,12 @@
+. "$topsrcdir/browser/config/mozconfigs/macosx64-aarch64/common-opt"
+
+ac_add_options --enable-instruments
+
+# Cross-compiled builds fail when dtrace is enabled
+if test `uname -s` != Linux; then
+ ac_add_options --enable-dtrace
+fi
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/macosx64-aarch64/release b/browser/config/mozconfigs/macosx64-aarch64/release
new file mode 100644
index 0000000000..0a202d6474
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64-aarch64/release
@@ -0,0 +1,12 @@
+# This make file should be identical to the beta mozconfig, apart from the
+# safeguard below
+
+. "$topsrcdir/browser/config/mozconfigs/macosx64-aarch64/common-opt"
+
+ac_add_options --enable-official-branding
+
+# safeguard against someone forgetting to re-set EARLY_BETA_OR_EARLIER in
+# defines.sh during the beta cycle
+export BUILDING_RELEASE=1
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/macosx64/add-on-devel b/browser/config/mozconfigs/macosx64/add-on-devel
new file mode 100644
index 0000000000..4b83551b01
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/add-on-devel
@@ -0,0 +1,10 @@
+. $topsrcdir/browser/config/mozconfigs/macosx64/nightly
+
+#add-on signing is checked but not enforced
+MOZ_REQUIRE_SIGNING=0
+
+ac_add_options --with-branding=browser/branding/unofficial
+ac_add_options --enable-update-channel=default
+
+# Need this to prevent name conflicts with the normal nightly build packages
+export MOZ_PKG_SPECIAL=add-on-devel
diff --git a/browser/config/mozconfigs/macosx64/beta b/browser/config/mozconfigs/macosx64/beta
new file mode 100644
index 0000000000..232750daa4
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/beta
@@ -0,0 +1,5 @@
+. "$topsrcdir/browser/config/mozconfigs/macosx64/common-opt"
+
+ac_add_options --enable-official-branding
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/macosx64/code-coverage b/browser/config/mozconfigs/macosx64/code-coverage
new file mode 100644
index 0000000000..93409d1cd3
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/code-coverage
@@ -0,0 +1,12 @@
+. "$topsrcdir/browser/config/mozconfigs/macosx64/nightly"
+
+ac_add_options --enable-debug-symbols=-g1
+ac_add_options --disable-sandbox
+ac_add_options --disable-warnings-as-errors
+ac_add_options --enable-coverage
+
+CLANG_LIB_DIR="$(cd $MOZ_FETCHES_DIR/clang/lib/clang/* && cd lib/darwin && pwd)"
+export LDFLAGS="-coverage -L$CLANG_LIB_DIR"
+export LIBS="-lclang_rt.profile_osx"
+export RUSTFLAGS="-Ccodegen-units=1 -Zprofile -Cpanic=abort -Zpanic_abort_tests -Clink-dead-code -Coverflow-checks=off"
+export RUSTDOCFLAGS="-Cpanic=abort"
diff --git a/browser/config/mozconfigs/macosx64/common-opt b/browser/config/mozconfigs/macosx64/common-opt
new file mode 100644
index 0000000000..583718fbf3
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/common-opt
@@ -0,0 +1,15 @@
+# This file is sourced by the nightly, beta, and release mozconfigs.
+
+. $topsrcdir/build/macosx/mozconfig.common
+. $topsrcdir/build/mozconfig.wasm-sandboxing
+
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --with-google-location-service-api-keyfile=/builds/gls-gapi.data
+ac_add_options --with-google-safebrowsing-api-keyfile=/builds/sb-gapi.data
+ac_add_options --with-mozilla-api-keyfile=/builds/mozilla-desktop-geoloc-api.key
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
diff --git a/browser/config/mozconfigs/macosx64/cross-noopt-debug b/browser/config/mozconfigs/macosx64/cross-noopt-debug
new file mode 100644
index 0000000000..87461dfd2e
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/cross-noopt-debug
@@ -0,0 +1,9 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+
+# Developers often build with these options for a better debugging experience.
+. "$topsrcdir/browser/config/mozconfigs/macosx64/debug"
+
+# We add this last to guard against inadvertent changes in the debug config.
+# It may conflict with settings from mozconfig.override, but that seems
+# unlikely.
+ac_add_options --disable-optimize
diff --git a/browser/config/mozconfigs/macosx64/debug b/browser/config/mozconfigs/macosx64/debug
new file mode 100644
index 0000000000..9e2f0928cf
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/debug
@@ -0,0 +1,14 @@
+. $topsrcdir/build/macosx/mozconfig.common
+. $topsrcdir/build/mozconfig.wasm-sandboxing
+
+ac_add_options --enable-debug
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/macosx64/debug-asan b/browser/config/mozconfigs/macosx64/debug-asan
new file mode 100644
index 0000000000..e701750e21
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/debug-asan
@@ -0,0 +1,18 @@
+# Use at least -O1 for optimization to avoid stack space
+# exhaustions caused by Clang function inlining.
+ac_add_options --enable-application=browser
+ac_add_options --enable-debug
+ac_add_options --enable-optimize="-O1"
+
+. $topsrcdir/build/unix/mozconfig.asan
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+# Need this to prevent name conflicts with the normal nightly build packages
+# Before mozconfig.common so we can test for asan builds there
+export MOZ_PKG_SPECIAL=asan
+
+. "$topsrcdir/build/macosx/mozconfig.common"
+. $topsrcdir/build/mozconfig.wasm-sandboxing
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/macosx64/debug-fuzzing b/browser/config/mozconfigs/macosx64/debug-fuzzing
new file mode 100644
index 0000000000..7a852d4350
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/debug-fuzzing
@@ -0,0 +1,8 @@
+. "$topsrcdir/browser/config/mozconfigs/macosx64/debug"
+
+ac_add_options --enable-fuzzing
+
+# Need this to prevent name conflicts with the normal nightly build packages
+export MOZ_PKG_SPECIAL=fuzzing
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/macosx64/debug-searchfox b/browser/config/mozconfigs/macosx64/debug-searchfox
new file mode 100644
index 0000000000..4e0d85b374
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/debug-searchfox
@@ -0,0 +1,16 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_CHECK=0
+
+. $topsrcdir/build/macosx/mozconfig.common
+. $topsrcdir/build/mozconfig.wasm-sandboxing
+
+ac_add_options --enable-debug
+
+# Save rust analysis (this requires unlocking the unstable features,
+# which is done in the taskcluster task definition via RUSTC_BOOTSTRAP)
+export RUSTFLAGS="-Zsave-analysis"
+
+ac_add_options --enable-clang-plugin
+ac_add_options --enable-mozsearch-plugin
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/macosx64/debug-static-analysis b/browser/config/mozconfigs/macosx64/debug-static-analysis
new file mode 100644
index 0000000000..16c714d6e1
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/debug-static-analysis
@@ -0,0 +1,10 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+
+. $topsrcdir/build/macosx/mozconfig.common
+. $topsrcdir/build/mozconfig.wasm-sandboxing
+
+ac_add_options --enable-debug
+
+ac_add_options --enable-clang-plugin
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/macosx64/devedition b/browser/config/mozconfigs/macosx64/devedition
new file mode 100644
index 0000000000..dfbfb61603
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/devedition
@@ -0,0 +1,19 @@
+. "$topsrcdir/browser/config/mozconfigs/macosx64/common-opt"
+
+# Add-on signing is not required for DevEdition
+MOZ_REQUIRE_SIGNING=0
+
+ac_add_options --enable-instruments
+
+# Cross-compiled builds fail when dtrace is enabled
+if test `uname -s` != Linux; then
+ ac_add_options --enable-dtrace
+fi
+
+if test "${MOZ_UPDATE_CHANNEL}" = "nightly"; then
+ac_add_options --with-macbundlename-prefix=Firefox
+fi
+
+ac_add_options --with-branding=browser/branding/aurora
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/macosx64/l10n-mozconfig b/browser/config/mozconfigs/macosx64/l10n-mozconfig
new file mode 100644
index 0000000000..d84bc3fe33
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/l10n-mozconfig
@@ -0,0 +1,24 @@
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/build/mozconfig.no-compile"
+
+if test `uname -s` = "Linux"; then
+ # We need to indicate the target for cross builds
+ ac_add_options --target=x86_64-apple-darwin
+ export MKFSHFS=$MOZ_FETCHES_DIR/hfsplus-tools/newfs_hfs
+ export DMG_TOOL=$MOZ_FETCHES_DIR/dmg/dmg
+ export HFS_TOOL=$MOZ_FETCHES_DIR/dmg/hfsplus
+fi
+
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --enable-official-branding
+
+ac_add_options --disable-nodejs
+unset NODEJS
+
+export MOZILLA_OFFICIAL=1
+
+# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
+# Bug 1283438
+mk_add_options AUTOCLOBBER=
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/macosx64/l10n-mozconfig-devedition b/browser/config/mozconfigs/macosx64/l10n-mozconfig-devedition
new file mode 100644
index 0000000000..f050b4316e
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/l10n-mozconfig-devedition
@@ -0,0 +1,28 @@
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/build/mozconfig.no-compile"
+
+if test `uname -s` = "Linux"; then
+ # We need to indicate the target for cross builds
+ ac_add_options --target=x86_64-apple-darwin
+ export MKFSHFS=$MOZ_FETCHES_DIR/hfsplus-tools/newfs_hfs
+ export DMG_TOOL=$MOZ_FETCHES_DIR/dmg/dmg
+ export HFS_TOOL=$MOZ_FETCHES_DIR/dmg/hfsplus
+fi
+
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --with-branding=browser/branding/aurora
+
+ac_add_options --disable-nodejs
+unset NODEJS
+
+if test "${MOZ_UPDATE_CHANNEL}" = "nightly"; then
+ac_add_options --with-macbundlename-prefix=Firefox
+fi
+
+export MOZILLA_OFFICIAL=1
+
+# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
+# Bug 1283438
+mk_add_options AUTOCLOBBER=
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/macosx64/nightly b/browser/config/mozconfigs/macosx64/nightly
new file mode 100644
index 0000000000..95cd36fe9e
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/nightly
@@ -0,0 +1,12 @@
+. "$topsrcdir/browser/config/mozconfigs/macosx64/common-opt"
+
+ac_add_options --enable-instruments
+
+# Cross-compiled builds fail when dtrace is enabled
+if test `uname -s` != Linux; then
+ ac_add_options --enable-dtrace
+fi
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/macosx64/nightly-asan b/browser/config/mozconfigs/macosx64/nightly-asan
new file mode 100644
index 0000000000..e4f5adbff8
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/nightly-asan
@@ -0,0 +1,22 @@
+ac_add_options --enable-application=browser
+# We still need to build with debug symbols
+ac_add_options --disable-debug
+ac_add_options --enable-optimize="-O2"
+
+. $topsrcdir/build/unix/mozconfig.asan
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+# Need this to prevent name conflicts with the normal nightly build packages
+# Before mozconfig.common so we can test for asan builds there
+export MOZ_PKG_SPECIAL=asan
+
+. "$topsrcdir/build/macosx/mozconfig.common"
+. $topsrcdir/build/mozconfig.wasm-sandboxing
+
+# This is disabled by mozconfig.asan and reenabled by mozconfig.common.
+# Ensure it is disabled since it conflicts with ASan.
+ac_add_options --disable-crashreporter
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/macosx64/nightly-fuzzing-asan b/browser/config/mozconfigs/macosx64/nightly-fuzzing-asan
new file mode 100644
index 0000000000..4d9d78e3fe
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/nightly-fuzzing-asan
@@ -0,0 +1,4 @@
+. "$topsrcdir/browser/config/mozconfigs/macosx64/nightly-asan"
+. $topsrcdir/build/mozconfig.wasm-sandboxing
+
+ac_add_options --enable-fuzzing
diff --git a/browser/config/mozconfigs/macosx64/opt-static-analysis b/browser/config/mozconfigs/macosx64/opt-static-analysis
new file mode 100644
index 0000000000..b30af332e1
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/opt-static-analysis
@@ -0,0 +1,12 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+
+. $topsrcdir/build/macosx/mozconfig.common
+. $topsrcdir/build/mozconfig.wasm-sandboxing
+
+ac_add_options --disable-debug
+ac_add_options --enable-optimize
+
+ac_add_options --enable-clang-plugin
+
+. "$topsrcdir/build/mozconfig.common.override"
+
diff --git a/browser/config/mozconfigs/macosx64/plain-debug b/browser/config/mozconfigs/macosx64/plain-debug
new file mode 100644
index 0000000000..874c388884
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/plain-debug
@@ -0,0 +1,3 @@
+. "$topsrcdir/browser/config/mozconfigs/macosx64/plain-opt"
+
+ac_add_options --enable-debug
diff --git a/browser/config/mozconfigs/macosx64/plain-opt b/browser/config/mozconfigs/macosx64/plain-opt
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/plain-opt
diff --git a/browser/config/mozconfigs/macosx64/profile-generate b/browser/config/mozconfigs/macosx64/profile-generate
new file mode 100644
index 0000000000..5d8d77d61c
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/profile-generate
@@ -0,0 +1,6 @@
+. $topsrcdir/browser/config/mozconfigs/macosx64/nightly
+
+mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0"
+
+ac_add_options --enable-profile-generate=cross
+ac_add_options --disable-tests
diff --git a/browser/config/mozconfigs/macosx64/release b/browser/config/mozconfigs/macosx64/release
new file mode 100644
index 0000000000..840e9afd24
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/release
@@ -0,0 +1,12 @@
+# This make file should be identical to the beta mozconfig, apart from the
+# safeguard below
+
+. "$topsrcdir/browser/config/mozconfigs/macosx64/common-opt"
+
+ac_add_options --enable-official-branding
+
+# safeguard against someone forgetting to re-set EARLY_BETA_OR_EARLIER in
+# defines.sh during the beta cycle
+export BUILDING_RELEASE=1
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/macosx64/repack b/browser/config/mozconfigs/macosx64/repack
new file mode 100644
index 0000000000..96118ec7c3
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/repack
@@ -0,0 +1,7 @@
+# This mozconfig is responsible merely for getting the cross tools setup
+# for repacking a .tar into a .dmg as returned from signing.
+
+export MKFSHFS=$MOZ_FETCHES_DIR/hfsplus-tools/newfs_hfs
+export DMG_TOOL=$MOZ_FETCHES_DIR/dmg/dmg
+export HFS_TOOL=$MOZ_FETCHES_DIR/dmg/hfsplus
+ac_add_options --disable-compile-environment
diff --git a/browser/config/mozconfigs/whitelist b/browser/config/mozconfigs/whitelist
new file mode 100644
index 0000000000..f073b8a45b
--- /dev/null
+++ b/browser/config/mozconfigs/whitelist
@@ -0,0 +1,42 @@
+# 'nightly' contains things that are in nightly mozconfigs and allowed to be missing from release builds.
+# Other keys in whitelist contain things are in that branches mozconfigs and allowed to be missing from nightly builds.
+whitelist = {
+ 'release': {},
+ 'nightly': {},
+ }
+
+all_platforms = ['win64', 'win64-aarch64', 'win32', 'linux32', 'linux64', 'macosx64']
+
+for platform in all_platforms:
+ whitelist['nightly'][platform] = [
+ 'ac_add_options --with-branding=browser/branding/nightly',
+ ]
+
+whitelist['nightly']['macosx64'] += [
+ 'ac_add_options --enable-instruments',
+ 'ac_add_options --enable-dtrace',
+ 'if test `uname -s` != Linux; then',
+ 'fi',
+]
+
+whitelist['nightly']['win64'] += [
+ '. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"',
+]
+
+for platform in all_platforms:
+ whitelist['release'][platform] = [
+ 'ac_add_options --enable-update-channel=release',
+ 'ac_add_options --enable-official-branding',
+ 'export BUILDING_RELEASE=1',
+ ]
+
+whitelist['release']['linux32'] += [
+ 'export MOZILLA_OFFICIAL=1',
+]
+whitelist['release']['linux64'] += [
+ 'export MOZILLA_OFFICIAL=1',
+]
+
+if __name__ == '__main__':
+ import pprint
+ pprint.pprint(whitelist)
diff --git a/browser/config/mozconfigs/win32/add-on-devel b/browser/config/mozconfigs/win32/add-on-devel
new file mode 100644
index 0000000000..22b10d8486
--- /dev/null
+++ b/browser/config/mozconfigs/win32/add-on-devel
@@ -0,0 +1,10 @@
+. $topsrcdir/browser/config/mozconfigs/win32/nightly
+
+#add-on signing is checked but not enforced
+MOZ_REQUIRE_SIGNING=0
+
+ac_add_options --with-branding=browser/branding/unofficial
+ac_add_options --enable-update-channel=default
+
+# Need this to prevent name conflicts with the normal nightly build packages
+export MOZ_PKG_SPECIAL=add-on-devel
diff --git a/browser/config/mozconfigs/win32/beta b/browser/config/mozconfigs/win32/beta
new file mode 100644
index 0000000000..9cb7047889
--- /dev/null
+++ b/browser/config/mozconfigs/win32/beta
@@ -0,0 +1,7 @@
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/win32/common-win32"
+. "$topsrcdir/browser/config/mozconfigs/win32/common-opt"
+
+ac_add_options --enable-official-branding
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win32/common-opt b/browser/config/mozconfigs/win32/common-opt
new file mode 100644
index 0000000000..adde1b2615
--- /dev/null
+++ b/browser/config/mozconfigs/win32/common-opt
@@ -0,0 +1,22 @@
+# This file is sourced by the nightly, beta, and release mozconfigs.
+
+. "$topsrcdir/browser/config/mozconfigs/common"
+
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+
+if test `uname -s` != Linux; then
+APIKEYDIR="${APIKEYDIR:-${WORKSPACE}}"
+else
+APIKEYDIR="${APIKEYDIR:-/builds}"
+fi
+
+ac_add_options --with-google-location-service-api-keyfile=${APIKEYDIR}/gls-gapi.data
+ac_add_options --with-google-safebrowsing-api-keyfile=${APIKEYDIR}/sb-gapi.data
+
+ac_add_options --with-mozilla-api-keyfile=${APIKEYDIR}/mozilla-desktop-geoloc-api.key
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
diff --git a/browser/config/mozconfigs/win32/common-win32 b/browser/config/mozconfigs/win32/common-win32
new file mode 100644
index 0000000000..82ba3fed65
--- /dev/null
+++ b/browser/config/mozconfigs/win32/common-win32
@@ -0,0 +1,31 @@
+# This file is used by all Win32 builds
+
+ac_add_options --target=i686-pc-mingw32
+
+. $topsrcdir/build/win32/mozconfig.vs-latest
+
+if test `uname -s` = Linux; then
+
+# Configure expects executables for check_prog, so set the relevant files
+# as executable on the first evaluation of the mozconfig where they exist.
+if [ -d "${VSPATH}" -a ! -x "${VSPATH}/VC/bin/Hostx64/x86/cl.exe" ]; then
+ find "${VSPATH}" -type f -name \*.exe -exec chmod +x {} \;
+fi
+export MAKENSISU="${MOZ_FETCHES_DIR}/nsis-3.01/makensis.exe"
+if [ -d "${MAKENSISU%/*}" -a ! -x "${MAKENSISU}" ]; then
+ chmod +x "${MAKENSISU}"
+fi
+export UPX="${MOZ_FETCHES_DIR}/upx-3.95-win64/upx.exe"
+if [ -f "${UPX}" ]; then
+ chmod +x "${UPX}"
+fi
+mk_add_options "export PATH=${VSPATH}/VC/bin/Hostx64/x86:${MOZ_FETCHES_DIR}/nsis-3.01:${PATH}"
+
+unset VC_PATH
+
+fi
+
+pdbstr="${MOZ_FETCHES_DIR}/pdbstr/pdbstr.exe"
+if [ -f "${pdbstr}" ]; then
+ chmod +x "${pdbstr}"
+fi
diff --git a/browser/config/mozconfigs/win32/debug b/browser/config/mozconfigs/win32/debug
new file mode 100644
index 0000000000..2f0c2dc696
--- /dev/null
+++ b/browser/config/mozconfigs/win32/debug
@@ -0,0 +1,15 @@
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/browser/config/mozconfigs/win32/common-win32"
+
+ac_add_options --enable-debug
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win32/debug-static-analysis b/browser/config/mozconfigs/win32/debug-static-analysis
new file mode 100644
index 0000000000..ad046f27e2
--- /dev/null
+++ b/browser/config/mozconfigs/win32/debug-static-analysis
@@ -0,0 +1,12 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/browser/config/mozconfigs/win32/common-win32"
+
+ac_add_options --enable-debug
+
+ac_add_options --enable-clang-plugin
+
+. "$topsrcdir/build/mozconfig.clang-cl"
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win32/devedition b/browser/config/mozconfigs/win32/devedition
new file mode 100644
index 0000000000..e84c0385f7
--- /dev/null
+++ b/browser/config/mozconfigs/win32/devedition
@@ -0,0 +1,10 @@
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/win32/common-win32"
+. "$topsrcdir/browser/config/mozconfigs/win32/common-opt"
+
+# Add-on signing is not required for DevEdition
+MOZ_REQUIRE_SIGNING=0
+
+ac_add_options --with-branding=browser/branding/aurora
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win32/l10n-mozconfig b/browser/config/mozconfigs/win32/l10n-mozconfig
new file mode 100644
index 0000000000..2531cc233c
--- /dev/null
+++ b/browser/config/mozconfigs/win32/l10n-mozconfig
@@ -0,0 +1,17 @@
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/browser/config/mozconfigs/win32/common-win32"
+. "$topsrcdir/build/mozconfig.no-compile"
+
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --enable-official-branding
+
+ac_add_options --disable-nodejs
+unset NODEJS
+
+export MOZILLA_OFFICIAL=1
+
+# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
+# Bug 1283438
+mk_add_options AUTOCLOBBER=
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win32/l10n-mozconfig-devedition b/browser/config/mozconfigs/win32/l10n-mozconfig-devedition
new file mode 100644
index 0000000000..de54160e9b
--- /dev/null
+++ b/browser/config/mozconfigs/win32/l10n-mozconfig-devedition
@@ -0,0 +1,17 @@
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/browser/config/mozconfigs/win32/common-win32"
+. "$topsrcdir/build/mozconfig.no-compile"
+
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --with-branding=browser/branding/aurora
+
+ac_add_options --disable-nodejs
+unset NODEJS
+
+export MOZILLA_OFFICIAL=1
+
+# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
+# Bug 1283438
+mk_add_options AUTOCLOBBER=
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win32/mingwclang b/browser/config/mozconfigs/win32/mingwclang
new file mode 100644
index 0000000000..59151e8e90
--- /dev/null
+++ b/browser/config/mozconfigs/win32/mingwclang
@@ -0,0 +1,59 @@
+# Sets:
+# MOZ_AUTOMATION flags
+# SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE - shouldn't be used?
+. "$topsrcdir/build/mozconfig.win-common"
+
+# Sets:
+# build/mozconfig.common
+# AUTOCLOBBER=1
+# --enable-crashreporter
+# --enable-release
+# MOZ_ADDON_SIGNING
+# MOZ_REQUIRE_SIGNING
+# --enable-js-shell
+# build/mozconfig.automation
+# MOZ_AUTOMATION_ flags
+. "$topsrcdir/browser/config/mozconfigs/common"
+
+export MOZ_PACKAGE_JSSHELL=1
+
+# MinGW Stuff
+ac_add_options --target=i686-w64-mingw32
+ac_add_options --with-toolchain-prefix=i686-w64-mingw32-
+
+ac_add_options --disable-warnings-as-errors
+mk_add_options "export WIDL_TIME_OVERRIDE=0"
+
+# This replicates Tor's configuration
+ac_add_options --enable-proxy-bypass-protection
+
+# These aren't supported on mingw at this time
+ac_add_options --disable-webrtc # Bug 1393901
+ac_add_options --disable-geckodriver # Bug 1489320
+ac_add_options --disable-update-agent # Bug 1561797
+ac_add_options --disable-default-browser-agent # WinToast does not build on mingw
+
+# Find our toolchain
+HOST_CC="$MOZ_FETCHES_DIR/clang/bin/clang"
+HOST_CXX="$MOZ_FETCHES_DIR/clang/bin/clang++"
+CC="$MOZ_FETCHES_DIR/clang/bin/i686-w64-mingw32-clang"
+CXX="$MOZ_FETCHES_DIR/clang/bin/i686-w64-mingw32-clang++"
+CXXFLAGS="-fms-extensions"
+CFLAGS="$CFLAGS -fcrash-diagnostics-dir=${UPLOAD_PATH}"
+CXXFLAGS="$CXXFLAGS -fcrash-diagnostics-dir=${UPLOAD_PATH}"
+
+# For Stylo
+BINDGEN_CFLAGS="-I$MOZ_FETCHES_DIR/clang/i686-w64-mingw32/include/c++/v1 -I$MOZ_FETCHES_DIR/clang/i686-w64-mingw32/include"
+
+# We want to make sure we use binutils and other binaries in the tooltool
+# package.
+mk_add_options "export PATH=$MOZ_FETCHES_DIR/clang/bin:$MOZ_FETCHES_DIR/mingw32/bin:$MOZ_FETCHES_DIR/wine/bin:$MOZ_FETCHES_DIR/upx/bin:$MOZ_FETCHES_DIR/fxc2/bin:$MOZ_FETCHES_DIR/binutils/bin:$PATH"
+
+LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$MOZ_FETCHES_DIR/mingw32/lib64:$MOZ_FETCHES_DIR/clang/lib
+mk_add_options "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
+
+# Do not include the visual studio related mozconfigs of course
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win32/mingwclang-debug b/browser/config/mozconfigs/win32/mingwclang-debug
new file mode 100644
index 0000000000..630dd5f6b7
--- /dev/null
+++ b/browser/config/mozconfigs/win32/mingwclang-debug
@@ -0,0 +1,3 @@
+. "$topsrcdir/browser/config/mozconfigs/win32/mingwclang"
+
+ac_add_options --enable-debug
diff --git a/browser/config/mozconfigs/win32/nightly b/browser/config/mozconfigs/win32/nightly
new file mode 100644
index 0000000000..e53ce429c7
--- /dev/null
+++ b/browser/config/mozconfigs/win32/nightly
@@ -0,0 +1,7 @@
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/win32/common-win32"
+. "$topsrcdir/browser/config/mozconfigs/win32/common-opt"
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win32/noopt-debug b/browser/config/mozconfigs/win32/noopt-debug
new file mode 100644
index 0000000000..d66c139354
--- /dev/null
+++ b/browser/config/mozconfigs/win32/noopt-debug
@@ -0,0 +1,9 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+
+# Developers often build with these options for a better debugging experience.
+. "$topsrcdir/browser/config/mozconfigs/win32/debug"
+
+# We add this last to guard against inadvertent changes in the debug config.
+# It may conflict with settings from mozconfig.override, but that seems
+# unlikely.
+ac_add_options --disable-optimize
diff --git a/browser/config/mozconfigs/win32/profile-generate b/browser/config/mozconfigs/win32/profile-generate
new file mode 100644
index 0000000000..bc29b253c0
--- /dev/null
+++ b/browser/config/mozconfigs/win32/profile-generate
@@ -0,0 +1,6 @@
+. $topsrcdir/browser/config/mozconfigs/win32/nightly
+
+mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0"
+
+ac_add_options --enable-profile-generate=cross
+ac_add_options --disable-tests
diff --git a/browser/config/mozconfigs/win32/release b/browser/config/mozconfigs/win32/release
new file mode 100644
index 0000000000..d576f785f0
--- /dev/null
+++ b/browser/config/mozconfigs/win32/release
@@ -0,0 +1,14 @@
+# This make file should be identical to the beta mozconfig, apart from the
+# safeguard below
+
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/win32/common-win32"
+. "$topsrcdir/browser/config/mozconfigs/win32/common-opt"
+
+ac_add_options --enable-official-branding
+
+# safeguard against someone forgetting to re-set EARLY_BETA_OR_EARLIER in
+# defines.sh during the beta cycle
+export BUILDING_RELEASE=1
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win32/rusttests b/browser/config/mozconfigs/win32/rusttests
new file mode 100644
index 0000000000..b5db8ce21c
--- /dev/null
+++ b/browser/config/mozconfigs/win32/rusttests
@@ -0,0 +1,8 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+
+. "$topsrcdir/browser/config/mozconfigs/win32/nightly"
+
+unset ENABLE_CLANG_PLUGIN
+
+# Test geckodriver, which isn't built as part of the build jobs
+ac_add_options --enable-geckodriver
diff --git a/browser/config/mozconfigs/win32/rusttests-debug b/browser/config/mozconfigs/win32/rusttests-debug
new file mode 100644
index 0000000000..d81d2833d2
--- /dev/null
+++ b/browser/config/mozconfigs/win32/rusttests-debug
@@ -0,0 +1,8 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+
+. "$topsrcdir/browser/config/mozconfigs/win32/debug"
+
+unset ENABLE_CLANG_PLUGIN
+
+# Test geckodriver, which isn't built as part of the build jobs
+ac_add_options --enable-geckodriver
diff --git a/browser/config/mozconfigs/win64-aarch64/beta b/browser/config/mozconfigs/win64-aarch64/beta
new file mode 100644
index 0000000000..25865a2716
--- /dev/null
+++ b/browser/config/mozconfigs/win64-aarch64/beta
@@ -0,0 +1,7 @@
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-win64"
+. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-opt"
+
+ac_add_options --enable-official-branding
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64-aarch64/common-opt b/browser/config/mozconfigs/win64-aarch64/common-opt
new file mode 100644
index 0000000000..302382a755
--- /dev/null
+++ b/browser/config/mozconfigs/win64-aarch64/common-opt
@@ -0,0 +1,26 @@
+# This file is sourced by the nightly, beta, and release mozconfigs.
+
+. "$topsrcdir/browser/config/mozconfigs/common"
+
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+
+if test `uname -s` != Linux; then
+APIKEYDIR="${APIKEYDIR:-${WORKSPACE}}"
+else
+APIKEYDIR="${APIKEYDIR:-/builds}"
+fi
+
+ac_add_options --with-google-location-service-api-keyfile=${APIKEYDIR}/gls-gapi.data
+ac_add_options --with-google-safebrowsing-api-keyfile=${APIKEYDIR}/sb-gapi.data
+
+ac_add_options --with-mozilla-api-keyfile=${APIKEYDIR}/mozilla-desktop-geoloc-api.key
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+if test -n "$MOZ_ARTIFACT_TASK_WIN32_OPT"; then
+ ac_add_options --enable-eme=widevine
+fi
diff --git a/browser/config/mozconfigs/win64-aarch64/common-win64 b/browser/config/mozconfigs/win64-aarch64/common-win64
new file mode 100644
index 0000000000..679146cd12
--- /dev/null
+++ b/browser/config/mozconfigs/win64-aarch64/common-win64
@@ -0,0 +1,32 @@
+# This file is used by all AArch64 Win64 builds
+
+ac_add_options --target=aarch64-windows-mingw32
+
+. $topsrcdir/build/win64-aarch64/mozconfig.vs-latest
+
+if test `uname -s` = Linux; then
+
+# Configure expects executables for check_prog, so set the relevant files
+# as executable on the first evaluation of the mozconfig where they exist.
+if [ -d "${VSPATH}" -a ! -x "${VSPATH}/VC/bin/Hostx64/arm64/cl.exe" ]; then
+ find "${VSPATH}" -type f -name \*.exe -exec chmod +x {} \;
+fi
+export MAKENSISU="${MOZ_FETCHES_DIR}/nsis-3.01/makensis.exe"
+if [ -d "${MAKENSISU%/*}" -a ! -x "${MAKENSISU}" ]; then
+ chmod +x "${MAKENSISU}"
+fi
+export UPX="${MOZ_FETCHES_DIR}/upx-3.95-win64/upx.exe"
+if [ -f "${UPX}" ]; then
+ chmod +x "${UPX}"
+fi
+mk_add_options "export PATH=${VSPATH}/VC/bin/Hostx64/arm64:${MOZ_FETCHES_DIR}/nsis-3.01:${PATH}"
+mk_add_options "export WINEPATH=${VSPATH}/VC/bin/Hostx64/x64"
+
+unset VC_PATH
+
+fi
+
+pdbstr="${MOZ_FETCHES_DIR}/pdbstr/pdbstr.exe"
+if [ -f "${pdbstr}" ]; then
+ chmod +x "${pdbstr}"
+fi
diff --git a/browser/config/mozconfigs/win64-aarch64/debug b/browser/config/mozconfigs/win64-aarch64/debug
new file mode 100644
index 0000000000..1242c2f098
--- /dev/null
+++ b/browser/config/mozconfigs/win64-aarch64/debug
@@ -0,0 +1,16 @@
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/common"
+
+. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-win64"
+
+ac_add_options --enable-debug
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64-aarch64/devedition b/browser/config/mozconfigs/win64-aarch64/devedition
new file mode 100644
index 0000000000..aec78d51e1
--- /dev/null
+++ b/browser/config/mozconfigs/win64-aarch64/devedition
@@ -0,0 +1,10 @@
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-win64"
+. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-opt"
+
+# Add-on signing is not required for DevEdition
+MOZ_REQUIRE_SIGNING=0
+
+ac_add_options --with-branding=browser/branding/aurora
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64-aarch64/l10n-mozconfig b/browser/config/mozconfigs/win64-aarch64/l10n-mozconfig
new file mode 100644
index 0000000000..678ea90f6d
--- /dev/null
+++ b/browser/config/mozconfigs/win64-aarch64/l10n-mozconfig
@@ -0,0 +1,17 @@
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-win64"
+. "$topsrcdir/build/mozconfig.no-compile"
+
+ac_add_options --enable-update-channel="${MOZ_UPDATE_CHANNEL}"
+ac_add_options --enable-official-branding
+
+ac_add_options --disable-nodejs
+unset NODEJS
+
+export MOZILLA_OFFICIAL=1
+
+# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
+# Bug 1283438
+mk_add_options AUTOCLOBBER=
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64-aarch64/l10n-mozconfig-devedition b/browser/config/mozconfigs/win64-aarch64/l10n-mozconfig-devedition
new file mode 100644
index 0000000000..f2a04142d5
--- /dev/null
+++ b/browser/config/mozconfigs/win64-aarch64/l10n-mozconfig-devedition
@@ -0,0 +1,17 @@
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-win64"
+. "$topsrcdir/build/mozconfig.no-compile"
+
+ac_add_options --enable-update-channel="${MOZ_UPDATE_CHANNEL}"
+ac_add_options --with-branding=browser/branding/aurora
+
+ac_add_options --disable-nodejs
+unset NODEJS
+
+export MOZILLA_OFFICIAL=1
+
+# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
+# Bug 1283438
+mk_add_options AUTOCLOBBER=
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64-aarch64/nightly b/browser/config/mozconfigs/win64-aarch64/nightly
new file mode 100644
index 0000000000..780233c0e1
--- /dev/null
+++ b/browser/config/mozconfigs/win64-aarch64/nightly
@@ -0,0 +1,7 @@
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-win64"
+. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-opt"
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64-aarch64/release b/browser/config/mozconfigs/win64-aarch64/release
new file mode 100644
index 0000000000..c8c31b9292
--- /dev/null
+++ b/browser/config/mozconfigs/win64-aarch64/release
@@ -0,0 +1,14 @@
+# This make file should be identical to the beta mozconfig, apart from the
+# safeguard below
+
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-win64"
+. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-opt"
+
+ac_add_options --enable-official-branding
+
+# safeguard against someone forgetting to re-set EARLY_BETA_OR_EARLIER in
+# defines.sh during the beta cycle
+export BUILDING_RELEASE=1
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64/add-on-devel b/browser/config/mozconfigs/win64/add-on-devel
new file mode 100644
index 0000000000..d6ca2862de
--- /dev/null
+++ b/browser/config/mozconfigs/win64/add-on-devel
@@ -0,0 +1,10 @@
+. $topsrcdir/browser/config/mozconfigs/win64/nightly
+
+#add-on signing is checked but not enforced
+MOZ_REQUIRE_SIGNING=0
+
+ac_add_options --with-branding=browser/branding/unofficial
+ac_add_options --enable-update-channel=default
+
+#Need this to prevent name conflicts with the normal nightly build packages
+export MOZ_PKG_SPECIAL=add-on-devel
diff --git a/browser/config/mozconfigs/win64/beta b/browser/config/mozconfigs/win64/beta
new file mode 100644
index 0000000000..ab3613c373
--- /dev/null
+++ b/browser/config/mozconfigs/win64/beta
@@ -0,0 +1,7 @@
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-opt"
+
+ac_add_options --enable-official-branding
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64/code-coverage b/browser/config/mozconfigs/win64/code-coverage
new file mode 100644
index 0000000000..9631a36096
--- /dev/null
+++ b/browser/config/mozconfigs/win64/code-coverage
@@ -0,0 +1,29 @@
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"
+
+ac_add_options --enable-optimize
+ac_add_options --enable-debug-symbols=-g1
+ac_add_options --disable-sandbox
+ac_add_options --disable-warnings-as-errors
+ac_add_options --enable-coverage
+ac_add_options --enable-rust-tests
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+if [ -d "$MOZ_FETCHES_DIR/clang" ]; then
+ CLANG_LIB_DIR="$(cd $MOZ_FETCHES_DIR/clang/lib/clang/* && cd lib/windows && pwd)"
+
+ export LIB=$LIB:$CLANG_LIB_DIR
+ export LDFLAGS="clang_rt.profile-x86_64.lib"
+fi
+
+export RUSTFLAGS="-Ccodegen-units=1 -Zprofile -Cpanic=abort -Zpanic_abort_tests -Clink-dead-code -Coverflow-checks=off"
+export RUSTDOCFLAGS="-Cpanic=abort"
+
+. "$topsrcdir/build/mozconfig.clang-cl"
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64/common-opt b/browser/config/mozconfigs/win64/common-opt
new file mode 100644
index 0000000000..adde1b2615
--- /dev/null
+++ b/browser/config/mozconfigs/win64/common-opt
@@ -0,0 +1,22 @@
+# This file is sourced by the nightly, beta, and release mozconfigs.
+
+. "$topsrcdir/browser/config/mozconfigs/common"
+
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+
+if test `uname -s` != Linux; then
+APIKEYDIR="${APIKEYDIR:-${WORKSPACE}}"
+else
+APIKEYDIR="${APIKEYDIR:-/builds}"
+fi
+
+ac_add_options --with-google-location-service-api-keyfile=${APIKEYDIR}/gls-gapi.data
+ac_add_options --with-google-safebrowsing-api-keyfile=${APIKEYDIR}/sb-gapi.data
+
+ac_add_options --with-mozilla-api-keyfile=${APIKEYDIR}/mozilla-desktop-geoloc-api.key
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
diff --git a/browser/config/mozconfigs/win64/common-win64 b/browser/config/mozconfigs/win64/common-win64
new file mode 100644
index 0000000000..1f8c9c321f
--- /dev/null
+++ b/browser/config/mozconfigs/win64/common-win64
@@ -0,0 +1,31 @@
+# This file is used by all Win64 builds
+
+ac_add_options --target=x86_64-pc-mingw32
+
+. $topsrcdir/build/win64/mozconfig.vs-latest
+
+if test `uname -s` = Linux; then
+
+# Configure expects executables for check_prog, so set the relevant files
+# as executable on the first evaluation of the mozconfig where they exist.
+if [ -d "${VSPATH}" -a ! -x "${VSPATH}/VC/bin/Hostx64/x64/cl.exe" ]; then
+ find "${VSPATH}" -type f -name \*.exe -exec chmod +x {} \;
+fi
+export MAKENSISU="${MOZ_FETCHES_DIR}/nsis-3.01/makensis.exe"
+if [ -d "${MAKENSISU%/*}" -a ! -x "${MAKENSISU}" ]; then
+ chmod +x "${MAKENSISU}"
+fi
+export UPX="${MOZ_FETCHES_DIR}/upx-3.95-win64/upx.exe"
+if [ -f "${UPX}" ]; then
+ chmod +x "${UPX}"
+fi
+mk_add_options "export PATH=${VSPATH}/VC/bin/Hostx64/x64:${MOZ_FETCHES_DIR}/nsis-3.01:${PATH}"
+
+unset VC_PATH
+
+fi
+
+pdbstr="${MOZ_FETCHES_DIR}/pdbstr/pdbstr.exe"
+if [ -f "${pdbstr}" ]; then
+ chmod +x "${pdbstr}"
+fi
diff --git a/browser/config/mozconfigs/win64/debug b/browser/config/mozconfigs/win64/debug
new file mode 100644
index 0000000000..a00c407529
--- /dev/null
+++ b/browser/config/mozconfigs/win64/debug
@@ -0,0 +1,15 @@
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"
+
+ac_add_options --enable-debug
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64/debug-asan b/browser/config/mozconfigs/win64/debug-asan
new file mode 100644
index 0000000000..bfa36daadd
--- /dev/null
+++ b/browser/config/mozconfigs/win64/debug-asan
@@ -0,0 +1,16 @@
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"
+
+ac_add_options --enable-debug
+ac_add_options --enable-optimize="-O1"
+
+. "$topsrcdir/build/win64/mozconfig.asan"
+
+export MOZ_PACKAGE_JSSHELL=1
+export MOZ_PKG_SPECIAL=asan
+
+# Disable telemetry
+ac_add_options MOZ_TELEMETRY_REPORTING=
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64/debug-fuzzing b/browser/config/mozconfigs/win64/debug-fuzzing
new file mode 100644
index 0000000000..a4d6931fe0
--- /dev/null
+++ b/browser/config/mozconfigs/win64/debug-fuzzing
@@ -0,0 +1,11 @@
+. "$topsrcdir/browser/config/mozconfigs/win64/debug"
+
+# Disable telemetry. All network activity is undesirable in fuzzing.
+ac_add_options MOZ_TELEMETRY_REPORTING=
+
+ac_add_options --enable-fuzzing
+
+# Need this to prevent name conflicts with the normal nightly build packages
+export MOZ_PKG_SPECIAL=fuzzing
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64/debug-searchfox b/browser/config/mozconfigs/win64/debug-searchfox
new file mode 100644
index 0000000000..56d44b81a1
--- /dev/null
+++ b/browser/config/mozconfigs/win64/debug-searchfox
@@ -0,0 +1,19 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_CHECK=0
+
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"
+
+ac_add_options --enable-optimize
+ac_add_options --enable-debug
+
+# Save rust analysis (this requires unlocking the unstable features,
+# which is done in the taskcluster task definition via RUSTC_BOOTSTRAP)
+export RUSTFLAGS="-Zsave-analysis"
+
+ac_add_options --enable-clang-plugin
+ac_add_options --enable-mozsearch-plugin
+
+. "$topsrcdir/build/mozconfig.clang-cl"
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64/devedition b/browser/config/mozconfigs/win64/devedition
new file mode 100644
index 0000000000..3842c35407
--- /dev/null
+++ b/browser/config/mozconfigs/win64/devedition
@@ -0,0 +1,10 @@
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-opt"
+
+# Add-on signing is not required for DevEdition
+MOZ_REQUIRE_SIGNING=0
+
+ac_add_options --with-branding=browser/branding/aurora
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64/l10n-mozconfig b/browser/config/mozconfigs/win64/l10n-mozconfig
new file mode 100644
index 0000000000..c8c1368a41
--- /dev/null
+++ b/browser/config/mozconfigs/win64/l10n-mozconfig
@@ -0,0 +1,17 @@
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"
+. "$topsrcdir/build/mozconfig.no-compile"
+
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --enable-official-branding
+
+ac_add_options --disable-nodejs
+unset NODEJS
+
+export MOZILLA_OFFICIAL=1
+
+# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
+# Bug 1283438
+mk_add_options AUTOCLOBBER=
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64/l10n-mozconfig-devedition b/browser/config/mozconfigs/win64/l10n-mozconfig-devedition
new file mode 100644
index 0000000000..26dcfea7b3
--- /dev/null
+++ b/browser/config/mozconfigs/win64/l10n-mozconfig-devedition
@@ -0,0 +1,17 @@
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"
+. "$topsrcdir/build/mozconfig.no-compile"
+
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --with-branding=browser/branding/aurora
+
+ac_add_options --disable-nodejs
+unset NODEJS
+
+export MOZILLA_OFFICIAL=1
+
+# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
+# Bug 1283438
+mk_add_options AUTOCLOBBER=
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64/mingwclang b/browser/config/mozconfigs/win64/mingwclang
new file mode 100755
index 0000000000..76ff671943
--- /dev/null
+++ b/browser/config/mozconfigs/win64/mingwclang
@@ -0,0 +1,59 @@
+# Sets:
+# MOZ_AUTOMATION flags
+# SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE - shouldn't be used?
+. "$topsrcdir/build/mozconfig.win-common"
+
+# Sets:
+# build/mozconfig.common
+# AUTOCLOBBER=1
+# --enable-crashreporter
+# --enable-release
+# MOZ_ADDON_SIGNING
+# MOZ_REQUIRE_SIGNING
+# --enable-js-shell
+# build/mozconfig.automation
+# MOZ_AUTOMATION_ flags
+. "$topsrcdir/browser/config/mozconfigs/common"
+
+export MOZ_PACKAGE_JSSHELL=1
+
+# MinGW Stuff
+ac_add_options --target=x86_64-w64-mingw32
+ac_add_options --with-toolchain-prefix=x86_64-w64-mingw32-
+
+ac_add_options --disable-warnings-as-errors
+mk_add_options "export WIDL_TIME_OVERRIDE=0"
+
+# This replicates Tor's configuration
+ac_add_options --enable-proxy-bypass-protection
+
+# These aren't supported on mingw at this time
+ac_add_options --disable-webrtc # Bug 1393901
+ac_add_options --disable-geckodriver # Bug 1489320
+ac_add_options --disable-update-agent # Bug 1561797
+ac_add_options --disable-default-browser-agent # WinToast does not build on mingw
+
+# Find our toolchain
+HOST_CC="$MOZ_FETCHES_DIR/clang/bin/clang"
+HOST_CXX="$MOZ_FETCHES_DIR/clang/bin/clang++"
+CC="$MOZ_FETCHES_DIR/clang/bin/x86_64-w64-mingw32-clang"
+CXX="$MOZ_FETCHES_DIR/clang/bin/x86_64-w64-mingw32-clang++"
+CXXFLAGS="-fms-extensions"
+CFLAGS="$CFLAGS -fcrash-diagnostics-dir=${UPLOAD_PATH}"
+CXXFLAGS="$CXXFLAGS -fcrash-diagnostics-dir=${UPLOAD_PATH}"
+
+# For Stylo
+BINDGEN_CFLAGS="-I$MOZ_FETCHES_DIR/clang/x86_64-w64-mingw32/include/c++/v1 -I$MOZ_FETCHES_DIR/clang/x86_64-w64-mingw32/include"
+
+# We want to make sure we use binutils and other binaries in the tooltool
+# package.
+mk_add_options "export PATH=$MOZ_FETCHES_DIR/clang/bin:$MOZ_FETCHES_DIR/mingw32/bin:$MOZ_FETCHES_DIR/wine/bin:$MOZ_FETCHES_DIR/upx/bin:$MOZ_FETCHES_DIR/fxc2/bin:$MOZ_FETCHES_DIR/binutils/bin:$PATH"
+
+LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$MOZ_FETCHES_DIR/mingw32/lib64:$MOZ_FETCHES_DIR/clang/lib
+mk_add_options "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
+
+# Do not include the visual studio related mozconfigs of course
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64/mingwclang-debug b/browser/config/mozconfigs/win64/mingwclang-debug
new file mode 100644
index 0000000000..d4de97a5b8
--- /dev/null
+++ b/browser/config/mozconfigs/win64/mingwclang-debug
@@ -0,0 +1,3 @@
+. "$topsrcdir/browser/config/mozconfigs/win64/mingwclang"
+
+ac_add_options --enable-debug
diff --git a/browser/config/mozconfigs/win64/nightly b/browser/config/mozconfigs/win64/nightly
new file mode 100644
index 0000000000..a4cf517613
--- /dev/null
+++ b/browser/config/mozconfigs/win64/nightly
@@ -0,0 +1,7 @@
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-opt"
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64/nightly-asan b/browser/config/mozconfigs/win64/nightly-asan
new file mode 100644
index 0000000000..59a6e7eea5
--- /dev/null
+++ b/browser/config/mozconfigs/win64/nightly-asan
@@ -0,0 +1,16 @@
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"
+
+ac_add_options --disable-debug
+ac_add_options --enable-optimize="-O2 -gline-tables-only"
+
+. "$topsrcdir/build/win64/mozconfig.asan"
+
+export MOZ_PACKAGE_JSSHELL=1
+export MOZ_PKG_SPECIAL=asan
+
+# Disable telemetry
+ac_add_options MOZ_TELEMETRY_REPORTING=
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64/nightly-asan-reporter b/browser/config/mozconfigs/win64/nightly-asan-reporter
new file mode 100644
index 0000000000..c86e6b83d9
--- /dev/null
+++ b/browser/config/mozconfigs/win64/nightly-asan-reporter
@@ -0,0 +1,18 @@
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-opt"
+
+ac_add_options --disable-debug
+ac_add_options --enable-optimize="-O2 -gline-tables-only"
+ac_add_options --enable-address-sanitizer-reporter
+
+. "$topsrcdir/build/win64/mozconfig.asan"
+
+export MOZ_PKG_SPECIAL=asan-reporter
+
+ac_add_options --with-branding=browser/branding/nightly
+
+# Sandboxing is currently not compatible with the way the ASan reporter works
+ac_add_options --disable-sandbox
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64/nightly-fuzzing-asan b/browser/config/mozconfigs/win64/nightly-fuzzing-asan
new file mode 100755
index 0000000000..e0d9d0f178
--- /dev/null
+++ b/browser/config/mozconfigs/win64/nightly-fuzzing-asan
@@ -0,0 +1,13 @@
+. "$topsrcdir/browser/config/mozconfigs/win64/nightly-asan"
+
+# Disable telemetry
+ac_add_options MOZ_TELEMETRY_REPORTING=
+
+ac_add_options --disable-crashreporter
+
+ac_add_options --enable-fuzzing
+
+# Need this to prevent name conflicts with the normal nightly build packages
+export MOZ_PKG_SPECIAL=asan-fuzzing
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64/noopt-debug b/browser/config/mozconfigs/win64/noopt-debug
new file mode 100644
index 0000000000..a11b25d687
--- /dev/null
+++ b/browser/config/mozconfigs/win64/noopt-debug
@@ -0,0 +1,9 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+
+# Developers often build with these options for a better debugging experience.
+. "$topsrcdir/browser/config/mozconfigs/win64/debug"
+
+# We add this last to guard against inadvertent changes in the debug config.
+# It may conflict with settings from mozconfig.override, but that seems
+# unlikely.
+ac_add_options --disable-optimize
diff --git a/browser/config/mozconfigs/win64/plain-debug b/browser/config/mozconfigs/win64/plain-debug
new file mode 100644
index 0000000000..0587a32587
--- /dev/null
+++ b/browser/config/mozconfigs/win64/plain-debug
@@ -0,0 +1,3 @@
+. $topsrcdir/browser/config/mozconfigs/win64/plain-opt
+
+ac_add_options --enable-debug
diff --git a/browser/config/mozconfigs/win64/plain-opt b/browser/config/mozconfigs/win64/plain-opt
new file mode 100644
index 0000000000..06bf0939bd
--- /dev/null
+++ b/browser/config/mozconfigs/win64/plain-opt
@@ -0,0 +1,3 @@
+ac_add_options --target=x86_64-pc-mingw32
+
+. $topsrcdir/build/win64/mozconfig.vs-latest
diff --git a/browser/config/mozconfigs/win64/profile-generate b/browser/config/mozconfigs/win64/profile-generate
new file mode 100644
index 0000000000..7fd41616ab
--- /dev/null
+++ b/browser/config/mozconfigs/win64/profile-generate
@@ -0,0 +1,6 @@
+. $topsrcdir/browser/config/mozconfigs/win64/nightly
+
+mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0"
+
+ac_add_options --enable-profile-generate=cross
+ac_add_options --disable-tests
diff --git a/browser/config/mozconfigs/win64/release b/browser/config/mozconfigs/win64/release
new file mode 100644
index 0000000000..df6e68bef1
--- /dev/null
+++ b/browser/config/mozconfigs/win64/release
@@ -0,0 +1,14 @@
+# This make file should be identical to the beta mozconfig, apart from the
+# safeguard below
+
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-opt"
+
+ac_add_options --enable-official-branding
+
+# safeguard against someone forgetting to re-set EARLY_BETA_OR_EARLIER in
+# defines.sh during the beta cycle
+export BUILDING_RELEASE=1
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64/rusttests b/browser/config/mozconfigs/win64/rusttests
new file mode 100644
index 0000000000..7864648d3c
--- /dev/null
+++ b/browser/config/mozconfigs/win64/rusttests
@@ -0,0 +1,8 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+
+. "$topsrcdir/browser/config/mozconfigs/win64/nightly"
+
+unset ENABLE_CLANG_PLUGIN
+
+# Test geckodriver, which isn't built as part of the build jobs
+ac_add_options --enable-geckodriver
diff --git a/browser/config/mozconfigs/win64/rusttests-debug b/browser/config/mozconfigs/win64/rusttests-debug
new file mode 100644
index 0000000000..fe6f374594
--- /dev/null
+++ b/browser/config/mozconfigs/win64/rusttests-debug
@@ -0,0 +1,8 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+
+. "$topsrcdir/browser/config/mozconfigs/win64/debug"
+
+unset ENABLE_CLANG_PLUGIN
+
+# Test geckodriver, which isn't built as part of the build jobs
+ac_add_options --enable-geckodriver