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/artifact10
-rw-r--r--browser/config/mozconfigs/linux32/beta15
-rw-r--r--browser/config/mozconfigs/linux32/common-opt15
-rw-r--r--browser/config/mozconfigs/linux32/debug24
-rw-r--r--browser/config/mozconfigs/linux32/debug-artifact12
-rw-r--r--browser/config/mozconfigs/linux32/debug-asan23
-rw-r--r--browser/config/mozconfigs/linux32/l10n-mozconfig20
-rw-r--r--browser/config/mozconfigs/linux32/nightly15
-rw-r--r--browser/config/mozconfigs/linux32/nightly-asan22
-rw-r--r--browser/config/mozconfigs/linux32/release22
-rw-r--r--browser/config/mozconfigs/linux32/valgrind9
-rw-r--r--browser/config/mozconfigs/linux64/add-on-devel9
-rw-r--r--browser/config/mozconfigs/linux64/artifact10
-rw-r--r--browser/config/mozconfigs/linux64/beta15
-rw-r--r--browser/config/mozconfigs/linux64/code-coverage13
-rw-r--r--browser/config/mozconfigs/linux64/common-opt15
-rw-r--r--browser/config/mozconfigs/linux64/debug22
-rw-r--r--browser/config/mozconfigs/linux64/debug-artifact13
-rw-r--r--browser/config/mozconfigs/linux64/debug-asan23
-rw-r--r--browser/config/mozconfigs/linux64/debug-static-analysis-clang23
-rw-r--r--browser/config/mozconfigs/linux64/hazards35
-rw-r--r--browser/config/mozconfigs/linux64/l10n-mozconfig20
-rw-r--r--browser/config/mozconfigs/linux64/nightly15
-rw-r--r--browser/config/mozconfigs/linux64/nightly-asan19
-rw-r--r--browser/config/mozconfigs/linux64/opt-static-analysis-clang22
-rw-r--r--browser/config/mozconfigs/linux64/opt-tsan9
-rw-r--r--browser/config/mozconfigs/linux64/release22
-rw-r--r--browser/config/mozconfigs/linux64/source4
-rw-r--r--browser/config/mozconfigs/linux64/valgrind9
-rw-r--r--browser/config/mozconfigs/macosx-universal/beta15
-rw-r--r--browser/config/mozconfigs/macosx-universal/common-opt18
-rw-r--r--browser/config/mozconfigs/macosx-universal/l10n-mozconfig22
-rw-r--r--browser/config/mozconfigs/macosx-universal/nightly21
-rw-r--r--browser/config/mozconfigs/macosx-universal/release21
-rw-r--r--browser/config/mozconfigs/macosx64/add-on-devel9
-rw-r--r--browser/config/mozconfigs/macosx64/artifact10
-rw-r--r--browser/config/mozconfigs/macosx64/debug24
-rw-r--r--browser/config/mozconfigs/macosx64/debug-artifact12
-rw-r--r--browser/config/mozconfigs/macosx64/debug-asan20
-rw-r--r--browser/config/mozconfigs/macosx64/debug-static-analysis13
-rw-r--r--browser/config/mozconfigs/macosx64/l10n-mozconfig12
-rw-r--r--browser/config/mozconfigs/macosx64/nightly22
-rw-r--r--browser/config/mozconfigs/macosx64/opt-static-analysis16
-rw-r--r--browser/config/mozconfigs/whitelist100
-rw-r--r--browser/config/mozconfigs/win32/add-on-devel9
-rw-r--r--browser/config/mozconfigs/win32/artifact10
-rw-r--r--browser/config/mozconfigs/win32/beta18
-rw-r--r--browser/config/mozconfigs/win32/common-opt26
-rw-r--r--browser/config/mozconfigs/win32/debug27
-rw-r--r--browser/config/mozconfigs/win32/debug-artifact12
-rw-r--r--browser/config/mozconfigs/win32/debug-static-analysis19
-rw-r--r--browser/config/mozconfigs/win32/l10n-mozconfig19
-rw-r--r--browser/config/mozconfigs/win32/nightly12
-rw-r--r--browser/config/mozconfigs/win32/release24
-rw-r--r--browser/config/mozconfigs/win64/add-on-devel9
-rw-r--r--browser/config/mozconfigs/win64/artifact11
-rw-r--r--browser/config/mozconfigs/win64/beta19
-rw-r--r--browser/config/mozconfigs/win64/common-opt24
-rw-r--r--browser/config/mozconfigs/win64/common-win645
-rw-r--r--browser/config/mozconfigs/win64/debug29
-rw-r--r--browser/config/mozconfigs/win64/debug-artifact13
-rw-r--r--browser/config/mozconfigs/win64/l10n-mozconfig20
-rw-r--r--browser/config/mozconfigs/win64/nightly13
-rw-r--r--browser/config/mozconfigs/win64/release25
65 files changed, 1171 insertions, 0 deletions
diff --git a/browser/config/mozconfigs/common b/browser/config/mozconfigs/common
new file mode 100644
index 000000000..febf5622f
--- /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/artifact b/browser/config/mozconfigs/linux32/artifact
new file mode 100644
index 000000000..29eb8ba1c
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/artifact
@@ -0,0 +1,10 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. "$topsrcdir/browser/config/mozconfigs/linux32/common-opt"
+. "$topsrcdir/build/mozconfig.common.override"
+
+ac_add_options --enable-artifact-builds
+ac_add_options --enable-artifact-build-symbols
+unset CC
+unset CXX
diff --git a/browser/config/mozconfigs/linux32/beta b/browser/config/mozconfigs/linux32/beta
new file mode 100644
index 000000000..315c32b84
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/beta
@@ -0,0 +1,15 @@
+MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
+if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
+ MOZ_AUTOMATION_UPLOAD_SYMBOLS=${MOZ_AUTOMATION_UPLOAD_SYMBOLS-1}
+ MOZ_AUTOMATION_UPDATE_PACKAGING=1
+fi
+
+. "$topsrcdir/browser/config/mozconfigs/linux32/common-opt"
+
+ac_add_options --enable-official-branding
+ac_add_options --enable-verify-mar
+
+mk_add_options MOZ_PGO=1
+
+. "$topsrcdir/build/mozconfig.rust"
+. "$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 000000000..3bf3e530e
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/common-opt
@@ -0,0 +1,15 @@
+# This file is sourced by nightly, beta, and release mozconfigs.
+
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --with-google-api-keyfile=/builds/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
+
+export MOZ_TELEMETRY_REPORTING=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 000000000..de97087d2
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/debug
@@ -0,0 +1,24 @@
+ac_add_options --enable-debug
+ac_add_options --enable-dmd
+ac_add_options --enable-verify-mar
+
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. $topsrcdir/build/unix/mozconfig.linux32
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+# Enable Telemetry
+export MOZ_TELEMETRY_REPORTING=1
+
+#Use ccache
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.rust"
+. "$topsrcdir/build/mozconfig.common.override"
+. "$topsrcdir/build/mozconfig.cache"
diff --git a/browser/config/mozconfigs/linux32/debug-artifact b/browser/config/mozconfigs/linux32/debug-artifact
new file mode 100644
index 000000000..3fc3faf89
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/debug-artifact
@@ -0,0 +1,12 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. "$topsrcdir/build/unix/mozconfig.linux32"
+. "$topsrcdir/build/mozconfig.common.override"
+
+ac_add_options --enable-artifact-builds
+ac_add_options --enable-artifact-build-symbols
+unset CC
+unset CXX
+
+ac_add_options --enable-debug
diff --git a/browser/config/mozconfigs/linux32/debug-asan b/browser/config/mozconfigs/linux32/debug-asan
new file mode 100644
index 000000000..9fc7b9bff
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/debug-asan
@@ -0,0 +1,23 @@
+# 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
+
+export PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/usr/share/pkgconfig
+. $topsrcdir/build/unix/mozconfig.gtk
+
+# Enable Telemetry
+export MOZ_TELEMETRY_REPORTING=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/linux32/l10n-mozconfig b/browser/config/mozconfigs/linux32/l10n-mozconfig
new file mode 100644
index 000000000..ae7cc933b
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/l10n-mozconfig
@@ -0,0 +1,20 @@
+no_sccache=1
+
+ac_add_options --with-l10n-base=../../l10n
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --enable-official-branding
+
+. $topsrcdir/build/unix/mozconfig.linux32
+
+export MOZILLA_OFFICIAL=1
+
+# Enable Telemetry
+export MOZ_TELEMETRY_REPORTING=1
+
+ac_add_options --disable-stdcxx-compat
+
+# 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 000000000..6d605ca7d
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/nightly
@@ -0,0 +1,15 @@
+. "$topsrcdir/browser/config/mozconfigs/linux32/common-opt"
+
+
+ac_add_options --enable-verify-mar
+
+# This will overwrite the default of stripping everything and keep the symbol table.
+# This is useful for profiling and debugging and only increases the package size
+# by 2 MBs.
+STRIP_FLAGS="--strip-debug"
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.rust"
+. "$topsrcdir/build/mozconfig.common.override"
+. "$topsrcdir/build/mozconfig.cache"
diff --git a/browser/config/mozconfigs/linux32/nightly-asan b/browser/config/mozconfigs/linux32/nightly-asan
new file mode 100644
index 000000000..0930c184f
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/nightly-asan
@@ -0,0 +1,22 @@
+# 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
+
+export PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/usr/share/pkgconfig
+. $topsrcdir/build/unix/mozconfig.gtk
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+# Enable Telemetry
+export MOZ_TELEMETRY_REPORTING=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/release b/browser/config/mozconfigs/linux32/release
new file mode 100644
index 000000000..b17186666
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/release
@@ -0,0 +1,22 @@
+# This make file should be identical to the beta mozconfig, apart from the
+# safeguard below
+MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
+
+if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
+ MOZ_AUTOMATION_UPLOAD_SYMBOLS=${MOZ_AUTOMATION_UPLOAD_SYMBOLS-1}
+ MOZ_AUTOMATION_UPDATE_PACKAGING=1
+fi
+
+. "$topsrcdir/browser/config/mozconfigs/linux32/common-opt"
+
+ac_add_options --enable-official-branding
+ac_add_options --enable-verify-mar
+
+mk_add_options MOZ_PGO=1
+
+# 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.rust"
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux32/valgrind b/browser/config/mozconfigs/linux32/valgrind
new file mode 100644
index 000000000..c8fb4f574
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/valgrind
@@ -0,0 +1,9 @@
+. $topsrcdir/browser/config/mozconfigs/linux32/nightly
+
+ac_add_options --enable-valgrind
+ac_add_options --disable-jemalloc
+ac_add_options --disable-install-strip
+
+# 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/add-on-devel b/browser/config/mozconfigs/linux64/add-on-devel
new file mode 100644
index 000000000..0a3dfeb3f
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/add-on-devel
@@ -0,0 +1,9 @@
+. $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/artifact b/browser/config/mozconfigs/linux64/artifact
new file mode 100644
index 000000000..524a25e69
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/artifact
@@ -0,0 +1,10 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. "$topsrcdir/browser/config/mozconfigs/linux64/common-opt"
+. "$topsrcdir/build/mozconfig.common.override"
+
+ac_add_options --enable-artifact-builds
+ac_add_options --enable-artifact-build-symbols
+unset CC
+unset CXX
diff --git a/browser/config/mozconfigs/linux64/beta b/browser/config/mozconfigs/linux64/beta
new file mode 100644
index 000000000..f349ee9f8
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/beta
@@ -0,0 +1,15 @@
+MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
+if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
+ MOZ_AUTOMATION_UPLOAD_SYMBOLS=${MOZ_AUTOMATION_UPLOAD_SYMBOLS-1}
+ MOZ_AUTOMATION_UPDATE_PACKAGING=1
+fi
+
+. "$topsrcdir/browser/config/mozconfigs/linux64/common-opt"
+
+ac_add_options --enable-official-branding
+ac_add_options --enable-verify-mar
+
+mk_add_options MOZ_PGO=1
+
+. "$topsrcdir/build/mozconfig.rust"
+. "$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 000000000..48ffa9b17
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/code-coverage
@@ -0,0 +1,13 @@
+. "$topsrcdir/browser/config/mozconfigs/linux64/nightly"
+
+TOOLTOOL_DIR=${TOOLTOOL_DIR:-$topsrcdir}
+
+ac_add_options --disable-install-strip
+ac_add_options --disable-jemalloc
+ac_add_options --disable-crashreporter
+ac_add_options --disable-elf-hack
+
+MOZ_CODE_COVERAGE=1
+export CFLAGS="-fprofile-arcs -ftest-coverage"
+export CXXFLAGS="-fprofile-arcs -ftest-coverage"
+export LDFLAGS="-fprofile-arcs -ftest-coverage -lgcov -L$TOOLTOOL_DIR/gtk3/usr/local/lib"
diff --git a/browser/config/mozconfigs/linux64/common-opt b/browser/config/mozconfigs/linux64/common-opt
new file mode 100644
index 000000000..0d605ff9e
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/common-opt
@@ -0,0 +1,15 @@
+# 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-api-keyfile=/builds/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
+
+export MOZ_TELEMETRY_REPORTING=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 000000000..a879da75e
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/debug
@@ -0,0 +1,22 @@
+ac_add_options --enable-debug
+ac_add_options --enable-dmd
+ac_add_options --enable-verify-mar
+
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. $topsrcdir/build/unix/mozconfig.linux
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+# Enable Telemetry
+export MOZ_TELEMETRY_REPORTING=1
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.rust"
+. "$topsrcdir/build/mozconfig.common.override"
+. "$topsrcdir/build/mozconfig.cache"
diff --git a/browser/config/mozconfigs/linux64/debug-artifact b/browser/config/mozconfigs/linux64/debug-artifact
new file mode 100644
index 000000000..6dc4d13ce
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/debug-artifact
@@ -0,0 +1,13 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. "$topsrcdir/build/unix/mozconfig.linux"
+. "$topsrcdir/build/mozconfig.common.override"
+
+ac_add_options --enable-artifact-builds
+ac_add_options --enable-artifact-build-symbols
+unset CC
+unset CXX
+
+ac_add_options --enable-debug
+
diff --git a/browser/config/mozconfigs/linux64/debug-asan b/browser/config/mozconfigs/linux64/debug-asan
new file mode 100644
index 000000000..a772dbb51
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/debug-asan
@@ -0,0 +1,23 @@
+# 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
+
+export PKG_CONFIG_LIBDIR=/usr/lib64/pkgconfig:/usr/share/pkgconfig
+. $topsrcdir/build/unix/mozconfig.gtk
+
+# Enable Telemetry
+export MOZ_TELEMETRY_REPORTING=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-static-analysis-clang b/browser/config/mozconfigs/linux64/debug-static-analysis-clang
new file mode 100644
index 000000000..ff41e13f9
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/debug-static-analysis-clang
@@ -0,0 +1,23 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_PACKAGE_TESTS=0
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. "$topsrcdir/build/mozconfig.common"
+
+ac_add_options --enable-debug
+ac_add_options --enable-dmd
+
+# Use Clang as specified in manifest
+export CC="$topsrcdir/clang/bin/clang"
+export CXX="$topsrcdir/clang/bin/clang++"
+
+# Add the static checker
+ac_add_options --enable-clang-plugin
+
+. "$topsrcdir/build/unix/mozconfig.stdcxx"
+
+export PKG_CONFIG_LIBDIR=/usr/lib64/pkgconfig:/usr/share/pkgconfig
+. $topsrcdir/build/unix/mozconfig.gtk
+
+. "$topsrcdir/build/mozconfig.common.override"
+. "$topsrcdir/build/mozconfig.cache"
diff --git a/browser/config/mozconfigs/linux64/hazards b/browser/config/mozconfigs/linux64/hazards
new file mode 100644
index 000000000..03d72ef7e
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/hazards
@@ -0,0 +1,35 @@
+# This mozconfig is used when compiling the browser for the rooting hazard
+# analysis build (labeled H on treeherder). See
+# https://wiki.mozilla.org/Javascript:SpiderMonkey:ExactStackRooting
+
+# Do NOT include build/unix/mozconfig.linux because it points directly at the
+# tooltool-installed gcc, and the analysis works by wrapping the gcc invocation
+# with a script that invokes the real gcc with -fplugin and its configuration
+# directives. Instead, duplicate the contents of that mozconfig here:
+
+. "$topsrcdir/build/mozconfig.common"
+ac_add_options --enable-elf-hack
+
+. "$topsrcdir/build/unix/mozconfig.stdcxx"
+
+# The objdir must be at a known location so its path can be stripped from the
+# filenames stored by the analysis
+mk_add_options MOZ_OBJDIR=obj-analyzed
+
+# The configuration options are chosen to compile the most code
+# (--enable-debug, --enable-tests) in the trickiest way possible
+# (--enable-optimize) to maximize the chance of seeing tricky static orderings.
+ac_add_options --enable-debug
+ac_add_options --enable-tests
+ac_add_options --enable-optimize
+ac_add_options --with-compiler-wrapper=$TOOLTOOL_DIR/sixgill/usr/libexec/sixgill/scripts/wrap_gcc/basecc
+ac_add_options --without-ccache
+
+CFLAGS="$CFLAGS -Wno-attributes"
+CPPFLAGS="$CPPFLAGS -Wno-attributes"
+CXXFLAGS="$CXXFLAGS -Wno-attributes"
+
+export PKG_CONFIG_LIBDIR=/usr/lib64/pkgconfig:/usr/share/pkgconfig
+. $topsrcdir/build/unix/mozconfig.gtk
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux64/l10n-mozconfig b/browser/config/mozconfigs/linux64/l10n-mozconfig
new file mode 100644
index 000000000..4df482dc3
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/l10n-mozconfig
@@ -0,0 +1,20 @@
+no_sccache=1
+
+ac_add_options --with-l10n-base=../../l10n
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --enable-official-branding
+
+. $topsrcdir/build/unix/mozconfig.linux
+
+export MOZILLA_OFFICIAL=1
+
+# Enable Telemetry
+export MOZ_TELEMETRY_REPORTING=1
+
+ac_add_options --disable-stdcxx-compat
+
+# 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 000000000..ec360a99a
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/nightly
@@ -0,0 +1,15 @@
+. "$topsrcdir/browser/config/mozconfigs/linux64/common-opt"
+
+
+ac_add_options --enable-verify-mar
+
+# This will overwrite the default of stripping everything and keep the symbol table.
+# This is useful for profiling and debugging and only increases the package size
+# by 2 MBs.
+STRIP_FLAGS="--strip-debug"
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.rust"
+. "$topsrcdir/build/mozconfig.common.override"
+. "$topsrcdir/build/mozconfig.cache"
diff --git a/browser/config/mozconfigs/linux64/nightly-asan b/browser/config/mozconfigs/linux64/nightly-asan
new file mode 100644
index 000000000..833b530d2
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/nightly-asan
@@ -0,0 +1,19 @@
+# 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
+
+export PKG_CONFIG_LIBDIR=/usr/lib64/pkgconfig:/usr/share/pkgconfig
+. $topsrcdir/build/unix/mozconfig.gtk
+
+# 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/opt-static-analysis-clang b/browser/config/mozconfigs/linux64/opt-static-analysis-clang
new file mode 100644
index 000000000..936cc46f7
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/opt-static-analysis-clang
@@ -0,0 +1,22 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_PACKAGE_TESTS=0
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. "$topsrcdir/build/mozconfig.common"
+
+ac_add_options --enable-dmd
+
+# Use Clang as specified in manifest
+CC="$topsrcdir/clang/bin/clang"
+CXX="$topsrcdir/clang/bin/clang++"
+
+# Add the static checker
+ac_add_options --enable-clang-plugin
+
+. "$topsrcdir/build/unix/mozconfig.stdcxx"
+
+export PKG_CONFIG_LIBDIR=/usr/lib64/pkgconfig:/usr/share/pkgconfig
+. $topsrcdir/build/unix/mozconfig.gtk
+
+. "$topsrcdir/build/mozconfig.common.override"
+. "$topsrcdir/build/mozconfig.cache"
diff --git a/browser/config/mozconfigs/linux64/opt-tsan b/browser/config/mozconfigs/linux64/opt-tsan
new file mode 100644
index 000000000..12b156633
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/opt-tsan
@@ -0,0 +1,9 @@
+. $topsrcdir/build/unix/mozconfig.tsan
+
+export PKG_CONFIG_LIBDIR=/usr/lib64/pkgconfig:/usr/share/pkgconfig
+. $topsrcdir/build/unix/mozconfig.gtk
+
+# Need this to prevent name conflicts with the normal nightly build packages
+export MOZ_PKG_SPECIAL=tsan
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux64/release b/browser/config/mozconfigs/linux64/release
new file mode 100644
index 000000000..2090f3525
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/release
@@ -0,0 +1,22 @@
+# This make file should be identical to the beta mozconfig, apart from the
+# safeguard below
+MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
+
+if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
+ MOZ_AUTOMATION_UPLOAD_SYMBOLS=${MOZ_AUTOMATION_UPLOAD_SYMBOLS-1}
+ MOZ_AUTOMATION_UPDATE_PACKAGING=1
+fi
+
+. "$topsrcdir/browser/config/mozconfigs/linux64/common-opt"
+
+ac_add_options --enable-official-branding
+ac_add_options --enable-verify-mar
+
+mk_add_options MOZ_PGO=1
+
+# 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.rust"
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/linux64/source b/browser/config/mozconfigs/linux64/source
new file mode 100644
index 000000000..4a3c6996b
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/source
@@ -0,0 +1,4 @@
+# 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
diff --git a/browser/config/mozconfigs/linux64/valgrind b/browser/config/mozconfigs/linux64/valgrind
new file mode 100644
index 000000000..2efc6e3bb
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/valgrind
@@ -0,0 +1,9 @@
+. $topsrcdir/browser/config/mozconfigs/linux64/nightly
+
+ac_add_options --enable-valgrind
+ac_add_options --disable-jemalloc
+ac_add_options --disable-install-strip
+
+# 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/macosx-universal/beta b/browser/config/mozconfigs/macosx-universal/beta
new file mode 100644
index 000000000..937185e94
--- /dev/null
+++ b/browser/config/mozconfigs/macosx-universal/beta
@@ -0,0 +1,15 @@
+MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
+
+if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
+ MOZ_AUTOMATION_UPLOAD_SYMBOLS=${MOZ_AUTOMATION_UPLOAD_SYMBOLS-1}
+ MOZ_AUTOMATION_UPDATE_PACKAGING=1
+fi
+
+. "$topsrcdir/browser/config/mozconfigs/macosx-universal/common-opt"
+
+ac_add_options --enable-official-branding
+ac_add_options --enable-verify-mar
+
+. "$topsrcdir/build/mozconfig.rust"
+. "$topsrcdir/build/mozconfig.common.override"
+. "$topsrcdir/build/mozconfig.cache"
diff --git a/browser/config/mozconfigs/macosx-universal/common-opt b/browser/config/mozconfigs/macosx-universal/common-opt
new file mode 100644
index 000000000..145d32fc9
--- /dev/null
+++ b/browser/config/mozconfigs/macosx-universal/common-opt
@@ -0,0 +1,18 @@
+# This file is sourced by the nightly, beta, and release mozconfigs.
+
+. $topsrcdir/build/macosx/universal/mozconfig
+
+# Universal builds override the default of browser (bug 575283 comment 29)
+ac_add_options --enable-application=browser
+
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --with-google-api-keyfile=/builds/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
+
+export MOZ_TELEMETRY_REPORTING=1
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
diff --git a/browser/config/mozconfigs/macosx-universal/l10n-mozconfig b/browser/config/mozconfigs/macosx-universal/l10n-mozconfig
new file mode 100644
index 000000000..80a06ed65
--- /dev/null
+++ b/browser/config/mozconfigs/macosx-universal/l10n-mozconfig
@@ -0,0 +1,22 @@
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/build/macosx/mozconfig.common"
+
+ac_add_options --with-l10n-base=../../l10n
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --enable-official-branding
+
+if test "${MOZ_UPDATE_CHANNEL}" = "nightly"; then
+ac_add_options --with-macbundlename-prefix=Firefox
+fi
+
+export MOZILLA_OFFICIAL=1
+
+# Enable Telemetry
+export MOZ_TELEMETRY_REPORTING=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"
+. "$topsrcdir/build/mozconfig.cache"
diff --git a/browser/config/mozconfigs/macosx-universal/nightly b/browser/config/mozconfigs/macosx-universal/nightly
new file mode 100644
index 000000000..7af737e56
--- /dev/null
+++ b/browser/config/mozconfigs/macosx-universal/nightly
@@ -0,0 +1,21 @@
+. "$topsrcdir/browser/config/mozconfigs/macosx-universal/common-opt"
+
+ac_add_options --disable-install-strip
+ac_add_options --enable-verify-mar
+
+ac_add_options --enable-instruments
+
+# Cross-universal 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/nightly
+
+. "$topsrcdir/build/mozconfig.rust"
+. "$topsrcdir/build/mozconfig.common.override"
+. "$topsrcdir/build/mozconfig.cache"
diff --git a/browser/config/mozconfigs/macosx-universal/release b/browser/config/mozconfigs/macosx-universal/release
new file mode 100644
index 000000000..4700886aa
--- /dev/null
+++ b/browser/config/mozconfigs/macosx-universal/release
@@ -0,0 +1,21 @@
+# This make file should be identical to the beta mozconfig, apart from the
+# safeguard below
+MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
+
+if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
+ MOZ_AUTOMATION_UPLOAD_SYMBOLS=${MOZ_AUTOMATION_UPLOAD_SYMBOLS-1}
+ MOZ_AUTOMATION_UPDATE_PACKAGING=1
+fi
+
+. "$topsrcdir/browser/config/mozconfigs/macosx-universal/common-opt"
+
+ac_add_options --enable-official-branding
+ac_add_options --enable-verify-mar
+
+# 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.rust"
+. "$topsrcdir/build/mozconfig.common.override"
+. "$topsrcdir/build/mozconfig.cache"
diff --git a/browser/config/mozconfigs/macosx64/add-on-devel b/browser/config/mozconfigs/macosx64/add-on-devel
new file mode 100644
index 000000000..e76df4dfa
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/add-on-devel
@@ -0,0 +1,9 @@
+. $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/artifact b/browser/config/mozconfigs/macosx64/artifact
new file mode 100644
index 000000000..c25b21122
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/artifact
@@ -0,0 +1,10 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. "$topsrcdir/build/macosx/mozconfig.common"
+. "$topsrcdir/build/mozconfig.common.override"
+
+ac_add_options --enable-artifact-builds
+ac_add_options --enable-artifact-build-symbols
+unset CC
+unset CXX
diff --git a/browser/config/mozconfigs/macosx64/debug b/browser/config/mozconfigs/macosx64/debug
new file mode 100644
index 000000000..4b052aa00
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/debug
@@ -0,0 +1,24 @@
+. $topsrcdir/build/macosx/mozconfig.common
+
+ac_add_options --enable-debug
+ac_add_options --enable-dmd
+ac_add_options --enable-verify-mar
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+# Enable Telemetry
+export MOZ_TELEMETRY_REPORTING=1
+
+if test "${MOZ_UPDATE_CHANNEL}" = "nightly"; then
+ac_add_options --with-macbundlename-prefix=Firefox
+fi
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.rust"
+. "$topsrcdir/build/mozconfig.common.override"
+. "$topsrcdir/build/mozconfig.cache"
diff --git a/browser/config/mozconfigs/macosx64/debug-artifact b/browser/config/mozconfigs/macosx64/debug-artifact
new file mode 100644
index 000000000..3afa8e4bf
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/debug-artifact
@@ -0,0 +1,12 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. "$topsrcdir/build/macosx/mozconfig.common"
+. "$topsrcdir/build/mozconfig.common.override"
+
+ac_add_options --enable-artifact-builds
+ac_add_options --enable-artifact-build-symbols
+unset CC
+unset CXX
+
+ac_add_options --enable-debug
diff --git a/browser/config/mozconfigs/macosx64/debug-asan b/browser/config/mozconfigs/macosx64/debug-asan
new file mode 100644
index 000000000..28d23798b
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/debug-asan
@@ -0,0 +1,20 @@
+. $topsrcdir/build/unix/mozconfig.asan
+
+ac_add_options --enable-application=browser
+ac_add_options --enable-debug
+ac_add_options --enable-optimize="-O1"
+
+# Enable Telemetry
+export MOZ_TELEMETRY_REPORTING=1
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+if test "${MOZ_UPDATE_CHANNEL}" = "nightly"; then
+ac_add_options --with-macbundlename-prefix=Firefox
+fi
+
+# 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/macosx64/debug-static-analysis b/browser/config/mozconfigs/macosx64/debug-static-analysis
new file mode 100644
index 000000000..bb19af612
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/debug-static-analysis
@@ -0,0 +1,13 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_PACKAGE_TESTS=0
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. $topsrcdir/build/macosx/mozconfig.common
+
+ac_add_options --enable-debug
+ac_add_options --enable-dmd
+
+ac_add_options --enable-clang-plugin
+
+. "$topsrcdir/build/mozconfig.common.override"
+. "$topsrcdir/build/mozconfig.cache"
diff --git a/browser/config/mozconfigs/macosx64/l10n-mozconfig b/browser/config/mozconfigs/macosx64/l10n-mozconfig
new file mode 100644
index 000000000..40ad84086
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/l10n-mozconfig
@@ -0,0 +1,12 @@
+. "$topsrcdir/browser/config/mozconfigs/common"
+
+ac_add_options --with-l10n-base=../../l10n
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --enable-official-branding
+
+# 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"
+. "$topsrcdir/build/mozconfig.cache"
diff --git a/browser/config/mozconfigs/macosx64/nightly b/browser/config/mozconfigs/macosx64/nightly
new file mode 100644
index 000000000..12fec0474
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/nightly
@@ -0,0 +1,22 @@
+. $topsrcdir/build/macosx/mozconfig.common
+
+ac_add_options --enable-verify-mar
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+# Enable Telemetry
+export MOZ_TELEMETRY_REPORTING=1
+
+if test "${MOZ_UPDATE_CHANNEL}" = "nightly"; then
+ac_add_options --with-macbundlename-prefix=Firefox
+fi
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.rust"
+. "$topsrcdir/build/mozconfig.common.override"
+. "$topsrcdir/build/mozconfig.cache"
diff --git a/browser/config/mozconfigs/macosx64/opt-static-analysis b/browser/config/mozconfigs/macosx64/opt-static-analysis
new file mode 100644
index 000000000..72ed3d6bd
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/opt-static-analysis
@@ -0,0 +1,16 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_PACKAGE_TESTS=0
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. $topsrcdir/build/macosx/mozconfig.common
+
+ac_add_options --disable-debug
+ac_add_options --enable-optimize
+ac_add_options --enable-dmd
+
+ac_add_options --enable-clang-plugin
+
+. "$topsrcdir/build/mozconfig.rust"
+. "$topsrcdir/build/mozconfig.common.override"
+. "$topsrcdir/build/mozconfig.cache"
+
diff --git a/browser/config/mozconfigs/whitelist b/browser/config/mozconfigs/whitelist
new file mode 100644
index 000000000..65b66b6f2
--- /dev/null
+++ b/browser/config/mozconfigs/whitelist
@@ -0,0 +1,100 @@
+# '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', 'win32', 'linux32', 'linux64', 'macosx-universal']
+
+for platform in all_platforms:
+ whitelist['nightly'][platform] = [
+ 'ac_add_options --enable-update-channel=nightly',
+ 'ac_add_options --with-branding=browser/branding/nightly',
+ 'ac_add_options --enable-profiling',
+ 'mk_add_options CLIENT_PY_ARGS="--hg-options=\'--verbose --time\' --hgtool=../tools/buildfarm/utils/hgtool.py --skip-chatzilla --skip-comm --skip-inspector --tinderbox-print"'
+ ]
+
+for platform in ['linux32', 'linux64', 'macosx-universal']:
+ whitelist['nightly'][platform] += [
+ 'mk_add_options MOZ_MAKE_FLAGS="-j4"',
+ ]
+
+whitelist['nightly']['linux32'] += [
+ 'CXX=$REAL_CXX',
+ 'CXX="ccache $REAL_CXX"',
+ 'CC="ccache $REAL_CC"',
+ 'mk_add_options PROFILE_GEN_SCRIPT=@TOPSRCDIR@/build/profile_pageloader.pl',
+ 'ac_add_options --with-ccache=/usr/bin/ccache',
+ '. "$topsrcdir/build/mozconfig.cache"',
+ 'export MOZILLA_OFFICIAL=1',
+ 'export MOZ_TELEMETRY_REPORTING=1',
+ "mk_add_options PROFILE_GEN_SCRIPT='$(PYTHON) @MOZ_OBJDIR@/_profile/pgo/profileserver.py 10'",
+ 'STRIP_FLAGS="--strip-debug"',
+]
+
+whitelist['nightly']['linux64'] += [
+ 'export MOZILLA_OFFICIAL=1',
+ 'export MOZ_TELEMETRY_REPORTING=1',
+ "mk_add_options PROFILE_GEN_SCRIPT='$(PYTHON) @MOZ_OBJDIR@/_profile/pgo/profileserver.py 10'",
+ 'STRIP_FLAGS="--strip-debug"',
+ 'ac_add_options --with-ccache=/usr/bin/ccache',
+ '. "$topsrcdir/build/mozconfig.cache"',
+]
+
+whitelist['nightly']['macosx-universal'] += [
+ 'if test "${MOZ_UPDATE_CHANNEL}" = "nightly"; then',
+ 'ac_add_options --with-macbundlename-prefix=Firefox',
+ 'fi',
+ 'mk_add_options MOZ_MAKE_FLAGS="-j12"',
+ 'ac_add_options --with-ccache',
+ '. "$topsrcdir/build/mozconfig.cache"',
+ 'ac_add_options --disable-install-strip',
+ 'ac_add_options --enable-instruments',
+ 'ac_add_options --enable-dtrace',
+]
+
+whitelist['nightly']['win32'] += [
+ '. $topsrcdir/configs/mozilla2/win32/include/choose-make-flags',
+ 'mk_add_options MOZ_MAKE_FLAGS=-j1',
+ '. "$topsrcdir/build/mozconfig.cache"',
+ 'if test "$IS_NIGHTLY" != ""; then',
+ 'ac_add_options --disable-auto-deps',
+ 'fi',
+]
+whitelist['nightly']['win64'] += [
+ '. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"',
+ '. "$topsrcdir/build/mozconfig.cache"',
+]
+
+for platform in all_platforms:
+ whitelist['release'][platform] = [
+ 'ac_add_options --enable-update-channel=release',
+ 'ac_add_options --enable-official-branding',
+ 'mk_add_options MOZ_MAKE_FLAGS="-j4"',
+ 'export BUILDING_RELEASE=1',
+ 'if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then',
+ 'MOZ_AUTOMATION_UPLOAD_SYMBOLS=1',
+ 'MOZ_AUTOMATION_UPDATE_PACKAGING=1',
+ 'fi',
+ 'MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}',
+ ]
+whitelist['release']['win32'] += ['mk_add_options MOZ_PGO=1']
+whitelist['release']['win64'] += ['mk_add_options MOZ_PGO=1']
+
+whitelist['release']['linux32'] += [
+ 'export MOZILLA_OFFICIAL=1',
+ 'export MOZ_TELEMETRY_REPORTING=1',
+ 'mk_add_options MOZ_PGO=1',
+ "mk_add_options PROFILE_GEN_SCRIPT='$(PYTHON) @MOZ_OBJDIR@/_profile/pgo/profileserver.py 10'",
+]
+whitelist['release']['linux64'] += [
+ 'export MOZILLA_OFFICIAL=1',
+ 'export MOZ_TELEMETRY_REPORTING=1',
+ 'mk_add_options MOZ_PGO=1',
+ "mk_add_options PROFILE_GEN_SCRIPT='$(PYTHON) @MOZ_OBJDIR@/_profile/pgo/profileserver.py 10'",
+]
+
+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 000000000..d84c1f5e4
--- /dev/null
+++ b/browser/config/mozconfigs/win32/add-on-devel
@@ -0,0 +1,9 @@
+. $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/artifact b/browser/config/mozconfigs/win32/artifact
new file mode 100644
index 000000000..888c99668
--- /dev/null
+++ b/browser/config/mozconfigs/win32/artifact
@@ -0,0 +1,10 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/build/win32/mozconfig.vs-latest"
+. "$topsrcdir/build/mozconfig.common.override"
+
+ac_add_options --enable-artifact-builds
+ac_add_options --enable-artifact-build-symbols
diff --git a/browser/config/mozconfigs/win32/beta b/browser/config/mozconfigs/win32/beta
new file mode 100644
index 000000000..cc14d6800
--- /dev/null
+++ b/browser/config/mozconfigs/win32/beta
@@ -0,0 +1,18 @@
+MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
+
+if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
+ MOZ_AUTOMATION_UPLOAD_SYMBOLS=1
+ MOZ_AUTOMATION_UPDATE_PACKAGING=1
+fi
+
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/win32/common-opt"
+
+mk_add_options MOZ_PGO=1
+
+ac_add_options --enable-official-branding
+ac_add_options --enable-verify-mar
+
+. "$topsrcdir/build/mozconfig.rust"
+
+. "$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 000000000..d43a9878b
--- /dev/null
+++ b/browser/config/mozconfigs/win32/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}
+ac_add_options --enable-jemalloc
+ac_add_options --enable-require-all-d3dc-versions
+
+if [ -f /c/builds/gapi.data ]; then
+ _gapi_keyfile=c:/builds/gapi.data
+else
+ _gapi_keyfile=e:/builds/gapi.data
+fi
+ac_add_options --with-google-api-keyfile=${_gapi_keyfile}
+
+ac_add_options --with-mozilla-api-keyfile=c:/builds/mozilla-desktop-geoloc-api.key
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+export MOZ_TELEMETRY_REPORTING=1
+
+. $topsrcdir/build/win32/mozconfig.vs-latest
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
diff --git a/browser/config/mozconfigs/win32/debug b/browser/config/mozconfigs/win32/debug
new file mode 100644
index 000000000..6beee93c2
--- /dev/null
+++ b/browser/config/mozconfigs/win32/debug
@@ -0,0 +1,27 @@
+. "$topsrcdir/build/mozconfig.win-common"
+MOZ_AUTOMATION_L10N_CHECK=0
+. "$topsrcdir/browser/config/mozconfigs/common"
+
+ac_add_options --enable-debug
+ac_add_options --enable-dmd
+ac_add_options --enable-profiling # needed for --enable-dmd to work on Windows
+ac_add_options --enable-verify-mar
+ac_add_options --enable-require-all-d3dc-versions
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+# Enable Telemetry
+export MOZ_TELEMETRY_REPORTING=1
+
+. $topsrcdir/build/win32/mozconfig.vs-latest
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.rust"
+
+. "$topsrcdir/build/mozconfig.common.override"
+. "$topsrcdir/build/mozconfig.cache"
diff --git a/browser/config/mozconfigs/win32/debug-artifact b/browser/config/mozconfigs/win32/debug-artifact
new file mode 100644
index 000000000..5a31b8b3e
--- /dev/null
+++ b/browser/config/mozconfigs/win32/debug-artifact
@@ -0,0 +1,12 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/build/win32/mozconfig.vs-latest"
+. "$topsrcdir/build/mozconfig.common.override"
+
+ac_add_options --enable-artifact-builds
+ac_add_options --enable-artifact-build-symbols
+
+ac_add_options --enable-debug
diff --git a/browser/config/mozconfigs/win32/debug-static-analysis b/browser/config/mozconfigs/win32/debug-static-analysis
new file mode 100644
index 000000000..efc0820b5
--- /dev/null
+++ b/browser/config/mozconfigs/win32/debug-static-analysis
@@ -0,0 +1,19 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_PACKAGE_TESTS=0
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/common"
+
+ac_add_options --enable-debug
+ac_add_options --enable-dmd
+
+ac_add_options --enable-clang-plugin
+
+. $topsrcdir/build/win32/mozconfig.vs-latest
+
+. "$topsrcdir/build/mozconfig.rust"
+
+. "$topsrcdir/build/mozconfig.common.override"
+. "$topsrcdir/build/mozconfig.cache"
+. "$topsrcdir/build/mozconfig.clang-cl"
diff --git a/browser/config/mozconfigs/win32/l10n-mozconfig b/browser/config/mozconfigs/win32/l10n-mozconfig
new file mode 100644
index 000000000..d05067e03
--- /dev/null
+++ b/browser/config/mozconfigs/win32/l10n-mozconfig
@@ -0,0 +1,19 @@
+. "$topsrcdir/browser/config/mozconfigs/common"
+
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --with-l10n-base=../../l10n
+ac_add_options --with-windows-version=603
+ac_add_options --enable-official-branding
+
+export MOZILLA_OFFICIAL=1
+
+# Enable Telemetry
+export MOZ_TELEMETRY_REPORTING=1
+
+# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
+# Bug 1283438
+mk_add_options AUTOCLOBBER=
+
+. $topsrcdir/build/win32/mozconfig.vs-latest
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win32/nightly b/browser/config/mozconfigs/win32/nightly
new file mode 100644
index 000000000..210004905
--- /dev/null
+++ b/browser/config/mozconfigs/win32/nightly
@@ -0,0 +1,12 @@
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/win32/common-opt"
+
+
+ac_add_options --enable-verify-mar
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.rust"
+
+. "$topsrcdir/build/mozconfig.common.override"
+. "$topsrcdir/build/mozconfig.cache"
diff --git a/browser/config/mozconfigs/win32/release b/browser/config/mozconfigs/win32/release
new file mode 100644
index 000000000..daaa45f89
--- /dev/null
+++ b/browser/config/mozconfigs/win32/release
@@ -0,0 +1,24 @@
+# This make file should be identical to the beta mozconfig, apart from the
+# safeguard below
+MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
+
+if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
+ MOZ_AUTOMATION_UPLOAD_SYMBOLS=1
+ MOZ_AUTOMATION_UPDATE_PACKAGING=1
+fi
+
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/win32/common-opt"
+
+mk_add_options MOZ_PGO=1
+
+ac_add_options --enable-official-branding
+ac_add_options --enable-verify-mar
+
+# 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.rust"
+
+. "$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 000000000..47d0bf589
--- /dev/null
+++ b/browser/config/mozconfigs/win64/add-on-devel
@@ -0,0 +1,9 @@
+. $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/artifact b/browser/config/mozconfigs/win64/artifact
new file mode 100644
index 000000000..ce6969667
--- /dev/null
+++ b/browser/config/mozconfigs/win64/artifact
@@ -0,0 +1,11 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/build/win64/mozconfig.vs-latest"
+. "$topsrcdir/build/mozconfig.common.override"
+
+ac_add_options --enable-artifact-builds
+ac_add_options --enable-artifact-build-symbols
diff --git a/browser/config/mozconfigs/win64/beta b/browser/config/mozconfigs/win64/beta
new file mode 100644
index 000000000..6fc4ebe36
--- /dev/null
+++ b/browser/config/mozconfigs/win64/beta
@@ -0,0 +1,19 @@
+MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
+
+if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
+ MOZ_AUTOMATION_UPLOAD_SYMBOLS=1
+ MOZ_AUTOMATION_UPDATE_PACKAGING=1
+fi
+
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-opt"
+
+mk_add_options MOZ_PGO=1
+
+ac_add_options --enable-official-branding
+ac_add_options --enable-verify-mar
+
+. "$topsrcdir/build/mozconfig.rust"
+
+. "$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 000000000..40fba7f76
--- /dev/null
+++ b/browser/config/mozconfigs/win64/common-opt
@@ -0,0 +1,24 @@
+# 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}
+ac_add_options --enable-jemalloc
+if [ -f /c/builds/gapi.data ]; then
+ _gapi_keyfile=c:/builds/gapi.data
+else
+ _gapi_keyfile=e:/builds/gapi.data
+fi
+ac_add_options --with-google-api-keyfile=${_gapi_keyfile}
+
+ac_add_options --with-mozilla-api-keyfile=c:/builds/mozilla-desktop-geoloc-api.key
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+export MOZ_TELEMETRY_REPORTING=1
+
+. $topsrcdir/build/win64/mozconfig.vs-latest
+
+# 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 000000000..8f167cad1
--- /dev/null
+++ b/browser/config/mozconfigs/win64/common-win64
@@ -0,0 +1,5 @@
+# This file is used by all Win64 builds
+
+ac_add_options --target=x86_64-pc-mingw32
+ac_add_options --host=x86_64-pc-mingw32
+
diff --git a/browser/config/mozconfigs/win64/debug b/browser/config/mozconfigs/win64/debug
new file mode 100644
index 000000000..db4eb5940
--- /dev/null
+++ b/browser/config/mozconfigs/win64/debug
@@ -0,0 +1,29 @@
+. "$topsrcdir/build/mozconfig.win-common"
+MOZ_AUTOMATION_L10N_CHECK=0
+. "$topsrcdir/browser/config/mozconfigs/common"
+
+ac_add_options --target=x86_64-pc-mingw32
+ac_add_options --host=x86_64-pc-mingw32
+
+ac_add_options --enable-debug
+ac_add_options --enable-dmd
+ac_add_options --enable-profiling # needed for --enable-dmd to work on Windows
+ac_add_options --enable-verify-mar
+
+# Needed to enable breakpad in application.ini
+export MOZILLA_OFFICIAL=1
+
+# Enable Telemetry
+export MOZ_TELEMETRY_REPORTING=1
+
+# Package js shell.
+export MOZ_PACKAGE_JSSHELL=1
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. $topsrcdir/build/win64/mozconfig.vs-latest
+
+. "$topsrcdir/build/mozconfig.rust"
+
+. "$topsrcdir/build/mozconfig.common.override"
+. "$topsrcdir/build/mozconfig.cache"
diff --git a/browser/config/mozconfigs/win64/debug-artifact b/browser/config/mozconfigs/win64/debug-artifact
new file mode 100644
index 000000000..bbba268fb
--- /dev/null
+++ b/browser/config/mozconfigs/win64/debug-artifact
@@ -0,0 +1,13 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/build/win64/mozconfig.vs-latest"
+. "$topsrcdir/build/mozconfig.common.override"
+
+ac_add_options --enable-artifact-builds
+ac_add_options --enable-artifact-build-symbols
+
+ac_add_options --enable-debug
diff --git a/browser/config/mozconfigs/win64/l10n-mozconfig b/browser/config/mozconfigs/win64/l10n-mozconfig
new file mode 100644
index 000000000..3b9b4af1c
--- /dev/null
+++ b/browser/config/mozconfigs/win64/l10n-mozconfig
@@ -0,0 +1,20 @@
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"
+
+ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
+ac_add_options --with-l10n-base=../../l10n
+ac_add_options --with-windows-version=603
+ac_add_options --enable-official-branding
+
+export MOZILLA_OFFICIAL=1
+
+# Enable Telemetry
+export MOZ_TELEMETRY_REPORTING=1
+
+# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
+# Bug 1283438
+mk_add_options AUTOCLOBBER=
+
+. $topsrcdir/build/win64/mozconfig.vs-latest
+
+. "$topsrcdir/build/mozconfig.common.override"
diff --git a/browser/config/mozconfigs/win64/nightly b/browser/config/mozconfigs/win64/nightly
new file mode 100644
index 000000000..aee22f1c0
--- /dev/null
+++ b/browser/config/mozconfigs/win64/nightly
@@ -0,0 +1,13 @@
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-opt"
+
+
+ac_add_options --enable-verify-mar
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.rust"
+
+. "$topsrcdir/build/mozconfig.common.override"
+. "$topsrcdir/build/mozconfig.cache"
diff --git a/browser/config/mozconfigs/win64/release b/browser/config/mozconfigs/win64/release
new file mode 100644
index 000000000..62e83205f
--- /dev/null
+++ b/browser/config/mozconfigs/win64/release
@@ -0,0 +1,25 @@
+# This make file should be identical to the beta mozconfig, apart from the
+# safeguard below
+MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
+
+if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
+ MOZ_AUTOMATION_UPLOAD_SYMBOLS=1
+ MOZ_AUTOMATION_UPDATE_PACKAGING=1
+fi
+
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"
+. "$topsrcdir/browser/config/mozconfigs/win64/common-opt"
+
+mk_add_options MOZ_PGO=1
+
+ac_add_options --enable-official-branding
+ac_add_options --enable-verify-mar
+
+# 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.rust"
+
+. "$topsrcdir/build/mozconfig.common.override"