Bug 784841 - Part 18θ: Convert /toolkit f=Mossop, Ms2ger; rs=ted
authorGregory Szorc <gps@mozilla.com>
Mon, 25 Feb 2013 13:19:09 -0800
changeset 133652 02d62b51156a8bf35ef15930c05641d135899cf8
parent 133651 3cfd3750c162c81944c10c5f0c4c54c32b9a8674
child 133653 0e42b9f6b7d3d978949935164a9e7424c6d418ae
push id2452
push userlsblakk@mozilla.com
push dateMon, 13 May 2013 16:59:38 +0000
treeherdermozilla-beta@d4b152d29d8d [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersted
bugs784841
milestone22.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 784841 - Part 18θ: Convert /toolkit f=Mossop, Ms2ger; rs=ted
toolkit/Makefile.in
toolkit/components/Makefile.in
toolkit/components/aboutmemory/Makefile.in
toolkit/components/aboutmemory/moz.build
toolkit/components/aboutmemory/tests/moz.build
toolkit/components/alerts/Makefile.in
toolkit/components/alerts/mac/growl/moz.build
toolkit/components/alerts/mac/moz.build
toolkit/components/alerts/moz.build
toolkit/components/alerts/test/moz.build
toolkit/components/apppicker/moz.build
toolkit/components/autocomplete/Makefile.in
toolkit/components/autocomplete/moz.build
toolkit/components/autocomplete/tests/moz.build
toolkit/components/build/moz.build
toolkit/components/captivedetect/Makefile.in
toolkit/components/captivedetect/moz.build
toolkit/components/captivedetect/test/moz.build
toolkit/components/commandlines/Makefile.in
toolkit/components/commandlines/moz.build
toolkit/components/commandlines/test/moz.build
toolkit/components/console/Makefile.in
toolkit/components/console/moz.build
toolkit/components/console/tests/moz.build
toolkit/components/contentprefs/Makefile.in
toolkit/components/contentprefs/moz.build
toolkit/components/contentprefs/tests/moz.build
toolkit/components/cookie/moz.build
toolkit/components/ctypes/Makefile.in
toolkit/components/ctypes/moz.build
toolkit/components/ctypes/tests/moz.build
toolkit/components/downloads/Makefile.in
toolkit/components/downloads/moz.build
toolkit/components/downloads/test/Makefile.in
toolkit/components/downloads/test/browser/moz.build
toolkit/components/downloads/test/moz.build
toolkit/components/exthelper/moz.build
toolkit/components/feeds/Makefile.in
toolkit/components/feeds/moz.build
toolkit/components/feeds/test/moz.build
toolkit/components/filepicker/moz.build
toolkit/components/find/moz.build
toolkit/components/help/moz.build
toolkit/components/intl/moz.build
toolkit/components/jsdownloads/Makefile.in
toolkit/components/jsdownloads/moz.build
toolkit/components/jsdownloads/src/moz.build
toolkit/components/jsdownloads/test/Makefile.in
toolkit/components/jsdownloads/test/data/moz.build
toolkit/components/jsdownloads/test/moz.build
toolkit/components/maintenanceservice/moz.build
toolkit/components/mediasniffer/Makefile.in
toolkit/components/mediasniffer/moz.build
toolkit/components/mediasniffer/test/moz.build
toolkit/components/microformats/Makefile.in
toolkit/components/microformats/moz.build
toolkit/components/microformats/tests/moz.build
toolkit/components/moz.build
toolkit/components/osfile/Makefile.in
toolkit/components/osfile/moz.build
toolkit/components/osfile/tests/Makefile.in
toolkit/components/osfile/tests/mochi/moz.build
toolkit/components/osfile/tests/moz.build
toolkit/components/parentalcontrols/moz.build
toolkit/components/passwordmgr/Makefile.in
toolkit/components/passwordmgr/moz.build
toolkit/components/passwordmgr/test/Makefile.in
toolkit/components/passwordmgr/test/auth2/moz.build
toolkit/components/passwordmgr/test/browser/moz.build
toolkit/components/passwordmgr/test/moz.build
toolkit/components/perf/moz.build
toolkit/components/places/Makefile.in
toolkit/components/places/moz.build
toolkit/components/places/tests/Makefile.in
toolkit/components/places/tests/browser/moz.build
toolkit/components/places/tests/chrome/moz.build
toolkit/components/places/tests/cpp/moz.build
toolkit/components/places/tests/mochitest/bug_411966/moz.build
toolkit/components/places/tests/mochitest/bug_461710/moz.build
toolkit/components/places/tests/moz.build
toolkit/components/printing/moz.build
toolkit/components/prompts/Makefile.in
toolkit/components/prompts/moz.build
toolkit/components/prompts/src/moz.build
toolkit/components/prompts/test/moz.build
toolkit/components/protobuf/moz.build
toolkit/components/reflect/Makefile.in
toolkit/components/reflect/moz.build
toolkit/components/remote/moz.build
toolkit/components/satchel/Makefile.in
toolkit/components/satchel/moz.build
toolkit/components/satchel/test/Makefile.in
toolkit/components/satchel/test/browser/moz.build
toolkit/components/satchel/test/moz.build
toolkit/components/search/Makefile.in
toolkit/components/search/moz.build
toolkit/components/search/tests/moz.build
toolkit/components/social/Makefile.in
toolkit/components/social/moz.build
toolkit/components/social/test/Makefile.in
toolkit/components/social/test/browser/moz.build
toolkit/components/social/test/moz.build
toolkit/components/startup/Makefile.in
toolkit/components/startup/moz.build
toolkit/components/startup/public/moz.build
toolkit/components/startup/tests/browser/moz.build
toolkit/components/statusfilter/moz.build
toolkit/components/telemetry/Makefile.in
toolkit/components/telemetry/moz.build
toolkit/components/telemetry/tests/moz.build
toolkit/components/thumbnails/Makefile.in
toolkit/components/thumbnails/moz.build
toolkit/components/thumbnails/test/moz.build
toolkit/components/typeaheadfind/moz.build
toolkit/components/url-classifier/Makefile.in
toolkit/components/url-classifier/moz.build
toolkit/components/url-classifier/tests/Makefile.in
toolkit/components/url-classifier/tests/mochitest/moz.build
toolkit/components/url-classifier/tests/moz.build
toolkit/components/urlformatter/Makefile.in
toolkit/components/urlformatter/moz.build
toolkit/components/urlformatter/tests/moz.build
toolkit/components/viewconfig/moz.build
toolkit/components/viewsource/Makefile.in
toolkit/components/viewsource/moz.build
toolkit/components/viewsource/test/Makefile.in
toolkit/components/viewsource/test/browser/moz.build
toolkit/components/viewsource/test/moz.build
toolkit/content/Makefile.in
toolkit/content/moz.build
toolkit/content/tests/Makefile.in
toolkit/content/tests/browser/Makefile.in
toolkit/content/tests/browser/common/moz.build
toolkit/content/tests/browser/data/moz.build
toolkit/content/tests/browser/moz.build
toolkit/content/tests/chrome/Makefile.in
toolkit/content/tests/chrome/moz.build
toolkit/content/tests/chrome/rtlchrome/moz.build
toolkit/content/tests/chrome/rtltest/moz.build
toolkit/content/tests/moz.build
toolkit/content/tests/widgets/moz.build
toolkit/crashreporter/Makefile.in
toolkit/crashreporter/breakpad-windows-libxul/moz.build
toolkit/crashreporter/breakpad-windows-standalone/moz.build
toolkit/crashreporter/client/moz.build
toolkit/crashreporter/fileid/moz.build
toolkit/crashreporter/google-breakpad/moz.build
toolkit/crashreporter/google-breakpad/src/client/linux/crash_generation/moz.build
toolkit/crashreporter/google-breakpad/src/client/linux/handler/moz.build
toolkit/crashreporter/google-breakpad/src/client/linux/minidump_writer/moz.build
toolkit/crashreporter/google-breakpad/src/client/mac/crash_generation/moz.build
toolkit/crashreporter/google-breakpad/src/client/mac/handler/moz.build
toolkit/crashreporter/google-breakpad/src/client/moz.build
toolkit/crashreporter/google-breakpad/src/client/solaris/handler/moz.build
toolkit/crashreporter/google-breakpad/src/common/Makefile.in
toolkit/crashreporter/google-breakpad/src/common/dwarf/moz.build
toolkit/crashreporter/google-breakpad/src/common/linux/moz.build
toolkit/crashreporter/google-breakpad/src/common/mac/moz.build
toolkit/crashreporter/google-breakpad/src/common/moz.build
toolkit/crashreporter/google-breakpad/src/common/solaris/moz.build
toolkit/crashreporter/google-breakpad/src/third_party/glog/moz.build
toolkit/crashreporter/google-breakpad/src/tools/linux/dump_syms/moz.build
toolkit/crashreporter/google-breakpad/src/tools/mac/dump_syms/moz.build
toolkit/crashreporter/google-breakpad/src/tools/solaris/dump_syms/moz.build
toolkit/crashreporter/injector/moz.build
toolkit/crashreporter/moz.build
toolkit/crashreporter/test/moz.build
toolkit/devtools/Makefile.in
toolkit/devtools/debugger/Makefile.in
toolkit/devtools/debugger/moz.build
toolkit/devtools/debugger/tests/moz.build
toolkit/devtools/moz.build
toolkit/devtools/sourcemap/Makefile.in
toolkit/devtools/sourcemap/moz.build
toolkit/devtools/sourcemap/tests/moz.build
toolkit/devtools/webconsole/Makefile.in
toolkit/devtools/webconsole/moz.build
toolkit/devtools/webconsole/test/moz.build
toolkit/forgetaboutsite/Makefile.in
toolkit/forgetaboutsite/moz.build
toolkit/forgetaboutsite/test/Makefile.in
toolkit/forgetaboutsite/test/browser/moz.build
toolkit/forgetaboutsite/test/moz.build
toolkit/identity/Makefile.in
toolkit/identity/moz.build
toolkit/identity/tests/Makefile.in
toolkit/identity/tests/chrome/moz.build
toolkit/identity/tests/mochitest/moz.build
toolkit/identity/tests/moz.build
toolkit/library/Makefile.in
toolkit/library/moz.build
toolkit/library/winvccorlib/moz.build
toolkit/locales/moz.build
toolkit/modules/Makefile.in
toolkit/modules/moz.build
toolkit/modules/tests/moz.build
toolkit/moz.build
toolkit/mozapps/downloads/Makefile.in
toolkit/mozapps/downloads/moz.build
toolkit/mozapps/downloads/tests/Makefile.in
toolkit/mozapps/downloads/tests/chrome/moz.build
toolkit/mozapps/downloads/tests/moz.build
toolkit/mozapps/extensions/Makefile.in
toolkit/mozapps/extensions/moz.build
toolkit/mozapps/extensions/test/Makefile.in
toolkit/mozapps/extensions/test/browser/moz.build
toolkit/mozapps/extensions/test/mochitest/moz.build
toolkit/mozapps/extensions/test/moz.build
toolkit/mozapps/extensions/test/xpinstall/moz.build
toolkit/mozapps/handling/moz.build
toolkit/mozapps/plugins/Makefile.in
toolkit/mozapps/plugins/moz.build
toolkit/mozapps/plugins/tests/moz.build
toolkit/mozapps/preferences/moz.build
toolkit/mozapps/shared/Makefile.in
toolkit/mozapps/shared/moz.build
toolkit/mozapps/shared/test/chrome/moz.build
toolkit/mozapps/update/Makefile.in
toolkit/mozapps/update/common/moz.build
toolkit/mozapps/update/moz.build
toolkit/mozapps/update/test/Makefile.in
toolkit/mozapps/update/test/chrome/moz.build
toolkit/mozapps/update/test/moz.build
toolkit/mozapps/update/test_svc/moz.build
toolkit/mozapps/update/test_timermanager/moz.build
toolkit/mozapps/update/updater/moz.build
toolkit/obsolete/moz.build
toolkit/profile/Makefile.in
toolkit/profile/moz.build
toolkit/profile/test/moz.build
toolkit/system/androidproxy/moz.build
toolkit/system/dbus/moz.build
toolkit/system/gnome/moz.build
toolkit/system/osxproxy/moz.build
toolkit/system/unixproxy/moz.build
toolkit/system/windowsproxy/moz.build
toolkit/themes/Makefile.in
toolkit/themes/faststripe/global/moz.build
toolkit/themes/linux/Makefile.in
toolkit/themes/linux/global/moz.build
toolkit/themes/linux/help/moz.build
toolkit/themes/linux/moz.build
toolkit/themes/linux/mozapps/moz.build
toolkit/themes/moz.build
toolkit/themes/os2/global/moz.build
toolkit/themes/osx/Makefile.in
toolkit/themes/osx/global/moz.build
toolkit/themes/osx/help/moz.build
toolkit/themes/osx/mochitests/moz.build
toolkit/themes/osx/moz.build
toolkit/themes/osx/mozapps/moz.build
toolkit/themes/windows/Makefile.in
toolkit/themes/windows/global/moz.build
toolkit/themes/windows/help/moz.build
toolkit/themes/windows/moz.build
toolkit/themes/windows/mozapps/moz.build
toolkit/toolkit.mozbuild
toolkit/webapps/moz.build
toolkit/xre/Makefile.in
toolkit/xre/moz.build
toolkit/xre/test/Makefile.in
toolkit/xre/test/moz.build
toolkit/xre/test/win/moz.build
--- a/toolkit/Makefile.in
+++ b/toolkit/Makefile.in
@@ -4,66 +4,12 @@
 
 DEPTH     = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH     = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-PARALLEL_DIRS = \
-  components \
-  content \
-  devtools \
-  forgetaboutsite \
-  identity \
-  locales \
-  modules \
-  mozapps/downloads \
-  mozapps/extensions \
-  mozapps/handling \
-  mozapps/preferences \
-  mozapps/plugins \
-  mozapps/shared \
-  obsolete \
-  profile \
-  themes \
-  webapps \
-  $(NULL)
-
-DIRS += \
-  mozapps/update \
-  $(NULL)
-
-ifdef MOZ_MAINTENANCE_SERVICE
-DIRS += \
-  components/maintenanceservice \
-  $(NULL)
-endif
-
-ifneq (,$(filter gtk2 qt,$(MOZ_WIDGET_TOOLKIT)))
-PARALLEL_DIRS += system/unixproxy
-endif
-
-ifneq (,$(filter cocoa,$(MOZ_WIDGET_TOOLKIT)))
-PARALLEL_DIRS += system/osxproxy
-endif
-
-ifneq (,$(filter windows,$(MOZ_WIDGET_TOOLKIT)))
-PARALLEL_DIRS += system/windowsproxy
-endif
-
-ifneq (,$(filter android,$(MOZ_WIDGET_TOOLKIT)))
-PARALLEL_DIRS += system/androidproxy
-endif
-
-ifdef MOZ_CRASHREPORTER
-PARALLEL_DIRS += crashreporter
-endif
-
-DIRS += \
-  xre \
-  $(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
 export::
 	@$(MAKE) -C xre export
--- a/toolkit/components/Makefile.in
+++ b/toolkit/components/Makefile.in
@@ -4,99 +4,14 @@
 
 DEPTH     = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH     = @srcdir@
 
 include $(topsrcdir)/config/config.mk
 
-# These component dirs are built for all apps (including suite)
-
-ifdef MOZ_ENABLE_XREMOTE
-PARALLEL_DIRS += remote
-endif
-
-PARALLEL_DIRS += \
-  aboutmemory \
-  alerts \
-  apppicker \
-  commandlines \
-  console \
-  contentprefs \
-  cookie \
-  downloads \
-  exthelper \
-  filepicker \
-  find \
-  intl \
-  mediasniffer \
-  microformats \
-  osfile \
-  parentalcontrols \
-  passwordmgr \
-  perf \
-  places \
-  prompts \
-  protobuf \
-  reflect \
-  social \
-  startup \
-  statusfilter \
-  telemetry \
-  thumbnails \
-  typeaheadfind \
-  urlformatter \
-  viewconfig \
-  viewsource \
-  $(NULL)
-
-ifdef BUILD_CTYPES
-PARALLEL_DIRS += \
-  ctypes \
-  $(NULL)
-endif
-
-ifdef MOZ_FEEDS
-PARALLEL_DIRS += feeds
-endif
-
-ifdef MOZ_HELP_VIEWER
-PARALLEL_DIRS += help
-endif
-
-ifdef MOZ_JSDOWNLOADS
-PARALLEL_DIRS += jsdownloads
-endif
-
-ifdef NS_PRINTING
-PARALLEL_DIRS += printing
-endif
-
-ifdef MOZ_XUL
-PARALLEL_DIRS += \
-  autocomplete \
-  satchel \
-  $(NULL)
-endif
-
-ifdef MOZ_TOOLKIT_SEARCH
-PARALLEL_DIRS += search
-endif
-
-ifdef MOZ_URL_CLASSIFIER
-PARALLEL_DIRS += url-classifier
-endif
-
-ifdef MOZ_CAPTIVEDETECT
-PARALLEL_DIRS += captivedetect
-endif
-
-DIRS += \
-  build \
-  $(NULL)
-
 EXTRA_COMPONENTS = \
   nsDefaultCLH.manifest \
   nsDefaultCLH.js \
   $(NULL)
 
 include $(topsrcdir)/config/rules.mk
--- a/toolkit/components/aboutmemory/Makefile.in
+++ b/toolkit/components/aboutmemory/Makefile.in
@@ -4,11 +4,9 @@
 
 DEPTH		= @DEPTH@
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-TEST_DIRS = tests
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/aboutmemory/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['tests']
new file mode 100644
--- /dev/null
+++ b/toolkit/components/aboutmemory/tests/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/alerts/Makefile.in
+++ b/toolkit/components/alerts/Makefile.in
@@ -1,9 +1,8 @@
-#
 # 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/.
 
 DEPTH = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir = @srcdir@
 VPATH = @srcdir@
@@ -18,21 +17,14 @@ FORCE_STATIC_LIB = 1
 LIBXUL_LIBRARY = 1
 CPPSRCS = \
   nsAlertsService.cpp \
   $(NULL)
 LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/components/build/
 
 ifneq (,$(filter cocoa, $(MOZ_WIDGET_TOOLKIT)))
 XPIDLSRCS += nsINotificationsList.idl
-# mac/growl needs to be first for linking to work!
-TOOL_DIRS += \
-  mac/growl \
-  mac \
-  $(NULL)
 endif
 
-TEST_DIRS += test
-
 include $(topsrcdir)/config/config.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
 
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/alerts/mac/growl/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/alerts/mac/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/alerts/moz.build
@@ -0,0 +1,10 @@
+# vim: set filetype=python:
+# 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/.
+
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
+    # mac/growl needs to be first for linking to work!
+    TOOL_DIRS += ['mac/growl', 'mac']
+
+TEST_DIRS += ['test']
new file mode 100644
--- /dev/null
+++ b/toolkit/components/alerts/test/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/apppicker/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/autocomplete/Makefile.in
+++ b/toolkit/components/autocomplete/Makefile.in
@@ -27,11 +27,9 @@ XPIDLSRCS = \
   nsIAutoCompleteSimpleResult.idl \
   $(NULL)
 
 CPPSRCS = \
   nsAutoCompleteController.cpp \
   nsAutoCompleteSimpleResult.cpp \
   $(NULL)
 
-TEST_DIRS += tests
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/autocomplete/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['tests']
new file mode 100644
--- /dev/null
+++ b/toolkit/components/autocomplete/tests/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/build/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/captivedetect/Makefile.in
+++ b/toolkit/components/captivedetect/Makefile.in
@@ -15,11 +15,9 @@ XPIDLSRCS = \
   nsICaptivePortalDetector.idl \
   $(NULL)
 
 EXTRA_COMPONENTS = \
   CaptivePortalDetectComponents.manifest \
   captivedetect.js \
   $(NULL)
 
-TEST_DIRS += test
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/captivedetect/moz.build
@@ -0,0 +1,7 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['test']
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/captivedetect/test/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/commandlines/Makefile.in
+++ b/toolkit/components/commandlines/Makefile.in
@@ -24,11 +24,9 @@ XPIDLSRCS = \
   nsICommandLineRunner.idl \
   nsICommandLineValidator.idl \
   $(NULL)
 
 CPPSRCS = \
   nsCommandLine.cpp \
   $(NULL)
 
-TEST_DIRS += test
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/commandlines/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['test']
new file mode 100644
--- /dev/null
+++ b/toolkit/components/commandlines/test/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/console/Makefile.in
+++ b/toolkit/components/console/Makefile.in
@@ -10,11 +10,9 @@ VPATH     = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 EXTRA_COMPONENTS = \
   jsconsole-clhandler.js \
   jsconsole-clhandler.manifest \
   $(NULL)
 
-TEST_DIRS = tests
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/console/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['tests']
new file mode 100644
--- /dev/null
+++ b/toolkit/components/console/tests/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/contentprefs/Makefile.in
+++ b/toolkit/components/contentprefs/Makefile.in
@@ -17,11 +17,9 @@ EXTRA_COMPONENTS = \
   $(NULL)
 
 EXTRA_JS_MODULES = \
   ContentPrefInstance.jsm \
   ContentPrefService2.jsm \
   ContentPrefStore.jsm \
   $(NULL)
 
-TEST_DIRS += tests
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/contentprefs/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['tests']
new file mode 100644
--- /dev/null
+++ b/toolkit/components/contentprefs/tests/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/cookie/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/ctypes/Makefile.in
+++ b/toolkit/components/ctypes/Makefile.in
@@ -25,11 +25,9 @@ IS_COMPONENT = 1
 CPPSRCS = \
     ctypes.cpp \
     $(NULL)
 
 LOCAL_INCLUDES := \
   -I$(topsrcdir)/js/xpconnect/loader \
   $(NULL)
 
-TEST_DIRS += tests
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/ctypes/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['tests']
new file mode 100644
--- /dev/null
+++ b/toolkit/components/ctypes/tests/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/downloads/Makefile.in
+++ b/toolkit/components/downloads/Makefile.in
@@ -38,13 +38,11 @@ ifndef MOZ_SUITE
 # XXX - Until Suite builds off XULRunner we can't guarantee our implementation
 # of nsIDownloadManagerUI overrides toolkit's.
 EXTRA_COMPONENTS = \
   nsDownloadManagerUI.js \
   nsDownloadManagerUI.manifest \
   $(NULL)
 endif
 
-TEST_DIRS += test
-
 include $(topsrcdir)/config/rules.mk
 
 CXXFLAGS += $(TK_CFLAGS)
new file mode 100644
--- /dev/null
+++ b/toolkit/components/downloads/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['test']
--- a/toolkit/components/downloads/test/Makefile.in
+++ b/toolkit/components/downloads/test/Makefile.in
@@ -13,14 +13,10 @@ include $(DEPTH)/config/autoconf.mk
 
 MODULE = test_dm
 
 XPCSHELL_TESTS = \
   unit \
   schema_migration \
   $(NULL)
 
-DIRS = \
-  browser \
-  $(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
new file mode 100644
--- /dev/null
+++ b/toolkit/components/downloads/test/browser/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/downloads/test/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['browser']
new file mode 100644
--- /dev/null
+++ b/toolkit/components/exthelper/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/feeds/Makefile.in
+++ b/toolkit/components/feeds/Makefile.in
@@ -5,20 +5,16 @@
 
 DEPTH = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir = @srcdir@
 VPATH = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-ifdef ENABLE_TESTS
-TOOL_DIRS += test
-endif
-
 MODULE = feeds
 LIBRARY_NAME = feed_s
 MOZILLA_INTERNAL_API = 1
 FORCE_STATIC_LIB = 1
 LIBXUL_LIBRARY = 1
 
 XPIDLSRCS = \
   nsIFeed.idl \
new file mode 100644
--- /dev/null
+++ b/toolkit/components/feeds/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['test']
new file mode 100644
--- /dev/null
+++ b/toolkit/components/feeds/test/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/filepicker/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/find/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/help/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/intl/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/jsdownloads/Makefile.in
+++ b/toolkit/components/jsdownloads/Makefile.in
@@ -4,13 +4,10 @@
 
 DEPTH     = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH     = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-DIRS = src
+include $(topsrcdir)/config/rules.mk
 
-TEST_DIRS += test
-
-include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/jsdownloads/moz.build
@@ -0,0 +1,8 @@
+# vim: set filetype=python:
+# 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/.
+
+DIRS += ['src']
+TEST_DIRS += ['test']
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/jsdownloads/src/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/jsdownloads/test/Makefile.in
+++ b/toolkit/components/jsdownloads/test/Makefile.in
@@ -5,13 +5,11 @@ DEPTH     = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH     = @srcdir@
 
 relativesrcdir = @relativesrcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-DIRS = data
-
 XPCSHELL_TESTS = unit
 
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/jsdownloads/test/data/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/jsdownloads/test/moz.build
@@ -0,0 +1,7 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['data']
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/maintenanceservice/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/mediasniffer/Makefile.in
+++ b/toolkit/components/mediasniffer/Makefile.in
@@ -21,12 +21,10 @@ CPPSRCS = \
     nsMediaSniffer.cpp \
     nsMediaSnifferModule.cpp \
     $(NULL)
 
 EXPORTS = \
     nsMediaSniffer.h \
     $(NULL)
 
-TEST_DIRS += test
-
 include $(topsrcdir)/config/config.mk
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/mediasniffer/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['test']
new file mode 100644
--- /dev/null
+++ b/toolkit/components/mediasniffer/test/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/microformats/Makefile.in
+++ b/toolkit/components/microformats/Makefile.in
@@ -8,11 +8,9 @@ srcdir    = @srcdir@
 VPATH     = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 MODULE = microformats
 
 EXTRA_JS_MODULES = Microformats.js
 
-TEST_DIRS += tests
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/microformats/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['tests']
new file mode 100644
--- /dev/null
+++ b/toolkit/components/microformats/tests/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/moz.build
@@ -0,0 +1,71 @@
+# vim: set filetype=python:
+# 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/.
+
+# These component dirs are built for all apps (including suite)
+if CONFIG['MOZ_ENABLE_XREMOTE']:
+    PARALLEL_DIRS += ['remote']
+
+PARALLEL_DIRS += [
+    'aboutmemory',
+    'alerts',
+    'apppicker',
+    'commandlines',
+    'console',
+    'contentprefs',
+    'cookie',
+    'downloads',
+    'exthelper',
+    'filepicker',
+    'find',
+    'intl',
+    'mediasniffer',
+    'microformats',
+    'osfile',
+    'parentalcontrols',
+    'passwordmgr',
+    'perf',
+    'places',
+    'prompts',
+    'protobuf',
+    'reflect',
+    'social',
+    'startup',
+    'statusfilter',
+    'telemetry',
+    'thumbnails',
+    'typeaheadfind',
+    'urlformatter',
+    'viewconfig',
+    'viewsource',
+]
+
+if CONFIG['BUILD_CTYPES']:
+    PARALLEL_DIRS += ['ctypes']
+
+if CONFIG['MOZ_FEEDS']:
+    PARALLEL_DIRS += ['feeds']
+
+if CONFIG['MOZ_HELP_VIEWER']:
+    PARALLEL_DIRS += ['help']
+
+if CONFIG['MOZ_JSDOWNLOADS']:
+    PARALLEL_DIRS += ['jsdownloads']
+
+if CONFIG['NS_PRINTING']:
+    PARALLEL_DIRS += ['printing']
+
+if CONFIG['MOZ_XUL']:
+    PARALLEL_DIRS += ['autocomplete', 'satchel']
+
+if CONFIG['MOZ_TOOLKIT_SEARCH']:
+    PARALLEL_DIRS += ['search']
+
+if CONFIG['MOZ_URL_CLASSIFIER']:
+    PARALLEL_DIRS += ['url-classifier']
+
+if CONFIG['MOZ_CAPTIVEDETECT']:
+    PARALLEL_DIRS += ['captivedetect']
+
+DIRS += ['build']
--- a/toolkit/components/osfile/Makefile.in
+++ b/toolkit/components/osfile/Makefile.in
@@ -1,9 +1,8 @@
-# ***** BEGIN LICENSE BLOCK *****
 # 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/.
 
 DEPTH     = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH     = @srcdir@
@@ -14,20 +13,16 @@ MODULE          = osfile
 LIBRARY_NAME    = osfile_s
 LIBXUL_LIBRARY  = 1
 FORCE_STATIC_LIB = 1
 
 EXTRA_PP_JS_MODULES = \
    osfile.jsm \
    $(NULL)
 
-ifdef ENABLE_TESTS
-DIRS += tests
-endif
-
 include $(topsrcdir)/config/rules.mk
 
 libs::
 	$(NSINSTALL) $(srcdir)/osfile_shared_allthreads.jsm $(FINAL_TARGET)/modules/osfile
 	$(NSINSTALL) $(srcdir)/osfile_unix_allthreads.jsm $(FINAL_TARGET)/modules/osfile
 	$(NSINSTALL) $(srcdir)/osfile_unix_back.jsm $(FINAL_TARGET)/modules/osfile
 	$(NSINSTALL) $(srcdir)/ospath_unix_back.jsm $(FINAL_TARGET)/modules/osfile
 	$(NSINSTALL) $(srcdir)/osfile_unix_front.jsm $(FINAL_TARGET)/modules/osfile
new file mode 100644
--- /dev/null
+++ b/toolkit/components/osfile/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['tests']
--- a/toolkit/components/osfile/tests/Makefile.in
+++ b/toolkit/components/osfile/tests/Makefile.in
@@ -4,14 +4,13 @@
 
 DEPTH            = @DEPTH@
 topsrcdir        = @top_srcdir@
 srcdir           = @srcdir@
 VPATH            = @srcdir@
 relativesrcdir   = @relativesrcdir@
 
 MODULE           = test_osfile
-DIRS = mochi
 
 XPCSHELL_TESTS = xpcshell
 
 include $(DEPTH)/config/autoconf.mk
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/osfile/tests/mochi/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/osfile/tests/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['mochi']
new file mode 100644
--- /dev/null
+++ b/toolkit/components/parentalcontrols/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/passwordmgr/Makefile.in
+++ b/toolkit/components/passwordmgr/Makefile.in
@@ -29,11 +29,9 @@ EXTRA_COMPONENTS = \
   passwordmgr.manifest \
   storage-Legacy.js \
   $(NULL)
 
 EXTRA_PP_COMPONENTS = \
   storage-mozStorage.js \
   $(NULL)
 
-TEST_DIRS += test
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/passwordmgr/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['test']
--- a/toolkit/components/passwordmgr/test/Makefile.in
+++ b/toolkit/components/passwordmgr/test/Makefile.in
@@ -6,21 +6,16 @@
 DEPTH          = @DEPTH@
 topsrcdir      = @top_srcdir@
 srcdir         = @srcdir@
 VPATH          = @srcdir@
 relativesrcdir = @relativesrcdir@
 
 include $(topsrcdir)/config/config.mk
 
-DIRS = \
-    browser \
-    auth2 \
-    $(NULL)
-
 # Module name for xpcshell tests.
 MODULE = test_passwordmgr
 XPCSHELL_TESTS = unit
 
 # Mochitest tests
 MOCHITEST_FILES = \
     test_basic_form.html \
     test_basic_form_html5.html \
new file mode 100644
--- /dev/null
+++ b/toolkit/components/passwordmgr/test/auth2/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/passwordmgr/test/browser/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/passwordmgr/test/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['browser', 'auth2']
new file mode 100644
--- /dev/null
+++ b/toolkit/components/perf/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/places/Makefile.in
+++ b/toolkit/components/places/Makefile.in
@@ -1,9 +1,8 @@
-#
 # 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/.
 
 DEPTH = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir = @srcdir@
 VPATH = @srcdir@
@@ -87,16 +86,14 @@ EXTRA_JS_MODULES = \
   ClusterLib.js \
   $(NULL)
 
 EXTRA_PP_JS_MODULES = \
   BookmarkHTMLUtils.jsm \
   PlacesUtils.jsm \
   $(NULL)
 
-TEST_DIRS += tests
-
 include $(topsrcdir)/config/config.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
 
 endif
 
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/places/moz.build
@@ -0,0 +1,7 @@
+# vim: set filetype=python:
+# 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/.
+
+if CONFIG['MOZ_PLACES']:
+    TEST_DIRS += ['tests']
--- a/toolkit/components/places/tests/Makefile.in
+++ b/toolkit/components/places/tests/Makefile.in
@@ -1,9 +1,8 @@
-#
 # 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/.
 
 DEPTH		= @DEPTH@
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
@@ -36,23 +35,12 @@ MOCHITEST_FILES = \
 	mochitest/test_bug_94514.html \
 	mochitest/bug94514-postpage.html \
 	$(NULL)
 
 MOCHITEST_CHROME_FILES = \
 	mochitest/test_bug_461710_perwindowpb.html \
 	$(NULL)
 
-DIRS = \
-	chrome \
-	mochitest/bug_411966 \
-	mochitest/bug_461710 \
-	browser \
-	$(NULL)
-
-TOOL_DIRS = \
-  cpp \
-  $(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
 libs:: $(XPCSHELL_TESTS_COMMON)
 	$(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/_tests/xpcshell/$(relativesrcdir)
new file mode 100644
--- /dev/null
+++ b/toolkit/components/places/tests/browser/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/places/tests/chrome/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/places/tests/cpp/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/places/tests/mochitest/bug_411966/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/places/tests/mochitest/bug_461710/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/places/tests/moz.build
@@ -0,0 +1,13 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += [
+    'chrome',
+    'mochitest/bug_411966',
+    'mochitest/bug_461710',
+    'browser',
+]
+
+TEST_TOOL_DIRS += ['cpp']
new file mode 100644
--- /dev/null
+++ b/toolkit/components/printing/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/prompts/Makefile.in
+++ b/toolkit/components/prompts/Makefile.in
@@ -3,14 +3,9 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DEPTH     = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH     = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
-
-DIRS = src
-
-TEST_DIRS += test
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/prompts/moz.build
@@ -0,0 +1,7 @@
+# vim: set filetype=python:
+# 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/.
+
+DIRS += ['src']
+TEST_DIRS += ['test']
new file mode 100644
--- /dev/null
+++ b/toolkit/components/prompts/src/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/prompts/test/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/protobuf/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/reflect/Makefile.in
+++ b/toolkit/components/reflect/Makefile.in
@@ -26,13 +26,9 @@ CPPSRCS = \
     reflect.cpp \
     $(NULL)
 
 EXTRA_DSO_LDOPTS += \
     $(MOZ_COMPONENT_LIBS) \
     $(MOZ_JS_LIBS) \
     $(NULL)
 
-#ifdef ENABLE_TESTS
-#DIRS += tests
-#endif
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/reflect/moz.build
@@ -0,0 +1,4 @@
+# vim: set filetype=python:
+# 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/.
new file mode 100644
--- /dev/null
+++ b/toolkit/components/remote/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/satchel/Makefile.in
+++ b/toolkit/components/satchel/Makefile.in
@@ -40,11 +40,9 @@ EXTRA_COMPONENTS = \
 EXTRA_PP_COMPONENTS = \
 	nsFormHistory.js \
 	$(NULL)
 
 EXTRA_JS_MODULES = \
   nsFormAutoCompleteResult.jsm \
   $(NULL)
 
-TEST_DIRS += test
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/satchel/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['test']
--- a/toolkit/components/satchel/test/Makefile.in
+++ b/toolkit/components/satchel/test/Makefile.in
@@ -1,25 +1,21 @@
-#
 # 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/.
 
 DEPTH   = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH   = @srcdir@
 relativesrcdir  = @relativesrcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 MODULE = test_satchel
-DIRS = \
-  browser \
-  $(NULL)
 
 XPCSHELL_TESTS = \
   unit \
   $(NULL)
 
 MOCHITEST_FILES = \
 		test_bug_511615.html \
 		test_bug_787624.html \
new file mode 100644
--- /dev/null
+++ b/toolkit/components/satchel/test/browser/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/satchel/test/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['browser']
--- a/toolkit/components/search/Makefile.in
+++ b/toolkit/components/search/Makefile.in
@@ -15,11 +15,9 @@ EXTRA_COMPONENTS = \
   $(NULL)
 
 EXTRA_PP_COMPONENTS = \
   nsSearchService.js \
   $(NULL)
 
 DEFINES += -DMOZ_DISTRIBUTION_ID=$(MOZ_DISTRIBUTION_ID)
 
-TEST_DIRS += tests
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/search/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['tests']
new file mode 100644
--- /dev/null
+++ b/toolkit/components/search/tests/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/social/Makefile.in
+++ b/toolkit/components/social/Makefile.in
@@ -13,13 +13,9 @@ EXTRA_JS_MODULES = \
   FrameWorker.jsm \
   MessagePortBase.jsm \
   MessagePortWorker.js \
   SocialService.jsm \
   WorkerAPI.jsm \
   MozSocialAPI.jsm \
   $(NULL)
 
-TEST_DIRS += \
-  test \
-  $(NULL)
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/social/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['test']
--- a/toolkit/components/social/test/Makefile.in
+++ b/toolkit/components/social/test/Makefile.in
@@ -5,17 +5,13 @@
 DEPTH          = @DEPTH@
 topsrcdir      = @top_srcdir@
 srcdir         = @srcdir@
 VPATH          = @srcdir@
 relativesrcdir = @relativesrcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-# mochitest tests
-DIRS += browser \
-	$(NULL)
-
 XPCSHELL_TESTS = \
   xpcshell \
   $(NULL)
 
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/social/test/browser/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/social/test/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['browser']
--- a/toolkit/components/startup/Makefile.in
+++ b/toolkit/components/startup/Makefile.in
@@ -5,18 +5,16 @@
 DEPTH      = @DEPTH@
 topsrcdir  = @top_srcdir@
 srcdir     = @srcdir@
 VPATH      = @srcdir@
 relativesrcdir = @relativesrcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-DIRS = public
-
 MODULE = toolkitcomps
 LIBRARY_NAME = appstartup_s
 FORCE_STATIC_LIB = 1
 LIBXUL_LIBRARY = 1
 
 CPPSRCS = \
   nsAppStartup.cpp \
   StartupTimeline.cpp \
@@ -36,11 +34,9 @@ CMMSRCS += nsUserInfoMac.mm
 else
 CPPSRCS += nsUserInfoUnix.cpp
 endif
 endif
 endif
 
 XPCSHELL_TESTS = tests/unit
 
-TEST_DIRS += tests/browser
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/startup/moz.build
@@ -0,0 +1,9 @@
+# vim: set filetype=python:
+# 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/.
+
+DIRS += ['public']
+
+TEST_DIRS += ['tests/browser']
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/startup/public/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/startup/tests/browser/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/statusfilter/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/telemetry/Makefile.in
+++ b/toolkit/components/telemetry/Makefile.in
@@ -54,18 +54,16 @@ CPPSRCS = \
 
 LOCAL_INCLUDES += -I$(topsrcdir)/xpcom/build
 
 EXTRA_DSO_LDOPTS += \
   $(MOZ_COMPONENT_LIBS) \
   $(MOZ_JS_LIBS) \
   $(NULL)
 
-TEST_DIRS += tests
-
 ifdef MOZILLA_OFFICIAL
 DEFINES += -DMOZILLA_OFFICIAL
 endif
 
 MOZ_HISTOGRAMS_VERSION ?= $(call getSourceRepo)/rev/$(firstword $(shell hg -R $(topsrcdir) parent --template="{node|short}\n" 2>/dev/null))
 ifdef MOZ_HISTOGRAMS_VERSION
 DEFINES += -DHISTOGRAMS_FILE_VERSION="$(MOZ_HISTOGRAMS_VERSION)"
 endif
new file mode 100644
--- /dev/null
+++ b/toolkit/components/telemetry/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['tests']
new file mode 100644
--- /dev/null
+++ b/toolkit/components/telemetry/tests/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/thumbnails/Makefile.in
+++ b/toolkit/components/thumbnails/Makefile.in
@@ -14,11 +14,9 @@ EXTRA_COMPONENTS = \
 	PageThumbsProtocol.js \
 	$(NULL)
 
 EXTRA_JS_MODULES = \
 	PageThumbsWorker.js \
 	PageThumbs.jsm \
 	$(NULL)
 
-TEST_DIRS += test
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/thumbnails/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['test']
new file mode 100644
--- /dev/null
+++ b/toolkit/components/thumbnails/test/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/typeaheadfind/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/url-classifier/Makefile.in
+++ b/toolkit/components/url-classifier/Makefile.in
@@ -1,9 +1,8 @@
-#
 # 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/.
 
 
 DEPTH     = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
@@ -56,13 +55,9 @@ EXTRA_PP_COMPONENTS = \
   nsUrlClassifierLib.js \
   nsUrlClassifierListManager.js \
   $(NULL)
 
 EXTRA_JS_MODULES = \
   SafeBrowsing.jsm \
   $(NULL)
 
-ifdef ENABLE_TESTS
-TOOL_DIRS += tests
-endif
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/url-classifier/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_TOOL_DIRS += ['tests']
--- a/toolkit/components/url-classifier/tests/Makefile.in
+++ b/toolkit/components/url-classifier/tests/Makefile.in
@@ -11,22 +11,16 @@ VPATH     = @srcdir@
 relativesrcdir  = @relativesrcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 MODULE = test_url-classifier
 
 MOZILLA_INTERNAL_API = 1
 
-
-# mochitest tests
-DIRS += mochitest \
-	$(NULL)
-
-# xpcshell tests
 XPCSHELL_TESTS=unit
 
 # XXX Get this to work in libxul builds.
 ## simple c++ tests (no xpcom)
 #CPP_UNIT_TESTS = \
 #	TestUrlClassifierUtils.cpp \
 #	$(NULL)
 
new file mode 100644
--- /dev/null
+++ b/toolkit/components/url-classifier/tests/mochitest/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/url-classifier/tests/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['mochitest']
--- a/toolkit/components/urlformatter/Makefile.in
+++ b/toolkit/components/urlformatter/Makefile.in
@@ -16,11 +16,9 @@ XPIDLSRCS = \
   nsIURLFormatter.idl \
   $(NULL)
 
 EXTRA_COMPONENTS = \
   nsURLFormatter.manifest \
   nsURLFormatter.js \
   $(NULL)
 
-TEST_DIRS += tests
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/urlformatter/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['tests']
new file mode 100644
--- /dev/null
+++ b/toolkit/components/urlformatter/tests/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/viewconfig/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/components/viewsource/Makefile.in
+++ b/toolkit/components/viewsource/Makefile.in
@@ -6,11 +6,9 @@
 
 DEPTH     = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH     = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-TEST_DIRS += test
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/viewsource/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['test']
--- a/toolkit/components/viewsource/test/Makefile.in
+++ b/toolkit/components/viewsource/test/Makefile.in
@@ -7,16 +7,13 @@
 DEPTH     = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH     = @srcdir@
 relativesrcdir  = @relativesrcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-DIRS = browser
-
-
 MOCHITEST_CHROME_FILES   = \
                 test_428653.xul \
                 $(NULL)
 
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/components/viewsource/test/browser/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/components/viewsource/test/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['browser']
--- a/toolkit/content/Makefile.in
+++ b/toolkit/content/Makefile.in
@@ -45,18 +45,16 @@ endif
 
 BUILD_HOSTNAME = $(shell hostname -s || hostname)
 DEFINES += -DBUILD_HOSTNAME="$(BUILD_HOSTNAME)"
 
 ifdef MOZ_TOOLKIT_SEARCH
 DEFINES += -DMOZ_TOOLKIT_SEARCH
 endif
 
-TEST_DIRS += tests
-
 EXTRA_JS_MODULES = \
   debug.js \
   DeferredTask.jsm \
   Deprecated.jsm \
   Dict.jsm \
   Geometry.jsm \
   InlineSpellChecker.jsm \
   PageMenu.jsm \
new file mode 100644
--- /dev/null
+++ b/toolkit/content/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['tests']
--- a/toolkit/content/tests/Makefile.in
+++ b/toolkit/content/tests/Makefile.in
@@ -1,20 +1,17 @@
-#
 # 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/.
 
 DEPTH		= @DEPTH@
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 relativesrcdir = @relativesrcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 MODULE		= test_toolkit_general
 
 XPCSHELL_TESTS = unit
 
-DIRS = chrome widgets browser
-
 include $(topsrcdir)/config/rules.mk
--- a/toolkit/content/tests/browser/Makefile.in
+++ b/toolkit/content/tests/browser/Makefile.in
@@ -6,22 +6,16 @@
 DEPTH          = @DEPTH@
 topsrcdir      = @top_srcdir@
 srcdir         = @srcdir@
 VPATH          = @srcdir@
 relativesrcdir = @relativesrcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-DIRS = \
-  common \
-  data \
-  $(NULL)
-
-
 MOCHITEST_BROWSER_FILES = \
   browser_keyevents_during_autoscrolling.js \
   browser_bug295977_autoscroll_overflow.js \
   browser_bug594509.js \
   browser_Geometry.js \
   browser_InlineSpellChecker.js \
   browser_save_resend_postdata.js \
   browser_browserDrop.js \
new file mode 100644
--- /dev/null
+++ b/toolkit/content/tests/browser/common/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/content/tests/browser/data/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/content/tests/browser/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+DIRS += ['common', 'data']
--- a/toolkit/content/tests/chrome/Makefile.in
+++ b/toolkit/content/tests/chrome/Makefile.in
@@ -1,24 +1,20 @@
-#
 # 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/.
 
 DEPTH		= @DEPTH@
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 relativesrcdir  = @relativesrcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-DIRS = rtltest rtlchrome
-
-
 MOCHITEST_CHROME_FILES = 	findbar_window.xul \
 		test_findbar.xul \
 		findbar_events_window.xul \
 		test_findbar_events.xul \
 		test_bug253481.xul \
 		bug263683_window.xul \
 		test_bug263683.xul \
 		bug304188_window.xul \
new file mode 100644
--- /dev/null
+++ b/toolkit/content/tests/chrome/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+DIRS += ['rtltest', 'rtlchrome']
new file mode 100644
--- /dev/null
+++ b/toolkit/content/tests/chrome/rtlchrome/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/content/tests/chrome/rtltest/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/content/tests/moz.build
@@ -0,0 +1,7 @@
+# vim: set filetype=python:
+# 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/.
+
+DIRS += ['chrome', 'widgets', 'browser']
+
new file mode 100644
--- /dev/null
+++ b/toolkit/content/tests/widgets/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/crashreporter/Makefile.in
+++ b/toolkit/crashreporter/Makefile.in
@@ -8,82 +8,43 @@ srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 MODULE = crashreporter
 LIBXUL_LIBRARY = 1
 LIBRARY_NAME = exception_handler_s
 
-ifeq  ($(OS_ARCH),WINNT)
-DIRS += breakpad-windows-libxul
-ifdef MOZ_CRASHREPORTER_INJECTOR
-DIRS += breakpad-windows-standalone
-endif
-endif
-
 ifeq ($(OS_ARCH),Darwin)
 CMMSRCS = mac_utils.mm
-
-DIRS += \
-  google-breakpad/src/common \
-  google-breakpad/src/common/mac \
-  google-breakpad/src/client \
-  google-breakpad/src/client/mac/crash_generation \
-  google-breakpad/src/client/mac/handler \
-  google-breakpad/src/tools/mac/dump_syms \
-  $(NULL)
 endif
 
 ifeq ($(OS_ARCH),Linux)
 # There's no define for XP_LINUX normally.
 # MOZ_APP_NAME is needed on Android, where we
 # need to launch by package name.
 DEFINES += \
   -DXP_LINUX \
   -DANDROID_PACKAGE_NAME=\"$(ANDROID_PACKAGE_NAME)\"
   $(NULL)
-DIRS += \
-  google-breakpad/src/common \
-  google-breakpad/src/common/linux \
-  google-breakpad/src/client \
-  google-breakpad/src/client/linux/crash_generation \
-  google-breakpad/src/client/linux/handler \
-  google-breakpad/src/client/linux/minidump_writer \
-  google-breakpad/src/tools/linux/dump_syms \
-  $(NULL)
 endif
 
 ifeq ($(OS_ARCH),SunOS)
 # there's no define for this normally
 DEFINES += -DXP_SOLARIS
-DIRS += \
-  google-breakpad/src/common \
-  google-breakpad/src/common/solaris \
-  google-breakpad/src/client \
-  google-breakpad/src/client/solaris/handler \
-  google-breakpad/src/tools/solaris/dump_syms \
-  $(NULL)
 endif
 
 ifeq ($(OS_TARGET),Android)
-DIRS += fileid
 # NDK5 workarounds
 DEFINES += -D_STLP_CONST_CONSTRUCTOR_BUG -D_STLP_NO_MEMBER_TEMPLATES
 TARGET_LOCAL_INCLUDES = \
   -I$(topsrcdir)/toolkit/crashreporter/google-breakpad/src/common/android/include/ \
   $(NULL)
 endif
 
-DIRS += client
-
-ifdef MOZ_CRASHREPORTER_INJECTOR
-DIRS += injector
-endif
-
 LOCAL_INCLUDES += -I$(srcdir)/google-breakpad/src
 DEFINES += -DUNICODE -D_UNICODE
 
 EXPORTS = \
 	nsExceptionHandler.h \
 	$(NULL)
 
 CPPSRCS = \
@@ -99,18 +60,14 @@ endif
 
 FORCE_STATIC_LIB = 1
 
 EXTRA_JS_MODULES = \
   CrashSubmit.jsm \
   KeyValueParser.jsm \
   $(NULL)
 
-ifdef ENABLE_TESTS
-TOOL_DIRS = test
-endif
-
 include $(topsrcdir)/config/config.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
 include $(topsrcdir)/config/rules.mk
 
 check::
 	$(PYTHON) $(srcdir)/tools/unit-symbolstore.py
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/breakpad-windows-libxul/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/breakpad-windows-standalone/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/client/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/fileid/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/client/linux/crash_generation/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/client/linux/handler/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/client/linux/minidump_writer/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/client/mac/crash_generation/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/client/mac/handler/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/client/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/client/solaris/handler/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/crashreporter/google-breakpad/src/common/Makefile.in
+++ b/toolkit/crashreporter/google-breakpad/src/common/Makefile.in
@@ -10,20 +10,16 @@ VPATH		= @srcdir@
 include $(DEPTH)/config/autoconf.mk
 
 MODULE		= breakpad_common
 LIBRARY_NAME	= breakpad_common_s
 HOST_LIBRARY_NAME = host_breakpad_common_s
 
 LOCAL_INCLUDES 	= -I$(srcdir)/..
 
-ifeq (,$(filter-out Darwin Linux,$(OS_ARCH)))
-DIRS = dwarf
-endif
-
 CPPSRCS	= \
   md5.cc \
   string_conversion.cc \
   $(NULL)
 
 CSRCS = \
   convert_UTF.c \
   $(NULL)
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/common/dwarf/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/common/linux/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/common/mac/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/common/moz.build
@@ -0,0 +1,7 @@
+# vim: set filetype=python:
+# 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/.
+
+if CONFIG['OS_ARCH'] in ('Darwin', 'Linux'):
+    DIRS += ['dwarf']
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/common/solaris/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/third_party/glog/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/tools/linux/dump_syms/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/tools/mac/dump_syms/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/tools/solaris/dump_syms/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/injector/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/moz.build
@@ -0,0 +1,50 @@
+# vim: set filetype=python:
+# 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/.
+
+if CONFIG['OS_ARCH'] == 'WINNT':
+    DIRS += ['breakpad-windows-libxul']
+
+    if CONFIG['MOZ_CRASHREPORTER_INJECTOR']:
+        DIRS += ['breakpad-windows-standalone']
+
+elif CONFIG['OS_ARCH'] == 'Darwin':
+    DIRS += [
+        'google-breakpad/src/common',
+        'google-breakpad/src/common/mac',
+        'google-breakpad/src/client',
+        'google-breakpad/src/client/mac/crash_generation',
+        'google-breakpad/src/client/mac/handler',
+        'google-breakpad/src/tools/mac/dump_syms',
+    ]
+
+elif CONFIG['OS_ARCH'] == 'Linux':
+    DIRS += [
+        'google-breakpad/src/common',
+        'google-breakpad/src/common/linux',
+        'google-breakpad/src/client',
+        'google-breakpad/src/client/linux/crash_generation',
+        'google-breakpad/src/client/linux/handler',
+        'google-breakpad/src/client/linux/minidump_writer',
+        'google-breakpad/src/tools/linux/dump_syms',
+    ]
+
+elif CONFIG['OS_ARCH'] == 'SunOS':
+    DIRS += [
+        'google-breakpad/src/common',
+        'google-breakpad/src/common/solaris',
+        'google-breakpad/src/client',
+        'google-breakpad/src/client/solaris/handler',
+        'google-breakpad/src/tools/solaris/dump_syms',
+    ]
+
+if CONFIG['OS_TARGET'] == 'Android':
+    DIRS += ['fileid']
+
+DIRS += ['client']
+
+if CONFIG['MOZ_CRASHREPORTER_INJECTOR']:
+    DIRS += ['injector']
+
+TEST_TOOL_DIRS += ['test']
new file mode 100644
--- /dev/null
+++ b/toolkit/crashreporter/test/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/devtools/Makefile.in
+++ b/toolkit/devtools/Makefile.in
@@ -4,18 +4,12 @@
 
 DEPTH     = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH     = @srcdir@
 
 include $(topsrcdir)/config/config.mk
 
-PARALLEL_DIRS += \
-  debugger \
-  sourcemap \
-  webconsole \
-  $(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
 libs::
 	$(NSINSTALL) $(srcdir)/*.jsm $(FINAL_TARGET)/modules/devtools
--- a/toolkit/devtools/debugger/Makefile.in
+++ b/toolkit/devtools/debugger/Makefile.in
@@ -27,15 +27,13 @@ EXTRA_DSO_LDOPTS += \
     $(MOZ_COMPONENT_LIBS) \
     $(MOZ_JS_LIBS) \
     $(NULL)
 
 XPIDLSRCS = \
 	nsIJSInspector.idl \
 	$(NULL)
 
-TEST_DIRS += tests
-
 include $(topsrcdir)/config/rules.mk
 
 libs::
 	$(INSTALL) $(IFLAGS1) $(srcdir)/*.jsm $(FINAL_TARGET)/modules/devtools
 	$(INSTALL) $(IFLAGS1) $(srcdir)/server/*.jsm $(FINAL_TARGET)/modules/devtools
new file mode 100644
--- /dev/null
+++ b/toolkit/devtools/debugger/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['tests']
new file mode 100644
--- /dev/null
+++ b/toolkit/devtools/debugger/tests/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/devtools/moz.build
@@ -0,0 +1,10 @@
+# vim: set filetype=python:
+# 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/.
+
+PARALLEL_DIRS += [
+    'debugger',
+    'sourcemap',
+    'webconsole',
+]
--- a/toolkit/devtools/sourcemap/Makefile.in
+++ b/toolkit/devtools/sourcemap/Makefile.in
@@ -5,15 +5,12 @@
 
 DEPTH		= @DEPTH@
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-# No tests yet
-TEST_DIRS += tests
-
 include $(topsrcdir)/config/rules.mk
 
 libs::
 	$(NSINSTALL) $(srcdir)/*.jsm $(FINAL_TARGET)/modules/devtools
new file mode 100644
--- /dev/null
+++ b/toolkit/devtools/sourcemap/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['tests']
new file mode 100644
--- /dev/null
+++ b/toolkit/devtools/sourcemap/tests/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/devtools/webconsole/Makefile.in
+++ b/toolkit/devtools/webconsole/Makefile.in
@@ -4,16 +4,12 @@
 
 DEPTH = ../../..
 topsrcdir = @top_srcdir@
 srcdir = @srcdir@
 VPATH = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-ifneq (Android,$(OS_TARGET))
-  TEST_DIRS += test
-endif
-
 include $(topsrcdir)/config/rules.mk
 
 libs::
 	$(INSTALL) $(IFLAGS1) $(srcdir)/*.jsm $(FINAL_TARGET)/modules/devtools
new file mode 100644
--- /dev/null
+++ b/toolkit/devtools/webconsole/moz.build
@@ -0,0 +1,7 @@
+# vim: set filetype=python:
+# 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/.
+
+if CONFIG['OS_TARGET'] != 'Android':
+    TEST_DIRS += ['test']
new file mode 100644
--- /dev/null
+++ b/toolkit/devtools/webconsole/test/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/forgetaboutsite/Makefile.in
+++ b/toolkit/forgetaboutsite/Makefile.in
@@ -10,11 +10,9 @@ VPATH   := @srcdir@
 include $(DEPTH)/config/autoconf.mk
 
 MODULE := forgetaboutsite
 
 EXTRA_JS_MODULES := \
   ForgetAboutSite.jsm \
   $(NULL)
 
-TEST_DIRS := test
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/forgetaboutsite/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['test']
--- a/toolkit/forgetaboutsite/test/Makefile.in
+++ b/toolkit/forgetaboutsite/test/Makefile.in
@@ -7,12 +7,11 @@ topsrcdir := @top_srcdir@
 srcdir    := @srcdir@
 VPATH   := @srcdir@
 relativesrcdir := @relativesrcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 MODULE := forgetaboutsite
 
-DIRS := browser
 XPCSHELL_TESTS := unit
 
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/forgetaboutsite/test/browser/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/forgetaboutsite/test/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+DIRS += ['browser']
--- a/toolkit/identity/Makefile.in
+++ b/toolkit/identity/Makefile.in
@@ -38,13 +38,9 @@ EXTRA_JS_MODULES = \
 	LogUtils.jsm \
 	MinimalIdentity.jsm \
 	RelyingParty.jsm \
 	Sandbox.jsm \
 	$(NULL)
 
 JS_MODULES_PATH = $(FINAL_TARGET)/modules/identity
 
-ifdef ENABLE_TESTS
-    DIRS += tests
-endif
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/identity/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['tests']
--- a/toolkit/identity/tests/Makefile.in
+++ b/toolkit/identity/tests/Makefile.in
@@ -8,11 +8,9 @@ srcdir         = @srcdir@
 VPATH          = @srcdir@
 relativesrcdir = @relativesrcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 MODULE = test_identity
 XPCSHELL_TESTS = unit
 
-DIRS = chrome mochitest
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/identity/tests/chrome/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/identity/tests/mochitest/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/identity/tests/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+DIRS += ['chrome', 'mochitest']
--- a/toolkit/library/Makefile.in
+++ b/toolkit/library/Makefile.in
@@ -12,22 +12,16 @@ include $(DEPTH)/config/autoconf.mk
 include $(topsrcdir)/rdf/util/src/objs.mk
 include $(topsrcdir)/intl/unicharutil/util/objs.mk
 
 MODULE = libxul
 LIBRARY_NAME = xul
 FORCE_SHARED_LIB = 1
 MOZILLA_INTERNAL_API = 1
 
-ifdef MOZ_METRO
-ifeq ($(OS_ARCH),WINNT)
-DIRS += winvccorlib
-endif
-endif
-
 ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
 # This is going to be a framework named "XUL", not an ordinary library named
 # "libxul.dylib"
 LIBRARY_NAME=XUL
 # Setting MAKE_FRAMEWORK makes DLL_PREFIX and DLL_SUFFIX be ignored when
 # setting SHARED_LIBRARY; we need to leave DLL_PREFIX and DLL_SUFFIX
 # as-is so that dependencies of the form -ltracemalloc still work.
 MAKE_FRAMEWORK=1
new file mode 100644
--- /dev/null
+++ b/toolkit/library/moz.build
@@ -0,0 +1,7 @@
+# vim: set filetype=python:
+# 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/.
+
+if CONFIG['MOZ_METRO'] and CONFIG['OS_ARCH'] == 'WINNT':
+    DIRS += ['winvccorlib']
new file mode 100644
--- /dev/null
+++ b/toolkit/library/winvccorlib/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/locales/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/modules/Makefile.in
+++ b/toolkit/modules/Makefile.in
@@ -4,17 +4,15 @@
 
 DEPTH     = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH     = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-TEST_DIRS += tests
-
 EXTRA_JS_MODULES := \
   NewTabUtils.jsm \
   Sqlite.jsm \
   TelemetryTimestamps.jsm \
   $(NULL)
 
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/modules/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['tests']
new file mode 100644
--- /dev/null
+++ b/toolkit/modules/tests/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/moz.build
@@ -0,0 +1,43 @@
+# vim: set filetype=python:
+# 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/.
+
+PARALLEL_DIRS += [
+    'components',
+    'content',
+    'devtools',
+    'forgetaboutsite',
+    'identity',
+    'locales',
+    'modules',
+    'mozapps/downloads',
+    'mozapps/extensions',
+    'mozapps/handling',
+    'mozapps/preferences',
+    'mozapps/plugins',
+    'mozapps/shared',
+    'obsolete',
+    'profile',
+    'themes',
+    'webapps',
+]
+
+DIRS += ['mozapps/update']
+
+if CONFIG['MOZ_MAINTENANCE_SERVICE']:
+    DIRS += ['components/maintenanceservice']
+
+DIRS += ['xre']
+
+if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'qt'):
+    PARALLEL_DIRS += ['system/unixproxy']
+elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
+    PARALLEL_DIRS += ['system/osxproxy']
+elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
+    PARALLEL_DIRS += ['system/windowsproxy']
+elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
+    PARALLEL_DIRS += ['system/androidproxy']
+
+if CONFIG['MOZ_CRASHREPORTER']:
+    PARALLEL_DIRS += ['crashreporter']
--- a/toolkit/mozapps/downloads/Makefile.in
+++ b/toolkit/mozapps/downloads/Makefile.in
@@ -22,11 +22,9 @@ EXTRA_JS_MODULES = \
   $(NULL)
 
 ifeq ($(OS_ARCH),WINNT)
 EXTRA_JS_MODULES += \
   DownloadTaskbarProgress.jsm \
   $(NULL)
 endif
 
-TEST_DIRS += tests
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/downloads/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['tests']
--- a/toolkit/mozapps/downloads/tests/Makefile.in
+++ b/toolkit/mozapps/downloads/tests/Makefile.in
@@ -12,14 +12,12 @@ relativesrcdir = @relativesrcdir@
 include $(DEPTH)/config/autoconf.mk
 
 MODULE = test_downloads
 
 XPCSHELL_TESTS = \
   unit \
   $(NULL)
 
-DIRS += chrome
-
 include $(topsrcdir)/config/rules.mk
 
 libs:: 
 	$(INSTALL) $(topsrcdir)/testing/specialpowers/content/MockFilePicker.jsm $(DEPTH)/_tests/xpcshell/$(relativesrcdir)/unit
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/downloads/tests/chrome/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/downloads/tests/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+DIRS += ['chrome']
--- a/toolkit/mozapps/extensions/Makefile.in
+++ b/toolkit/mozapps/extensions/Makefile.in
@@ -56,17 +56,15 @@ EXTRA_JS_MODULES = \
   AddonUpdateChecker.jsm \
   ChromeManifestParser.jsm \
   LightweightThemeImageOptimizer.jsm \
   LightweightThemeManager.jsm \
   PluginProvider.jsm \
   SpellCheckDictionaryBootstrap.js \
   $(NULL)
 
-TEST_DIRS += test
-
 EXTRA_DSO_LDOPTS = \
   $(MOZ_JS_LIBS) \
   $(MOZ_UNICHARUTIL_LIBS) \
   $(MOZ_COMPONENT_LIBS) \
   $(NULL)
 
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/extensions/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['test']
--- a/toolkit/mozapps/extensions/test/Makefile.in
+++ b/toolkit/mozapps/extensions/test/Makefile.in
@@ -11,22 +11,16 @@ relativesrcdir = @relativesrcdir@
 
 TESTROOT = $(CURDIR)/$(DEPTH)/_tests/xpcshell/$(relativesrcdir)
 TESTXPI = $(TESTROOT)/xpcshell/addons
 
 include $(DEPTH)/config/autoconf.mk
 
 MODULE = test_extensionmanager
 
-DIRS += \
-    xpinstall \
-    browser \
-    mochitest \
-    $(NULL)
-
 XPCSHELL_TESTS = \
   xpcshell \
   xpcshell-unpack \
   $(NULL)
 
 include $(topsrcdir)/config/rules.mk
 
 libs::
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/browser/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/mochitest/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/moz.build
@@ -0,0 +1,7 @@
+# vim: set filetype=python:
+# 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/.
+
+if CONFIG['MOZ_BUILD_APP'] != 'mobile':
+    DIRS += ['xpinstall', 'browser', 'mochitest']
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/xpinstall/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/handling/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/mozapps/plugins/Makefile.in
+++ b/toolkit/mozapps/plugins/Makefile.in
@@ -7,11 +7,9 @@ DEPTH   = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH   = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 EXTRA_COMPONENTS = pluginGlue.manifest
 
-TEST_DIRS += tests
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/plugins/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['tests']
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/plugins/tests/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/preferences/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/mozapps/shared/Makefile.in
+++ b/toolkit/mozapps/shared/Makefile.in
@@ -15,15 +15,13 @@ MODULE = toolkitShared
 EXTRA_PP_JS_MODULES = \
   CertUtils.jsm \
   $(NULL)
 
 EXTRA_JS_MODULES = \
   FileUtils.jsm \
   $(NULL)
 
-TEST_DIRS += test/chrome
-
 ifdef ENABLE_TESTS
 XPCSHELL_TESTS = test/unit
 endif
 
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/shared/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['test/chrome']
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/shared/test/chrome/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/mozapps/update/Makefile.in
+++ b/toolkit/mozapps/update/Makefile.in
@@ -14,47 +14,23 @@ MODULE = update
 XPIDLSRCS = nsIUpdateTimerManager.idl
 
 EXTRA_COMPONENTS = \
   nsUpdateTimerManager.js \
   nsUpdateTimerManager.manifest \
   $(NULL)
 
 ifdef MOZ_UPDATER
-ifneq (android,$(MOZ_WIDGET_TOOLKIT))
-DIRS += common
-DIRS += updater
-endif
 
 XPIDLSRCS += nsIUpdateService.idl
 
 EXTRA_PP_COMPONENTS += \
   nsUpdateService.js \
   $(NULL)
 
 EXTRA_COMPONENTS += \
   nsUpdateService.manifest \
   nsUpdateServiceStub.js \
   $(NULL)
 
-else
-
-# If only the maintenance service is installed and not
-# the updater, then the maintenance service may still be
-# used for other things.  We need to build update/common
-# which the maintenance service uses.
-ifdef MOZ_MAINTENANCE_SERVICE
-ifneq (android,$(MOZ_WIDGET_TOOLKIT))
-DIRS += common
-endif
-endif
-endif
-
-TEST_DIRS += test_timermanager
-# Update tests require the updater binary
-ifdef MOZ_UPDATER
-TEST_DIRS += test
-ifdef MOZ_MAINTENANCE_SERVICE
-TEST_DIRS += test_svc
-endif
 endif
 
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/update/common/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/update/moz.build
@@ -0,0 +1,23 @@
+# vim: set filetype=python:
+# 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/.
+
+if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'android':
+    if CONFIG['MOZ_UPDATER']:
+        DIRS += ['common', 'updater']
+    elif CONFIG['MOZ_MAINTENANCE_SERVICE']:
+        # If only the maintenance service is installed and not
+        # the updater, then the maintenance service may still be
+        # used for other things.  We need to build update/common
+        # which the maintenance service uses.
+        DIRS += ['common']
+
+TEST_DIRS += ['test_timermanager']
+
+# Update tests require the updater binary
+if CONFIG['MOZ_UPDATER']:
+    TEST_DIRS += ['test']
+
+    if CONFIG['MOZ_MAINTENANCE_SERVICE']:
+        TEST_DIRS += ['test_svc']
--- a/toolkit/mozapps/update/test/Makefile.in
+++ b/toolkit/mozapps/update/test/Makefile.in
@@ -25,20 +25,16 @@ DEFINES += \
   -DMOZ_DEBUG=$(MOZ_DEBUG) \
   $(NULL)
 
 ifdef MOZ_MAINTENANCE_SERVICE
 DEFINES += -DMOZ_MAINTENANCE_SERVICE=$(MOZ_MAINTENANCE_SERVICE)
 endif
 
 ifneq (android,$(MOZ_WIDGET_TOOLKIT))
-DIRS = \
-  chrome \
-  $(NULL)
-
 CPPSRCS = \
   TestAUSReadStrings.cpp \
   TestAUSHelper.cpp \
   $(NULL)
 
 SIMPLE_PROGRAMS = $(CPPSRCS:.cpp=$(BIN_SUFFIX))
 
 INI_TEST_FILES = \
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/update/test/chrome/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/update/test/moz.build
@@ -0,0 +1,7 @@
+# vim: set filetype=python:
+# 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/.
+
+if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'android':
+    DIRS += ['chrome']
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/update/test_svc/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/update/test_timermanager/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/update/updater/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/obsolete/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/profile/Makefile.in
+++ b/toolkit/profile/Makefile.in
@@ -31,14 +31,12 @@ LOCAL_INCLUDES = \
   -I$(srcdir)/../xre \
   -I$(topsrcdir)/profile/dirserviceprovider/src \
   $(NULL)
 
 DEFINES += -DIMPL_XREAPI
 
 GARBAGE += nsProfileLock.cpp
 
-TEST_DIRS += test
-
 include $(topsrcdir)/config/rules.mk
 
 export:: $(topsrcdir)/profile/dirserviceprovider/src/nsProfileLock.cpp
 	$(INSTALL) $^ .
new file mode 100644
--- /dev/null
+++ b/toolkit/profile/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['test']
new file mode 100644
--- /dev/null
+++ b/toolkit/profile/test/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/system/androidproxy/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/system/dbus/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/system/gnome/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/system/osxproxy/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/system/unixproxy/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/system/windowsproxy/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/themes/Makefile.in
+++ b/toolkit/themes/Makefile.in
@@ -4,38 +4,10 @@
 
 DEPTH     = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH     = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-# Theme Selection
-#
-# MacOS X                 osx (toolkit/themes/osx)
-# Windows                 windows (toolkit/themes/windows)
-# GNOME/Linux             windows (toolkit/themes/windows) + 
-#                         linux overrides (toolkit/themes/linux)
-# OS/2                    windows (toolkit/themes/windows) + 
-#                         os2 overrides (toolkit/themes/os2)
-# faststripe              windows + faststripe (no native theme components)
-
-ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
-DIRS	= osx
-else
-
-DIRS	= windows
-
-ifneq (,$(filter gtk2 qt,$(MOZ_WIDGET_TOOLKIT)))
-DIRS += linux
-endif
-ifneq (,$(filter os2,$(MOZ_WIDGET_TOOLKIT)))
-DIRS += os2/global
-endif
-ifdef MOZ_THEME_FASTSTRIPE
-DIRS += faststripe/global
-endif
-
-endif
-
 include $(topsrcdir)/config/rules.mk
 
new file mode 100644
--- /dev/null
+++ b/toolkit/themes/faststripe/global/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/themes/linux/Makefile.in
+++ b/toolkit/themes/linux/Makefile.in
@@ -4,15 +4,9 @@
 
 DEPTH     = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH     = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-DIRS	= global mozapps
-
-ifdef MOZ_HELP_VIEWER
-DIRS	+= help
-endif
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/themes/linux/global/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/themes/linux/help/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/themes/linux/moz.build
@@ -0,0 +1,9 @@
+# vim: set filetype=python:
+# 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/.
+
+DIRS += ['global', 'mozapps']
+
+if CONFIG['MOZ_HELP_VIEWER']:
+    DIRS += ['help']
new file mode 100644
--- /dev/null
+++ b/toolkit/themes/linux/mozapps/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/themes/moz.build
@@ -0,0 +1,28 @@
+# vim: set filetype=python:
+# 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/.
+
+# Theme Selection
+#
+# MacOS X                 osx (toolkit/themes/osx)
+# Windows                 windows (toolkit/themes/windows)
+# GNOME/Linux             windows (toolkit/themes/windows) + 
+#                         linux overrides (toolkit/themes/linux)
+# OS/2                    windows (toolkit/themes/windows) + 
+#                         os2 overrides (toolkit/themes/os2)
+# faststripe              windows + faststripe (no native theme components)
+
+toolkit = CONFIG['MOZ_WIDGET_TOOLKIT']
+
+if toolkit == 'cocoa':
+    DIRS += ['osx']
+else:
+    DIRS += ['windows']
+
+    if toolkit in ('gtk2', 'qt'):
+        DIRS += ['linux']
+    elif toolkit == 'os2':
+        DIRS += ['os2/global']
+    elif CONFIG['MOZ_THEME_FASTSTRIPE']:
+        DIRS += ['faststripe/global']
new file mode 100644
--- /dev/null
+++ b/toolkit/themes/os2/global/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/themes/osx/Makefile.in
+++ b/toolkit/themes/osx/Makefile.in
@@ -4,17 +4,9 @@
 
 DEPTH     = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH     = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-DIRS	= global mozapps
-
-ifdef MOZ_HELP_VIEWER
-DIRS	+= help
-endif
-
-TEST_DIRS += mochitests
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/themes/osx/global/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/themes/osx/help/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/themes/osx/mochitests/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/themes/osx/moz.build
@@ -0,0 +1,11 @@
+# vim: set filetype=python:
+# 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/.
+
+DIRS += ['global', 'mozapps']
+
+if CONFIG['MOZ_HELP_VIEWER']:
+    DIRS += ['help']
+
+TEST_DIRS += ['mochitests']
new file mode 100644
--- /dev/null
+++ b/toolkit/themes/osx/mozapps/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/themes/windows/Makefile.in
+++ b/toolkit/themes/windows/Makefile.in
@@ -4,15 +4,9 @@
 
 DEPTH     = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH     = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-DIRS	= global mozapps
-
-ifdef MOZ_HELP_VIEWER
-DIRS	+= help
-endif
-
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/themes/windows/global/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/themes/windows/help/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/themes/windows/moz.build
@@ -0,0 +1,9 @@
+# vim: set filetype=python:
+# 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/.
+
+DIRS += ['global', 'mozapps']
+
+if CONFIG['MOZ_HELP_VIEWER']:
+    DIRS += ['help']
new file mode 100644
--- /dev/null
+++ b/toolkit/themes/windows/mozapps/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
new file mode 100644
--- /dev/null
+++ b/toolkit/toolkit.mozbuild
@@ -0,0 +1,251 @@
+# vim: set filetype=python:
+# 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/.
+
+if CONFIG['LIBXUL_SDK']:
+    error('toolkit.mozbuild is not compatible with --enable-libxul-sdk=')
+
+if not CONFIG['MOZ_NATIVE_NSPR']:
+    add_tier_dir('nspr', 'nsprpub', static=True)
+    add_tier_dir('nspr', 'config/nspr')
+
+if not CONFIG['MOZ_NATIVE_SQLITE']:
+    add_tier_dir('nss', 'db/sqlite3/src')
+
+if CONFIG['MOZ_PSM'] and not CONFIG['MOZ_NATIVE_NSS']:
+    add_tier_dir('nss', 'security/build')
+
+include('/config/js/js.mozbuild')
+
+if CONFIG['NS_TRACE_MALLOC']:
+    add_tier_dir('platform', 'tools/trace-malloc/lib')
+
+if CONFIG['MOZ_DMD']:
+    add_tier_dir('platform', 'memory/replace/dmd')
+
+if CONFIG['MOZ_TREE_FREETYPE']:
+    add_tier_dir('platform', 'modules/freetype2', static=True)
+
+add_tier_dir('platform', 'xpcom')
+
+add_tier_dir('platform', [
+    'modules/libpref',
+    'intl',
+    'netwerk',
+])
+
+if CONFIG['MOZ_AUTH_EXTENSION']:
+    add_tier_dir('platform', 'extensions/auth')
+
+# External/3rd party libraries.
+
+if not CONFIG['MOZ_NATIVE_JPEG']:
+    add_tier_dir('platform', 'media/libjpeg')
+
+if CONFIG['MOZ_UPDATER']:
+    if not CONFIG['MOZ_NATIVE_BZ2']:
+        add_tier_dir('platform', 'modules/libbz2')
+
+    add_tier_dir('platform', 'other-licenses/bsdiff')
+
+add_tier_dir('platform', 'gfx/qcms')
+
+# Gecko/Core components.
+
+add_tier_dir('platform', ['ipc', 'js/ipc'])
+
+add_tier_dir('platform', ['hal', 'js/xpconnect', 'intl/chardet'])
+
+if CONFIG['MOZ_ENABLE_GTK2'] and CONFIG['MOZ_X11']:
+    add_tier_dir('platform', 'widget/gtkxtbin')
+
+add_tier_dir('platform', ['modules/libjar', 'storage'])
+
+if CONFIG['MOZ_PERMISSIONS']:
+    add_tier_dir('platform', ['extensions/cookie', 'extensions/permissions'])
+
+add_tier_dir('platform', 'rdf')
+
+if CONFIG['MOZ_JSDEBUGGER']:
+    add_tier_dir('platform', 'js/jsd')
+
+if CONFIG['MOZ_VORBIS']:
+    add_tier_dir('platform', 'media/libvorbis')
+
+if CONFIG['MOZ_TREMOR']:
+    add_tier_dir('platform', 'media/libtremor')
+
+if CONFIG['MOZ_OPUS']:
+    add_tier_dir('platform', 'media/libopus')
+
+if CONFIG['MOZ_WEBM']:
+    add_tier_dir('platform', 'media/libnestegg')
+
+if CONFIG['MOZ_VP8'] and not CONFIG['MOZ_NATIVE_LIBVPX']:
+    add_tier_dir('platform', 'media/libvpx')
+
+if CONFIG['MOZ_OGG']:
+    add_tier_dir('platform', ['media/libogg', 'media/libtheora'])
+
+if CONFIG['MOZ_SYDNEYAUDIO']:
+    add_tier_dir('platform', 'media/libsydneyaudio')
+
+if CONFIG['MOZ_WEBRTC']:
+    add_tier_dir('platform', [
+        'media/webrtc',
+        'media/mtransport/third_party',
+        'media/mtransport/build',
+        'media/mtransport/standalone',
+    ])
+
+if CONFIG['MOZ_SPEEX_RESAMPLER']:
+    add_tier_dir('platform', 'media/libspeex_resampler')
+
+if CONFIG['MOZ_SOUNDTOUCH']:
+    add_tier_dir('platform', 'media/libsoundtouch')
+
+if CONFIG['MOZ_CUBEB']:
+    add_tier_dir('platform', 'media/libcubeb')
+
+if CONFIG['MOZ_OMX_PLUGIN']:
+    add_tier_dir('platform', [
+        'media/omx-plugin/lib/ics/libutils',
+        'media/omx-plugin/lib/ics/libstagefright',
+        'media/omx-plugin/lib/gb/libutils',
+        'media/omx-plugin/lib/gb/libstagefright',
+        'media/omx-plugin/lib/gb/libstagefright_color_conversion',
+        'media/omx-plugin/lib/gb235/libstagefright',
+        'media/omx-plugin/lib/froyo/libstagefright',
+        'media/omx-plugin',
+        'media/omx-plugin/gb',
+        'media/omx-plugin/gb235',
+        'media/omx-plugin/froyo',
+        'media/omx-plugin/lib/hc/libstagefright',
+        'media/omx-plugin/hc',
+        'media/omx-plugin/sony',
+    ])
+
+if not CONFIG['MOZ_NATIVE_PNG']:
+    add_tier_dir('platform', 'media/libpng')
+
+if CONFIG['ENABLE_TESTS']:
+    add_tier_dir('platform', 'testing/specialpowers')
+
+if CONFIG['MOZ_ENABLE_GTEST']:
+    add_tier_dir('platform', 'testing/gtest')
+
+add_tier_dir('platform', [
+    'uriloader',
+    'caps',
+    'parser',
+    'gfx',
+    'image',
+    'dom',
+    'view',
+    'widget',
+    'content',
+    'editor',
+    'layout',
+    'docshell',
+    'embedding',
+    'xpfe/appshell'
+])
+
+# This needs to be built after the gfx/ directory
+# to ensure all dependencies for skia (e.g. mozalloc, xpcom)
+# have been built
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
+    add_tier_dir('platform', 'other-licenses/skia-npapi')
+
+if CONFIG['MOZ_UNIVERSALCHARDET']:
+    add_tier_dir('platform', 'extensions/universalchardet')
+
+if CONFIG['ACCESSIBILITY']:
+    add_tier_dir('platform', 'accessible')
+
+# toolkit
+
+add_tier_dir('platform', 'profile')
+
+# This must precede xpfe.
+if CONFIG['MOZ_JPROF']:
+    add_tier_dir('platform', 'tools/jprof')
+
+add_tier_dir('platform', 'tools/profiler')
+
+add_tier_dir('platform', 'xpfe/components')
+
+if CONFIG['MOZ_ENABLE_XREMOTE']:
+    add_tier_dir('platform', 'widget/xremoteclient')
+
+if CONFIG['MOZ_SPELLCHECK']:
+    add_tier_dir('platform', 'extensions/spellcheck')
+
+if CONFIG['MOZ_PSM']:
+    add_tier_dir('platform', 'security/manager')
+else:
+    add_tier_dir('platform', [
+        'security/manager/boot/public',
+        'security/manager/ssl/public',
+    ])
+
+if CONFIG['MOZ_UPDATER']:
+    add_tier_dir('platform', 'modules/libmar')
+
+add_tier_dir('platform', 'toolkit')
+
+if CONFIG['MOZ_PREF_EXTENSIONS']:
+    add_tier_dir('platform', 'extensions/pref')
+
+add_tier_dir('platform', 'services')
+add_tier_dir('platform', 'startupcache')
+add_tier_dir('platform', 'js/ductwork/debugger')
+add_tier_dir('platform', 'other-licenses/snappy')
+
+if CONFIG['MOZ_GIO_COMPONENT']:
+    add_tier_dir('platform', 'extensions/gio')
+
+# Applications can cheat and ask for code to be
+# built before libxul so it can be linked into libxul.
+add_tier_dir('platform', app_libxul_dirs)
+
+add_tier_dir('platform', 'toolkit/library')
+add_tier_dir('platform', 'xpcom/stub')
+
+if CONFIG['MOZ_REPLACE_MALLOC']:
+    add_tier_dir('platform', 'memory/replace')
+
+if CONFIG['NS_TRACE_MALLOC']:
+    add_tier_dir('platform', 'tools/trace-malloc')
+
+if CONFIG['MOZ_ENABLE_GNOME_COMPONENT']:
+    add_tier_dir('platform', 'toolkit/system/gnome')
+
+# if libconic is present, it will do its own network monitoring
+if not CONFIG['MOZ_ENABLE_LIBCONIC'] and CONFIG['MOZ_ENABLE_DBUS']:
+    add_tier_dir('platform', 'toolkit/system/dbus')
+
+add_tier_dir('platform', 'addon-sdk')
+
+if CONFIG['MOZ_MAPINFO']:
+    add_tier_dir('platform', 'tools/codesighs')
+
+if CONFIG['ENABLE_MARIONETTE']:
+    add_tier_dir('platform', 'testing/marionette')
+
+if CONFIG['ENABLE_TESTS']:
+    add_tier_dir('platform', [
+        'testing/mochitest',
+        'testing/xpcshell',
+        'testing/tools/screenshot',
+        'testing/peptest',
+        'testing/mozbase',
+        'testing/modules',
+    ])
+
+    if CONFIG['MOZ_WEBRTC']:
+        add_tier_dir('platform', [
+            'media/webrtc/signaling/test',
+            'media/mtransport/test',
+        ])
new file mode 100644
--- /dev/null
+++ b/toolkit/webapps/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+
--- a/toolkit/xre/Makefile.in
+++ b/toolkit/xre/Makefile.in
@@ -159,18 +159,16 @@ SHARED_LIBRARY_LIBS += \
   $(DEPTH)/toolkit/crashreporter/google-breakpad/src/client/solaris/handler/$(LIB_PREFIX)exception_handler_s.$(LIB_SUFFIX) \
   $(DEPTH)/toolkit/crashreporter/google-breakpad/src/client/$(LIB_PREFIX)minidump_file_writer_s.$(LIB_SUFFIX) \
   $(DEPTH)/toolkit/crashreporter/google-breakpad/src/common/$(LIB_PREFIX)breakpad_common_s.$(LIB_SUFFIX) \
   $(DEPTH)/toolkit/crashreporter/google-breakpad/src/common/solaris/$(LIB_PREFIX)breakpad_solaris_common_s.$(LIB_SUFFIX) \
   $(NULL)
 endif
 endif
 
-TEST_DIRS += test
-
 include $(topsrcdir)/config/config.mk
 include $(topsrcdir)/ipc/chromium/chromium-config.mk
 include $(topsrcdir)/config/rules.mk
 
 LOCAL_INCLUDES += \
   -I$(topsrcdir)/testing/gtest/mozilla \
   -I$(srcdir)/../profile \
   -I$(topsrcdir)/dom/ipc \
new file mode 100644
--- /dev/null
+++ b/toolkit/xre/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# 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/.
+
+TEST_DIRS += ['test']
--- a/toolkit/xre/test/Makefile.in
+++ b/toolkit/xre/test/Makefile.in
@@ -7,18 +7,14 @@ topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 relativesrcdir = @relativesrcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 MODULE = test_xulapp
 
-ifeq ($(OS_ARCH),WINNT)
-DIRS += win
-endif
-
 MOCHITEST_FILES = \
   test_fpuhandler.html \
   $(NULL)
 
 
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/xre/test/moz.build
@@ -0,0 +1,7 @@
+# vim: set filetype=python:
+# 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/.
+
+if CONFIG['OS_ARCH'] == 'WINNT':
+    DIRS += ['win']
new file mode 100644
--- /dev/null
+++ b/toolkit/xre/test/win/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# 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/.
+